December 2012 Maintenance Release Notes

Defect Fixes

This release contains fixes for the following defects:

Identifier Severity Description
CSCub09917 severe If a list of CUCM servers has been passed into the plugin and the user navigates away, the browser plugin can crash.
CSCud59450 severe Browser plugin crashes during initialization in IE9 on some machines

Known Defects

This release contains the following open defects.

Identifier Severity Description
CSCua57641 severe Under certain circumstances the SDK can become unresponsive when creating and closing multiple browser tabs to pages that use the SDK
CSCua57608 moderate Unplugging a headset on Mac will cause loss of audio functionality. To regain functionality, refresh the page.
CSCua57620 moderate When using the SDK in a page, refreshing the page should cause the browser plugin to be unloaded, ending any calls etc. In Firefox, this doesn't happen - the plugin remains loaded. The user experience here is OK because the SDK correctly detects that the plugin is still active and restores the state of any calls etc.
CSCua57650 moderate During a video call, unplugging certain USB headsets can cause the plugin to crash a few moments later.
CSCua57689 moderate A call window can be displayed when you're not actually on a call if a Mac has resumed from sleep and user has logged back in again. The workaround is to refresh browser page to reload plugin.

Migration Guide

This version of the plugin can't coexist on the same system as releases with a version number earlier than 2.0.  Before installing the new version, please make sure that your users have uninstalled any previous versions as the new SDK is not backward-compatible with the previous one.  This section describes the differences between the previous version of the Jabber Voice & Video SDK and the current release. Most of the changes are related to the fact that the new SDK now supports video and additional telephony features, but there are some updates to events and event states that you should be aware of.

Section 1 - Methods and objects

startConversation (method)
This method has been modified so that it now takes a single object as an argument. The previous version took separate recipient, media and settings arguments but in this version these have now all been rolled-up into a single argument. The SDK docs contain full details but this example illustrates the simplest case:-

OLD CODE

$('#conversation').cwic('startConversation', '1234');

NEW CODE

$('#conversation').cwic('startConversation', {participant: { recipient: '1234'} });

settings (object)
The global settings object has two additional fields:-

devicePrefix - used to define the prefix that's used in the CUCM device name. If specified, this prefix will be appended onto the the user name to form the CUCM device name. e.g. where devicePrefix is 'csf' and username is 'davem', the CUCM device name will be 'csfdavem'.

useCcmcip - a boolean value that specifies whether to use CCMCIP instead of CTI to authenticate a user in deskphone mode.

createVideoWindow, addPreviewWindow, removePreviewWindow (methods)
These new methods have been added to enable video functionality.

init (method)
Can be passed an additional parameter, predictDevice, an optional user-supplied callback that can be used to provide the correct CUCM device name for the user. The predictDevice is passed a single parameter, username, and has to return the CUCM device name.

registerPhone (method)
Can be passed an additional userCcmcip argument that corresponds to the argument of the same name in the settings object described above.

updateConversation (method)
Contains additional video-related arguments like videoDirection, addRemoteVideoWindow and removeRemoteVideoWindow. It also contains additional support for advanced telephony features like transferCall and joinCall.

Section 2 - Events

The SDK docs contain descriptions of some of the new events that are exposed in this version. In addition, we've refactored many of the event states to correspond more closely to our other products.

Old Call State New Call State Notes
Disconnected OnHook  
Created OffHook  
RemotePartyAlerting Ringout  
Alerting Ringin  
Ringin Proceed Deskphone while on a call amongst others
Connected Connected  
Held Hold  
"Passive Held" RemHold  
n/a Resume  
n/a (Connected) Busy  
Failed Reorder  
n/a Conference  
Dialing Dialing  
"Passive not held" RemInUse  
n/a HoldRevert  
n/a Whisper  
n/a Parked Currently only supported in deskphone mode
n/a ParkRevert Currently only supported in deskphone mode
n/a ParkRetrieved Currently only supported in deskphone mode
n/a Preservation  
n/a WaitingForDigits  
n/a Spoof_Ringout  

Ports and Protocols

The SDK's browser plugin uses several ports in order to communicate with Cisco's infrastructure and remote parties:-

  • TFTP Port 69 - Used to download CUCM configuration file and Dial Rules.
  • SIP Port 5060 - Signalling in SoftPhone mode.
  • RTP Audio & Video (Transmit/Receive) uses a port in each direction which default to a port in the range 16384-32767.
  • RTCP (control info for media) usually uses the RTP port number +1

The SDK plugin also makes a number of outbound-only connections:-

  • HTTPS Port 8443 - Used to download the phone devices available to the user from CUCM
  • HTTP Port 6970 - Optionally used to download CUCM configuration file and Dial Rules.
  • QBE Port 2748 - Used for call control in CTI / Deskphone Control mode.
  • SIP Port 5060 - Signalling in SoftPhone mode (In most cases this is a TCP connection, but not always)