CISCO 7970 Phone And Cisco IP Communicator SIP Configuration






Contents


Getting An Image Onto The Phone That Allows A SIP Image To Be Loaded
Getting A SIP Image Onto The Phone
Configuration For Cisco IP Communicator (CIC)
SIP Configuration File
Displaying Background Image On Phone
Phone Directory
       For A CISCO 7940/7960 SIP IP Phone
       For A CISCO 7970/7980 SIP IP Phone
Services URL
SSH
Time Zones



Up till very recently, CISCO did not provide a SIP image for the glossy, colour touch screen 7970/7971 IP phone. With the release of Call Manger 5 and SIP support, SIP images are now available for the 7970/7971 IP phones.

The CISCO IP Communicator (CIC) version 2.1(3) (soft IP Phone and Video phone) also uses a configuration file as detailed as below.

To convert a CISCO 7970/7971 from a SCCP (Skinny Image) to a SIP image, I did the following.

Getting An Image Onto The Phone That Allows A SIP Image To Be Loaded

The SCCP image on my 7970 was too old to allow for the loading of a SIP image. So, the phone firmware was updated to a Cisco Call Manger Express SCCP Image (version 7.0.3, image name cmterm-7970-71-sccp.7.0.3.tar) that understands that a SIP image can be loaded. The CCO home (requires a CCO account to access) for theses images is http://www.cisco.com/cgi-bin/tablebuild.pl/ip-iostsp To upgrade the phone with this image :-
  1. Untar the image in the TFTP root directory of the TFTP server the phone is configured to look at.
  2. Create a file called SEPxxxxxxxxxxxx.cnf.xml where the xxxxxxxxxxxx is replaced with the MAC address of the phone eg :- SEP00131951523E.cnf.xml

    The file should look like :-


    <device> <devicePool> <callManagerGroup> <members> <member priority="0"> <callManager> <ports> <ethernetPhonePort>2000</ethernetPhonePort> </ports> <processNodeName></processNodeName> </callManager> </member> </members> </callManagerGroup> </devicePool> <versionStamp>{Jan 01 2005 00:00:00}</versionStamp> <loadInformation>TERM70.7-0-3-0S</loadInformation> <addOnModules> </addOnModules> <userLocale> <name>English_United_States</name> <langCode>en</langCode> </userLocale> <networkLocale></networkLocale> <idleTimeout>0</idleTimeout> <authenticationURL></authenticationURL> <directoryURL></directoryURL> <idleURL></idleURL> <informationURL></informationURL> <messagesURL></messagesURL> <proxyServerURL></proxyServerURL> <servicesURL></servicesURL> </device>


  3. Reboot the phone and wait for it to load the new files that are in the tar package. this takes a while and the phone may appear to be dead but just leave it.


Configuration For Cisco IP Communicator (CIC)

The CIC application endows computers with the functionality of IP Phones, providing high-quality voice calls on the road, in the office, or from wherever users may have access to the corporate network. The CIC application appears like a CISCO 797x hard phone. The CISCO IP Communicator 2.1(3) (soft IP Phone and Video phone) also uses a configuration file as detailed as below. The CISCO IP Communicator 2.1(3) can be downloaded from http://www.cisco.com/cgi-bin/tablebuild.pl/ip-comm. This requires a valid CCO login and a license.

From the CIC Preferences, Network Tab menu option, establish the Device Name - this is the SEPxxxxxxxxxxxx part of the configuration file name.

Within the CIC Preferences, Network Tab menu option, set the TFTP server to the IP address of the TFTP server that houses the SEPxxxxxxxxxxxx.cnf.xml configuration file.


Getting A SIP Image Onto The Phone

Now, the phone can load a SIP image. The firmware i used was version 8-2-1S, image package name cmterm-7970_7971-sip.8-2-1.cop. The CCO home (requires a CCO account to access) for theses images is http://www.cisco.com/cgi-bin/tablebuild.pl/ip-7900ser

