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.

  1. SEP<MacAddressOfPhone>.cnf.xml
  2. 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.

  1. extensions.conf
  2. 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#

Advertisements

About this entry