Getting the Time of Day Routing You Want in CUCM

Time of day routing in CUCM is, for some reason, a complicated task both to implement and to administer.  Even when you have it configured you know that it is going to be a pain to update and still doesn’t give the business unit the flexibility they want.  So I’ve found the best way to implement time of day routing in CUCM is to use Unity Connection instead.

Configuring Time of Day in CUCM requires creating schedules that are then applied to partitions and then you have to layer these partition in the CSS so that the “closed” or “open” partition gets hit first.  Then you need duplicate dial patterns so that one can work when the partition is active, but others can work when its not.  Want to add a different call flow on Holidays?  Create another PT and Time Schedule and dial pattern etc etc.  And after you have everything all done and working right the user says – “What if we close early for the day, how do I put it in night mode?”   Um…  Call the help desk, open a ticket and they will need to adjust the schedule for you…..

Unity Connection on the other hand has an awesome Time of Day interface in comparison.  You get a great visual aid in determining what is open and what is closed.  You can create multiple holiday schedules that are associated to different normal schedules.  You can provide different greetings based on closed or open and if you are closed at a weird time, you have the concept of an alternate greeting that can be manually toggled by the user.

Lets create a pretty simple call flow that seems to happen allot.  “Support” is open 8-5 M-F.  When support is open we want it to ring straight to a hunt group.  If noone picks up the hunt group we want it to go to “Jim’s” voicemail because he handles all the call backs.  After hours and on weekends just go to Jim’s mailbox cause he handles the greetings there.  On holidays we want to play a different greeting that hangs up on people.  No “take a message” here.  AND if a vendor is in for lunch (or its snowing outside) we want to be able to “close” the support line and just let it go to the regular after-hours greeting.

To get started we’ll create our schedule in Unity Connection.  We always work backwards because it goes easier making the links in Unity, so Holidays first.  Under Holiday Schedule we will create a new schedule (or reuse the default schedule.). Because we are a work first and always type place we are only going to give them new years off.

Next we will add our Support schedule, assign our “Support Holiday” schedule to it and add our open ours.  Notice the pretty little graph you get and the easy to read times.  You don’t get that kind of love out of CUCM.


Now we can build Jim’s mail box.  Easy enough.

Next we go to CUCM and build our hunt pilot.  We’ll use extension 8010 for that and assume we have the Line Group and Hunt List built already.  Here we are just going to forward unanswered calls to the voicemail pilot at 8000.  When unanswered calls hit Unity it will run through the “Open Greeting” that we will set up later.

Now we work backwards in Unity Connection and build a Call Handler so they we can route calls to the hunt group when open.  We are going to control Time of Day in the next Call Handler so we want to keep the “Active Schedule” set to “All Hours”

And on that Call Handler we modify the standard “Transfer Rule” to Transfer to the Extension 8010, Release to Switch and uncheck the “”Wait While I Transfer Your Call” prompt.  That way when a use calls in they just get ringing and not a weird unwarranted “Wait While I Transfer Your Call” before the ringing.

When noone answers the huntgroup the call will route back to this call handler so we set the “Standard Greeting” to play nothing and send to Jim’s voicemail.

Now we will build our main time of day Call Handler where most of our logic will be.And configure the Standard Greeting to “Play nothing” and Transfer to the Support Call Handler.

And set the Closed and Alternate Greeting to go to Jim’s mailbox

And under the Holiday Greeting we will disable user input and just play a greeting for them and disconnect

And then we will assign Jim as the Call Handler owner so he can call in and toggle the alternate greeting as needed.

At this point our logic is built in and we just need to get the call to Unity.  We can use a CTI Route Point for this which keeps everything nice and manageable with other numbers that have similar functions.  We just need the device with the main number as the DN and we will Call Forward All to voicemail.

And we are done.  You do need an internal use type number to manage the hunt pilot, but you could logically segment off your “service” type patterns and create some logic about hunt group numbering too.  I find Unity interface to be much more straight forward for schedules and it gives the user the option to toggle closed, which is something that would require a support ticket to do in CUCM.