Why am I writing this?
One of the readers of my blog asked me about video and X-Lite. Specifically, they wanted to know if X-Lite supported video communications with the Cisco 9900 series IP phones. I have used X-Lite for video communications with the Cisco Video Communications Server (VCS) but I had not tested with the Cisco 9900 series phones. A quick check and it was easily determined that this does not work. When I decided to RTFM, I found out why. The X-Lite client only supports H.263 for video media and the Cisco 9900 only supports H.264.
Well, I still wanted to test out video. I also kinda wanted to get rid of that annoying banner ad that X-Lite 4 has. So, I decided to drop the $49 bones for CounterPath Bria to see what’s what. I also wanted to test out various end user features and functionality with Bria to determine how viable it was as a soft client for OS X users.
Some additional background here, Cisco has a Jabber client for Mac OS X and that client can intercommunicate with CUCM. However, Jabber for Mac requires a Unified Presence Server or WebEx Connect account to load. At the time of this writing, Cisco isn’t offering a “voice-only” softphone like Cisco IP Communication (CIPC) for the Mac OS X platform.
So, that is the “why”. Now, we will go into the “how”.
For my testing I used:
- CUCM 8.5(1)SU2 [and SU3]
- CounterPath Bria 188.8.131.52 (Build 63091)
The procedures I used are similar to those used for other 3rd party SIP applications I have tested on CUCM 8x and 7x platforms. So, I expect what I am provided herein applies to 6x, 7x, and 8x appliance models.
Basic Configuration for CUCM
The procedures for configuring CUCM are pretty much the same as I used for X-Lite 3.0. For sake of brevity, I won’t repeat all of the procedures here. See the blog on CounterPath X-Lite version 3.0 for more information. The primary difference between the X-Lite procedures and those I used for Bria is that I added a 3rd Party Advanced SIP Device to CUCM instead of a Basic SIP Device. This is necessary to support the video capabilities in Bria.
Configurations for CounterPath Bria
The first step is to download and install the CounterPath Bria client. You can access the software here. Bria comes with a $49.95 price tag.
Launching and Licensing Bria
The first time you launch Bria, you will be prompted to enter a valid license key. The license key is provided by CounterPath when you purchase the software. Enter the license key as provided and you should be good to go.
Adding an Account
After launching Bria, you will need to provision an account for use with CUCM. In the application menu choose Bria 3>Preferences. When the Preferences panel loads, click on the Accounts tab. You will see “Mac Address Book” account listed (we will discuss this later). Under the account list you will see a plus “+” sign. Click on this to add an account. You will have the option to add a SIP account or a XMPP account. For the CUCM integration, choose SIP.
When you add a new SIP account, a multi-page configuration dialog is presented. Under the “Account” section you must give the account a name. The name is locally significant and can be anything you want. For CUCM integration, you will want to enable this account to use the “Call” option. You may want to de-select the IM/Presence option. During my testing, I found that the “Do Not Disturb” feature in the Bria client doesn’t work with CUCM and results in a fast busy. De-selecting the IM/Presence option will “hide” the DnD presence option. I haven’t found a more viable workaround at this time.
In the General tab you also want to provide user account information:
- User ID: This is the telephone number that you programmed on the line DN assigned to the 3rd Party Advanced SIP Device in CUCM.
- Domain: This can either be the IP address of a CUCM node or a DNS SRV record that points to your CUCM cluster.
- Password: This is the Digest Credential assigned to the end user object as provisioned in CUCM.
- Authorization name: This is the user ID assigned to the end user object as provisioned in CUCM.
- Enable option to register with domain and receive calls.
- Select the “Domain” option for sending outbound.
- Options for dial plan are not discussed in this blog. I touch on this in the blog on X-Lite.
As noted earlier, you can use a DNS domain name when specifying user account information. The domain name is entered as a fully qualified domain name but can leverage a DNS SRV record to facilitate redundancy when Bria registers to your CUCM cluster. For example, in my lab I have the following DNS SRV records provisioned for my CUCM cluster:
_sip._tcp.laurel.cnclab.priv. 3600 IN SRV 10 0 5060 cucmsub01.laurel.cnclab.priv. _sip._tcp.laurel.cnclab.priv. 3600 IN SRV 20 0 5060 cucmpub01.laurel.cnclab.priv.
So, when I configure Domain parameter for my SIP account in Bria, I use laurel.cnclab.priv.
If you want to offer voicemail to the Bria phone user then you need to add some basic configurations. Click on the Voicemail tab in the account configuration dialog. select the option to “Check for voicemail” and add the directory number you have assigned to your voicemail pilot. For voicemail, it is best to let the CUCM line configurations for forward no answer and forward busy to control how to handle calls presented to Bria.
Other Account Settings
You may need to tweak other account settings to suit your environment. Most notably, you may want to modify the Transport settings to ensure Bria is using the same transport protocol as assigned to the SIP profile in CUCM. You also may want to check timer values under the Advanced configuration tab.
Saving Account Configuration and Verifying
After modifying the account parameters, click on OK to save. In the account preferences screen you should see your new account. Ensure that it is enabled and that the status is “green”.
Audio and Video Codec Preferences
Depending on how you are using the client you may or may not need to change the codecs used for audio and video. Since I wanted to provision Bria to enable intercommunication with my Cisco 9951, I had to tweak the video codecs. From the Preferences panel, choose Codecs. There are two option screens. One for Audio Codecs and one for Video Codecs. In the Audio Codecs screen, select the codecs you wish to advertise. Ensure that the codecs you select are supported by the region settings in CUCM. Repeat this process for video codecs. Keeping in mind that the Cisco 9900 series phones only support H.264.
Bria is not able to leverage the Corporate Directory application that runs on CUCM. However, Bria does support using LDAP for directory lookups. To provision LDAP go to the Directory tab in the Preferences panel. In the “Directory type” drop down, choose LDAP. You will need to specify the LDAP server settings. If you require a user to authenticate before binding to LDAP, then you need to provide account credentials. You may also need to change the attribute mappings to line up with CUCM (if you have enabled DirSync on CUCM, that is).
In the above example, I have modified the attribute mappings to map the Microsoft AD user object attribute ipPhone to “Softphone”.
Mac Address Book Service
If you want Bria to use your local accounts (from the Mac Address Book), you can enable the Mac Address Book service under the Accounts tab in the Preferences panel.
A Tour of the User Interface and Features
The Bria client has a very intuitive user interface. There are numerous options in the client. To keep it simple, let’s do a quick tour of the basic UI after you successfully register to CUCM.
- Status Information: This shows your current status. This is directly related to presence, which is beyond the scope of this blog (I plan on doing another blog on XMPP w/Bria and CUPS).
- User Interface Options: These options let you modify volume settings, open the DTMF keyboard panel, and tinker with the video display.
- Telephony Status Information: Icons that show you whether you missed calls (which also display in the dock) and if you have voicemail messages waiting. You can also toggle auto-answer, use anonymous dialing (not tested by me), toggle the option to map characters to numbers (e.g. “A” is “2”, “D” is “3”, and so on).
- Dialing Action: Lets you place an audio or video call after entering in a destination.
- Contact Management Panels: Lets you look up call parties using your local contacts, call history, favorites, or LDAP directory
Receiving a Call
How an ingress call is presented to the user depends on whether Bria has application focus or not. If the application has focus, then the calling party information and call options are presented underneath the DTMF keypad and above the contact management panels. If Bria does not have focus then a small pop-up window with calling party information is displayed. The call handling options are the same. You can answer the call or decline the call. If answering the call, you can choose video or audio.
Declining a call gracefully will require some configuration in CUCM. Specifically, in my testing I have found that if you do not provision a call forward busy (CFB) line level destination on the SIP device in CUCM, then “declining” a call from Bria will play out a fast busy to the calling party. To avoid this issue you can configure a CFB destination and calling search space (CSS) OR enable call forwarding to voicemail. Basically, declining a call acts like iDivert for standard Cisco phones.
You can also directly forward an ingress call to another extension. This is a nice end user feature. It is like iDivert but the user can specify the transfer destination on the fly. You can only access this feature when the Bria application has focus. Also, you will need to update the SIP device in CUCM so that a “Rerouting Calling Search Space” is assigned. This CSS determines where the Bria user can redirect calls.
Placing a Call
Bria users can place a call in numerous ways. Users can use the DTMF keypad or enter a number/name using the standard keyboard. In addition, users can select from their local contact list, call history, favorites, or LDAP.
When placing a call or receiving a call, the Bria user can attempt to initiate a video channel. If the remote party device supports video then the call will establish. If the remote party does not support video then the call may still be established as an audio-only call. To allow devices attempting a video call to failover to an audio-only call, ensure that the “Retry Video Call as Audio” option is provisioned for the device(s) in CUCM. When establishing a video call, the user interface will spawn a new window that shows the remote party with a PiP display of the local party.
Bria users can also take an ongoing audio call and attempt to establish a video channel mid-call.
Speaking of mid-call features, Bria supports several basic and advanced mid-call features. As one would expect, Bria allows users to mute local media transmission. Bria also allows users to hold the remote party. However, there are some considerations to be aware of with user hold functionality. First, using the default parameters with Bria will cause problems with call preservation during hold events. In my testing, when Bria placed a remote party on hold, the call would disconnect in approximately 30 seconds. This does not happen when a remote party puts the Bria client on hold (assuming the remote party is a Cisco IP Phone). To workaround this issue, you need to disable the RTP inactivity time by going to Bria 3>Preferences and choosing the Advanced tab.
The second consideration concerns Music On Hold (MoH). I found that when the Bria device is placed on hold, it will receive music (note: I only tested unicast). However, when Bria initiates the hold event, the remote party will not receive MoH. After some digging I came across a statement in Cisco’s Unified Communication SRND for version 7.x that basically states MoH is not supported with 3rd Party SIP devices. It is worth noting that version 8.x of the SRND has no reference to this caveat. I suppose that could suggest there is a fix, but I haven’t found it yet. If any readers know how to work around this issue, please let me know!
Bria will support ad-hoc conferencing. I was able to spin up mult-party audio conferences from Bria. It doesn’t use the CUCM media resources to establish a conference. Instead, the media mixing is performed by the Bria client. Which means that media streams from all remote parties are streamed to the machine running Bria. This could be problematic in some environments.
The other nifty mid-call feature that Bria supports is call recording. During an active call, the Bria user can select the call options from the active call display and select “Start Call Recording”. The user can stop recording at any time. Bria can record video or audio calls and recordings are stored locally on the machine running Bria.
There are many other features and options that I haven’t covered in this blog. There are also some other CUCM use cases I am trying to work through (such as hold/resume with shared lines). Issues that I have come across are actually common considerations for all 3rd party SIP clients when working with CUCM. If you are looking into leverage a 3rd party SIP client then the best advice I can provide is: test all use cases you need to support with your end user community. You don’t want to be the admin that pushes out a bunch of soft clients without properly setting expectations for your end user.
William Bell is the Collaboration Practice Lead for Chesapeake NetCraftsmen. Bill has over 10 years of experience in the IT industry with a focus on communication and collaboration technologies. In addition to blogging on the NetCraftsmen site, Bill also maintains the UC Guerrilla blog: http://ucguerrilla.com. You can follow Bill on Twitter: @ucguerrilla