In this post I give sample scenarios of configuring the following concepts: CUCM time periods and time schedules.
For simplicity of use, I’ll refer to Time Periods as TimeP, and Time Schedules as Time Sched
Use Case #1: the basic use of CUCM Time Periods and Time Schedules
We will use as example a phone that wants to call an international destination. We create a Time Period:
We define the following values:
- Time of Day Start
- Time of Day End
- Repeat Every
Let’s assume it’s a company of hard working men that work until 9pm, from Monday to Friday:
We create the Time Schedule: Call Routing -> Class of Control -> Time Schedule
From the list of configured Time Periods, we assign the necessary Time Periods to the Time Schedule
We create a time-dependant partition, i.e. a partition whose existence in the world of partitions depends on what time it is:
We assign to it the Time Schedule we’ve just configured.
And we assign a Route Pattern to this partition. We will choose as example the pattern for international calls.
To explain what will happen: a calling party device dials a number. If the call occurs during a time interval that matches the configured Time Schedule, then the partition set with the Time Schedule appears in the list of partitions of the line/device CSS of the calling party.
If the called party number matches a route pattern in this time-based partition, (and if the route pattern is set to route calls), then the call is extended.
If the call occurs during a time interval that does not match the configured Time Schedule, then the partition set with the Time Schedule disappears from the list of partitions of the line/device CSS of the calling party. And if the called party number does not match any route pattern, the call can not be established.
Here is a test to an international call:
The call succeeds because we are calling within the office hours, which are from 8am to 9pm. Remember this is a hard-working company.
Now, back to a regular 8 to 5 company. We change range in the Time Period.
If he dials the international number out of office hours, the call is dropped.
Use Case #2: Advanced setup of CUCM Time Periods and Time Schedules
In this scenario we want to make a pattern reachable during working hours and explicitly block the same pattern after working hours and in weekend hours
The result of this use case is similar to the first one, which is to prevent a call from happening during a specific interval of time. However, instead of silently not being able to make a call, in this use case the call is explicitly blocked.
- create time periods:
- create a Time Period that correspond to working hours (TimeP), and
- create Time Periods that correspond to after-hours and weekend hours (TimeP1)
- create Time Schedules
- create TimeSched that corresponds to working hours, and
- create TimeSched1 that corresponds to after-hours, weekends and holidays
- assign time periods to time schedules
- Assign TimeP to TimeSched,
- assign TimeP1 to TimeSched1
- we are testing the functionality for international calls. So we will assign two time schedules to two partitions; assign TimeSched to PT, and TimeSched1 to PT1
- Starting from a route pattern RP, create a copy of it. I’ll name it RP1
- Configure route pattern RP1 in “blocking” mode
- Assign RP to PT and RP1 to PT1
- Assign both PT and PT1 to the same CSS, that I’ll name CSSx. CSSx contains now the time-based partitions. The calling party device will be configured with CSSx.
Here is what happens when the calling party device, configured with CSSx, makes a call:
- if the call comes during a time within TimeP in TimeSched, then it will match the route pattern RP in the time-based partition PT. And it will be expanded correctly.
- if the call comes during a time within Time Period TimeP1 in TimeSched1, then it will match the route pattern RP1 in the time-based partition PT1; it does not match RP because time-based partitions appear and disappear with time and PT disappears in this timeframe) and it is explicitly blocked.
Use case 3: we want to make a pattern reachable in working hours and restrict it to Maintenance team after working hours, by the use of FAC.
- create Time Periods that correspond to working hours
- create Time Periods that correspond to the maintenance window
- create TimeSched and TimeSched1 that contain respectively the working hours time period and the maintenance window time period
- Assign TimeSched to PT (the partition that will only be visible in normal working hours)
- Assign TimeSched1 to PT1 (the partition that will only be visible in maintenance hours)
- Create a duplicate RP (we’ll call it RP1);assign RP to PT and RP1 to PT1
- Assign both PT and PT1 to the same CSS that I’ll name CSSy. Now we have a CSS that contains two time-based partitions: one that is visible only in working hours; the other is only visible in maintenance time.
- Create a FAC with level 3
- In RP1, configure authorization level of 3
- → in normal time, users are able to dial the pattern, because the only available partition that contains the pattern is PT. However, in maintenance time, PT disappears and PT1 appears. The pattern will then be reachable only in PT1. And since the pattern is configure with a FAC, then you need to enter the correct FAC to expand the call.
Use case 4: Block on holidays and weekends, otherwise let calls happen
- Create Time Periods related to holidays and weekends
- associate these Time Periods to a TimeSched
- associate the TimeSched to a partition PT
- Create a RP that corresponds to the pattern to be blocked in holidays and weekends. Configure RP in blocking mode; Put RP in the PT
- Put the PT in the calling party’s CSS; the time-based partition containing the blocking pattern must be put before the equivalent partition containing the permitted pattern
When I dial a long-distance number from the phone, the call is abandoned silently. However, if I dial a pattern that corresponds not to a national pattern, everything is fine.