To upgrade the phone with this image :-

  1. The cop file is actually a GZIP TAR archive so UNGZIP and UNTAR the file in the TFTP root directory of the TFTP server the phone is configured to look at.
  2. Copy the file jar70sip.8-2-0-55.sbn to Jar70sip.8-2-0-55.sbn. The reason for this is that the cop file contains this file named with a lowercase j, but the SIP70.8-2-1S.loads file tells the phone to look for a file called Jar70sip.8-2-0-55.sbn.
  3. Create a file called SEPxxxxxxxxxxxx.cnf.xml where the xxxxxxxxxxxx is replaced with the MAC address of the phone eg :- SEP00131951523E.cnf.xml

    The file should look like :-


    <device> <devicePool> <callManagerGroup> <members> <member priority="0"> <callManager> <ports> <ethernetPhonePort>2000</ethernetPhonePort> </ports> <processNodeName></processNodeName> </callManager> </member> </members> </callManagerGroup> </devicePool> <versionStamp>{Jan 01 2005 00:00:00}</versionStamp> <loadInformation>SIP70.8-2-1S</loadInformation> <addOnModules> </addOnModules> <userLocale> <name>English_United_States</name> <langCode>en</langCode> </userLocale> <networkLocale></networkLocale> <idleTimeout>0</idleTimeout> <authenticationURL></authenticationURL> <directoryURL></directoryURL> <idleURL></idleURL> <informationURL></informationURL> <messagesURL></messagesURL> <proxyServerURL></proxyServerURL> <servicesURL></servicesURL> </device>


  4. Reboot the phone and wait for it to load the new files that are in the tar package. this takes a while and the phone may appear to be dead but just leave it.


Dialplan File

A dialplan file is needed to tell the phone how to collect digits and the timeout. This is a really simple one but dose the job.
  1. In the root of the TFTP server directory, create a a file called dialplan.xml that contains

    <DIALTEMPLATE> <TEMPLATE MATCH="*" Timeout="5"/> <!-- Anything else --> </DIALTEMPLATE>

    This file is referenced by the configuration file downloaded to the phone.



SIP Configuration File

