Welcome to TechNet Blogs Sign in | Join | Help

Jens Trier Rasmussen

The odd bit of information about OCS 2007, Exchange 2007 and OC 2007
Microsoft Office Communicator 2007 Phone Edition - July edition

We have released a new update for Office Communicator 2007 Phone Edition powered devices - http://support.microsoft.com/?kbid=952693. The image version is now 1.0.522.101.

Call unsuccessful - The Requested type of content encryption is not supported

You might get the above error message when you try to call your voice mail hosted on Exchange 2007 SP1 UM from your Office Communicator Phone Edition (OCPE) powered device. The likely cause of the issue is a mismatch between the VoIPSecurity setting of your SIP URI UM dial plan and the Security - Encryption level setting on the A/V Conferencing properties on your OCS 2007 pool.

The OCPE device use the Security - Encryption level setting to determine, if media should be encrypted or not. The default setting is Require encryption and OCPE will then send media using SRTP. If the UM dial plan VoIPSecurity parameter is set to SIPSecured Exchange 2007 SP1 UM will not accept the SRTP based media and you get the error message above on OCPE. Changing your UM dial plan to have the VoIPSecurity parameter set to Secured will fix the issue. This is the recommended setting, since this ensures that media is sent in a secure way.

More information can be found here http://technet.microsoft.com/en-us/library/bb676409.aspx and here http://technet.microsoft.com/en-us/library/bb124092(EXCHG.80).aspx.

How to install a Public Root CA certificate on Office Communicator 2007 Phone Edition

What can you do if the Public Certificate you are using on your Edge server(s) is not trusted by Office Communicator 2007 Phone edition? The public certificate is not trusted because its corresponding Root CA certificate is not installed on the device per default. In this post I describe how to make Root CA certificates available on the device.

You can use the certutil mechanism to install the Public Root CA certificate. First you download the certificate from the CA's web site. Then you use the certutil command to publish the certificate to your Active Directory. It will be added as an object under CN=Certification Authorities, CN=Public Key Services, CN=Services, CN=Configuration, DC=<domain>, DC=<tld>. You can add multiple Root CA certificates using this method. The device will download all the certificates found.

