10-13-2016 01:42 AM - edited 03-12-2019 10:23 AM
Introduction:
This document is to help you understand the call routing logic used by Unity Connection. For better explanation i have tried explaining the call routing logic through a flow diagram:
Step 1:
As soon as unity connection gets the call from CUCM, it checks whether the call contains a redirecting ID or not. If the call contains a redirecting ID then unity connection treats it as a forwarded call and if not then its a direct call for unity.
Step 2:
Based on whether the call is forwarded or direct call, CUC will apply the appropriate routing rule.
==> Direct routing rules handle calls from users and unidentified callers which are dialed directly to Unity Connection. The default rules for direct calls are:
(a) Attempt Sign-In—Calls from users are routed to the user sign-in conversation. •
(b) Opening Greeting—Calls from unidentified callers are routed to the Opening Greeting.
==> Forwarded routing rules handle calls that are forwarded to Unity Connection from either a user extension or from an extension that is not associated with a user account (such as a conference room).
The default rules created by CUC for forwarded calls are:
(a) Attempt Forward—All calls forwarded from a user extension are routed to the user greeting.
(b) Opening Greeting—Calls forwarded from an extension that is not associated with a user account are routed to the Opening Greeting. Opening greeting routing rule just routes the call to the default system call handler "Opening greeting".
Step 3:
Unity connection then checks the redirecting ID or the calling ID into its database to see whether it recognizes the number or not and based on that it will apply the routing rule. If for a forwarded call the unity connection does not recognize the caller ID it selects the routing rule "opening greeting" and similarly if a user presses the message button on the phone, the call would come to CUC as a direct call with no redirecting ID and if the caller ID exists in the unity database CUC will select the routing rule "Attempt SignIn".
Note: Please do not confuse "opening greeting" routing rule with the Opening greeting call handler. They both are different but used together to answer calls from unidentified callers.
Port Status Monitor:
The best tool used in troubleshooting is remote port status monitor which can download from the link below:
http://www.ciscounitytools.com/SiteList/AllDownloads/alldownloads.html
Below are some of the examples from my lab explaining the port status monitor output for different types of calls:
(a). Direct call:
1. Direct call from an identified caller when he presses the message button on the phone:
06:22:18, New Call, CallerId=1000, CalledId=7777, RedirectingId=, AltRedirectingId=, Origin=16, Reason=1, CallGuid=8247897155A44071929903606F086C82, CallerName=, LastRedirectingId=, AltLastRedirectingId=, LastRedirectingReason=1, PortDisplayName=CUCMSIP-1-001,[Origin=Unknown],[Reason=Direct]
#### In the above output you can see that the call has no redirecting ID so unity treats it as a direct call. The port which answered the call is "CUCMSIP-1-001". ####
06:22:18, Changed the current search by extension search space from <No scope> to 'cuc Search Space' ({30c32fdd-7b96-4bd3-ab23-699d7bc745eb})
06:22:18, AttemptSignIn
06:22:18, State - AttemptSignIn.cde!Dummy
06:22:18, Event is [NULL]
06:22:18, SubSignIn
06:22:18, Subscriber Sign-In
06:22:18, State - SubSignIn.cde!AnswerPhone
06:22:18, Event is [TrueEvent]
06:22:18, State - SubSignIn.cde!AuthenticateUser
06:22:18, -->SubAuthenticate
2. Direct call from a user who exists on CUCM but does not exist in Unity connection:
06:26:51, New Call, CallerId=1002, CalledId=7777, RedirectingId=, AltRedirectingId=, Origin=16, Reason=1, CallGuid=E42E8E826A89434887A5F74B7F372D3E, CallerName=, LastRedirectingId=, AltLastRedirectingId=, LastRedirectingReason=1, PortDisplayName=CUCMSIP-1-004,[Origin=Unknown],[Reason=Direct]
#### In the above output you can see that the call has no redirecting ID so unity treats it as a direct call. The port which answered the call is "CUCMSIP-1-004". ####
06:26:51, Changed the current search by extension search space from <No scope> to 'cuc Search Space' ({30c32fdd-7b96-4bd3-ab23-699d7bc745eb})
06:26:51, Changed the current search by name search space from <No scope> to 'cuc Search Space' ({30c32fdd-7b96-4bd3-ab23-699d7bc745eb})
06:26:51, AttemptSignIn #### Attempt Signin here is not the Attempt signin forward routing rule but is referring to the conversation defined by default under the Attempt Sign in routing rule####
06:26:51, State - AttemptSignIn.cde!Dummy
06:26:51, Event is [NULL]
06:26:51, PHTransfer
06:26:51, State - PHTransfer.cde!LoadInfo
06:26:51, Event is [TrueEvent]
06:26:51, PHGreeting
06:26:51, State - PHGreeting.cde!PlayGreeting
06:26:51, Call answered if needed
06:26:51, Playing greeting for Call Handler: Opening Greeting
>>> Since the user does not exist in CUC, call gets transfered to opening greeting default system call hanbdler >>>>
(b). Forwarded call:
1. Call forward no answer to Voice Mail from a user who's mailbox is there on CUC:
06:41:04, New Call, CallerId=1002, CalledId=7777, RedirectingId=1000, AltRedirectingId=, Origin=16, Reason=4, CallGuid=F57EEA0314C94CBD9579A9EA374C7222, CallerName=, LastRedirectingId=, AltLastRedirectingId=, LastRedirectingReason=4, PortDisplayName=CUCMSIP-1-007,[Origin=Unknown],[Reason=Forward No Answer]
#### The above output shows that the call has a redirecting ID so unity treats it as a forwarded call. The port which answered the call is "CUCMSIP-1-007 and the reason for redirection is also there which is "Forward No Answer". ####
06:41:05, Changed the current search by extension search space from <No scope> to 'cuc Search Space' ({30c32fdd-7b96-4bd3-ab23-699d7bc745eb})
06:41:05, Changed the current search by name search space from <No scope> to 'cuc Search Space' ({30c32fdd-7b96-4bd3-ab23-699d7bc745eb})
06:41:05, AttemptForward
06:41:05, State - AttemptForward.cde!Dummy
06:41:05, Event is [NULL]
06:41:05, PHTransfer
06:41:05, State - PHTransfer.cde!LoadInfo
06:41:05, Event is [TrueEvent]
06:41:05, PHGreeting
06:41:05, State - PHGreeting.cde!PlayGreeting
06:41:05, Call answered if needed
06:41:05, Playing greeting for Subscriber: Aseem Anand
### Since user with extension 1000 exists on CUCM, direct forward rule forwards the call to the Subscriber mailbox ###
2. Port Status monitor output in case of a call to auto attendant:
04:42:18, New Call, CalledId=7777, RedirectingId=6789, AltRedirectingId=, Origin=16, Reason=4, CallGuid=A316F53211264D2BBA6C17ECA6FE4BAA, CallerName=, LastRedirectingId=, AltLastRedirectingId=, LastRedirectingReason=4, PortDisplayName=CUCMSIP-1-010,[Origin=Unknown],[Reason=Forward No Answer]
04:42:18, Changed the current search by extension search space from <No scope> to 'cuc Search Space' ({30c32fdd-7b96-4bd3-ab23-699d7bc745eb})
04:42:18, Changed the current search by name search space from <No scope> to 'cuc Search Space' ({30c32fdd-7b96-4bd3-ab23-699d7bc745eb})
04:42:19, AttemptForward
04:42:19, State - AttemptForward.cde!Dummy
04:42:19, PHTransfer
04:42:19, State - PHTransfer.cde!LoadInfo
04:42:19, Event is [TrueEvent]
04:42:19, PHGreeting
04:42:19, State - PHGreeting.cde!PlayGreeting
04:42:19, Call answered if needed
04:42:19, Playing greeting for Call Handler: AutoAttendant_Aseanand
Similarly you can collect the outputs for other types of calls as well like Call forward ALL, Call Forward Busy etc.
Great work dude! It is very lucid and informational.. :)
Perfectly explains it! Very good doc.
This document is very helpful.
Nyc document Aseem [+5]
Regards
Deepak
Thanks Deepak
Aseem
Well Written & Concise. Very Helpful. +5
Plain and simple. Awesome Document!
Thanks!
Thammaya Gupta K.
Good Job!!! Very good!!
Awsome
+++5.. one stop shop for this question..
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: