Thursday, January 15, 2009

CUCME-CUE Lab 4 – CUCME POTS & VoIP Dial Peers

So far, Fuzzy Dunlop is impressed with the Cisco Unified Communications Express pilot in the Baltimore and New York offices. However, he has now instructed you to configure the two CUCME routers to interface with the PSTN as well as providing VoIP calls between the two locations over the frame relay link. Your tasks are as follows below.

Lab 4.1 – CUCME POTS and VoIP Dial Peer Tasks
1. Fuzzy is a cheap CIO – he has only provisioned the PRI for twelve channels. Configure an inbound POTS dial peer to support this.
2. Both Arliss Michaels and Ari Gold require a special inbound POTS line on top of their DID number associated with the PRI circuit. In Baltimore, make sure 410-555-5001 is routed to Arliss’s phone and 212-555-6001 is routed to Ari’s phone in New York. Ensure that Arliss and Ari always know who is calling inbound on these numbers.
3. Internal users must dial “9” to place and outside call. When dialing “9”, a different dial tone should be heard on the internal phones.
4. The PRI circuits at both locations should take precedence over the POTS connections for outbound calls.
5. Outbound destination patterns should be configured in such a way to allow outbound calls to be placed as quickly as possible, without any unnecessary delay.
6. Create appropriate inbound dialing for support the DID range and dial plans depicted in the diagram in Lab 3.1.
7. The security phones depicted in the diagram in Lab 3.1 should be mapped appropriately 410-555-5002 and 212-555-6002.
8. Internal users should be able to dial “H-E-L-P” on their IP Phones, which will ring the analog security phones at each location.
9. Configure an appropriate VOIP dial peer to allow four-digit dialing over the Frame Relay link. Maintain the G.722 codec (we’ll cover transcoding in a subsequent lab).
10. Configure each CUCME to route internal four-digit dial calls out the PSTN in the event of a WAN failure. Make sure the IP path is preferred first; the PRI circuit second; the POTS lines third.
11. You may not use any sort of digit translation on the Baltimore router to achieve task #10.
12. You must use digit translation on the NY router to achieve task #10.
13. Verify calling, including routing calls to the PSTN during a WAN failure.

Lab 4.2 – CUCME POTS and VoIP Dial Peer Task Verification
Most of the tasks in the lab are fundamentally similar, and in some instances, the same, as some of the VOIP and POTS dial peer tasks in the VOIP Fundamentals Labs. Therefore, rather than repeating myself, I will cover the tasks that are either new or different from the previous VOIP Fundamentals labs.


1. When configuring the MFT on the CUCME routers, I only configure twelve (12) B-Channels. The main reason is simply to conserve DSP resources for later configuration tasks, such as transcoding and conferencing.

!
controller T1 0/0/0
cablelength short 110
pri-group timeslots 1-12,24
!

2. To accomplish the task of routing one of the inbound POTS (FXO) lines directly to either Arliss or Ari, simply configure those FXO ports as a plar obx connection. You’ll also do the same for the security phone at each location.

!
voice-port 0/1/0
connection plar opx 2005
description inbound 212-555-6001
caller-id enable
!

3. To allow secondary dial-tone for external calls, simply add the “secondary-dialtone” command under the telelphony service. However, I could not get secondary dial-tone to work on the SIP CUCME router. The CUCME Administration Guide is extremely vague as to whether SIP CUCME supports this. There is no “secondary-dialtone” equivalent command under voice register global mode.

telephony-service
secondary-dialtone 9

User error (me) perhaps? Anyone else out there get secondary dial-tone to work on their SIP CUCME router?

4. There are at least two ways to configure the “H-E-L-P” requirement. One fairly simple approached is to configure another POTS dial-peer for destination-pattern 4357 (HELP), mapping it to the FXS with the attached analog device.

A second possibility is to create a translation rule, and then map this rule to each ephone-dn. For example:

!
translation-rule 1
Rule 0 ^4357 1611
!
!
ephone-dn 1 dual-line
translate called 1


5. I added the call fallback to each router. This significantly speeds up the process of falling back to a PSTN dial-peer in the event of a VOIP/WAN link failure. Below is an output of a call being routed over the PSTN (PRI) during a WAN failure.