After the public Root CA certificate is published you will have to connect the device once to the internal network to get the certificate downloaded. Before you do that you need to reset the device to clear the certificate store, since you need the device to ask for certificates (if you didn't do this the device would use the currently installed certificate when challenged by your internal OCS servers and not search for them in Active Directory). You reset the device by inserting a paper clip in the small hole on the back between the USB and headset connectors. Afterwards you can connect the device to the Internet and it will connect to the Edge server.

PS: The above only works if the device is able to get to your Active Directory domain controller and the way it finds that is through DNS or NetBios. Please make sure this works by following the steps in this document. If you are using UPN style username and the certificate download fails try to use <domain>\<username> style login.

Missed Called Notifications

As a user of OCS 2007 you have the ability to receive Missed Call Notifications. How the Missed Call Notification is generated depends on the configuration of the user in question. Let's examine the different options.

Enterprise Voice with Exchange 2007 SP1 Unified Messaging (UM)

As an Enterprise Voice enabled user with voice mail coming from Exchange 2007 SP1 UM you can receive Missed Call Notifications and Voice Mails in your Exchange 2007 mailbox, when someone has tried to call you from either Office Communicator 2007 (OC), Office Communicator 2007 Phone Edition (OCPE) or from the PSTN/PBX. The Missed Call Notifications and Voice Messages are generated by Exchange 2007 SP1 UM.

The Missed Call Notifications can be generated in two ways depending on the state of the call when the caller hangs up. The states, for a user online with OCS 2007 and without call forwarding active, are:

  1. OCS 2007 rings all registered end-points for the user
  2. After a user defined time-out the call is forwarded to Exchange 2007 SP1 UM
  3. Exchange 2007 SP1 UM connects the call and plays the greeting and ask the user to leave a voice mail
  4. The voice mail is recorded and sent

If the caller hangs up in state 1 or 2 the call is still under control by OCS 2007. OCS 2007 will process the hang up and send a SIP INFO message to Exchange 2007 SP1 UM and instruct it to send a Missed Call Notification message to the called user. The SIP INFO message contains information about who is calling and who is called. Exchange 2007 SP1 UM will do reverse number lookup in AD and the called user's Outlook Contacts and will generate the Missed Call Notification message.

If the caller hangs up in state 3 the call is under control by Exchange 2007 SP1 UM and Exchange 2007 SP1 UM will do reverse number lookup in AD and the called user's Outlook Contacts and will generate the Missed Call Notification message.

If the call is in state 4 the called user will only a receive a Voice Mail message and no Missed Called Notification.

If the user is offline or with call forwarding set directly to Voice Mail the call will be routed directly to Exchange 2007 SP1 UM and go to state 3 in the above list.

Enterprise Voice without Exchange 2007 SP1 UM or Remote Call Control

As an Enterprise Voice enabled user without voice mail or a Remote Call Control user you can receive Missed Call Notifications in your Exchange mailbox. The Missed Call Notification is generated by OC 2007 via MAPI. The Missed Call Notification is only generated when OC 2007 is running. Microsoft Outlook does not need to be running.

Enterprise Voice with PBX Integration

As an Enterprise Voice with PBX Integration enabled user the generation of Missed Called Notification is the responsibility of the PBX system. OCS 2007 and OC 2007 will not generate Missed Call Notifications.

Office Communicator 2007 Phone Edition update: April 2008 released

We have released a new update for Office Communicator 2007 Phone Edition powered devices - http://support.microsoft.com/default.aspx?scid=kb;EN-US;949659. The image version is now 1.0.522.71.

Microsoft Communicator Phone Edition Deployment Guide

We just published a Deployment Guide for Office Communicator Phone Edition. Check it out at http://www.microsoft.com/downloads/details.aspx?familyid=ED9C55C3-51C9-46D0-B48A-D72BBE129B63&displaylang=en.

Uploading of a .cab file to Update Server WSS site fails with an HttpException and the message Request timed out.

Sometimes, when you upload a new .cab file for Microsoft Office Communicator 2007 Phone Edition or Microsoft RoundTable using the OCS 2007 Software Update Service Management Console Upload Software feature, the upload fails with an HttpException and the message Request timed out in the event log. The actual exception might vary, but the real reason is typically lack of resources on the WSS server. The resources lacking might be memory or CPU or a combination of both. You typically get the exception because the upload of the .cab times out. If you run into this try to add resources, i.e. more memory or more CPU capacity. If that is not possible here are a couple of tips you can use to increase the various time-outs.

On the server running the OCS 2007 Software Update Service Management Console you can edit the web.config file found in C:\Program Files\Microsoft Office Communications Server 2007\Web Components\UC Device Updates\Management Console. The web.config file controls the .NET requests the Management Console is using to talk to the WSS server. The web.config is per default read protected, so you have to make it writeable before editing it. In the file is a XML section called httpRuntime. This is the section you can tune. HttpRuntime is described here http://msdn2.microsoft.com/en-us/library/e1f13641(VS.71).aspx. In my test environment I'm using the following settings <httpRuntime maxRequestLength="900000" executionTimeout="300" appRequestQueueLimit="30"/>. This mean that the client will time-out after 300 seconds or 5 minutes.

Now you have changed the client time-out, but you typically also need to change the server side time-out on the WSS server. This is done by tuning the IIS time-out setting. The default is 120 seconds, but you can increase that by using the instructions in http://support.microsoft.com/default.aspx/kb/925083. On my test system I use 300 seconds. After changing the time-out stop and restart the web site hosting WSS.

Update 21-JAN-08: The above tuning is not the complete fix. The code itself is using other timeouts. We are investigating this and will report back.

Update 28-FEB-08: Please install the build released today  http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=889c542e-8b09-46c2-bd86-671c21668830. It should fix the issue with .cab upload error.

How to provide Exchange 2007 SP1 UM fault-tolerance as seen from OCS 2007?

Exchange 2007 SP1 UM provides voice mail functionality for OCS 2007 users when they are Enterprise Voice enabled. How is it possible to provide Exchange 2007 SP1 UM fault-tolerance for these users?

Exchange 2007 SP UM and OCS 2007 are integrated at the UM dial plan level. A given UM dial plan can be served/hosted by multiple UM servers. Do provide fault-tolerance you implement two or more UM servers and assigns the OCS integrated UM dial plan to all of them.

How can OCS 2007 use these UM servers in a fault-tolerant way?

OCS 2007 discovers UM users, UM servers and UM dial plans from Active Directory. It finds the UM dial plan of a user by looking at the EUM proxy address of the user, ie. the user with the SIP URI tu@contoso.com has as one of his proxy addresses EUM:tu@contoso.com;phone-context=Hellerup.contoso.com. The value of phone-context is the name of the UM dial plan. By looking at the UM dial plan attribute msExchUMServerDialPlanBL OCS 2007 gets the list of the UM servers servicing the dial plan. Let's call that list the "working set".

OCS will randomly contact one of the UM servers in the "working set". If that fails it will try a second one. If that also fails it will give up and the call can't be completed. A failed UM sever will be removed from the "working set". OCS will incrementally throttle traffic to the failed UM server and when it replies positively it will be included in the "working set".

Driving presence from Outlook Calendar information

Microsoft Office Communicator 2007 (OC) enables you to drive your presence from information in your Outlook calendar. If the Outlook calendar has a meeting OC will change your presence to be "In a Meeting". If the Outlook calendar has an appointment OC will change your presence to be "Busy". Depending on the access level other OC users are also able to see the Subject and Location of your meeting. The Enhanced Presence Model document contains information about this.

How is it working? Are the OC users looking up Exchange Free/Busy information about each other? Do you need to give other users special permissions on your calendar? These are some of the questions I'm being asked. Let me try to explain how it works.

OC is publishing its calendar information to the OCS server in the so called presence document and the information is stored on the OCS server in the SQL database. It is made available to other OC users who are subscribing to the information or just asks for it for instance by hovering over the user in the To field on an email. On the publisher you can see the data you are sending by hovering over the presence state. See the screen shot CalPublisher Screenshot where Test User Sixtyfour is in a meeting in the location "Hellerup Saratoga" and the subject of the meeting is "test of subject from OC".

The subscriber of the presence information can see the calendar information by open the Contact card of the user and hover over the calendar information on the contact card. See screen shot. CalSubscriber screenshot 

 

 

 

 

When OC publish calendar information it associates an expiry time for all the information. For the calendar information the expiry time is set to endpoint. That means it will expire as soon as the endpoint signs out of OC. At that point the OC publisher will be in the offline state and subscribers can't see his Outlook calendar information.

To understand a bit more on how OC is sending the meeting data information I enabled logging in OC and looked in the resulting uccp logs. The publisher will sent out a SERVICE SIP message with embedded XML. The publisher XML looks like this  CalPublisher XML. The subscriber will get a BENOTIFY SIP message with embedded XML and it looks likes this CalSubscriber XML

 

OC publish calendar information for 128 15min slots (8,5 hours) in advance. It is refreshing the calendar information if needed each 30 minutes (configurable via GPO) or on sign in. To learn more about the exchange of presence information using XML data see Unified Communications Enhanced Presence Schemas for Microsoft Office Communications Server 2007.

In summary to answer my own questions from above: No, OC users are not accessing free/busy information for each other and hence No, you don't need to give special permissions on your calendar.

How to implement Enterprise Voice in a non-DID scenario?

When implementing Enterprise Voice in OCS 2007 the assumption is that each user homed on OCS will have his/her own dedicated phone number directly reachable from the PSTN, a so called Direct Inward Dialing (DID) or Direct Dial-In (DDI). It is the DID defined for the user in E.164/RFC 3966 format in the msRTCSIP-Line attribute, i.e. tel:+4544890101. Some customers might not have a DID for each user. In stead they have 1 DID for the company, i.e. the main number, and all recipients have a unique extension assigned. An Interactive Voice Response (IVR) system or a switch board operator answers the main number and redirect the calls to the recipient.

So how could you implement Enterprise Voice in such a scenario? In a non-DID scenario you will have to define the msRTCSIP-Line attribute for each user in the format tel:+<main number in E.164>;ext=<extension>, i.e. tel:+4544890101;ext=200.

When implementing this type of solution you need to make sure that your SIP/PSTN gateway can understand this format. Why? It needs to be able to understand the components of the string and work with them. On outgoing calls from OCS to the PBX they need to be able to extract the extension from the Calling Line Id and present only the extension to the PBX (i.e. strip "tel:+<main number in E.164>;ext="). On  incoming calls to OCS from the PBX they need to generate the format for Calling Line Id and Called Line Id.

We are looking at alternative solutions for this scenario for future releases of OCS 2007.

UC OIP January 2008 Update

In case you haven't seen it the UC OIP web site has been updated with the January 2008 status http://technet.microsoft.com/en-us/office/bb735838.aspx. There is now one IP-PBX vendor qualified for Dual Forking with RCC.

How is the Office Communicator 2007 Phone Edition retrieving Outlook Contacts, Call logs and Voice Mails?

The Office Communicator 2007 Phone Edition device is able to retrieve the users Outlook Contacts, Call logs and Voice Mails and display them on the device. How is it doing it? It is accessing the Exchange 2007 Client Access Server (CAS) and retrieving the information using Exchange 2007 Web Services (EWS). How is it locating the Exchange 2007 CAS and EWS?

It is locating the Exchange 2007 CAS through the use of a well-known A records found in DNS. It is using the SMTP domain of the primary e-mail address of the user to locate the A record. The primary e-mail address is sent to the device during the sign-in process through in-band provisioning. The A records it is looking for are the following in this order https://<SMTP domain>/autodiscover/autodiscover.xml, https://autodiscover.<SMTP domain>/autodiscover/autodiscover.xml and http -> https redirect. Outlook 2007 is able to use Active Directory Service Connections Points (SCP) and DNS SRV records to locate Exchange 2007 CAS, but the device does not support these additional methods.

The Exchange 2007 CAS runs the AutoDiscover service. The AutoDiscover service is responsible for finding and presenting the various URL's used to interact with Exchange 2007 EWS and information about how to connect Outlook 2007 to Exchange 2007. The device is using those URL's to retrieve the Outlook Contacts, Call logs and Voice Mails from Exchange 2007.

So how can you troubleshoot missing Outlook Contacts, Call logs and Voice Mails on the device? You could try some of these things from a PC connected on the same network as the device:

  • Use nslookup to test that you can find an A record in DNS for <SMTP domain> or autodiscover.<SMTP domain>
  • Try to access the URL's from IE https://<SMTP domain>/autodiscover/autodiscover.xml, https://autodiscover.<SMTP domain>/autodiscover/autodiscover.xml and the http variant and see if you get an XML response back with 600 Invalid request.
  • Make special note of the certificates used on the AutoDiscover service and on the CAS? Does the device trust that certificate? Is it the default self-signed certificate used by Exchange 2007? if so the device does not trust it and it will not communicate with the AutoDiscover service
  • Try to use Outlook 2007 Test e-mail AutoConfiguration (press and hold control and right click the Outlook icon in system tray). Select only Use AutoDiscover and input your E-mail Address and click Test. Check if that returns a lot of XML in the XML tab.
  • Try to access the URL ending in /ews/exchange.asmx shown in the XML tab from the browser. If that returns a lot of XML back it means EWS is working
  • If the above have shown that Exchange 2007 AutoDiscover and EWS are working try to check the IIS log on the Exchange 2007 CAS server for signs that the device is trying to communicate with it

If all checks out OK, but you're still not seeing the information on the device, it is time to call Microsoft Support.

Localized version of Office Communicator 2007 Phone Edition

On January 16, 2008 Microsoft made localized versions of the Office Communicator 2007 Phone Edition firmware available on Microsoft.com for download. There are Dutch, French, German, Italian, Japanese, Korean and Spanish firmware versions. The firmware version available is 1.0522.41.

In order to run the localized versions on a Office Communicator 2007 Phone Edition device you need to order it from the manufacturers as a localized version. It is not possible to update a device from one locale (i.e. English United States - ENU) to another locale using the Office Communications Server 2007 Update Software Service.

Running ConfigUpdatesServer.vbs on 64-bit Windows 2003 OS

During configuration of the OCS 2007 Software Update Service you need to run the ConfigUpdatesServer.vbs script. However running the script might result in the error "ERROR: OCS Common Files not found in registry".

If you are using a 64-bit version of Windows 2003 the error can be caused by running the command with the 64-bit version of cscript. The 64-bit version of cscript accesses the 64-bit area of the registry (high level picture :-) and since OCS 2007 is not a native 64-bit application it stores its registry information in the 32-bit area of the registry. To overcome the problem use the 32-bit version of cscript found in c:\windows\syswow64.

How are phone normalization rules updated on the client?

Phone normalization rules in OCS 2007 are stored in Active Directory and can be manipulated using Enterprise Voice Route Helper and the OCS 2007 Administration MMC snap-in. The rules are not only used on the OCS server, but they are also downloaded to the client. How is the process?

The rules are updated in Active Directory on the domain controller used by tool. The WMI provider on each front-end server in the pool/standard edition server queries the domain controller it is connected to each 5 minutes for updated rules. So if they are not talking to the same domain controller you will have to factor in Active Directory replication latency.

When the client (OC 2007 or OC 2007 Phone Edition) signs in to the pool they will get configuration information downloaded through in-band provisioning. The phone normalization rules are in the <LocationProfileDescription> XML tag. The client will also re-load the rules each 8 hour.

More Posts Next page »
Page view tracker