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.
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
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
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 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
allow watch !If you are doing any Presence-like things
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:
Enter configuration commands, one per line. End with CNTL/Z.
iecucme01(config)#voice register global
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
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
dial-peer voice 40001 voip
session target ipv4:192.168.1.6:22666
session protocol sipv2
codec g711ulaw bytes 160
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
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
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.
I did not test X-Lite with CUE this time around. That will have to be something I look into at a later date.
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