Thursday, 27 August 2009

Cisco CUCIMOC Features

In my last post I said I would go into detail on the features offered by CUCIMOC. I do not intend to compare these to the features offered by Remote Call Control (RCC)\Dual Forking as these features are documented in a number of places and are a standard within OCS.

CUCIMOC offers a number of features which are identical to that of RCC\Dual Forking, it appears that Cisco did not want to take away any of the Voice functionality, it looks like only one Voice Feature has been added which is Call Park a feature often used within businesses but is missing not only from RCC\Dual Forking but also from the Enterprise Voice side of OCS as well.

Before going into further detail on the Client Features, I just want to comment on the CUCM aspect.

When running in RCC mode CUCIMOC is controlling a Cisco IP Phone, this phone retains all of the functionality it would have through being used manually.

When running as a Softphone, CUCIMOC is registered as a Cisco Unified Client Services Framework (CSF) device; this is a Phone created on the CUCM in the same manor as an IP Phone would be.

I have not tested what features are available such as Call Recording, Boss Secretary Working, Busy Lamp etc but I would assume that most of this functionality would work.

So lets look at what the Client has to offer.

The client offers some of the features that you have come to expect from a Cisco Client, such as Server Status and Create Problem Report; these aid in the troubleshooting and when escalating faults to Cisco support. These are added to the tools menu within Communicator and can be seen below.

CUCIMOC Tools Menu

The one of greatest interest is the “Select Device for Communication Pane” this allows the user to select which device they wish to use. This is useful if a user has multiple phones assigned to their user profile. Users are able to select any phone which is assigned to their CUCM User Account, the Directory Numbers can differ.

CUCIMOC Device Select

One slight bug appears to be that the number is only shown if you select the device.

It should be noted that if using CUCIMOC as a Softphone, it will only register the device it is using, other devices will show as unregistered. Due to this, there is a delay when switching between Desk Phone mode and Softphone mode and vice-versa this is due to the device being registered/unregistered.

Taking a look at the CUCIMOC Communications Pane, there are a number of options:

CUCIMOC Feature Bar

  1. Contacts and Number, are “Dragged and Dropped” here to dial a number
  2. Used to call Voicemail, when there are no Voicemails this is option is greyed out
  3. Displayed the Conversation (Call) History
  4. Switches between Softphone and Desk Phone Mode
  5. Options
  6. Dial Pad

I will come back to dialling and the in call features later. Clicking on the Voicemail icon simply calls through to Voicemail.

The Conversation History brings up the window shown below.

CUCIMOC Conv History

Users are able to double click a previous call to redial or they can right click to display other numbers to call, they also have the option to send an Instant Message or view the Contact Card.

I have shown the contact card below, since it looks different to the Communicator one, unfortunately there is no way to dial from the contact card.

CUCIMOC Contact Card

Switch between devices is self explanatory, click and switch.

Moving on to the options, I have chosen to show these below as they are self explanatory.


When forwarding calls, the “Another of my phone numbers” provides a drop down box on selection to choose a number, and “Another contact or number” displays a Cisco version of the Contact List to either choose a contact or enter a phone number.

The final item in the Communications Pane is the dial pad, this allows user to place call by entering a number on the dial pad and selecting call, it can also be used for DTMF during a call, it is a nice addition and something that users often comment on as a missing feature from Communicator.


Moving on to look at placing a call and the features offered once the call has started, there are three ways to call a person, one is by right clicking a contact and clicking “Place a Call”, if the contact has multiple numbers it will always call the work number. The “Place a Call” option is added in by CUCIMOC.

CUCIMOC Place a Call

Another method of placing a call is to drag the contact on to the Dial icon in the Communication Pane.

CUCIMOC Dial Number

One thing to note is that the numbers for contacts are direct from an LDAP source, which each user is configured for, in my case this is Active Directory. This means that it does not use the contact numbers provided via Office Communicator. Due to this if a Federated Contact provides their contact numbers (Access Level Company and Higher) you will not be able to dial these contacts without manually entering their details.

