Showing results for 
Search instead for 
Did you mean: 
Jose Mendez


Time-of-Day routing allows the system to direct or block calls depending on the current time. This is helpful when an office's main number is answered by a Hunt Pilot where several members support a higher call volume than a single attendant can handle, and that after a specific hour of the day becomes an invalid routing decision because the people answering calls are no longer on-shift. Time-of-Day routing comes in and decides whether the call should be routed to an off-hours voice greeting instead, that way users don't have to wait online until the Hunt Pilot hits the No Answer trigger and sends the call to its Voicemail box.


  • CallManager 6.x and higher


An office that is open for calls Monday through Friday, from 08:00hrs to 17:00hrs

Main number DID 8900

Calls during working hours are routed to a Hunt Pilot 8900.

Calls after working hours (Monday to Friday from 17:00hrs to 08:00hrs, Saturday and Sunday from 00:00hrs to 24:00hrs) will go to Unity and presented with a voice greeting.

System logic

Time-of-Day routing is purely a Calling Search Space and partition game. The important thing to understand is, that we will be using 2 different numbers that look the same:

  1. 8900 in partition working-pt
  2. 8900 in partition off-shift-pt

They look the same, but since they exist in a different partition, its like calling a person named Joe Doe, and and another Joe Tripp. Same name, different lastname.

Some one is going to extend a call to those numbers. In our case, it is the gateway connected to the PSTN or to an ITSP. That gateway / SIP trunk is configured in CallManager with certain attributes, such as a Calling Search Space for inbound calls. In our case, the device will have a CSS that contains both working-pt and off-shift-pt.

We need that device to be able to reach both numbers, but how is the system going to differentiate betwen them? Normally, if the called number pattern overlaps (like in our case where 8900 is duplicated) the decision is taken based on the partitions contained in the CSS. If working-pt is higher in the list of partitions of the CSS than off-shift-pt is, 8900 in partition working-pt is going to ring, and the other way around.

With Time-of-Day routing this works a little bit different: You will see both partitions added to the CSS, but since we will assign them a Time Schedule, each partition will only exist logically during the time we set. In other words, the system won't even consider 8900 in partition off-shift-pt as an available number if a call comes in at, say, 4:56pm.

8900 in partition off-shift-pt will be configured to Call Forward All to voice mail.


  • Go to Call Routing > Class of Service > Time Period > Add new period.jpgperiod.jpg
  • Define the period as in the screen shot so that our working-pt can exist from 8 to 5, Monday to Friday and save.
  • Add a new  period, you can call this one off-shift-period1. This period is defined from 17:00hrs to 24:00hrs, Mon to Fri, hit save.
  • Copy the previous period and make it valid from 00:00hrs to 08:00hrs, name it off-shift-period2, then save.
  • Add a new period, name it off-shift-period3, and set it valid Saturdays and Sundays from 00:00hrs to 24:00hrs
  • Go to Call Routing > Class of Service > Time Schedule and Add new
  • We'll call this Time Schedule Working-schedule, and associate it with the working periodschedule.jpg, save it.
  • Add new Time Schedule called Off-shift-schedule, and associate the same way, but only include off-shift-period1, off-shift-period2 and off-shift-period3, then save.
  • Go to Call Routing > Class of Service > Partition and add a new partition called working-pt.
  • Associate that partition with our Working-schedulepartition.jpg
  • Add a new partition called off-shift-pt and associate the same way to the Off-shift-schedule. Note that you have the option to choose which time to use: the time used by the device (maybe in a Device Pool with a different Time Group), or a specific time zone.
  • Go to 8900 in partition off-shift-pt and configure the Directory Number for Call Forward All to voice mail.
  • In Unity, configure an auto-attendant and a recording that will explain the caller the working hours and the options available after hours.
  • Assign partition working_pt to the Hunt Pilot.
  • Include both working_pt and off-shift-pt in the CSS used for inbound calls in the SIP trunk or PRI trunk.

