CUCM Configuration

0. Services

In order to function CUCM should have at least the following services enabled:

  • Cisco CallManager
  • Cisco Tftp
  • Cisco IP Voice Media Streaming

1. Configure CUCM Groups specific to your environment

Device Pool – Create a device pool for each group of devices/phones that requires a specific configuration. For example a device pool for each site location.

CM Group – Can contain up to 3 CUCM nodes for failover.

Date/Time Group – Create a group for each different time zone that connects to your CUCM environment.

Region – Establish the codec used in a region or between regions(G.711/G.729). For example G.711 for communicating in the same region and G.729 between different regions.

SRST Reference(Survivable Remote Site Telephony) – Can be used as a failover in case the CM Group nodes do not respond. You can leave it disabled or configure a new SRST Reference for your environment.

2. Adding Cisco Phones to CUCM

Manual – In case you have a small environment you can add the phones’ MAC address manually.

Automatic – Enable Auto-Registration on one of the CUCM nodes(usually the Publisher) and specify the directory number range. You need to have a DHCP configured(you can configure a CUCM node as a DHCP server).

Device->Device Settings->Device Defaults – you can specify the default auto-registration device pool

System->Enterprise Parameters->Auto Registration Phone Protocol – you can specify the default auto-registration phone protocol(SCCP/SIP)

3. Adding Users to CUCM

Local Users (no LDAP) – If you want to manage users separately from LDAP.

  • Create End-User (User Management->End User)
  • Associate Phone to End User
  • Add End User to User Group(End Users)

LDAP Syncronization – Data is imported from LDAP but is read only. Passwords are managed from CUCM.

  • Enable the service Cisco DirSync from Cisco Unified Serviceablility
  • Enable Syncronization from LDAP Server(System->LDAP->LDAP System)
  • Create the syncronization (System->LDAP->LDAP Directory)

LDAP Authentication – Passwords are managed from LDAP. Authentication against LDAP database.

  • Enable LDAP Authentication for End Users (System->LDAP->LDAP Authentication)

 4. Create Dial-Plan

  • Create devices (Device->Gateway)
  • Create route group (Call Routing->Route/Hunt->Route Group). Specify the device order. As a Distribution Algorithm you should use “Top Down” instead of “Circular”.
  • Create route list (Call Routing->Route/Hunt->Route List). Specify the route group order.
  • Create route pattern (Call Routing->Route/Hunt->Route Pattern). You can associate a route list or a gateway to a route pattern.

5. Create Transformations

Transformation pattern is digit manipulation after routing decision while translation pattern is digit manipulation before routing decision. You usually work with transformation patterns.

You can apply transformations to:

  • Pattern/Route Pattern (Call Routing->Route/Hunt->Route Pattern->Select the route pattern)
  • Route Group (Call Routing->Route/Hunt->Route List->Select the route list->Select the route group) – the route group transformation overrides any calling or called party number transformations made on a route pattern. Used when you have a PSTN backup for your WAN connection and you need to apply a transformation only when the calls are routed to the PSTN.

6. Configure COS

  • Create Partitions (Call Routing->Class of Service->Partition) – Create partitions like Local, PSTN, International, etc.
  • Assign Partition – Partitions are collections of DNs, RPs (Route Patterns), transformation patterns and translation patterns that divide the Dial Plan into segments. Partitions can contain anything that has a number.
  • Create CSSs (Call Routing->Class of Service->Calling Search Space) – Create CSSs like Local, PSTN, International, etc. and specify what partitions can each CSS call.
  • Assign CSSs – CSS can be assigned to DNs, phone devices, translation patterns, gateways and trunks. CSS can be assigned to any dialing entity, anything that can make a call.