Although users are able to call outlook contacts, by searching for a contact and either right clicking or by using drag and drop.

The final way of making a call is by escalating an Instant Message conversation to a Voice Call, this can either be a 2 Person Conversation or an IM Conference. This is performed through selecting the users at the top of the Instant Message window (multiple select via Ctrl) and then selecting “Place a Call”. Conferencing is handled as detailed later in this post.

IM to Call 

Before looking at the in call features, lets take a look at how an inbound call in handled. When a call is received a Toast is displayed providing the option to either answer the call or send it to voicemail. If the number is within the LDAP source it will resolve the Caller ID to a Name (I think this may also be for Outlook Contacts but not 100% sure).

CUCIMOC Incoming Call

One thing to note is that there is no way to choose were to answer the call like there is with RCC\Dual Forking. It is answered using the currently selected device. Initially I viewed this as a problem, until talking to someone who pointed out that you choose the device you want to use when you start working, only changing it when you change location.

When a call in answered a new window opens showing the in call options, this is shown below.


  1. End Call, Further in Call Options
  2. Start an IM with the Caller
  3. Place Call on\off Hold
  4. Mute Call (Softphone mode only)
  5. Adjust Speaker Volume (Softphone mode only)
  6. Dial Pad for DTMF etc.

Each of the above is self explanatory so we will move on to the other In Call Options, these are shown below:

CUCIMOC In a Call Options

Conference and Transfer function in away you would expect from Cisco telephony, starting with Conference.

The user has the option to add people to the call creating a conference, this is done by calling the additional participant, talking to them then adding them to the existing call. This differs from the OCS route of just dumping people into a conference. This sequence is shown below:

CUCIMOC Conference Step 0.5              Choose Person to Call

CUCIMOC Conference Step 1        Add Additional Person

CUCIMOC Conference Step 2       Join Person to Existing Call

CUCIMOC Conference Step 3png     Three way call

People can also be added to the conference through drag and drop, but this will call the default number, as detailed above.

Transferring is handled in a similar way, the user selects who to transfer to, talks to the person they have called and then has the option to transfer the call, this is commonly known as an announced transfer. This is a useful addition as OCS only has announced transfer for RCC and when using the Attendant Console.

The main transfer dialog is shown below, the dialog for choosing who to transfer to is the same as the conference one shown above.

CUCIMOC Transfer

There is the option to not transfer, by selecting the End Call button or to complete the transfer by clicking Complete Transfer.

One thing I have noticed is that you can switch between calls, by clicking the Hold button, the problem is though that on switching back you lose the Complete Transfer option. I have only tested this in Desk Phone mode, I am unsure if this is the same in Softphone mode.

The final item to look at is Call Park, this functions as you would expect on a CUCM, the call is parked on a Pilot Number, and presented to the user to pass on.


As you can see from above, it is parked on 5990.

That brings to an end the review of the CUCM features, it has gone on longer that I thought but hopefully it all makes sense and is of use. I may have missed out a feature or two, but hopefully I have covered all the important ones.

Sunday, 16 August 2009

OCS R2 Web Scheduler

On Friday (August 14th ‘09) Microsoft released the OCS R2 version of the Meeting Web Scheduler.

This allows users who can not use the Outlook Plugin, to be able to schedule meetings, it does have some limitations such as not being able to schedule recurring meetings and it is also limited to the English language.

This can be downloaded from here, once installed an Installation Document can be found in the installation location, I am not sure if this is available as an independent download or if it has been added to the Documentation Libraries.

The Web Scheduler is installed on the Front End Servers for a Consolidated Enterprise Edition, on the Web Components Server for Expanded Enterprise Edition and on the Standard Edition Server.

Once the Web Scheduler has been installed it needs to be activated, this is done using the LCSCMD command.

For a Standard Edition Server this is:

LcsCmd.exe /web /action:Activate /role:Meeting /poolname:<pool_name> /User:<user_name> /Password:<password>

