Click here to request a Network Assessment!

2/5
2010
William Bell

SIP Endpoints in Cisco Communications Manager (Call Manager) Express – X-Lite

Be forewarned that this is not a definitive guide on how to get the X-Lite application to communicate to the various other types of devices, trunks, and applications that may be registered  to  or interacting with a UC-520 or CUCME host.  It simply outlines a method for getting X-Lite registered.

I do plan on doing interoperability testing (when time permits) with 3rd party SIP devices on CUCM.  Might as well do the same on CUCME.  So, when I gather enough data points I will post a follow up to this blog.

Versions and other information.

For my testing I used X-Lite version 3.0 and CUCME version 7.1 (IOS: 12.4(24)T1).  Note, this IOS version is not the one I recommend.  It was just the version I have loaded on CUCME at this time.  Not that I have anything against the 12.4(24)T train but I am finding that I like 12.4(20)Tx for production use.

It all starts with a download.

First, you will need to download the X-Lite application here.  The install is pretty straight forward and relatively quick.

Configuring CUCME.

All in all this is a painless process.  First, configure the voice services:

voice service voip
allow-connections sip to sip !Allows SIP phones to call other SIP phones
sip
registrar server expires max 1200 min 300 !Enable IOS SIP Registrar

Next, we will configure the voice register configuration stanza.  The “voice register global” configuration is similar to the telephony-service configurations used for SCCP phones.

voice register global
mode cme
source-address 10.3.5.2 port 5060
max-dn 10 !Configure the maximum number of SIP extensions
max-pool 5 !Configure the maximum number of SIP phones
authenticate register
authenticate realm netcraftsmen.net !Doesn't impact X-Lite whether it is applied or not
tftp-path flash: !Not necessary to get X-Lite to register, but useful for Cisco SIP phones
create profile !Generates configuration files for phones

Now we create the directory number for the X-Lite station and the phone registration information.

voice register dn 1
number 51234
allow watch !If you are doing any Presence-like things
name xlitetest
label 51234
!
voice register pool 1
id mac DEAD.BEEF.0001 !Just as with CUCM, this field is arbitrary and not used by X-Lite
number 1 dn 1 ! Of course you need a phone number to use a phone, but X-Lite also needs a user ID
dtmf-relay sip-notify ! You have choices here, use sip-notify if you also have CUE for VM
username bbellsip password t3st1ngxl1t3 !Required for X-Lite
codec g711ulaw ! Or whatever you need. NOTE: X-Lite basic (free) only supports G711

To support basic registration from an X-Lite client, the above configs are all that are needed.  Of course, there are things you may need to consider outside of getting a single device registered but that is a topic for another day.

After configuring a new SIP phone, it is a good idea to issue a “restart” under the “voice register global” stanza:

iecucme01#conf t
Enter configuration commands, one per line. End with CNTL/Z.
iecucme01(config)#voice register global
iecucme01(config-register-global)#create profile
iecucme01(config-register-global)#restart
iecucme01(config-register-global)#

Configuring X-Lite.

Launch the X-Lite application.  You may get prompted for software updates, etc.  After the application loads, you will have a screen similar to the following:

Right click on the “LCD Screen” and choose Account Settings.  Click on Add to create a new SIP account.  Go to the “Account” tab and configure as follows:

The figure above gives you some guidance on what should be configured in each field and what needs to match CUCME configuration fields.

  • Display Name:  This locally significant to X-Lite only and has no bearing on CUCME registration
  • User name: This should be the directory number assigned to the phone as specified in the “voice register dn 1” configuration stanza shown previously
  • Authorization user name:  This is the “username” configured under the “voice register pool 1” stanza in our example
  • Password:  This is the “password” configured under the “voice register pool 1” stanza in our example
  • Domain:  This is the IP address or name of your CUCME host

Click on OK.  If you setup everything correctly, you should see a screen similar to the following:

In CUCME, if you want to check and see if the X-Lite client (or any SIP client) is registered, use the following commands:

iecucme01#show voice register pool 1
Pool Tag 1
Config:
Mac address is DEAD.BEEF.0001
Number list 1 : DN 1
Proxy Ip address is 0.0.0.0
DTMF Relay is enabled, sip-notify
Call Waiting is enabled
DnD is disabled
Busy trigger per button value is 0
keep-conference is enabled
username bbellsip password t3st1ngxl1t3 !Yikes, clear text
Transport type is udp
service-control mechanism is not supported
registration Call ID is a3641f4293724243NjMzNjljODg3MjgwZDM5NGZkMjcyNTUwMzcyMTdlZDQ.
Privacy feature is not configured.
Privacy button is disabled
active primary line is: 51234

contact IP address: 192.168.1.6 port 22666


Dialpeers created:

dial-peer voice 40001 voip
destination-pattern 51234
session target ipv4:192.168.1.6:22666

session protocol sipv2
dtmf-relay sip-notify
codec g711ulaw bytes 160
after-hours-exempt FALSE
Statistics:
Active registrations : 1 !This is good news

Total SIP phones registered: 1
Total Registration Statistics
Registration requests : 4
Registration success : 4
Registration failed : 0
unRegister requests : 3
unRegister success : 3
unRegister failed : 0

If you find you are having issues registering X-Lite to CUCME, then you can use debug voice register events and debug voice register errors.  An example (of a successful request):

