02-20-2015 03:09 AM - edited 03-12-2019 10:14 AM
When call lands on Cisco Unity Connection
The unity connection arbiter checks if the call that has come to the UCX is a direct call or the forwarded call.
Direct calls:
If the message button of the IP phone is presses.
If somebody has dialed the voicemail pilot number.
Forwarded call:
If a DN has CFA/CFNA/CFB etc. to VM set and we call that DN.
Routing Rules:
Based on if the call is a direct call or forwarded call, UCX arbitor invokes the following:
Note: There are 2 system defined routing rules of each of the above category, which cannot be deleted but can be modified to our requirements.
We can define “Routing Rule Conditions” to match the following in order to process that routing rule.
After the call is filtered using the above conditions, we can define the next action to be taken for the call.
After matching the condition, we can send the call to the following:
Sending call to Call Handler
We can send the call to a specific call handler. We can define if we directly dial the handler or send the call to the greetings of the handler.
“Attempt Transfer” will dial the extension of the call handler and “Go Directly to Greetings” will the take the calls to the greeting of that call handler “Goodbye”.
Call handler settings:
Transfer Rule settings on call handler
There are 3 options available in the transfer rules based on the schedule defined for them.
Note: When Alternate transfer rule is enabled, it overrides the closed and the standard.
After the call handler selects the rule, it check the configuration for the call transfer.
We can define the time schedule for the rule, during which it will be active.
We can define if we can send the call to the greetings of the call handler or transfer to any of the extension on the call manager
*****Sample call trace analysis*******
Call Information:
Calling number: 2001
Called number:2002
Call Handler ext:2003
Call Handler call forward:2004
Traces Collected
Micro traces:
For Routing rules:
Arbiter (levels 14, 15, 16)
RoutingRules (level 11)
For Transfer rule:
ConvRoutingRules (all levels)
RulesEngine (all levels)
Macro Traces:
Call Control (Miu) Traces
Call Flow Diagnostics
Call information in the traces:
15:46:26.834 |28654,PhoneSystem-1-002,BA54852534EA4734A8D3A935E851C3E3,Arbiter,-1,Incoming Call [callerID='2001' callerName='' calledID='2002' redirectingID='2002' altRedirectingID='' lastRedirectingID='2002' altLastRedirectingID='' reason=8=FwdUncond lastReason=8=FwdUncond] port=PhoneSystem-1-002 portsInUse=1 ansPortsFree=1 callGuid=BA54852534EA4734A8D3A935E851C3E3
Arbitor is trying to match the routing rule:
28654,PhoneSystem-1-002,BA54852534EA4734A8D3A935E851C3E3,RoutingRules,11,FindFirstTrueRule: StartIndex=[0]
BA54852534EA4734A8D3A935E851C3E3,RoutingRules,11,FindFirstTrueRule: Checking rule: Operator1 at index 0
28654,PhoneSystem-1-002,BA54852534EA4734A8D3A935E851C3E3,RoutingRules,11,Expression CallingNumber EQ 200? evaluates to TRUE.
28654,PhoneSystem-1-002,BA54852534EA4734A8D3A935E851C3E3,RoutingRules,11,FindFirstTrueRule: Rule [Operator1] evaluates to TRUE; Index=[0].
Arbiter,14,Routing Descision: AppName='PHTransfer' TargetId='{ebf1a1da-104f-44b3-a574-3cbf0fedb44a}' Type='3' Language='<No Language>'
As per the settings on the routing rule, call is sent to the call handler:
28654,PhoneSystem-1-002,BA54852534EA4734A8D3A935E851C3E3,ConvSub,5,PHTransfer_RunInit: Got call handler [{ebf1a1da-104f-44b3-a574-3cbf0fedb44a} call handler test 1 2003 SECONDARY]
These are the call handler settings applied on its transfer rule.
|28654,PhoneSystem-1-002,BA54852534EA4734A8D3A935E851C3E3,ConvSub,3,GetContactRuleProperties: ICsNamedProps::SetPropBool(bXferPlayIntro) to value: true returned 0x00000000 S_OK [Src/PHTransfer.cpp:642]
15:46:26.866 |28654,PhoneSystem-1-002,BA54852534EA4734A8D3A935E851C3E3,ConvSub,3,GetContactRuleProperties: ICsNamedProps::SetPropLong(lXferAction) to value: 1 returned 0x00000000 S_OK [Src/PHTransfer.cpp:646]
15:46:26.867 |28654,PhoneSystem-1-002,BA54852534EA4734A8D3A935E851C3E3,ConvSub,3,GetContactRuleProperties: ICsNamedProps::SetPropLong(lXferType) to value: 0 returned 0x00000000 S_OK [Src/PHTransfer.cpp:650]
15:46:26.867 |28654,PhoneSystem-1-002,BA54852534EA4734A8D3A935E851C3E3,ConvSub,3,GetContactRuleProperties: ICsNamedProps::SetPropLong(lXferRings) to value: 4 returned 0x00000000 S_OK [Src/PHTransfer.cpp:654]
15:46:26.867 |28654,PhoneSystem-1-002,BA54852534EA4734A8D3A935E851C3E3,ConvSub,3,GetContactRuleProperties: ICsNamedProps::SetPropString(strXferExtension) to value: 2004 returned 0x00000000 S_OK [Src/PHTransfer.cpp:658]
15:46:26.867
28654,PhoneSystem-1-002,BA54852534EA4734A8D3A935E851C3E3,ConvSub,5,GetContactRuleProperties: Transfer options: Extension=[2003], action=[1], type=[0], rings=[4], RNA action=[1]
6832763C1FF437CA1B839548C710CBD,MiuGeneral,25,Enter CAvMiuCall::TransferEx destAddr='2004' type=1=WaitConnect maxRings=4 mediaSwitch='40e9f5b8-49be-4e12-a044-778ab0480208' bstrSrcAddress=''
Unity Conn. Initiates the transfer based on the settings applied:
Send StationSoftKeyEventMessage (16 bytes) softKeyEvent=4=SkTrnsfer lineInstance=1 callReference=18023395
MiuSkinny,24,CMiuSkinnyCall::InitConsultCall
MiuSkinny,24,MiuSkinnyLine set active call = consultation call
MiuSkinny,24,CMiuSkinnyLine::RecvSuperTransferOffHook
MiuSkinny,24,CMiuSkinnyCall::ConsultCallGenerated()
CMiuSkinnyLine::DialTransfer(2004)
CMiuSkinnyCall::Dial: 2004
Send StationKeypadButtonMessage (8 bytes) kpButton=2=skpTwo
Send StationKeypadButtonMessage (8 bytes) kpButton=0=skpZero
Send StationKeypadButtonMessage (8 bytes) kpButton=0=skpZero
Send StationKeypadButtonMessage (8 bytes) kpButton=4=skpFour
Transfer completed by unity connection:
76832763C1FF437CA1B839548C710CBD,MiuSkinny,24,CMiuSkinnyCall::CompleteTransfer
16:11:03.932 |28654,PhoneSystem-1-002,76832763C1FF437CA1B839548C710CBD,MiuSkinny,13,Send StationSoftKeyEventMessage (16 bytes) softKeyEvent=4=SkTrnsfer lineInstance=1 callReference=18023395
Transfer completing seen in “MiuCall” traces as well.
16:11:04.141 |28654,PhoneSystem-1-002,76832763C1FF437CA1B839548C710CBD,MiuCall,11,263=[16:10:49.606 tid=0x6FEE 'tx> StationKeypadButtonMessage (8 bytes) kpButton=2=skpTwo']
16:11:04.141 |28654,PhoneSystem-1-002,76832763C1FF437CA1B839548C710CBD,MiuCall,11,264=[16:10:49.907 tid=0x6FEE 'tx> StationKeypadButtonMessage (8 bytes) kpButton=0=skpZero']
16:11:04.141 |28654,PhoneSystem-1-002,76832763C1FF437CA1B839548C710CBD,MiuCall,11,265=[16:10:50.207 tid=0x6FEE 'tx> StationKeypadButtonMessage (8 bytes) kpButton=0=skpZero']
16:11:04.141 |28654,PhoneSystem-1-002,76832763C1FF437CA1B839548C710CBD,MiuCall,11,266=[16:10:50.507 tid=0x6FEE 'tx> StationKeypadButtonMessage (8 bytes) kpButton=4=skpFour']
'rx> StationDisplayPromptStatusV2Message (28 bytes) timeOutValue=0 lineInstance=1 callReference=18023397 promptStatus="Ring Out"']
'rx> StationDisplayPromptStatusV2Message (28 bytes) timeOutValue=0 lineInstance=1 callReference=18023397 promptStatus="Connected"']
76832763C1FF437CA1B839548C710CBD,MiuMethods,12,Exit CAvMiuCall::CallDisassociate=0x00000000=S_OK
76832763C1FF437CA1B839548C710CBD,MiuMethods,12,Exit CAvMiuCall::TransferComplete=0x00000000=S_OK
Good Doc +5
Regards,
Mohammed Noor
Very good document. Thanks for sharing
Amit, Excellent document !
Regards
Lavanya
CSC Moderator
[+5] to Amit for sharing Nice DOC.
regds,
aman
Nice work (+5)
Very Nice Document... (+5)
Great doc, Thank you.
Very Nice and Descriptive Document. +5
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: