You are on page 1of 13

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

Around a week ago I posted a blog about setting up 3rd Party SIP phones in Cisco Unified
Communications Manager (CallManager). I received a comment about whether it was possible to use X-Lite with the UC-520.
Well, I haven't used the UC-520 myself but I believe it is basically Cisco Unified Communications Manager Express (CUCME).
I happen to have one of those hanging out in my lab so I figured it would be interesting to test X-Lite on CUCME.

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.

Comments (19)
Subscribe to this comment's feed

Cannot register with non-cisco phone (FernTel IP/IP150)
written by Andrew, August 25, 2010
Hi Bill,
I followed up your tutorial but cannot register xlite with cme.
I got this"registration error: 408-Request time out"
Please give me some advice.
Thanks,
Andrew




Re: Cannot register with non-cisco phone
written by William Bell, August 31, 2010
Andrew,

This means that the x-lite client never saw a response from the SIP server. This could be a network problem from the client to the server.
Check network path connectivity and ensure that there are no ACLs/firewalls that are blocking your communication path
You can accommodate ACLs/firewalls by poking holes for TCP/UDP 5060. RTP will be a little more complicated. Different topic a

You may also have server information programmed incorrectly in the client. Check the domain and server address for t
You could also have an issue with TLS (if you have that enabled on the CUCM cluster, but not on the client for example).
This last point is less likely. IOW, you would know if that was the problem in most cases.



HTH.

Regards,
Bill




...
written by Juli, September 01, 2010
Hi Bill,
For the past few days I was desperately searching for this topic about
beautiful blog.
So, Thanks a lot !
But , still now , I am in a lot of confusion about : How to Setup CME SIP trunk to VOIP SIP Service Provider .
Can you plz. provide some config examples regarding this ? That will help a lot !

- Juli.



cisco phone (FernTel IP/IP150)
I followed up your tutorial but cannot register xlite with cme.
Request time out"
+0
lite client never saw a response from the SIP server. This could be a network problem from the client to the server.
Check network path connectivity and ensure that there are no ACLs/firewalls that are blocking your communication path
You can accommodate ACLs/firewalls by poking holes for TCP/UDP 5060. RTP will be a little more complicated. Different topic a
You may also have server information programmed incorrectly in the client. Check the domain and server address for t
You could also have an issue with TLS (if you have that enabled on the CUCM cluster, but not on the client for example).
This last point is less likely. IOW, you would know if that was the problem in most cases.
+0
For the past few days I was desperately searching for this topic about - how to register SIP Phone with CCME and lastly found this
But , still now , I am in a lot of confusion about : How to Setup CME SIP trunk to VOIP SIP Service Provider .
Can you plz. provide some config examples regarding this ? That will help a lot !
+0
lite client never saw a response from the SIP server. This could be a network problem from the client to the server.
Check network path connectivity and ensure that there are no ACLs/firewalls that are blocking your communication path.
You can accommodate ACLs/firewalls by poking holes for TCP/UDP 5060. RTP will be a little more complicated. Different topic altogether.
You may also have server information programmed incorrectly in the client. Check the domain and server address for the SIP account.
You could also have an issue with TLS (if you have that enabled on the CUCM cluster, but not on the client for example).
how to register SIP Phone with CCME and lastly found this
But , still now , I am in a lot of confusion about : How to Setup CME SIP trunk to VOIP SIP Service Provider .

Re: SIP trunks
written by William Bell, September 01, 2010
Juli,

Thanks for the feedback. I have not tested CME with ITSP SIP trunks. I have integrated with Verizon business SIP trunks and have
planned for ATT SIP trunk integration on the CUCM platform (using CUBE). The lesson here is that in some cases you may be able to
get an approved configuration from the carrier which will help you with your own configuration. I wouldn't accept SIP trunk
configurations "blindly". IOW, you may need to enforce some security the exceeds what the carrier recommends.

Since I don't have real data to give you on configs/testing results with CME I figured I could at least point you in a good direction.
Check out this link for configuration examples for CME SIP trunks.

http://www.cisco.com/en/US/products/sw/voicesw/ps4625/products_configuration_example09186a00808f9666.shtml

HTH.

Regards,
Bill

+0



Unknown Number
written by Andrew, September 01, 2010
Hi Bill,
Thanks a lot for doing such a useful document. Now, xlite can be registered with CME
But when I tested with other sip phone I got an error called"UNKNOWN NUMBER". Please give some advice on what I can
do with that sip non-cisco phone.
SIP phone : FHF Phone Ferntel IP /IP 150

Cheer!
Andrew

+0



Re: Unknown Number
written by William Bell, September 03, 2010
Andrew,

Not familiar with that error or that phone model. Have you looked at the data sheet/specs for the phone and checked to see
if it supports CME? I don't think Cisco has official support for 3rd party SIP phones on CME. With X-Lite I had to tinker around
with the settings to find the magic combo. The approach for Ferntel may be different (obvious I know). You may need to use an
authorization name that is equal to the directory number. I have seen some SIP clients that only worked when the user ID was the DN.

I see that you have this question posed to the NetPro forum which will be a good option for sharing debugs/etc.

HTH.
Regards,
Bill

+0



...
written by Satya Deep, January 14, 2011
A very important thing to note is that use enable call manager service from the 'Cisco Unified Serviceability' page.

+0



Error.
written by David, May 09, 2011
Thanks for the great write up... Getting a error on mine. VOICE_REG_POOL: Contact doesn't match any pools

Any ideas?

+0



Re: Error.
written by William Bell, May 13, 2011
David,

That error message means CME is not able to match the registration request to any configured pool. Use "show voice register
pool" to verify your registration pool configuration. Also make sure that the dn associated with the registration pool in cme
matches the username in xlite.

HTH.

Regards,
Bill

+0



Appreciate the config
written by Pete, May 21, 2011
I have no real interest in voice beyond setting up X-lite to work with a 2851 I have at home, so I can dial in from the road if i'm beyond
cell coverage/international.

Easy to follow instructions, integrated like a charm with my existing CME/sccp phones.

Many thanks Bill.

+0



Re: Appreciate the config
written by William Bell, May 21, 2011
Pete,

Thanks for ready and glad to help.

Regards,
Bill

+0



registrar or proxy?
written by hlo, August 19, 2011
hi bill,

I've tried and x-lite register with cucme successfully. tested with two x-lite on different subnet and cucme on another subnet.
when capture with wireshark, i am seeing media traffic is going through cucme ip.Is that normal? Is cucme working as registrar
or proxy? pls advise.

rgds

+0



nice try
written by hlo, August 19, 2011
good example

+0



Re: registrar or proxy
written by William Bell, August 22, 2011
Hlo,

CME is acting as a SIP registrar in this config scenario. I would expect media to be peer2peer unless there is some transcoding
in play or you are traversing a SIP trunk and you have media flow-through enabled on the dial-peer, voice class, or voice service.
Media flow-through/flow-around settings are typically used for SIP trunks.

Regards,
Bill

+0



Integrating 2n Helio IP with Display
written by Steven Tan, October 20, 2011
This post work like a charm for my integration with CME 7.

+0



I can't register my x-lite on I Phone
written by Hossam Shebl, December 13, 2011
I tried many things out to register my sip client (X-Lite) on my IPhone but in vain.
I have tried many other SIP clients but also in vain. FYI, it works on my pc but not in Iphone. Can anyone help me please.

+0



Cisco iPhone moblie app
written by Fed, December 19, 2011
Could I use this (connecting through a VPN) configuration for the cisco mobile app for iphone? I understand it works like a SIP phone.

Thanks

+0



Re: Cisco iPhone mobile app
written by William Bell, December 21, 2011
Fred,

Are you asking about the Cisco Mobile (renamed jabber) client for iPhone? Or are you asking about the iPhone client that
CounterPath offers? VPN information for the Cisco Jabber Client for iPhone is available on CCO. I did a write up on it that you may find
helpful: http://netcraftsmen.net/resour...er-Client/

I do plan on testing CounterPath's soft phone for iOS devices, but haven't been able to work in the schedule yet.

HTH.

Regards,
Bill

+0



...
written by ovel, December 26, 2011
Thank you very much for so helpful description. I've been trying to register 3rd sip phones on cme for hours, but your guide finally
helped me to do that in a right way! Thanks!