The 7970/7971 SIP image reads a configuration file that is an XML file, as opposed to the 7960/7940 SIP configuration file that is a text file. The one that works for me looks like this. Change to the XML tags that have a CHANGEME comment before them to personalize the config. <device xsi:type="axl:XIPPhone" ctiid="203849429" uuid="{96f8508b-10ef-f98c-d20d-0471777ec725}"> <deviceProtocol>SIP</deviceProtocol> <sshUserId>user</sshUserId> <sshPassword>pass</sshPassword> <devicePool> <dateTimeSetting> <dateTemplate>D-M-Y</dateTemplate> <!-- For Time Zone Names see Further Down In This Doc --> <timeZone>South Africa Standard Time</timeZone> <ntps> <ntp> <!-- CHANGEME --> <name>FIRSTntpServer</name> <ntpMode>Unicast</ntpMode> </ntp> <ntp> <!-- CHANGEME --> <name>SECONDntpServer</name> <ntpMode>Unicast</ntpMode> </ntp> </ntps> </dateTimeSetting> <callManagerGroup> <members> <member priority="0"> <callManager> <ports> <ethernetPhonePort>2000</ethernetPhonePort> <sipPort>5060</sipPort> <securedSipPort>5061</securedSipPort> </ports> <!-- CHANGEME --> <processNodeName>sip.proxy.name.or.ip</processNodeName> </callManager> </member> </members> </callManagerGroup> </devicePool> <sipProfile> <sipProxies> <backupProxy></backupProxy> <backupProxyPort></backupProxyPort> <emergencyProxy></emergencyProxy> <emergencyProxyPort></emergencyProxyPort> <outboundProxy></outboundProxy> <outboundProxyPort></outboundProxyPort> <registerWithProxy>true</registerWithProxy> </sipProxies> <sipCallFeatures> <cnfJoinEnabled>true</cnfJoinEnabled> <callForwardURI>x--serviceuri-cfwdall</callForwardURI> <callPickupURI>x-cisco-serviceuri-pickup</callPickupURI> <callPickupListURI>x-cisco-serviceuri-opickup</callPickupListURI> <callPickupGroupURI>x-cisco-serviceuri-gpickup</callPickupGroupURI> <meetMeServiceURI>x-cisco-serviceuri-meetme</meetMeServiceURI> <abbreviatedDialURI>x-cisco-serviceuri-abbrdial</abbreviatedDialURI> <rfc2543Hold>false</rfc2543Hold> <callHoldRingback>2</callHoldRingback> <localCfwdEnable>true</localCfwdEnable> <semiAttendedTransfer>true</semiAttendedTransfer> <anonymousCallBlock>2</anonymousCallBlock> <callerIdBlocking>2</callerIdBlocking> <dndControl>0</dndControl> <remoteCcEnable>true</remoteCcEnable> </sipCallFeatures> <sipStack> <sipInviteRetx>6</sipInviteRetx> <sipRetx>10</sipRetx> <timerInviteExpires>20</timerInviteExpires> <timerRegisterExpires>20</timerRegisterExpires> <timerRegisterDelta>5</timerRegisterDelta> <timerKeepAliveExpires>20</timerKeepAliveExpires> <timerSubscribeExpires>20</timerSubscribeExpires> <timerSubscribeDelta>5</timerSubscribeDelta> <timerT1>500</timerT1> <timerT2>4000</timerT2> <maxRedirects>70</maxRedirects> <remotePartyID>false</remotePartyID> <userInfo>None</userInfo> </sipStack> <preferredCodec>g729a</preferredCodec> <dtmfAvtPayload>101</dtmfAvtPayload> <dtmfDbLevel>3</dtmfDbLevel> <dtmfOutofBand>avt</dtmfOutofBand> <alwaysUsePrimeLine>false</alwaysUsePrimeLine> <alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail> <kpml>3</kpml> <!-- CHANGEME --> <phoneLabel>TOPrightLABEL</phoneLabel> <callStats>false</callStats> <silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBur sts> <disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig> <startMediaPort>16384</startMediaPort> <stopMediaPort>32766</stopMediaPort> <sipLines> <line button="1"> <featureID>9</featureID> <!-- CHANGEME --> <featureLabel>LINElabel</featureLabel> <proxy>nsbc2.vox.uunet.co.za</proxy> <port>5060</port> <!-- CHANGEME --> <name>SIPregistrationNAME eg 877400000</name> <!-- CHANGEME --> <displayName>NAMEdisplayedWHENcalling</displayName> <autoAnswer> <autoAnswerEnabled>2</autoAnswerEnabled> </autoAnswer> <callWaiting>3</callWaiting> <!-- CHANGEME --> <authName>AUTHname</authName> <!-- CHANGEME --> <authPassword>AUTHpassword</authPassword> <sharedLine>false</sharedLine> <messageWaitingLampPolicy>3</messageWaitingLampPolicy> <messagesNumber></messagesNumber> <ringSettingIdle>4</ringSettingIdle> <ringSettingActive>5</ringSettingActive> <contact>7b452e87-4496-4762-e11f-b26751a1884b</contact> <forwardCallInfoDisplay> <callerName>true</callerName> <callerNumber>false</callerNumber> <redirectedNumber>false</redirectedNumber> <dialedNumber>true</dialedNumber> </forwardCallInfoDisplay> </line> <!-- to add more lines to the phone duplicate the line config above --> <!-- and change line number from 1 to 2 and so on --> </sipLines> <voipControlPort>5060</voipControlPort> <dscpForAudio>184</dscpForAudio> <ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy> <dialTemplate>dialplan.xml</dialTemplate> <softKeyFile>SK50719900-3bee-4594-bc3f-6400e1a33bf0.xml</softKeyFile> </sipProfile> <commonProfile> <phonePassword></phonePassword> <backgroundImageAccess>true</backgroundImageAccess> <callLogBlfEnabled>2</callLogBlfEnabled> </commonProfile> <loadInformation>SIP70.8-2-1S</loadInformation> <vendorConfig> <disableSpeaker>false</disableSpeaker> <disableSpeakerAndHeadset>false</disableSpeakerAndHeadset> <pcPort>0</pcPort> <settingsAccess>1</settingsAccess> <garp>0</garp> <voiceVlanAccess>0</voiceVlanAccess> <videoCapability>0</videoCapability> <autoSelectLineEnable>0</autoSelectLineEnable> <webAccess>1</webAccess> <daysDisplayNotActive>1,7</daysDisplayNotActive> <displayOnTime>08:00</displayOnTime> <displayOnDuration>10:30</displayOnDuration> <displayIdleTimeout>01:00</displayIdleTimeout> <spanToPCPort>1</spanToPCPort> </vendorConfig> <versionStamp>1136931633-57191cee-5ffc-4342-b286-4246b4991890</versionStamp> <userLocale> <name>English_United_States</name> <uid>1</uid> <langCode>en_US</langCode> <version>1.0.0.0-1</version> <winCharSet>iso-8859-1</winCharSet> </userLocale> <networkLocale>United_States</networkLocale> <networkLocaleInfo> <name>United_States</name> <uid>64</uid> <version>1.0.0.0-1</version> </networkLocaleInfo> <deviceSecurityMode>1</deviceSecurityMode> <idleTimeout>0</idleTimeout> <authenticationURL></authenticationURL> <directoryURL></directoryURL> <idleURL></idleURL> <informationURL></informationURL> <messagesURL></messagesURL> <proxyServerURL></proxyServerURL> <servicesURL>http://phone-xml.berbee.com/menu.xml</servicesURL> <dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig> <dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices> <dscpForCm2Dvce>96</dscpForCm2Dvce> <transportLayerProtocol>4</transportLayerProtocol> <capfAuthMode>0</capfAuthMode> <capfList> <capf> <phonePort>3804</phonePort> </capf> </capfList> <certHash></certHash> <encrConfig>false</encrConfig> </device>


  • Reboot the phone and it should hopefully read this configuration file and register

    Displaying Background Image On Phone

    A PNG file can be used as a background for the phone.
    1. Create the following directory in your TFTPBOOT directory (case sensitive) /Desktops/320x212x12
    2. In this directory store the PNG files, each file can be up to 4096 colours and 320x212 pixels.
    3. For each file you need a Fullsize PNG file (320x212x12) and a Thumbnail PNG (80x53x12)
    4. Generate a List.xml file in this directory. The format of this file is:- <CiscoIPPhoneImageList> <ImageItem Image="TFTP:Desktops/320x212x12/thumbnail.png" URL="TFTP:Desktops/320x212x12/Fullsize.png"/> </CiscoIPPhoneImageList> Where thumbnail.png is the name of the thumbnail file and fullsize.png is the name of the corresponding fullsize file.
    5. You can have multiple listings in this directory and they are then accessed via the phone from Menu-->User Preferences-->Background Images




    Phone Direcory

    Most CISCO IP Phones (not just the 7970) can read XML pages. This can be used for a host of purposes, one of them to provide a directory of numbers.

    The CISCO SDK describes this and other phone XML techniques in great detail.

    For A CISCO 7940/7960 SIP IP Phone

    To provide a directory page for CISCO7940/760 SIP IP Phones this :-

    1. A web server is required that will hand out pages with the extension .xml as type XML. For Apache, to achieve this, in the mime.types configuration file, there is an entry of the form :- application/xml xml xsl
    2. Create a web page that is an XML page of the form :- <CiscoIPPhoneDirectory> <Title>Telephony Directory</Title> <Prompt>VOIP Reachable Numbers</Prompt> <DirectoryEntry> <Name>Entry One</Name> <Telephone>666</Telephone> </DirectoryEntry> </CiscoIPPhoneDirectory> Repeat the DirectoryEntry tag for as many numbers as needed.

    3. Instruct the phones on the pages availability.
      For the 7960/40, add/change a directive in the SIPDefault.xml configuration file called directory_url: to point to the web page eg :- directory_url: "http://mywebserver/directory.xml"

    4. Restart the phone so it will reread its configuration file

    5. To access this directory and make calls, press the Directories button and select External Directory

    For A CISCO 7970/7980 SIP IP Phone

    For CISCO7970 SIP IP Phones the procedure is a bit different :-

    1. A web server is required that will hand out pages with the extension .xml as type XML. For Apache, to achieve this, in the mime.types configuration file, there is an entry of the form :- application/xml xml xsl
    2. The "URL Directories" points to a URL that returns a CiscoIPPhoneMenu object that extends the directories menu. The request for "URL Directories" must return a valid CiscoIPPhoneMenu object, even if has no DirectoryEntry objects. <CiscoIPPhoneMenu> <Title>IP Telephony Directory</Title> <Prompt>Dir External</Prompt> <MenuItem> <Name>One</Name> <URL>Dial:0009</URL> </MenuItem> <MenuItem> <Name>Two</Name> <URL>Dial:0012</URL> </MenuItem> </CiscoIPPhoneMenu> Repeat the MenuItem tag for as many numbers as needed.

    3. For the 7970, add/change a XML directive in the SEPxxxxxxxx.cnf configuration file called directoryURL to point to the web page eg :- <directoryURL>http://mywebserver/directory.xml</directoryURL>

    4. Restart the phone so it will reread its configuration file

    5. To access this directory and make calls, press the Directories button. The above add the directories to the bottom of the internal directories list.


    Services URL

    As mentioned, most CISCO IP Phones can display XML pages. This can be used to create a page displayed when the Services button is pushed. You can create your own page (in phone format XML) or use a service like Berbee (http://phone-xml.berbee.com/menu.xml). To configure this :-
    1. Instruct the phones on the pages availability.
      For the 7970, add/change a XML directive in the SEPxxxxxxxx.cnf configuration file called directoryURL to point to the web page eg :- <servicesURL>http://phone-xml.berbee.com/menu.xml</servicesURL> For the 7960/40, add/change a directive in the SIPDefault.xml configuration file called services_url: to point to the web page eg :- services_url: "http://phone-xml.berbee.com/menu.xml"

    2. Restart the phone so it will reread its configuration file

    3. To access push the Services button.

    If you would like to dispaly RSS feeds when the services button is pushed, look at :- http://www.tjir.za.net/rss.html


    SSH To Phone

    You can SSH to the IP phone as the username and password defined in the SEP configuration file via the XML tags <sshUserId>user</sshUserId> <sshPassword>pass</sshPassword> Once connected, the phone will prompt for a login. You can connect as


    Time Zones

    These are the timezones regognised by a Call manager Express version 4. Timezonename GMT Offset Dateline Standard Time -720 Samoa Standard Time -660 Hawaiian Standard Time -600 Alaskan Standard/Daylight Time -540 Pacific Standard/Daylight Time -480 Mountain Standard/Daylight Time -420 US Mountain Standard Time -420 Central Standard/Daylight Time -360 Mexico Standard/Daylight Time -360 Canada Central Standard Time -360 SA Pacific Standard Time -300 Eastern Standard/Daylight Time -300 US Eastern Standard Time -300 Atlantic Standard/Daylight Time -240 SA Western Standard Time -240 Newfoundland Standard/Daylight Time -210 South America Standard/Daylight Time -180 SA Eastern Standard Time -180 Mid-Atlantic Standard/Daylight Time -120 Azores Standard/Daylight Time -60 GMT Standard/Daylight Time +0 Greenwich Standard Time +0 W. Europe Standard/Daylight Time +60 GTB Standard/Daylight Time +60 Egypt Standard/Daylight Time +60 E. Europe Standard/Daylight Time +60 Romance Standard/Daylight Time +120 Central Europe Standard/Daylight Time +120 South Africa Standard Time +120 Jerusalem Standard/Daylight Time +120 Saudi Arabia Standard Time +180 Russian Standard/Daylight Time +180 Iran Standard/Daylight Time +210 Caucasus Standard/Daylight Time +240 Arabian Standard Time +240 Afghanistan Standard Time +270 West Asia Standard Time +300 Ekaterinburg Standard Time +300 India Standard Time +330 Central Asia Standard Time +360 SE Asia Standard Time +420 China Standard/Daylight Time +480 Taipei Standard Time +480 Tokyo Standard Time +540 Cen. Australia Standard/Daylight Time +570 AUS Central Standard Time +570 E. Australia Standard Time +600 AUS Eastern Standard/Daylight Time +600 West Pacific Standard Time +600 Tasmania Standard/Daylight Time +600 Central Pacific Standard Time +660 Fiji Standard Time +720 New Zealand Standard/Daylight Time +720


    If help is still needed, try a google seacrh

    Google




    Compiled By :- Nic Tjirkalli

    nictjir@gmail.com
    ©2007 Nic Tjirkalli