This document describes the procedure used in order to analyze call flow in Cisco Jabber for Windows.
Cisco recommends that you have knowledge of Cisco Jabber for Windows Version 9.x.
The information in this document is based on Cisco Jabber for Windows Version 9.x.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
In order to determine when a call begins and ends in Cisco Jabber for Windows, open the csf-unified.log file in Notepad++, and search for CALL_EVENT. In order to find the first line of a call, locate Initial shortly after the CALL_EVENT statement:
2013-02-24 18:22:07,362 INFO [0x000009e4][control\CallControlManagerImpl.cpp(2021)]
[csf.ecc.evt] [ecc::CallControlManagerImpl::notifyCallEventObservers] -
CALL_EVENT: evCreated,
0x005B1818, Initial, CC_ATTR_NOT_DEFINED, CC_CALL_TYPE_NONE, CalledPartyNumber: ,
CallingPartyNumber: ,
CallInstance: -1, Status: , GCID: , IsConference: 0, IsCallSelected: 0, CapabilitySet:
Watch for these keywords in the Jabber call flow:
Call State
CC_CALL_TYPE - This changes from "NONE" after initialization to either "OUTGOING" or "INCOMING," which depends on whether the call is sent or received.
Call ID - The hexadecimal number (0x005B1818) before the Call State is the Jabber Call ID, which stays consistent for the duration of each call. It increments when the next call occurs.
If you use Notepad++, you can use the Find All in Current Document option, which displays the entire call flow. It looks like this (for viewer ease, the timestamps and informational brackets are removed):
CALL_EVENT: evCreated, 0x005B1818, Initial, CC_ATTR_NOT_DEFINED, CC_CALL_TYPE_NONE,
CalledPartyNumber: , CallingPartyNumber: , CallInstance: -1, Status: ,
GCID: , IsConference: 0,
IsCallSelected: 0, CapabilitySet:
CALL_EVENT: evInfoChanged, 0x005B1818, Initial, CC_ATTR_NOT_DEFINED, CC_CALL_TYPE_OUTGOING,
CalledPartyNumber: , CallingPartyNumber: , CallInstance: 1, Status: ,
GCID: , IsConference: 0,
IsCallSelected: 0, CapabilitySet: canOriginateCall,canDialVoicemail
CALL_EVENT: evInfoChanged, 0x005B1818, Initial, CC_ATTR_NOT_DEFINED, CC_CALL_TYPE_OUTGOING,
CalledPartyNumber: 1001, CallingPartyNumber: 1000, CallInstance: 1, Status: ,
GCID: , IsConference:
0, IsCallSelected: 0, CapabilitySet: canOriginateCall,canDialVoicemail
CALL_EVENT: evStateChanged, 0x005B1818, OffHook, CC_ATTR_NOT_DEFINED, CC_CALL_TYPE_OUTGOING,
CalledPartyNumber: 1001, CallingPartyNumber: 1000, CallInstance: 1, Status: ,
GCID: , IsConference:
0, IsCallSelected: 0, CapabilitySet: canEndCall,canSendDigit
CALL_EVENT: evStateChanged, 0x005B1818, Dialing, CC_ATTR_NOT_DEFINED, CC_CALL_TYPE_OUTGOING,
CalledPartyNumber: 1001, CallingPartyNumber: 1000, CallInstance: 1, Status: ,
GCID: , IsConference:
0, IsCallSelected: 0, CapabilitySet: canEndCall,canSendDigit
CALL_EVENT: evStateChanged, 0x005B1818, Proceed, CC_ATTR_NOT_DEFINED, CC_CALL_TYPE_OUTGOING,
CalledPartyNumber: 1001, CallingPartyNumber: 1000, CallInstance: 1, Status: ,
GCID: , IsConference:
0, IsCallSelected: 0, CapabilitySet: canEndCall
CALL_EVENT: evStateChanged, 0x005B1818, RingOut, CC_ATTR_NOT_DEFINED, CC_CALL_TYPE_OUTGOING,
CalledPartyNumber: 1001, CallingPartyNumber: 1000, CallInstance: 1, Status: ,
GCID: , IsConference:
0, IsCallSelected: 0, CapabilitySet: canEndCall,canDirectTransfer
CALL_EVENT: evCallStarted, 0x005B1818, Connected, CC_ATTR_NOT_DEFINED, CC_CALL_TYPE_OUTGOING,
CalledPartyNumber: 1001, CallingPartyNumber: 1000, CallInstance: 1, Status: ,
GCID: , IsConference:
0, IsCallSelected: 0, CapabilitySet: canHold,canEndCall,canSendDigit,canCallPark,
canDirectTransfer,
canJoinAcrossLine
CALL_EVENT: evStateChanged, 0x005B1818, OnHook, CC_ATTR_NOT_DEFINED, CC_CALL_TYPE_OUTGOING,
CalledPartyNumber: 1001, CallingPartyNumber: 1000, CallInstance: 1, Status: ,
GCID: , IsConference:
0, IsCallSelected: 0, CapabilitySet:
CALL_EVENT: evDestroyed, 0x005B1818, OnHook, CC_ATTR_NOT_DEFINED, CC_CALL_TYPE_OUTGOING,
CalledPartyNumber: , CallingPartyNumber: , CallInstance: 1, Status: ,
GCID: , IsConference:
0, IsCallSelected: 0, CapabilitySet:
The output displays when Jabber first goes offhook and dials, as well as the Calling Party and Called Party numbers. For calls that are INCOMING, a similar call flow pattern is seen. However, the CC_CALL_TYPE is different:
2013-02-24 18:22:07,130 INFO [0x00000ec0] [control\CallControlManagerImpl.cpp(2001)]
[csf.ecc.evt][ecc::CallControlManagerImpl::notifyCallEventObservers] -
CALL_EVENT: evCreated, 0x10003, Initial,
CC_ATTR_NORMAL, CC_CALL_TYPE_INCOMING, CalledPartyNumber: 1001,
CallingPartyNumber: 1000,
CallInstance: 1, Status: , GCID: , IsConference: 0, IsCallSelected: 0, CapabilitySet:
For calls made from Microsoft Office Integration, one extra line is added before the call flow. If you search for "Starting voice call with," it provides every point in the log where a Click to Call function is performed. For example, a call from Microsoft Outlook on a contact (Right-Click and Call) looks like this:
2013-02-24 18:42:18,912 INFO [0x000009e0] [\ExtensionProviderFunctionsImpl.cpp(235)]
[cuc-extension-provider] [StartVoiceCallImpl2] - Starting voice call with 1001
A few milliseconds later, the same "Initial" keyword begins:
2013-02-24 18:42:18,915 INFO [0x0000053c] [control\CallControlManagerImpl.cpp(2021)]
[csf.ecc.evt][ecc::CallControlManagerImpl::notifyCallEventObservers] -
CALL_EVENT: evCreated, 0x00EF3BA0,Initial, CC_ATTR_NOT_DEFINED, CC_CALL_TYPE_NONE,
CalledPartyNumber: , CallingPartyNumber: ,
CallInstance: -1, Status: , GCID: , IsConference: 0, IsCallSelected: 0, CapabilitySet:
Notice the [cuc-extension-provider] section in the Click to Call function. If you search for this in the Jabber log, it also provides any results carried from Microsoft Office Integration.