Just my 2¢

I've done this (the above) on CUCM and I've also done it on UCXN 8x using a system call handler.

For my money, it seems much simpler to do (as well as explain call flow to someone) when it's done on UCXN.

1) Create a CTI RP on CUCM to send the target DN to UCXN

2) Create a system call hdlr in UCXN having both Std & Closed Transfer Rules Defined with separate destination transfer points (2 new DNs) for the Std & Closed destinations

3) In both Std & Closed greetings select Transfer to Call Hdlr, pointing back to this same call hdlr as the target (as though you were looping it back on itself) - don't worry, this works.

     - (optionally for closed, point the call to a user with VM)

4) Create a Std/Closed schedule in UCXN conforming to the desired hours & days of operation.


You optionally may record introductory greetings for either scenario, or neither, or select "Wait while I transfer your call" announcement for either or both scenarios.

Frequent Contributor
Frequent Contributor

I'm currently trying to do this but it does not work.


It's really pretty simple to do in Unity Connection (UCXN rls 8+) takes maybe all of 5~10 minutes tops.

The CTI Route Point is the number dialed by the caller, ex 1000   For this you can use either a CTI RP or else a physical instrument with ex 1000 as a line appearance on it.

Either way, you must set this DN (1000) to forward to voice mail, preferably call forward always, but you could also use Call Forward No Answer in case you wanted time to answer the call on DN 1000 before it forwarded to the call handler.

In Unity Cxn create a new System Call Handler with the DN matching the DN of the CTI RP (or extn) 1000

Follow steps 2, 3 and 4 in my original comment above.  The magic occurs in step 3. Here you must select "Transfer To Call Handler" and point this back at itself, in other words, direct it back to Call Handler 1000. It seems very unintuitive to do this as you would think the call would "spin", but it doesn't.  You must do this for both the Std and Closed greeting.

After creating your schedule you must apply the appropriate schedule (in Unity Cxn) to the Call Handler you just built.

In case this wasn't clear, you will need a total of 3 DNs

- the pilot DN (1000)

- the std. destination DN, for example 1001

- the closed destination DN, for example 1002

Assuming you want the Std and closed destinations to ultimately ring external destinations, build corresponding Translation Patterns for DN 1001 and DN 1002

If you're not comfortable building Call Handlers in Unity Connection, spend an hour or so in Chapter 8 of David Schultz' book on "Cisco Unity Connection" (aftermarket - Cisco Press) - this chapter does not describe this specific trick, but should give you a good foundation to start from.

I showed this trick to our VAR and they agreed it's much quicker and simpler than the drudgery of doing TOD routing on the CUCM, although it will not always address every need, but should work perfectly for what you're needing to do.


The only problem with this approach is that during business hours for just a split second you'll here hold music before you will hear phone ringing, that is the time that takes for Unity to pass the call back to hunt pilot. For my management that is not acceptable as they do not want this hold music playing.

Time of day routing is perfect in my case as the call will go straight to hunt pilot.


Curious if this can be done with three zones - I get the Standard and Closed if you just need business hours and off business hours, but I need three global regions AMER/EMEA/APAC - I agree the call handler is simpler, but even though there are more options for transfer possible, you can only assign the 1 schedule to it which would consider selected times as standard and the rest as that correct?

Ben Rodriguez

I agree to use Unity for this purpose. Also most setups already have a schedule defined so it's easy to piggyback off of Unity. MOH can be disabled via the CTI route point wstsergeykrum.

Community Member

I tried that, but even that I have no MOH audio source selected it still plays it for split a second.

Is there a different way to disabling it other that putting it on none?


You can try to record a couple seconds of silence as a new moh and point cti to that new moh. That should work.

Robert Rhodes

Time of Day routing in UCM isn't that difficult and is far more flexible (IMO). UCM can absolutely handle the multiple global regions.

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: