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)