##Shutting down the Frame Relay link##

Baltimore(config)#int s0/2/0
Baltimore(config-if)#shut

NewYork#sh call fallback cache

Fallback Mode : Active

Type Id IP Address Codec Delay Loss ICPIF Reject Accept
---- ----- ---------- ----- ----- ---- ----- ------ ------
ICMP 1 172.16.1.1 No Codec N/A 100 N/A 0 0

1 active probes


##placing a call from 2005 to 1005##

NewYork#
Jan 15 05:03:04.578: %ISDN-6-CONNECT: Interface Serial0/0/0:11 is now connected to 4105551005 N/A
Jan 15 05:03:04.578: %ISDN-6-CONNECT: Interface Serial0/0/0:11 is now connected to 4105551005 N/A
NewYork#


6. One additional comment/observation before providing the pertinent “show run” edits for each CUCME router. I was having no luck getting the SIP phones to display their local directory numbers (NYC Router). After reviewing the various SIP XML and systems files, and comparing them against their SEP counterparts, something caught my attention.

I noticed that that the while the SEP XML and systems files where telling the SCCP phones to point to the router’s local director via HTTP, I did not observe this on the SIP CUCME router SIP XML and systems files. Therefore, under voice register global, I add a URL for the directory on the local router. This seems to have rectified the issue.

voice register global
url directory http://10.1.22.1:80/localdirectory

7. Below are the pertinent “show run” edits for the Baltimore and New York CUCME routers.

Baltimore CUCME

Baltimore#sh run
!
card type t1 0 0
!
network-clock-participate wic 0
!
isdn switch-type primary-ni
!
controller T1 0/0/0
cablelength short 110
pri-group timeslots 1-12,24
!
!
translation-rule 1
Rule 0 ^4357 1611
!
!
ip sla responder ##for the call fallback##
!
!
call fallback active
!
!
voice-port 0/0/0:23
description PRI ciruit to PSTN
!
voice-port 0/1/0
connection plar opx 1005
description inbound 410-555-5001
caller-id enable
!
voice-port 0/1/1
connection plar opx 1611
description inbound 410-555-5002
caller-id enable
!
voice-port 0/3/0
description Baltimore-Security
caller-id enable
!
voice-port 0/3/1
caller-id enable
!
!
dial-peer voice 1 pots
description outbound via pri
preference 1
destination-pattern 9[2-9].........
port 0/0/0:23
!
dial-peer voice 2 pots
description outbound via 410-555-5001
preference 2
destination-pattern 9[2-9].........
port 0/1/0
!
dial-peer voice 3 pots
description outbound via 410-555-5002
preference 2
destination-pattern 9[2-9].........
port 0/1/1
!
dial-peer voice 4 pots
description inbound PRI dial-peer
incoming called-number .
direct-inward-dial
port 0/0/0:23
!
dial-peer voice 1611 pots
description Baltimore-Security
destination-pattern 1611
port 0/3/0
!
dial-peer voice 2000 voip
description VOIP Peer to NYC
preference 1
destination-pattern 20..
monitor probe icmp-ping 172.16.1.2
session protocol sipv2
session target ipv4:172.16.1.2
dtmf-relay rtp-nte
codec g722-64
!
dial-peer voice 2001 pots
preference 2
destination-pattern 20..
port 0/0/0:23
forward-digits all
prefix 212555
!
dial-peer voice 2002 pots
preference 3
destination-pattern 20..
port 0/1/0
forward-digits all
prefix 212555
!
dial-peer voice 2003 pots
preference 3
destination-pattern 20..
port 0/1/1
forward-digits all
prefix 212555
!
!
ephone-dn 1 dual-line
number 1001
label Cal Ripken 1001
description 410-555-1001
name Cal Ripken
translate called 1
!


New York CUCME

