Configuration Cisco CME COR List

Introduction :

This post summarize the configuration of COR Lists ( Class Of Restriction).

COR Lists  define restrictions that you can apply on ephones-dn and dial-peer. These restrictions allow to limit the access for routes reserved for only ephone_dn permitted.

The principle is based on tags that you set on ephones-dn and dial-peers.

To explain a basic configuration we are going to configure the following topology :

CME_COR_List

The COR configuration scenario is the following :

  • The ephone-dn 3000 can call only numbers as 1XXX
  • The ephone-dn 4000 can call only numbers as 2XXX

CME Configuration :

Tags definition :

For our scenario, we need two tags RED and PURPLE.

The following configuration allows to define the name of these tags :

dial-peer cor custom
 name red
 name purpled

Incoming and Outgoing COR Lists :

We need to configure Incoming and Outgoing COR Lists which will be applied to ephones-dn and dial-peers.

  • Incoming COR Lists will be used to tag an incoming call with tags defined as member.
  • Outgoing COR Lists will be used to check if tags are present in a call which go out.
dial-peer cor list PURPLE-OUT
 member purple
 !
 dial-peer cor list PURPLE-IN
 member purple
 !
 dial-peer cor list RED-IN
 member red
 !
 dial-peer cor list RED-OUT
 member red

COR List Application :

According to our scenario, we place INCOMING COR LIST on  ephones-dn and OUTGOING COR LIST on dial-peers voip

!

ephone-dn  1
 number 3000
 name bob
 corlist incoming RED-IN
!
ephone-dn  2
 number 4000
 name alice
 corlist incoming PURPLE-IN
!
dial-peer voice 2 voip
 corlist outgoing RED-OUT
 description **Outgoing Call to SIP Trunk dest 1...**
 destination-pattern 1...
 session protocol sipv2
 session target sip-server
!
dial-peer voice 3 voip
 corlist outgoing PURPLE-OUT
 description **Outgoing Call to SIP Trunk dest 2...**
 destination-pattern 2...
 session protocol sipv2
 session target sip-server
!

Configure a Third-Party SIP device with CUCM

Introduction :

This post summurize the configuration to apply to register a third-party SIP device with Cisco CUCM.

CUCM configuration :

We need to configure :

  •  user (for its digest credential)
  • device (which is linked to the previous user)

User Configuration :

Go to User Management > End User :

Add a new user or select one from LDAP synchronisation (depending on your configuration)

For SIP usage, on the user you need to configure the fields :

Digest Credentials
Confirm Digest Credential

These fields must contain the SIP Authentication password also configured on your SIP Third-Party Device.

Device Configuration :

Go to Device > Phone

For the device configuration, you need to specify :

Third-Party SIP Device (Basic) as product type.
Digest User must be populated with the userId of the user previously defined.

Go back to user Configuration :

On the user configuration.
Add your device to the Controlled Device with Device Association button.

Example of Third Party device configuration with Thomson ST2030 :

To configure SIP Account on ST2030 web admin page, enter the following URL :
http://<ip>/admin.html

default login/password are administrator/784518

Go to Setup > VoIP Service > Basic Setup

And configure Profile 1 :

Configure the account with

Phone Number -> DN
Phone Name
Authentication ID -> CUCM userID
Password -> CUCM Digest Credential

Configure a SIP Trunk between Cisco CME and Cisco CUCM

Introduction :

In this post, I describe a basic configuration of SIP Trunk between Cisco CME (v4.1) and Cisco CUCM (v8.6.2).
Before this, if you want to know how to add ephone and ephone-dn in CME follow this post :

Read more of this post

Basic Ciso CME Configuration – Place a simple call

Introduction :

First Step on CME. You want to place a simple call between two phones. You will get below the simple configuration tu use.

You can use the software Cisco IP Communicator as a softphone.

Schema :

Simple CIPC and CME

Configuration :