7. Troubleshooting

  • Streaming Statistics – in order to view statistics for your phone device you first have to enable the web access(Device->Phone->select a phone device->Web Access) and then access the webpage of that device using the device IP address(http://P_address).
  • Route Plan Report (Call Routing->Route Plan Report)
  • Cisco Dialed Number Analyzer – first you have to enable the DNA service from the Cisco Unified Serviceability page, then you can access this service at https://cucm_ip/dna

8. Phone Features

All basic phone features that are often used are enabled by default if you have enabled the service “Cisco IP Voice Media Streaming App”. These features are:

  • Phone Directory (Device->Device Settings->Phone Services)
  • Call Forwarding
  • Call Transfer
  • Call Hold
  • Intercom (Call Routing->Intercom)
  • Time-of-day routing

Other important features that need to be activated will be presented next:

  • Call Park (Call Routing->Call Park)
  • Call Pickup (Call Routing->Call Pickup Group)
  • Shared Lines (assign a DN to multiple phones)
  • Do Not Disturb (add a DND softkey to the Softkey Template)
  • Call Back (add a Call Back softkey to the Softkey Template)
  • Barge and Privacy
  • Services (Device->Device Settings->Phone Services)
  • Extension Mobility (an XML service that allows users to log into phones, like a roaming user)
  • Paging (feature does not exist in CUCM, it requires an external server)

Implementing Class of Restriction (COR)

CUCM – Class of Control

Partitions – Partitions are collections of DNs, RPs (Route Patterns), transformation patterns and translation patterns that divide the Dial Plan into segments. Partitions can contain anything that has a number.
Calling Search Space – CSS can be assigned to DNs, phone devices, translation patterns, gateways and trunks. CSS can be assigned to any dialing entity, anything that can make a call.

CME – Class of Restriction

//Steps
1.Define the COR tags we will use for the restrictions. (one tag for each outbound dial-peer)
2.Create the outbound COR lists.
3.Create the inbound COR lists.
4.Assign the outbound COR lists.
5.Assign the inbound COR lists.

//Rules
Rule 1: If there is no outgoing COR list applied, the call is always routed.
Rule 2: If there is no incoming COR list applied, the call is always routed.

Defining COR List Tags
Router(config)# dial-peer cor custom
Router(config-dp-cor)# name NATIONAL
Router(config-dp-cor)# name INTERNATIONAL

Creating Outgoing COR Lists
Router(config)#dial-peer cor list NATIONAL-CALL
Router(config-dp-corlist)#member NATIONAL
Router(config)#dial-peer cor list INTERNATIONAL-CALL
Router(config-dp-corlist)#member INTERNATIONAL

Creating Incoming COR Lists
Router(config)#dial-peer cor list NATIONAL-ONLY
Router(config-dp-corlist)#member NATIONAL
Router(config)#dial-peer cor list NATIONAL-INTERNATIONAL
Router(config-dp-corlist)#member NATIONAL
Router(config-dp-corlist)#member INTERNATIONAL

Assigning Outbound and Inbound COR Lists
Router(config)#dial-peer voice 10 pots
Router(config-dial-peer)#corlist outgoing NATIONAL-CALL
Router(config)#dial-peer voice 11 pots
Router(config-dial-peer)#corlist outgoing INTERNATIONAL-CALL
Router(config)#ephone-dn 1
Router(config-ephone-dn)#corlist incoming NATIONAL-ONLY
Router(config)#ephone-dn 2
Router(config-ephone-dn)#corlist incoming NATIONAL-INTERNATIONAL

Ephone 1 will be able to place only National calls, while Ephone 2 will be able to place both National and International calls.

Digit Manipulation

A router matches outgoing dial peers with the destination-pattern command. For incoming dial peers it uses one of the following 5 rules:

1.Match the dialed number (DNIS) using the incoming called-number dial peer configuration command.
2.Match the caller ID information (ANI) using the answer-address dial peer configuration command.
3.Match the caller ID information (ANI) using the destination-pattern dial peer configuration command.
4.Match an incoming POTS dial peer by using the port dial-peer configuration command.
5.If no match has been found using the previous four methods, use dial peer 0.
Read More »

CME Configuration

Check out what are the Cisco Unified CME 9.1 Supported Firmware, Platforms, Memory, and Voice Products HERE.

The following topology will be used for this configuration. We will configure Switch 3 and Router 3.

1.configuration for the interface connected to IP Phone and PC
Switch3(config)#interface fa0/2
Switch3(config-if)#switchport mode access
Switch3(config-if)#switchport access vlan 6
Switch3(config-if)#switchport voice vlan 3     //the PortFast feature is automatically enabled when voice VLAN is configured. When you disable voice VLAN, the PortFast feature is not automatically disabled.

2.configuration for the interface connected to the router
Switch3(config)#interface fa0/1
Switch3(config-if)#switchport trunk encapsulation dot1Q
Switch3(config-if)#switchport mode trunk
Switch3(config-if)#switchport trunk allowed vlan all

3.DHCP config on router
R3(config)#ip dhcp excluded-address 192.168.3.1 192.168.3.10
R3(config)#ip dhcp excluded-address 192.168.6.1 192.168.6.10
R3(config)#ip dhcp pool VOICE
R3(dhcp-config)#network 192.168.3.0 255.255.255.0
R3(dhcp-config)#default-router 192.168.3.1
R3(dhcp-config)#option 150 ip 192.168.3.1
R3(config)#ip dhcp pool DATA
R3(dhcp-config)#network 192.168.6.0 255.255.255.0
R3(dhcp-config)#default-router 192.168.6.1
R3(dhcp-config)#option 150 ip 192.168.6.1

4.Router-on-a-stick configuration
R3(config)#interface fa0/3/0
R3(config-if)#no shutdown
R3(config)#interface fa0/3/0.3
R3(config-if)#encapsulation dot1q 3
R3(config-if)#ip address 192.168.3.1 255.255.255.0
R3(config)#interface fa0/3/0.6
R3(config-if)#encapsulation dot1q 6
R3(config-if)#ip address 192.168.6.1 255.255.255.0

5.Activate telephony service and basic configuration
R3(config)#telephony-service
R3(config-telephony)#ip source-address 192.168.3.1
R3(config-telephony)# max-ephones 1     //this should correspond to the number of feature licenses
R3(config-telephony)#max-dn 2

6.Configure ephone-dns(extensions)
R3(config)#ephone-dn 1 [dual-line]
R3(config-ephone-dn)#number 3001 secondary 0756103001
R3(config-ephone-dn)#description Stefan

7.Configure ephones
R3(config)#ephone 1
R3(config-ephone)#mac-address 00af.5376.a465
R3(config-ephone)#button 1:1
R3(config-ephone)#reset

8.Configure analog voice ports. Not applicable to our topology.

//FXS (connects to end devices)
R3# show voice port summary
R3(config)# voice-port 0/0/0
R3(config-voiceport)# signal groundStart
R3(config)# voice-port 0/0/0
R3(config-voiceport)# station-id name telephone1
R3(config-voiceport)# station-id number 3002

//FXO and PLAR
R3(config)# voice-port 0/0/1
R3(config-voiceport)# signal groundStart
R3(config-voiceport)#connection plar 2001

9.Configure digital voice ports. Not applicable to our topology.

//configure E1 CAS connection to PSTN
R3(config)# controller t1 0/0/0
R3(config-controller)# framing esf     //given by PSTN provider
R3(config-controller)# linecode hlb3     //given by PSTN provider
R3(config-controller)# ds0-group 1 timeslots 1-24 type fxo-loop-start
//24 is used for signaling, 23 channels for voice. You can create multiple ds0-groups. The created port is based on the ds0-group “0/0/0:1”. No default signaling so you need to specify loop-start. 

//configure E1 CCS(PRI) connection to PSTN
R3(config)#isdn switch-type <TYPE>     //given by PSTN provider
R3(config)# controller E1 0/0/0
R3(config-controller)# framing crc4     //given by PSTN provider
R3(config-controller)# linecode hlb3     //given by PSTN provider
R3(config-controller)# pri-group timeslots 1-4,16
//0 for sync and 16 for signaling, only 4 channels for voice. You can set maximum 30 channels for voice, so if you want all 30 channels available use “pri-group timeslots 1-31”. The created port will always be “0/0/0:15”. ISDN signaling is set by default.

//enable E1 interface for voice
R3(config-controller)# interface serial 0/0/0:15
R3(config-controller)# isdn voice

10.Configure POTS dial peers. Not applicable to our topology.

//outgoing dial-peer
R3(config)#dial-peer voice 1 pots
R3(config-dial-peer)#destination pattern 2…
R3(config-dial-peer)#port 0/0/0

//incoming dial-peer
R3(config)#dial-peer voice 2 pots
R3(config-dial-peer)#incoming called number 3…
or
R3(config-dial-peer)#answer-address 2…

//outgoing dial-peer for an E1 Interface
R3(config)# dial-peer voice 3 pots
R3(config-dial-peer)# destination-pattern 2…
R3(config-dial-peer)# port 0/0/0:15
R3(config-dial-peer)#direct-inward-dialing     //In case you are using DID. If this is disabled the caller is prompted for a called number via dial tone.
//You also need to create an incoming dial-peer for the calls coming from the E1 interface.

//POTS digit-strip
R3(config-dial-peer)# no digit-strip     //by default the router automatically strips any explicitly defined digit from a POTS dial peer before forwarding the call
//POTS forward-digits
R3(config-dial-peer)# forward-digits <NR, ALL>     //specifies the number of digits from right to left that will be transmited
//POTS prefix
R3(config-dial-peer)# prefix 0756     //specifies the prefix that will be added in front of the phone number after the digit stripping

11.Configure VOIP dial peers.

//outgoing dial-peers
R3(config)#dial-peer voice 1 voip
R3(config-dial-peer)#destination pattern 2…
R3(config-dial-peer)#session target ipv4:172.16.23.1
R3(config-dial-peer)# codec g711alaw     //all router must have the same codec configured, by default G729
R3(config)#dial-peer voice 2 voip
R3(config-dial-peer)#destination pattern 1…
R3(config-dial-peer)#session target ipv4:172.16.13.1

//incoming dial-peer
R3(config)#dial-peer voice 3 voip
R3(config-dial-peer)#incoming called number 3…     //or you can create 2 dial-peers with answer-address

12.Troubleshoot commands

#show controllers
#show voice port summary
#show dial-peer voice summary
#debug voip dialpeer

TFTP server configurations

Copy the Firmware files if you have them extracted:
CME#cd flash:
CME#mkdir phone
CME#cd phone
CME#mkdir 7940-7960
CME#cd 7940-7960
CME#copy tftp://192.168.1.1/P00308000500.bin flash:/phone/7940-7960/P00308000500.bin
CME#copy tftp://192.168.1.1/P00308000500.bin flash:/phone/7940-7960/P00308000500.loads
CME#copy tftp://192.168.1.1/P00308000500.bin flash:/phone/7940-7960/P00308000500.sb2
CME#copy tftp://192.168.1.1/P00308000500.bin flash:/phone/7940-7960/P00308000500.sbn
CME#configure t
CME(config)# tftp-server flash:/phone/7940-7960/P00308000500.bin alias P00308000500.bin
CME(config)# tftp-server flash:/phone/7940-7960/P00308000500.loads alias P00308000500.loads
CME(config)# tftp-server flash:/phone/7940-7960/P00308000500.sb2 alias P00308000500.sb2
CME(config)# tftp-server flash:/phone/7940-7960/P00308000500.sbn alias P00308000500.sb

Copy and extract the Firmware files if you have a .tar file:
CME#archive tar /xtract tftp://192.168.1.1/cme-full-7.0.0.1.tar flash: