Categories

CUC (6) CUCM (27) Jabber (6) Python (2) Routing (3) Solarwinds Orion NPM (4) switching (1) Video (6) voice (2)

Tuesday, 27 May 2014

Jabber Desk phone video configuration


The theory

So what will this post be about?   Video and desk phone, so video will run through the local client and the voice component will be controlled by the desk phone. So in terms of user experience, this means a call is being set up and established and Jabber will bring Video to the foreground using a pop up window.

The mechanism that makes this happen is the Media Net Architecture, which uses Media Services Interface (MSI) as its software component. This mechanism basically ties the user's application (Jabber in this case), with its networked device (the phone). Not sure how long you kids have been around, but remember VT Advantage that uses CAST to communicate between client and phone? Remember this:


Double RIGHT click for properties, I kid you not.  Somebody stop me!

With Jabber desk phone video, not much has changed. It Firstly relies on CDP to discover the phone, and because CDP is layer 2, there has to be a physical connection between client and phone (see the problem report extract at the bottom, which shows CDP discovery of the phone).


After jabber finds out the phone and extension, CAST is used to proxy an incoming video capable call to the phone, back to the Jabber client:




I wont really go and explain, this whole inter VLAN routing, basically because I don't have clue, but mostly because all you need to know is that CAST goes between phone and client

And again, when you would do a Wireshark packet capture filtering on tcp.port==4224, you would see CAST traffic between phone  and client.


After you have installed Jabber you will see that the following services are running (after restart):





Configuration


There really is not much to configure, if you are already using desk phone CTI control in Jabber. in which case you will have to make sure that video capabilities on the physical phone are enabled (tick box). This will make a camera icon appear on the screen of the deskphone; IT does not mean perdefinition,  that desktop video works!!!


http://www.cisco.com/c/en/us/td/docs/voice_ip_comm/jabber/Windows/9_1/JABW_BK_E4CC9599_00_environment-configuration-guide/JABW_BK_E4CC9599_00_environment-configuration-guide_chapter_01.html#JABW_TK_S5925624_00


Make sure the webcam actually works under the OS you are using. by going into the Jabber client's options:


Fig. 2 - Video Camera settings


If all is configured properly, i.e. a deskphone is available as well as a camera, the "Calls" TAB should appear and will let you choose if you want every call to start as video, or if you want to manually start video, where possible.



Diagnostics

Easiest things to check is to verify your sever health on the Jabber client by going to HELP>Show connection status. the relevant ones here are CTI control and Desk phone Video availability, see below:











Check the appropriate service are running:


Here are some trouble shooting steps

  • Jabber client physical machine is daisy chained to the phone that is being controlled (watch out for clients on wireless!) 
  • phone and line are CTI enabled
  • CTI gateway is configured and assigned to the user in Presence or through the service profile
  • Line is associated with the appropriate user
  • user has the appropriate permissions/roles (CTI enabled)
  • user has the correct device profile of phone associated for CTI control in the CUCM user management pages.
  • Make sure the user has selected phone control in the Jabber client (bottom right in the main Jabber window)
  • check if the camera is recognized in jabber in the first place.
  • Temporarily switch off firewall and security scans which could prevent the CAST session from being established.
  • Use Wireshark to see if cast traffic flows between client and phone.
Having said that, I have seen cases where a total removal and re-add of a user's phone and association does the trick when desk phone control is not working.


If you are still not successful in finding the problem, hit the machine with a hammer, get the problem report and search for "ERROR", and use notepad++. If you insist on using notepad for this purpose; you should not be in this business!



unable to connect to server  (via problem report in which the log entry shows):