iecucme01#debug voice register events
iecucme01#term mon
Feb 5 03:36:27.698: VOICE_REG_POOL: Register request for (51234) from (192.168.1.6)
Feb 5 03:36:27.698: VOICE_REG_POOL: key(DA4A62E40AC40ED4) added to nonce table
Feb 5 03:36:27.914: VOICE_REG_POOL: Register request for (51234) from (192.168.1.6)
Feb 5 03:36:27.914: VOICE_REG_POOL: Contact matches pool 1 number list 1
Feb 5 03:36:27.918: VOICE_REG_POOL: key(51234) contact(192.168.1.6) add to contact table
Feb 5 03:36:27.918: VOICE_REG_POOL: No entry for (51234) found in contact table
Feb 5 03:36:27.918: VOICE_REG_POOL: key(51234) contact(192.168.1.6) added to contact table
Feb 5 03:36:27.918: VOICE_REG_POOL pool->tag(1), dn->tag(1), submask(1)

Feb 5 03:36:27.918: VOICE_REG_POOL: Creating param container for dial-peer 40001.VOICE_REG_POOL pool->tag(1), dn->tag(1), submask(1) VOICE_REG_POOL pool_tag(1), dn_tag(1)

Feb 5 03:36:27.922: VOICE_REG_POOL: Created dial-peer entry of type 0
Feb 5 03:36:27.922: VOICE_REG_POOL: Registration successful for 51234, registration id is 6
Feb 5 03:36:27.926: VOICE REGISTER POOL-1 has registered. Name:SEPDEADBEEF0001 IP:192.168.1.6 DeviceType:Phone

Feb 5 03:36:27.930: VOICE_REG_POOL: Contact matches pool 1 number list 1

Dial Plan

As with CUCM, you will have to program a dial plan for X-Lite if you want to emulate the standard experience you have from a SCCP phone.  The dial plan configurations are briefly touched on here.  This link also provides a link to the X-Lite user guide which dives deep on the dial plan settings.

Voice Mail

I did not test X-Lite with CUE this time around.  That will have to be something I look into at a later date.

Conclusion

Actually, getting X-Lite registered to CUCME is quite easy.  For the UC500 I gather from some quick searches that it is CUCME from a call processing point of view.  You may need to do the configs in IOS.  Again, I have not reached a point of saying this is something I would deploy in production.  Still more testing to do.


William Bell is the Collaboration Practice Lead for Chesapeake NetCraftsmen. Bill has over 10 years of experience in the IT industry with a focus on communication and collaboration technologies. In addition to blogging on the NetCraftsmen site, Bill also maintains the UC Guerrilla blog: http://ucguerrilla.com. You can follow Bill on Twitter: @ucguerrilla

William Bell

William Bell

Vice President, Solutions and Products

William’s background spans an array of technical disciplines including application development, network infrastructure, protocol analysis, virtualization, and Unified Communications. Bill is certified as a CCIE Voice (CCIE #38914) and possesses a deep understanding of Cisco’s UC and Collaboration portfolio. He leads the Infrastructure Engineering team and also works with customers on architecting solutions that align with core business drivers. Bill is a regular contributor on the Cisco Support Community, a 3 time Cisco Designated VIP, and blogs on the NetCraftsmen and UC Guerrilla sites.

View more Posts

 

Nick Kelly

Cybersecurity Engineer, Cisco

Nick has over 20 years of experience in Security Operations and Security Sales. He is an avid student of cybersecurity and regularly engages with the Infosec community at events like BSides, RVASec, Derbycon and more. The son of an FBI forensics director, Nick holds a B.S. in Criminal Justice and is one of Cisco’s Fire Jumper Elite members. When he’s not working, he writes cyberpunk and punches aliens on his Playstation.

 

Virgilio “BONG” dela Cruz Jr.

CCDP, CCNA V, CCNP, Cisco IPS Express Security for AM/EE
Field Solutions Architect, Tech Data

Virgilio “Bong” has sixteen years of professional experience in IT industry from academe, technical and customer support, pre-sales, post sales, project management, training and enablement. He has worked in Cisco Technical Assistance Center (TAC) as a member of the WAN and LAN Switching team. Bong now works for Tech Data as the Field Solutions Architect with a focus on Cisco Security and holds a few Cisco certifications including Fire Jumper Elite.

 

John Cavanaugh

CCIE #1066, CCDE #20070002, CCAr
Chief Technology Officer, Practice Lead Security Services, NetCraftsmen

John is our CTO and the practice lead for a talented team of consultants focused on designing and delivering scalable and secure infrastructure solutions to customers across multiple industry verticals and technologies. Previously he has held several positions including Executive Director/Chief Architect for Global Network Services at JPMorgan Chase. In that capacity, he led a team managing network architecture and services.  Prior to his role at JPMorgan Chase, John was a Distinguished Engineer at Cisco working across a number of verticals including Higher Education, Finance, Retail, Government, and Health Care.

He is an expert in working with groups to identify business needs, and align technology strategies to enable business strategies, building in agility and scalability to allow for future changes. John is experienced in the architecture and design of highly available, secure, network infrastructure and data centers, and has worked on projects worldwide. He has worked in both the business and regulatory environments for the design and deployment of complex IT infrastructures.