NewYork#sh run
!
card type t1 0 0
!
network-clock-participate wic 0
!
isdn switch-type primary-ni
!
!
voice register global
url directory http://10.1.22.1:80/localdirectory
!
voice translation-rule 1
rule 1 /\(10..\)/ /410555\1/ ##for the PSTN fallback translation##
!
!
voice translation-profile prefix
translate called 1 ##for the PSTN fallback translation##
!
!
controller T1 0/0/0
cablelength short 110
pri-group timeslots 1-12,24
!
!
ip sla responder
!
call fallback active
!
!
voice-port 0/0/0:23
description PRI ciruit to PSTN
!
voice-port 0/1/0
connection plar opx 2005
description inbound 212-555-6001
caller-id enable
!
voice-port 0/1/1
connection plar opx 2611
description inbound 212-555-6002
caller-id enable
!
voice-port 0/3/0
description NewYork-Security
caller-id enable
!
voice-port 0/3/1
caller-id enable
!
ccm-manager fax protocol cisco
!
mgcp fax t38 ecm
!
!
!
dial-peer voice 1 pots
description outbound via pri
preference 1
destination-pattern 9[2-9].........
port 0/0/0:23
!
dial-peer voice 2 pots
description outbound via 212-555-6001
preference 2
destination-pattern 9[2-9].........
port 0/1/0
!
dial-peer voice 3 pots
description outbound via 212-555-6002
preference 2
destination-pattern 9[2-9].........
port 0/1/1
!
dial-peer voice 4 pots
description inbound PRI dial-peer
incoming called-number .
direct-inward-dial
port 0/0/0:23
!
dial-peer voice 2611 pots
description NewYork-Security
destination-pattern 2611
port 0/3/0
!
dial-peer voice 1000 voip
description VOIP Peer to Baltimore
preference 1
destination-pattern 10..
monitor probe icmp-ping 172.16.1.1
session protocol sipv2
session target ipv4:172.16.1.1
dtmf-relay rtp-nte
codec g722-64
!
dial-peer voice 1001 pots
translation-profile outgoing prefix
preference 2
destination-pattern 10..
port 0/0/0:23
forward-digits all
!
dial-peer voice 1002 pots
translation-profile outgoing prefix
preference 3
destination-pattern 10..
port 0/1/0
forward-digits all
!
dial-peer voice 1003 pots
translation-profile outgoing prefix
preference 3
destination-pattern 10..
port 0/1/1
forward-digits all
!
dial-peer voice 4357 pots
description NewYork-Security
destination-pattern 4357
port 0/3/0
!

Wednesday, January 7, 2009

CUCME-CUE Lab 3 – New York Basic CUCME System Setup

Ballplayers, LLC’s CIO, Fuzzy Dunlop, is interested in learning more about standards-based Unified Communications protocols. Since Baltimore’s CUCME configuration was based on proprietary Cisco SCCP protocol, he has instructed you to configure the New York CUCME using SIP.

New York Basic CUCME System Setup Prerequisites
If you haven’t already done so, you will need to load the appropriate CUCME files on the New York router. The tasks and options associated with this were described in CUCME-CUE Lab 2, Baltimore Basic CUCME System Setup Prerequisites.

One note, the SIP phone loads are not included in the cme-124-22T2.zip. Therefore, you will need to download these separate from CCO, place them on your FTP or TFTP server, and load them onto your router appropriately. Please refer to the Cisco Unified CME 7.0(1) Supported Firmware, Platforms, Memory, and Voice Products for the compatible SIP phone loads.

For this lab, I’ve downloaded “cmterm-7942_7962-sip.8-3-3SR2.zip”. However, since I’ve previously created a hierarchical file structure for the SCCP 7942-7962 phone loads on flash, I placed the SIP phone loads in the root of flash. Finally, since the SIP phone loads are not a TAR file, you’ll likely need to copy each file individually, rather than using the “archive tar /xtract” command.

Lab 3.1 – New York Basic CUCME Setup Tasks
1. Setup the CUCME System Parameters on the New York router. You may not use the CUCME setup utility or any sort of auto registration process.
2. Configure the New York Phones to update their SIP phone loads.
3. Configure the phone extensions based on the diagram depicted in CUCME-CUE Labs – Background.
4. Ari Gold is a huge fan of the 1986 New York Mets. Therefore, create a custom ringtone for New York based on the "hit" 1986 song, “Lets Go Mets Go”. (ah, the 1980s... - LOL)
5. Each phone and should also be able to customize their ringtones beyond the default chirp ringtone.
6. The CUCME service should be configure to support the appropriate localization, time-zone, a 12 hour time format, and a Month-Day-Year format.
7. Create an appropriate E.164 dial-pattern.
8. Anticipate the need to transfer calls between Baltimore and New York in the future.
9. Enable the wideband codec by default for all phones.
10. Create the appropriate GUI Administrator parameters
11. Create GUI access for Fuzzy Dunlop with parameters separate from the Administrator.
12. Each user’s phone should also display his/her name and full E.164 number.
13. Eliminate the possibility of “clipping” of voice between pauses in conversations.