For an Enterprise Edition Server this is:

LcsCmd.exe /web /action:Activate /role:Meeting /poolname:<pool_name> /User:<user_name> /Password:<password> /guest:<guestuser> /guestpassword:<guestpassword>

This Username and Password should be the same account used to activate the OCS Web Components, by default this is “RTCComponentService”. For the Enterprise Edition Servers you also require the Guest Username and Password, by default this is “RTCGuestAccessUser”

The LCSCMD command can be found at cd "%commonprogramfiles%\microsoft office communications server 2007 r2" (The installation document missed out the Microsoft part of the path).

One things to note is that during our installation the FrontEnd Service did not restart after it was shutdown by the installer.

Once installed and activated the SMTP Server needs to be set, this is done using a VBS file to modify the web.config file; the web.config file can be edited directly as well.

There are two web.config files one for the Internal users and one for the External users, you need to modify both files.

These are located at:

"%ProgramFiles%\Microsoft Office Communications Server 2007 R2\Web Components\conf\int"

"%ProgramFiles%\Microsoft Office Communications Server 2007 R2\Web Components\conf\ext"

To set the SMTP Server address, using the VBS script the syntax is:

cscript WebSchedulerConfig.vbs /Action:SetSmtpServer /SMTPServer:SERVER_FQDN

Only a single SMTP Server can be specified, so this should be taken into consideration for High Availability deployments.

The Web Scheduler will send the email as the user that is creating the conference and uses the RTCComponentService account to do this or the account name you choose to use. Therefore you will need to ensure this account has the relevant permission to do this. In Exchange this is done by granting the “Send As” right to the RTCComponentService Account.

The last thing to do is to ensure that conf/ext is available from the outside world, if using ISA this should be the addition of a Path on the Web Components publishing rule.

Most of the information above is available in the Web Scheduler Installation document.

I have come across the following during installing and testing.

  • Having the same user in the Presenter and Attendee list will result in a “Server Error has Occurred” message.
  • The installation document mentions that users can join meeting be navigating to “https://ocsfqdn/conf/int/join.aspx”, this web page does not exist.
  • It will use different PSTN Conference IDs for Conference Calls unlike the Outlook Plugin.
  • The attendees get sent a meeting request which they can accept, decline etc. For the person setting up the meeting, the request appears to be incorrect as no meeting enters the calendar, so any responses from participants result in an error of “The meeting is not in the Calendar, it may have been moved or deleted” . I am not sure if this is due to running the CTP of Office 2010 or due to our SIP Addresses not matching our Primary Email Addresses, or if it is a general issue.

One of the useful items in Web Scheduler is that it lists all conferences a user has scheduled, either via the Outlook Plugin or by using the Web Scheduler, this allows users to easily see what is scheduled; it also lists the expiration date of the conference which users are unable to see any other way.

Monday, 3 August 2009

OCS R2 Caller Line ID\Name

In the July Server Updates a change was made to allow the Callers Name to be passed from the PBX\Gateway to the Mediation Server and in turn passed in to OCS; the change also flows the other way as well.

This change goes back on previous comments made by Microsoft in that they would not trust any information from the PBX with the exception of the Callers Phone Number.

In an mixed telephony environment were users are split between Enterprise Voice and Traditional Telephony passing the Callers Name is an important feature, as there are often phone numbers which are not listed in Active Directory. For example Shop Floor Phones, Hall Phones etc.

The change is equally if not more important the other way as well, as traditional PBXs only store Name to Extension mappings for Extensions that exist on the PBX.

This functionality has existed for years with trunking methods such as QSIG which allows for Display Names to be passed between PBXs.

So lets look at how this is handled by OCS.

Below is a screenshot of the Toast for an incoming call into OCS, in this case the Callers extension is not in Active Directory.

Inbound Call from Cisco to OCS with CLID

The name is shown in Italics to show that the Callers Name has come from the PBX in this case a Cisco Call Manager rather than from Active Directory.

