CISCO SKINNY Phones and Asterisk: Part II
Armed with all the setup steps we did in part I, we are now ready for actual Phone configuration followed by some troubleshooting issues.
Phone Configuration
To configure Cisco phones we need to put required configurations files on the TFTP server in TFTP-root. Cisco Phone after booting up will fetch these files and try to autoconfigure themselves according to configuration options from fetched files.
In this tutorial we will focus on bare minimum files required making/receiving basic calls from Cisco Phones. Following are the required files.
- SEP<MacAddressOfPhone>.cnf.xml
- dialplan.xml
You can copy-paste my configuration files. Don’t mess up with the files unless you know what are you doing.
Just do find replace on 192.168.161.156 to IP address of your Asterisk Server.
Copy these two files and put them inside TFTP-Root of your TFTP server.
Point phone to our TFTP server where all above fils resides. Go to configuration and change the “TFTP Server=” Our TFTP server IP address. To unlock the configuration options – Go to the menu item you want to edit and press *##* Edit softkey will appear at bottom dock. Select the TFTP Server and give the new value.
Asterisk Configuration for SKINNY Channel.
In previous post, we have already installed chan_sccp module in Asterisk PBX. Now its time to configure it and associate it with the Asterisk’s configuration.
This configuration integration involves editing following 2 configuration files.
- extensions.conf
- sccp.conf
Open /etc/asterisk/entensions.conf in your favorite editor and add following lines at the bottom of the configuration file.
[cisco_skinny] exten => 4444,1,Answer() exten => 4444,n,Dial(SCCP/4444)
Save the file and we are done. What we have done right now is registered the extension numbers for the Two Cisco Phones.
Now its time to configure the sccp.conf file and make Asterisk recongnise the valid cisco phones and allot them above extensions.
Open /etc/asterisk/sccp.conf in your favorite editor and add following lines in the [device] section of the file.
type = 7970 autologin = 4444 keepalive = 60 tzoffset = -1 context = cisco_skinny transfer = on park = on speeddial = 4444,Example Speed dial speeddial = cfwdall = on cfwdbusy = on dtmfmode = inband dnd = on private = off mwilamp = on mwioncall = on device => SEP000C296E5198 --> Change this to your phone specific SEP<MacAddress>
Make sure “bindaddr = ” Directive from the [general] section points to the IP address of your Asterisk PBX.
Save the file and exit from the editor. We just need to Restart the Asterisk server and boot up our cisco phones. And if everything goes right, you should have your Cisco IP phone registred with Asterisk using SCCP channel.
Common Issues.
- Re-verify name of you SEP*.cnf.xml file. Make sure that it has the valid MAC address as that of your Cisco Phone. If phone is not able to find this file on TFTP server, it will not be able to register.
- Check <processNodeName> tag from the above file and verify it has IP address of your Asterisk Server.
- Once Asterisk is started, open up another Terminal and check wether Asterisk is accpting connections on port 2000 (Port 2000 is normally used by SCCP channel)
root@\Bughira:# netstat -ant | grep 2000
If you didn’t see any output, you phones will not be able to register. To resolve this issue. Go to Asterisk Console and reload the chan_sccp module using module unload chan_sccp.so and module load chan_sccp.so commands.
Validate Asterisk is listening on TCP port 2000, if it is you are through.
- Some people have faced issue of being able to dial single digit from the phone and not more than that. To resolve this issue, just put the dialplan.xml file on the TFTP server and restart the phone.
I hope this series has helped you and now you can avoid Cisco UCM unless you need to use all Cisco features.
SEP<MacAddressOfPhone>.cnf.xml
<device xsi:type="axl:XIPPhone"> <devicePool> <name>Default</name> <dateTimeSetting> <name>CMLocal</name> <dateTemplate>D.M.YA</dateTemplate> <timeZone>GMT Standard/Daylight Time</timeZone> <ntps> <ntp> <name>130.159.196.118</name> <ntpMode>Unicast</ntpMode> </ntp> </ntps> </dateTimeSetting> <callManagerGroup> <members> <member priority="0"> <callManager> <ports> <ethernetPhonePort>2000</ethernetPhonePort> </ports> <processNodeName>192.168.161.156</processNodeName> </callManager> </member> </members> </callManagerGroup> <srstInfo> <name>Enable</name> <srstOption>Enable</srstOption> <userModifiable>true</userModifiable> <ipAddr1>192.168.161.156</ipAddr1> <port1>2000</port1> <ipAddr2></ipAddr2> <port2>2000</port2> <ipAddr3></ipAddr3> <port3>2000</port3> </srstInfo> <mlppDomainId>-1</mlppDomainId> <mlppIndicationStatus>Default</mlppIndicationStatus> <preemption>Default</preemption> </devicePool> <loadInformation>P00308000700</loadInformation> <vendorConfig> <disableSpeaker>false</disableSpeaker> <disableSpeakerAndHeadset>false</disableSpeakerAndHeadset> <forwardingDelay>1</forwardingDelay> <pcPort>0</pcPort> <settingsAccess>1</settingsAccess> <garp>0</garp> <voiceVlanAccess>1</voiceVlanAccess> <videoCapability>1</videoCapability> <autoSelectLineEnable>0</autoSelectLineEnable> <webAccess>1</webAccess> <daysDisplayNotActive>1,7</daysDisplayNotActive> <displayOnTime>08:30</displayOnTime> <displayOnDuration>11:30</displayOnDuration> <displayIdleTimeout>01:00</displayIdleTimeout> </vendorConfig> <versionStamp></versionStamp> <userLocale> <name></name> <uid>1</uid> <langCode>en</langCode> <version>4.0(1)</version> <winCharSet>iso-8859-1</winCharSet> </userLocale> <networkLocale></networkLocale> <networkLocaleInfo> <name></name> <uid>64</uid> <version>4.0(1)</version> </networkLocaleInfo> <deviceSecurityMode>1</deviceSecurityMode> <idleTimeout>120</idleTimeout> <authenticationURL></authenticationURL> <directoryURL></directoryURL> <idleURL></idleURL> <informationURL></informationURL> <messagesURL></messagesURL> <proxyServerURL></proxyServerURL> <servicesURL></servicesURL> <dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig> <dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices> <dscpForCm2Dvce>96</dscpForCm2Dvce> </device>
dialplan.xml
<DIALTEMPLATE> <TEMPLATE MATCH="*" Timeout="5"/> <!-- Anything else --> </DIALTEMPLATE>
#EOF#