telephony-service
 max-ephones 24
 max-dn 48
 ip source-address 192.168.3.1 port 2000
 max-conferences 8 gain -6
 transfer-system full-consult
!
!
ephone-dn  1
 number 2000
!
!
ephone-dn  2
 number 2001
!
!
ephone  1
 device-security-mode none
 mac-address 00FF.1270.128B
 button  1:1
!
!
!
ephone  2
 device-security-mode none
 mac-address 000C.291C.0E35
 button  1:2

Integrate Cisco CME in your lab with GNS3

Introduction :

You want to add a Cisco router with CME on your lab but you don’t have enough money to buy it.
You can use the router emulator GNS3 with a router IOS with CME integrated.

In this post, I summarize some information I used to build my proper lab. So I installed GNS3 on a Windows XP Virtual Machine and configure GNS3 and Windows XP in order to link the virtual CME to the lab Network.

Afterward it’s possible to add external IP Phones to the virtual CME or a SIP Trunk to a Cisco CUCM.

Schema :

schema_CME_on_lab

Windows XP Configuration :

First of all, to link our virtual GNS3 Network to our real lab network we need to :

– Configure a loopback interface on windows XP

– Enable routing on windows XP

Windows XP Loopback configuration :

The loopback interface will be used on GNS3 for the configuration of the GNS3 cloud equipment. In this way, your Virtual GNS3 Network could be linked to your real lab network.

The following microsoft KB explains how to do :
http://support.microsoft.com/kb/839013

Enable Routing on Windows XP :

We need to enable routing on our Windows XP server in order to forward packets between the virtual network and the real network.

The following microsoft KB explains how to enable routing :
http://support.microsoft.com/kb/315236

GNS3 Configuration :

GNS3 Topology :

GNS3Topology

Don’t forget to fix an idle pc value to your router just after started it (right click -> idle pc) ! It’s important in GNS3, indeed without idle pc the router will consume all the CPU.

Router specification :

We are using a 3725 Router with an IOS c3725-adventerprisek9_ivs-mz.124-15.T9

GNS33725

For RAM and flash configuration

GNS3RAM

R2#show version
Cisco IOS Software, 3700 Software (C3725-ADVENTERPRISEK9_IVS-M), Version 12.4(15                                                                                                                     )T9, RELEASE SOFTWARE (fc5)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2009 by Cisco Systems, Inc.
Compiled Tue 28-Apr-09 16:14 by prod_rel_team

ROM: ROMMON Emulation Microcode
ROM: 3700 Software (C3725-ADVENTERPRISEK9_IVS-M), Version 12.4(15)T9, RELEASE SO                                                                                                                     FTWARE (fc5)

R2 uptime is 22 minutes
System returned to ROM by unknown reload cause - suspect boot_data[BOOT_COUNT] 0                                                                                                                     x0, BOOT_COUNT 0, BOOTDATA 19
System image file is "tftp://255.255.255.255/unknown"

This product contains cryptographic features and is subject to United
States and local country laws governing import, export, transfer and
use. Delivery of Cisco cryptographic products does not imply
third-party authority to import, export, distribute or use encryption.
Importers, exporters, distributors and users are responsible for
compliance with U.S. and local country laws. By using this product you
agree to comply with applicable laws and regulations. If you are unable
to comply with U.S. and local laws, return this product immediately.

A summary of U.S. laws governing Cisco cryptographic products may be found at:
http://www.cisco.com/wwl/export/crypto/tool/stqrg.html

If you require further assistance please contact us by sending email to
export@cisco.com.

Cisco 3725 (R7000) processor (revision 0.1) with 249856K/12288K bytes of memory.
Processor board ID FTX0945W0MY
R7000 CPU at 240MHz, Implementation 39, Rev 2.1, 256KB L2, 512KB L3 Cache
2 FastEthernet interfaces
DRAM configuration is 64 bits wide with parity enabled.
55K bytes of NVRAM.
32768K bytes of ATA System CompactFlash (Read/Write)

Configuration register is 0x2102