One thing to note is that this does not work on Tanja Phones, all that is shown in the Callers Phone Number; this is tested on 3.5.6907.35.

This information can also be seen in the SIP Trace as shown below:

Inbound call from Cisco to OCS, Wire Trace INVITE

The Callers Information is also shown in the Invite out to another Phone if you are using Simultaneous Ring; although this is only useful if you are calling a phone that can understand this:

Inbound call from Cisco to OCS, Wire Trace sim-ring

The final part is an OCS User calling a PBX Phone, this functionality is not enabled by default and requires a changed on the Mediation Servers.

The screenshot below is a Toast on the Cisco IP Communicator, the Phone Number is not known to the PBX and as such would result in just the Callers Phone Number being displayed prior to the July Update.

Outbound Call from OCS to Cisco, Toast with CLID

This information can also be seen in the Invite shown below:

Outbound Call from OCS to Cisco, Wire Trace INVITE

The change required to enabled the Callers Name for Outbound OCS calls is detailed in the KB972721, but is covered below for completeness.

A file called MediationServerSvc.exe.config should be created in the Mediation Installation Directory which be default is at  %programfiles%\Microsoft Office Communications Server 2007\Mediation Server

This file should contain.

<?xml version="1.0" encoding="utf-8" ?>
                                <add key="forwardDisplayName" value="True" />

Once this file has been created the Mediation Server should be re-started. I am somewhat surprised this is not a WMI setting, since a number of Mediation Server settings were moved to WMI in R2 rather than creating\modifying this file.

Just to add if you are not seeing the Callers Name being passed between the PBX\Gateway and OCS or vice versa you should ensure that the Gateway\PBX is configured to allow the Callers Name to be passed.

Sunday, 2 August 2009

OCS R2 Dial In Conferencing (July Update)

Dial In Conferencing was a feature added in OCS R2 and has been modified since the initial release by the Patches released in April and July.

The purpose of this post is to cover off the changes in the July Patch.

The first change is to the Announcements made during the login phase. “Authenticated User” has been replaced for “Leader” and a Leader is now required to login to conferences protected by a PIN.

Previously if a conference was protected by a PIN the Leader or any Authenticate users did not need to login, this has now changed.

It should be noted that while the prompt says Leader, anyone who has an Extension and PIN on the OCS System can login. Microsoft have purely just changed Authenticated to Leader.

The main thing I wanted to comment on though is that a user can now enter their Extension rather than their full DDI to login as an authenticated user.

So if my Extension is 1234 and my DDI is +44201231234. I can now enter 1234 or 44201231234, being able to enter the Extension does make life a bit easier.

So now that I can save a second or two when logging into conference calls I became interested in how OCS or more specifically the Conference Attendant translates 1234 to +44201231234 in order to look up my User in Active Directory and check that my PIN is valid.

In order to translate the Extension number into the E.164 number it uses the Location Profile assigned to the Pool. For many organisation this would not be an issue but for Organisation who assign different Location Profiles to each user, using an Extension would result in failures.

Using multiple Location Profiles are common in situations were Companies are using OCS to replace multiple independent PBXs with overlapping Dial Plans. Something which is made easier in R2 (R1 required Group Policy Settings).

So while for the majority of OCS Users using the Extension may be possible for some organisations it will cause issues. Personally I would prefer to have an option to turn this off and for Voice Prompts to just say enter your Full Phone Number.

I am also unsure how this will work in OCS Deployments that have multiple Pools as I am assuming OCS will use the Location Profile in the Pool that the Conference is Hosted on, which again will create issues were extensions overlap.

The last area of confusion for me is Communicator Web Access (CWA). The July CWA update adds in an Extension field as shown below:

02-08-2009 20-42-47

I am unsure how the Phone Extension is worked out, since it does not appear to come from active directory as for all instances it appears to be calculated as detailed above and Normalisation Rules are one way.

I might get a surprise tomorrow when I login, some overnight process might run and populate the field and get rid of the error.

Or I am missing something in Active Directory, if I do find out there is an AD field I will update the post.