Error:
During the SIP phone registration process, when you try to reset the phones from voice register global you experience the
following error:
voice register global
create profile
reset
No contact info available for pool 1.
No contact info available for pool 2.
Explanation (by Vik Mahli):
If we only ever had local phones register to the !" we would never need the authenticate register command since the !"
authenticates the !# address of the SIP phone by comparing the result of an #$P re%uest&
I' you have remote phones the above process cannot be used as an authentication mechanism (wi)i #$P to find out why:*+
and therefore we use a built*in procedure within the SIP protocol for authentication& ,his is called the SIP Digest
#uthentication mechanism& ,he user-passwd are sent to the phone in a cnf file (encrypted passwd+ and during the
registration process the user-passwd stored in the phone cnf file is compared with the credentials within the voice register
pool&
,he downside is that if you specify authenticate register globally #.. phones must use the SIP Digest #uthentication
mechanism& /ou can0t have some phones use the #$P procedure and some phones use the SIP procedure&
,herefore if you specify authenticate register in voice register global then every 1oice $egister Pool will need a user-passwd&
/ou have correctly identified (along with others+ that all voice register pool2s must contain a username-password& If you
ever see the error no contact info for pool x it means the phone has not registered& /ou must use the show voice register
dial*peer command to verify registration of a SIP phone&
If you do not see any dial*peers created for the SIP phones then use debug voice register events and debug ccsip messages
for more info& 3ith the SIP mechanism you should see the initial register get re4ected (567 8nauthori9ed+ and then the SIP
phone $"*$":IS,"$ ($egister in response to the 5678nauth+ except this time it registers with the credentials&
1i) !alhi I" ;7<=>6, SI ;<7?=5
Senior ,echnical Instructor @ IPexpert, Inc&
Working Configuration:
voice service voip
allow-connections sip to sip
sip
bind control source-interface Vlan400
bind media source-interface Vlan400
registrar server expires max 600 min 60
!
voice register global
mode cme
source-address 10.10.202.1 port 060
max-dn 10
max-pool 2
aut!enticate register
time-format 24
date-format "#$#%
create profile s&nc 00044240'2(021
!
voice register dn 1
number '00
name )*2 +!one 1
!
voice register dn 2
number '006
name )*2 +!one 2
!
voice register template 1
dialplan 1
soft,e&s connected -ndcall .old /rnsfer
!
voice register dialplan 1
t&pe 0140-0160-ot!ers
pattern 1 '2
!
voice register pool 1
id mac 001)."436.1(04
t&pe 0160
number 1 dn 1
template 1
dtmf-rela& sip-notif&
username '00 password cisco
codec g011ulaw
!
voice register pool 2
id mac 0021.."156
t&pe 0161
number 1 dn 2
template 1
dtmf-rela& sip-notif&
username '006 password cisco
codec g011ulaw
Share this:
"mail
Print
'aceboo)

Stumble8pon


About Matthew Berry: Ausband to B"lisabethCerry, father of two awesome boys, amateur theologian, sporadic blogger,
coffee snob, Senior 8 "ngineer B D3 *
#ll Posts by !atthew Cerry D 3ebsite D
ne !esponse to "C#CME S$% %hone !egistrat
7&
!a&at!arch E?, E676 at 7:<7 am ;
,han)s for explaining the concept in such simple terms& i was using a F>G? phone and it was showing the message as
H$egisteringH and there was a small red cross besides line phone number& #fter doing debug ccsip error, i came to )now it is
authentication issue, i gave username and password command and miraculously it started to wor)& It was )illing me because
in any documentation it was not mentioned that command was compulsory& ,han)s again

Ausband to B"lisabethCerry, father of two awesome boys, amateur theologian, sporadic blogger,
* !y tweets are my ownI
Share Cy "mail
ne !esponse to "C#CME S$% %hone !egistration Error'
,han)s for explaining the concept in such simple terms& i was using a F>G? phone and it was showing the message as
H$egisteringH and there was a small red cross besides line phone number& #fter doing debug ccsip error, i came to )now it is
ssue, i gave username and password command and miraculously it started to wor)& It was )illing me because
in any documentation it was not mentioned that command was compulsory& ,han)s again
Ausband to B"lisabethCerry, father of two awesome boys, amateur theologian, sporadic blogger,
ion Error'
,han)s for explaining the concept in such simple terms& i was using a F>G? phone and it was showing the message as
H$egisteringH and there was a small red cross besides line phone number& #fter doing debug ccsip error, i came to )now it is
ssue, i gave username and password command and miraculously it started to wor)& It was )illing me because