CME Version :

R2#show telephony-service
CONFIG (Version=4.1(0))
=====================
Version 4.1(0)
Cisco Unified Communications Manager Express
For on-line documentation please see:
www.cisco.com/univercd/cc/td/doc/product/access/ip_ph/ip_ks/index.htm


External Links :

For more detailed information, you can consult the following excellent link :

http://www.blindhog.net/category/gns3/

Update a Cisco 7940 MGCP firmware to SCCP.

For my Cisco Telephony Lab, I got few old 7940. One in SIP and an other one in MGCP.

For the 7940 SIP Phone, the firmware was recent and it was easy to update. But for the 7940 MGCP Phone, it was a bit more complex. So I’m going to share my experience it could help other people who would buy old 7940 MGCP phones on ebay and would encounter the same issue.

Initial release of the MGCP Phone

When I plugged the phone  and checked the firmware release I got this :

Application Load ID :
P0M3-07-7-00

Boot Load ID :
PC030301

DSP Load ID :
PS03AT46

 Short description of the Application Load ID :

The letter after P0 means :
0 for SCCP
S for SIP
M for MGCP

The number gives the CUCM release :
7 for CUCM7

Selection of a new firmware

My lab works on the 8.6 CUCM release, so I would like to have the most recent firmware but with the SCCP protocol.

So I downloaded on cisco.com the last release of SCCP Firmware. I got the 8.1(2)_SR2. I selected the .zip archive because I need to use a common TFTP server .

Upload the firmware with TFTP

To upload the firmware on your phone, you need a TFTP server and a DHCP server.

The DHCP server allows to specify the IP address of the TFTP server via its option 150. You can use the dhcp server on a cisco router.

For TFTP server, I used SolarWinds TFTP Server. I extracted the .zip archive in the TFTP directory.

The initial firmware being a MGCP firmware we need to define the new firmware to install in the configuration file MGCDefault.cnf.

Indeed, when your phone is starting, it requests this file from the TFTP Server. You can see it with a simple wireshark capture on your computer where your TFTP server is located.

When you extracted the firmware .zip archive you got the following files :

P0030801SR02.bin
P0030801SR02.loads
P0030801SR02.sb2
P0030801SR02.sbn

In the MGCDefault.cnf file, you need to define the image_version parameter with the identifier of your release.

So, you will find below an example :

# Generic MGCP Default Config File Options
#
# Any or All of these options can be configured
# in the user config file (MGC.cnf).
# The user config file options override any options
# specified here in the Default Config File.
# :sample user config file name: MGC003E362FE92.cnf
# image_version – specifies which image version should
# be on the phone. This is used to upgrade from an
# MGCP image to a diferent MGCP image. The OS79XX.TXT
# file is only used to switch protocols (ie. SIP to MGCP).
image_version: P0030801SR02

# tftp_cfg_dir – specifies the directory to use for the
# retrieveing the MGC.cnf file. The base
# for the directory is the base TFTP Server directory.
# tftp_cfg_dir is limited to 64 characters.
tftp_cfg_dir : “”

So now, you have just to restart the phone and it should download its new firmware. But not: Why?

A wireshark capture shows that the phone requests the MGCPDefault.cnf from the TFTP server  and got it and after requests the P0030801SR02.loads and got it but nothing after, the phone stop there and restart loop.

How to solve our issue :

The reason to our issue is simple, 7940 phone can’t directly jump to this new firmware in one step. So, first, we need to update the firmware with intermediate steps.

In my case, I used two steps :

  • Release 7.2.4
  • Release 8.1.1

As soon as you have updated the 7940 in 7.2.4 SCCP you need to use XMLDefault.cnf.xml to define the next release to download.

<Default>
<callManagerGroup>
<members>
<member priority=”0″>
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>µ
</ports>
<processNodeName>192.168.1.200</processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
<loadInformation8 model=”IP Phone 7940″>P00308010100</loadInformation8>
</Default>