Lab 3.2 – New York Basic CUCME Setup Verification
In my opinion, the configuration of CUCME for SIP phones is more complicated than a SCCP setup. Furthermore, a SIP CUCME configuration has far fewer features and functionality than a SCCP configuration. However, SIP is the “emerging” UC standard. And CUCME 7.1, which I was able to beta test at the Cisco Partner UCVT in October 2008, should incorporate some new SIP features to bring closer feature parity with SCCP phones & features.

Before I discuss the specific tasks, an additional note…. Unlike SCCP phones, SIP phones do not maintain a keepalive with CUCME. Additionally, you have to reissue the “create profile” command under voice register global every time you make a change to either the phone (voice register pool), the dial number (voice register dn), and/or under the voice global register. Therefore, my recommendation is while you make your initial SIP configurations:

- Either shut down the voice vlan and/or remove the phones from the CUCME switch.
- Configure all of your SIP parameters.
- Issue the necessary “upgrade” and “create profile” commands under voice register global.
- Reattach your phones and/or turn up your voice vlan.
- Reset and/or troubleshoot phones as necessary.

1. Updating the SIP Phone loads was the first challenge, thanks to inaccurate information in some Cisco documentation. First, the correct configuration to update the SIP phone images is below.

tftp-server flash:apps42.8-3-3ES2.sbn
tftp-server flash:cnu42.8-3-3ES2.sbn
tftp-server flash:cvm42sip.8-3-3ES2.sbn
tftp-server flash:dsp42.8-3-3ES2.sbn
tftp-server flash:jar42sip.8-3-3ES2.sbn
tftp-server flash:SIP42.8-3-3SR2S.loads
tftp-server flash:term42.default.loads
tftp-server flash:term62.default.loads
!
voice register global
mode cme
load 7962 SIP42.8-3-3SR2S
load 7942 SIP42.8-3-3SR2S
upgrade
create profile


Now, I’ll point out the inaccuracy, also keeping in mind that I configured much of the other SIP related parameters when I encountered this issue…

The Cisco Unified CME 7.0(1) Supported Firmware, Platforms, Memory, and Voice Products contains “Important Information about Configuring Cisco Unified IP Phone Support”, specifically, the following:

“In Cisco Unified CME 7.0(1) and later versions, use the complete filename, including the file suffix, when you configure the load command for phone firmware versions later than version 8-2-2 for all phone types.”

So, initially in the above load commands, I included the .loads suffix. However, when the phone attempted to download the SIP loads, they encountered an error attempting to load SIP42.8-3-3SR2S.loads.

After a bit of troubleshooting, I decided to remove the .loads suffix, re-issue the upgrade and create profile, and reset the phones. Unfortunately, while the phones did obtain their proper DHCP, TFTP, and CUCME information from the router, they still would not upgrade their SCCP to SIP load. After some additionally frustrating troubleshooting, I decided to reboot the router. Once the router reloaded and phone obtained the proper DHCP information, they were able to update their phone loads and register accordingly.

2. There are a few steps involved in creating a custom ringtone that is not include by default in the ringtone.tar. The first step was to find a .wav recording to “Lets Go Mets Go”, which surprisingly wasn’t too difficult. The second step is to convert the .wav to a PCM .raw format and upload it to the ringtones directory in the router. Next, you have to modify both the DistinctiveRingList.xml and the RingList.xml files. Finally, you have to remove the existing versions of these on the router, and upload these modified versions. You can find a very good posting on the proper procedures here.

3. In a nutshell, configuring CUCME to support SIP involves the following steps:

- Enabling SIP Calls in Your VoIP Network
- SIP: Setting Up Cisco Unified CME
- SIP: Creating Directory Numbers
- SIP: Assigning Directory Numbers to Phones