Line 13194: 2014-05-26 12:48:30,066 DEBUG [0x00000c88] [\impl\TelephonyServerHealthImpl.cpp(263)] [csf-unified.telephony.TelephonyServerHealthImpl] [TelephonyServerHealthImpl::updateHealth] - updating health with serverType [CucmSoftphone] serverHealthStatus [Unhealthy] serverConnectionStatus [Disconnected] serverAddress [bgpvccm1.bbl.int (CCMCIP)] serviceEventCode [UnknownConnectionError] transportProtocol [SIP] 
Line 13202: 2014-05-26 12:48:30,066 DEBUG [0x00000c88] [\impl\TelephonyServerHealthImpl.cpp(263)] [csf-unified.telephony.TelephonyServerHealthImpl] [TelephonyServerHealthImpl::updateHealth] - updating health with serverType [CucmDeskphone] serverHealthStatus [None] serverConnectionStatus [Disconnected] serverAddress [10.1.1.12 (CTI)] serviceEventCode [UnknownConnectionError] transportProtocol [CTI] 

in this extract you can see that CUPS has assigned 10.1.1.12 to the Jabber user, so the problem is most likely to be in CUCM


and also:


Line 13722: 2014-05-26 12:48:30,425 ERROR [0x00000cf4] [deskphoneprovider\CtiConnection.cpp(184)] [csf.ecc] [SocketWorkItem::run] - CtiConnection: Socket disconnect failed!


Check CDP through the same problem report, below is what it should look like if it actually works:


2014-05-26 10:57:51,741 INFO  [0x0000087c] [src\deskphonewrapper\CC_DPDevice.cpp(88)] [csf.ecc.api] [ecc::CC_DPDevice::getDeviceInfo] - getDeviceInfo()
2014-05-26 10:57:51,741 DEBUG [0x0000087c] [src\deskphoneprovider\DPDevice.cpp(192)] [csf.ecc] [GetLines] - CDPDevice::GetLines

2014-05-26 10:57:51,741 INFO  [0x0000087c] [src\deskphoneprovider\DPLine.cpp(133)] [csf.ecc] [GetCalls] - CDPLine::GetCalls


this is how it will discover the SEP<MAC> of the attached phone and through CDP it will add the extension:

TelephonyServerHealthImpl::addUpdateSoftphoneDeviceName] - setting softphone device name to "SEPea4567FF01"
Line 1091: 2014-05-26 10:57:51,741 DEBUG [0x00001394] [\impl\TelephonyServerHealthImpl.cpp(274)] [csf-unified.telephony.TelephonyServerHealthImpl] [TelephonyServerHealthImpl::addUpdateSoftphoneDeviceName] - setting softphone device name to "SEPea4567FF01"
Line 1091: 2014-05-26 10:57:51,741 DEBUG [0x00001394] [\impl\TelephonyServerHealthImpl.cpp(274)] [csf-unified.telephony.TelephonyServerHealthImpl] [TelephonyServerHealthImpl::addUpdateSoftphoneDeviceName] - setting softphone device name to "SEPea4567FF01"
Line 1093: 2014-05-26 10:57:51,741 DEBUG [0x00001394] [\impl\TelephonyServerHealthImpl.cpp(290)] [csf-unified.telephony.TelephonyServerHealthImpl] [TelephonyServerHealthImpl::addUpdateSoftphoneLineNumber] - setting softphone line number to "57851"
Line 1093: 2014-05-26 10:57:51,741 DEBUG [0x00001394] [\impl\TelephonyServerHealthImpl.cpp(290)] [csf-unified.telephony.TelephonyServerHealthImpl] [TelephonyServerHealthImpl::addUpdateSoftphoneLineNumber] - setting softphone line number to "57851"

Line 1093: 2014-05-26 10:57:51,741 DEBUG [0x00001394] [\impl\TelephonyServerHealthImpl.cpp(290)] [csf-unified.telephony.TelephonyServerHealthImpl] [TelephonyServerHealthImpl::addUpdateSoftphoneLineNumber] - setting softphone line number to "12345"  <or whatever extension you are using


Here is a link to Cisco's comprehensive 1 page document on trouble shooting this issue:

http://www.cisco.com/c/en/us/support/docs/unified-communications/jabber-windows/116472-problemsolution-product-00.html


Namaste!

1 comment: