Call forwarding is one of the features of the call coverage in Cisco CUCM.
Call Hunting is when CUCM distributes a call on more than one Directory Number (DN), whether consecutively or simultaneously, depending on the algorithm.
A Hunt Pilot is the entry point for the whole call hunting process. It is hit by a Call.
The Hunt Pilot number is a dialable entity and has many similarities with Route Patterns:
- We can configure Route Filters with Hunt Pilots,
- Hunt Pilots can Provide Outside Dial Tone,
- We can set Hunt Pilots with the Urgent Priority flag,
- They can route or block calls,
- They can apply Calling and Called Party Transformations.
After hitting the Hunt Pilot, the call is presented by CUCM to the Hunt List. Each Hunt List contains one or more ordered Line Groups.
A Hunt List can be pointed by one or more Hunt Pilots.
Each Line Group contains one or more member (we’ll refer to them as Hunt members, hunt parties or Line Group members). A Line Group can belong to one or more Hunt Lists.
When put in a Line Group, the call forwarding settings of a DN are deactivated (Call Forward All CFA, Call forward Busy, Call forward No Answer CFNA). Also, if DN1 and DN2 are in the same Line Group, DN1 can not pickup the call extended to DN2, even if they are in the same Pickup Group.
Any dialable entity can be put in a Line Group, except for CTI Route Points and CTI ports. Members can be added and removed to and from a Line Group. Also, they can be rearranged within a Line Group. And each member can appear in one or more Line Groups.
The Line Groups within a Hunt List are ordered in a Top-Down fashion. However, this is not always the case with hunt members. In fact, the call distributed to hunt members according to an algorithm named Distribution Algorithm.
Hunt Group vs. Line Group
Although related to the same Call Hunt construct, Hunt Groups and Line Groups are not the same. The difference is that Hunt Groups refer to the combination of Hunt Pilot, Hunt Lists and Line Groups.
Cisco Line Group distribution algorithms
There are four distribution algorithms defined with the call hunt construct:
- Top Down: the first member is always tried first, then the second, then the third,…
- Circular: the call is served to member 1. The next call is served to member 2, …
- Broadcast: all members of the Line Group are instructed to ring at the same time
- Longest Idle: the member that spent the most time doing nothing will serve the call
These distribution algorithms are configured at the Line Group level.
Cisco Line Group Hunt Conditions
Hunt Conditions are the possible states that a Hunt member can be in. A hunt member can be in one of the following Hunt conditions:
- No Answer: this hunt condition means that the Line Group member simply does not answer the call
- Busy: the Line Group member is active in a another call
- Not Available: this hunt condition means that CUCM can not determine the state of the Line Group member. This hunt condition is interpreted differently with Broadcast and Longest Idle algorithms. In fact, if one of these two algorithms is used, and the hunt condition Not Available Ii s encountered for a member, then it is interpreted as a No Answer hunt condition.
Cisco Line Group Hunt Options
For each of these Hunt conditions, we can apply one of four Hunt Options. Hunt Options are a way to tell CUCM what to do when it encounters either one of the precedent Hunt conditions.
The four possible Hunt Options are:
- Try Next Member in the Group; then Try next group
- Try Next member in the group; but do not go to next group
- Skip remaining members in the group and go to next group
- Stop hunting
Hunt Options are configured at the Line Group level
RNA Reversion timeout and Maximum Hunt Timer
We have some timers we need to understand:
Ring No Answer Reversion timeout (RNAR)
RNAR timeout (or RNA Reversion timeout) is the amount of time –in seconds- after which the next member of the Line Group is tried, in a “Try next member in the group, then try next group” Hunt option. The default value of the RNAR is 10 seconds. The RNA Reversion timeout is a required field in Line Group configuration.
Maximum Hunt Timer
This is the maximum time a call can be hunted. This is, if we like, the hunt pilot ring duration.
The Maximum Hunt Timer can interrupt the RNAR. This is true when the Maximum Hunt Timer value is less than or equal to RNAR * number of members in a Line Group. For example, If Maximum Hunt Timer of 25, RNAR is 10 and there are four members, then the first two members will ring (10+10), then the third member will ring for only 5 seconds and hunting will be interrupted by the Maximum Hunt Timer (25 seconds reached).
Maximum Hunt Timer is configured at the Hunt Pilot level.
When the call is not served in a hunt process, we say that the Hunt Lists associated to the Hunt Pilots are exhausted.
Call hunting: Final Disposition
When the Hunt Lists are exhausted, we can tell CUCM to do one more thing: to forward the call elsewhere. This action is called Hunt Forward and is configured at the Hunt Pilot (Hunt Forward Settings). The two conditions that trigger a Forward Hunt are: Forward Hunt Busy and Forward Hunt No Answer.
Forward Hunt Busy is triggered when all members of all Line Groups are active in other calls. Forward Hunt No Answer is triggered when all members of all Line Groups do not answer the call, OR, when the Maximum Hunt Timer expires.
In either case, we have the possibility to send the call to another destination (literally, there is a field named Destination), or apply Personal Preferences. This is called the Final Disposition and it needs to be well understood.
Let’s say that I am a Senior Network Engineer and have a team of technicians. I want all inbound calls to reach my team members in a hunt fashion, and ultimately reach my number if nobody treats it. For that, I set my DN to Call forward All to a Hunt Pilot, which points to a Hunt List, which has a Line Group containing my team members’ DNs.
What happens when nobody treats the call –whether everyone was busy or nobody answered-? Sure, I will need some explanations from my team But the call should not die that way. What I can do is set the Destination to a static number –for example my mobile phone- or tell CUCM to use my own DN settings, to ultimately forward the call to a destination I choose (this is done through Use Personal Preferences checkbox under the Hunt Pilot, and Call Forward No Coverage settings under my DN page). When the call gets out of the call hunting process and comes back to the original called party, the Personal Destination will be applied to it. And when both a static destination and the Personal Destination are set, the latter takes precedence over the statically-defined destination.
What if some client calls the Hunt Pilot directly and skips my DN, and the call was not treated by my team, would it go to Personal Destination? No, it will use the static destination.
We go a bit further and suppose that the static destination was not set. A call directly to the Hunt Pilot that goes not served will ultimately hears a reorder tone.
Cisco call hunting configuration
All Call Hunting configuration is made at the following path: Call Routing –> Route/Hunt
Cisco Hunt Pilot configuration
To configure Hunt Pilots, under Call Routing –> Route/Hunt, go to Hunt Pilot.
When you add a new Hunt Pilot, the common parameters are :
- Hunt Pilot*: the hunt pilot number
- Route Partition: the partition to which the Hunt Pilot will belong
- Hunt List: the hunt list pointed by the Hunt Pilot. Only one Hunt List is pointed by the Hunt Pilot.
- Route Option: we can choose whether we route the call that matches this Hunt Pilot or block it
- Provide Outside Dial Tone: check this box if we want the Hunt Pilot to play a secondary dial tone
- Urgent Priority
The Hunt Forward Settings menu is displayed below.
The Calling Search Space field triggers when the call ultimately extends to the destination mentioned in the Destination field. The destination is searched in the CSS partitions. That’s why the CSS configured here must contain at least one partition that contain the destination.
Cisco Hunt List configuration
Hunt List configuration page can be accessed from:
- either the Hunt Pilot page, by clicking on Edit hyperlink
- or, by going to Route/Hunt –> Hunt Lists
In the Hunt List page:
- We name it,
- We assign a Unified CM Group to it
- We decide whether to enable it or to disable it, by checking or unchecking the Enable this Hunt List checkbox
A little below, CUCM displays the Line Groups that form our Hunt List:
The Line Groups are displayed in order. The first Line Group in the Selected Groups box is always triggered first. Below it there are shortcuts to the Line Groups configuration pages.
Cisco Line Group configuration
To access the Line Group configuration page:
- either click on the hyperlinks in the Hunt List configuration page
- or, go to Call Routing –> Route/Hunt –> Line Group
The RNA Reversion timeout default value is 10 seconds. The Distribution Algorithm can be selected from this menu:
The Hunt Options available values are displayed below:
In the bottom of the page, there is the Line Group members. Notice the hyperlinks to the DN configuration pages.
Call Hunting and CSS
Here is an experiment that shows that the concept of CSS becomes irrelevant in call hunting.
Initially we have three phones with three extensions: 1000, 1002 and 1003.
- x1000 is in partition Isolated_PT
- x1002 and x1003 are in partition Internal_PT
- x1002 has CSS of CorpHQ-national_CSS,
- x1003 has CSS of CorpHQ-InternalOnly_CSS, which is configured with the sole partition of Internal_PT
This CSS configuration says that neither x1002 nor x1003 can reach x1000, because x1000 belongs to a partition that is not in these CSSes.
Let’s configure a Hunt Group construct, which will be dialed by x1002. The Hunt Pilot points to a Hunt List which points to a Line Group that contains x1000 and x1003.
When I dial 4789 on x1002’s phone, x1000 rings as part of the Hunt Group construct, despite the fact that x1002 can not reach x1000 by means of CSS and partitions.