March 1st, 2009 at 5:40 pm
Hi Bughira,
in the above explination you nowere asked to do the “line” configuration in sccp.conf dose this means that there is no requirment of that, moreover i was able to make my cisco -7945 and CIPC phone work with asterisk but am not getting video support on this google’d a lot and not able to find anything have any idea how to make video work along with SCCP.
March 2nd, 2009 at 12:41 pm
[...] Part II: Configuring the Cisco Phone and registering it with earlier configured Asterisk Server. [...]
March 2nd, 2009 at 12:49 pm
I have shown line configuration in the file extensions.conf and sccp.conf. I have registered phones with line extension 4444.
Regarding video support; as of now it is not supported with sccp channel. Asterisk supports video with only SIP and IAX channels.
March 27th, 2009 at 6:38 pm
hi,
i have asterik server and grandstreams ip phones and i want to add some cisco ip phones,am wondering whether i have to buy licenses for those cisco phones or its not necessary when using asterik server.
pliz help me coz its very urgent
thanks
March 28th, 2009 at 11:48 am
If you are adding Cisco IP Phones in Asterisk PBX there no need for buying licenses from Cisco. Valid Licenses for Cisco Call manager are required when one need to register Cisco phones with CCM or rather I should say UCM.
April 13th, 2009 at 3:51 am
Thanks for the write up. I have installed sccp on my trixbox 2.6.2 with freepbx 2.5 I can call other extensions (sip and skinny) and can recieve calls inbound but can not make outbound calls on my sccp phones. Would you have any suggestions on where to look to fix this?
April 14th, 2009 at 5:52 pm
hey,
I would like to get some more information on problem. What do u mean by “u are able to call other extensions(sip and skinny) and not to sccp phones”?