4. Configuring the SIP phones to uses the G.722 Wideband Codec can be a bit confusing, since it isn't very well documented on CCO in one place. Essentially, there are two components. First, you have to modify the global codec under telephony-service, the same as it was done in Baltimore. Second, you need to configure each phone (voice register pool) to use G.722 as the default codec (SIP phones default to G.729).

5. The following show commands are helpful in verifying and troubleshooting your configuration:

show voice register global (verifies the voice register global parameters)
show voice register tftp-bind (verifies the creation of the voice profiles and their tftp binding)
show voice register statistics (verifies SIP phone registration with CUCME)

6. Below is the output of the appropriate router configuration, truncated for brevity.

NewYork#sh run
!
voice service voip
allow-connections h323 to h323
allow-connections h323 to sip
allow-connections sip to h323
allow-connections sip to sip
sip
registrar server expires max 600 min 300
!
!
voice register global
mode cme
source-address 10.1.22.1 port 5060
load 7962 SIP42.8-3-3SR2S
load 7942 SIP42.8-3-3SR2S
timezone 12
dialplan-pattern 1 2125552... extension-length 4
create profile sync 000371836563317A
ntp-server 10.1.1.4 mode directedbroadcast
!
voice register dn 1
number 2001
name Tom Seaver
label Tom Seaver
!
voice register dn 2
number 2002
name David Wright
label David Wright
!
voice register dn 3
number 2003
name Eli Manning
label Eli Manning
!
voice register dn 4
number 2004
name Brandon Jacobs
label Brandon Jacobs
!
voice register dn 5
number 2005
name Ari Gold
label Ari Gold
!
voice register pool 1
id mac 0021.D8BA.2373
type 7942
number 1 dn 1
dtmf-relay sip-notify
description 212-555-2001
codec g722-64
no vad
!
voice register pool 2
id mac 0212.0555.2002
type 7942
number 1 dn 2
dtmf-relay sip-notify
description 212-555-2002
codec g722-64
no vad
!
voice register pool 3
id mac 0212.0555.2003
type 7942
number 1 dn 3
dtmf-relay sip-notify
description 212-555-2003
codec g722-64
no vad
!
voice register pool 4
id mac 0212.0555.2004
type 7942
number 1 dn 4
dtmf-relay sip-notify
description 212-555-2004
codec g722-64
no vad
!
voice register pool 5
id mac 0021.D8B9.BC72
type 7962
number 1 dn 5
dtmf-relay sip-notify
description 212-555-2005
codec g722-64
no vad
!
telephony-service
em logout 0:0 0:0 0:0
max-ephones 42
max-dn 144
ip source-address 10.1.22.1 port 2000
service phone g722CodecSupport 2
service phone handsetWidebandEnable 1
service phone headsetWidebandEnable 0
service phone handsetWidebandUIControl 0
system message Ballplayers, LLC New York
max-conferences 8 gain -6
web admin system name Cisco123 password Cisco123
web admin customer name Fuzzy password Dunlop
transfer-system full-consult
transfer-pattern 1...
transfer-pattern 2...
create cnf-files version-stamp 7960 Jan 07 2009 16:21:39
!

CUCME-CUE Lab 3 Wrap-up
As I stated earlier, configuring CUCME for SIP is more complicated, with comparatively fewer features. The feature differences will become more apparent in future labs, although CUCME 7.1 may address some of the SIP phone feature loss. For example, you cannot configure a System Message on SIP phones, and the CUCME GUI is basically worthless for SIP phones.

Editorially, I found it confusing to have to configure some parameters under “voice register global” and others under “telephony-service” in order to have a working SIP CUCME router. There is probably some programming reason in IOS for having to work under two different areas, but it certainly would be nice to have all the parameters configured under one global section.

References:
Cisco Systems. Cisco Unified Communications Manager Express: SIP Implementation Guide. Available online.

Cisco Systems. Cisco Unified Communications Manager Express System Administrator Guide. Available online.

UC500.com: Cisco Communication Manager Express, UC520, SMB VOIP reference and community. Creating Custom Ring Tones for CallManager Express. Available online.