Showing results for 
Search instead for 
Do you mean 
cancel
29967
Views
146
Helpful
10
Comments

Unity Connection Call Routing Logic

by Cisco Employee ‎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=1000CalledId=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=1002CalledId=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.

Comments
by Cisco Employee
on ‎10-13-2016 01:57 AM

Great work dude! It is very lucid and informational.. :)

by
on ‎10-13-2016 02:33 AM

Perfectly explains it! Very good doc.

by Level 1
on ‎10-13-2016 08:11 AM

This document is very helpful.

by Cisco Employee
on ‎10-20-2016 07:26 AM

Nyc document Aseem [+5]

Regards

Deepak

by Cisco Employee
on ‎10-22-2016 10:50 AM

Thanks Deepak

Aseem

by Cisco Employee
on ‎10-30-2016 06:21 PM

Well Written & Concise. Very Helpful. +5

by Level 1
on ‎01-18-2017 09:13 AM

Plain and simple. Awesome Document!

Thanks!

Thammaya Gupta K.

by Level 1
on ‎04-24-2018 04:36 AM

Good Job!!! Very good!!

by Level 1
on ‎01-26-2020 02:16 PM

Awsome

by Level 4
on ‎02-02-2020 04:10 AM

+++5.. one stop shop for this question..

Getting Started

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: