I've asked plenty of questions with people taking the time to answer...time to contribute something. Here's how I got my Cisco 7945 provisioned with the Quadro 2x. I believe it applies to the 7941, 7961, 7965, 7970 and 7975 models as well.
First step is to buy a SmartNet license, and download SIP firmware for your model. For these newer models you won’t find the “familiar” 7.x firmware versions with the file set (“OS79XX.TXT”, “POS3-07-04-00” etc.) described in many online walk-throughs. These newer models start with version 8.x with a different bootloader and file set:
- term45.default.loads
- apps45.8-3-2SR1.sbn
- cnu45.8-3-2SR1.sbn
- cvm45.8-3-2SR1.sbn
- dsp45.8-3-2SR1.sbn
- jar45.8-3-2SR1.sbn
- SIP45.8-3-2SR1.sbn
This is based on the 8.3(2)SR1 firmware version. The “45” is related to the phone model, so for the 7970 it would be term70.default.loads, etc.
To load the firmware, I’d recommend first doing a hard-reset of your phone. Power on the phone while pressing “#”, then let go when you line buttons start flashing. Then enter the sequence “1234567890*0#”. That will initiate the reset.
Place the firmware files in your TFTP root, and let your DHCP server tell the phone where to find the TFTP server. The phone will ask for file a CTL<mac>.tlv file, ignore that, it is used for certificates or something. It will also ask for a file called XMLDefaults.cnf.xml. This file tells the phone what firmware it should load, and should contain the following (substitute your phone model and SIP firmware version):
HTML Code:
<Default>
<callManagerGroup>
<members>
<member priority="0">
<callManager>
<ports>
<analogAccessPort>2002</analogAccessPort>
<digitalAccessPort>2001</digitalAccessPort>
<ethernetPhonePort>2000</ethernetPhonePort>
<mgcpPorts>
<listen>2427</listen>
<keepAlive>2428</keepAlive>
</mgcpPorts>
</ports>
<processNodeName>{IP address of Quadro}</processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
<loadInformation8 model="Cisco 7945">SIP45.8-3-2SR1S</loadInformation8>
</Default>
You will also need a file called SEP<mac>.cnf.xml, where <mac> is the 12 character MAC address of your phone. I placed the variables you’ll need to change between { }. Also change the <loadInformation> content to your SIP firmware. The SIP line login name and password referenced in the <sipLines> section relate to the login credentials for the IP Line settings on the Quadro.
HTML Code:
<device xsi:type="axl:XIPPhone" ctiid="{your 10-digit numer}">
<deviceProtocol>SIP</deviceProtocol>
<sshUserId>default</sshUserId>
<sshPassword>user</sshPassword>
<devicePool>
<dateTimeSetting>
<dateTemplate>M/D/Ya</dateTemplate>
<timeZone>Central Standard/Daylight Time</timeZone>
<ntps>
<ntp>
<name>{IP address of Quadro}</name>
<ntpMode>directedbroadcast</ntpMode>
</ntp>
</ntps>
</dateTimeSetting>
<callManagerGroup>
<members>
<member priority="0">
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
<sipPort>5060</sipPort>
<securedSipPort>5061</securedSipPort>
</ports>
<processNodeName>{IP address of Quadro}</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>180</timerInviteExpires>
<timerRegisterExpires>3600</timerRegisterExpires>
<timerRegisterDelta>5</timerRegisterDelta>
<timerKeepAliveExpires>120</timerKeepAliveExpires>
<timerSubscribeExpires>120</timerSubscribeExpires>
<timerSubscribeDelta>5</timerSubscribeDelta>
<timerT1>500</timerT1>
<timerT2>4000</timerT2>
<maxRedirects>70</maxRedirects>
<remotePartyID>false</remotePartyID>
<userInfo>None</userInfo>
</sipStack>
<autoAnswerTimer>1</autoAnswerTimer>
<autoAnswerAltBehavior>false</autoAnswerAltBehavior>
<autoAnswerOverride>true</autoAnswerOverride>
<transferOnhookEnabled>false</transferOnhookEnabled>
<enableVad>false</enableVad>
<preferredCodec>g711ulaw</preferredCodec>
<dtmfAvtPayload>101</dtmfAvtPayload>
<dtmfDbLevel>3</dtmfDbLevel>
<dtmfOutofBand>avt</dtmfOutofBand>
<alwaysUsePrimeLine>false</alwaysUsePrimeLine>
<alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail>
<kpml>3</kpml>
<natEnabled>false</natEnabled>
<natAddress></natAddress>
<phoneLabel>{YourPhoneLabelNoSpaces}</phoneLabel>
<stutterMsgWaiting>1</stutterMsgWaiting>
<callStats>false</callStats>
<silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
<disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig>
<startMediaPort>16384</startMediaPort>
<stopMediaPort>32766</stopMediaPort>
<sipLines>
<line
button="1">
<featureID>9</featureID>
<featureLabel>{YourLabel}</featureLabel>
<proxy>{IP address of Quadro}</proxy>
<port>5060</port>
<name>{give same value as <authName>}</name>
<displayName>{your 10-digit caller ID}</displayName>
<autoAnswer>
<autoAnswerEnabled>2</autoAnswerEnabled>
</autoAnswer>
<callWaiting>3</callWaiting>
<authName>{login name for corresponding IP line}</authName>
<authPassword>{login password for corresponding IP line}</authPassword>
<sharedLine>true</sharedLine>
<messageWaitingLampPolicy>1</messageWaitingLampPolicy>
<messagesNumber>*0</messagesNumber>
<ringSettingIdle>4</ringSettingIdle>
<ringSettingActive>5</ringSettingActive>
<contact>{country code + 10-digit number}</contact>
<forwardCallInfoDisplay>
<callerName>true</callerName>
<callerNumber>false</callerNumber>
<redirectedNumber>false</redirectedNumber>
<dialedNumber>true</dialedNumber>
</forwardCallInfoDisplay>
</line>
<line
button="2">
<featureID>9</featureID>
..
..
..
</line>
</sipLines>
<voipControlPort>5060</voipControlPort>
<dscpForAudio>184</dscpForAudio>
<ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
<dialTemplate>dialplan.xml</dialTemplate>
</sipProfile>
<commonProfile>
<phonePassword></phonePassword>
<backgroundImageAccess>true</backgroundImageAccess>
<callLogBlfEnabled>2</callLogBlfEnabled>
</commonProfile>
<loadInformation>{SIP45.8-3-2SR1S}</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>0</webAccess>
<spanToPCPort>0</spanToPCPort>
<loggingDisplay>1</loggingDisplay>
<loadServer></loadServer>
</vendorConfig>
<versionStamp></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>
<authenticationURL>http://yourwebserver/authenticate.php</authenticationURL>
<directoryURL>http://yourwebserver/directory.xml</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>
You’ll also need these two files in your TFTP root:
dialplan.xml
HTML Code:
<DIALTEMPLATE>
<TEMPLATE MATCH="*#" Timeout="0"/>
<TEMPLATE MATCH="*" Timeout="4"/>
</DIALTEMPLATE>
g3tones.xml
HTML Code:
<tones>
<trkLocaleName>United_States</trkLocaleName>
<trkBaseClearcaseVersion>/main/3.3.release/1</trkBaseClearcaseVersion>
<trkTranslationVersion>0</trkTranslationVersion>
<tone c1="30831" i1="-2032" c2="30467" i2="-1104" d="2" t="ringing">
<part m="on" t="2000"/>
<part m="off" t="4000"/>
<repeat c="65535"/>
</tone>
<tone c1="30467" i1="-1104" c2="28959" i2="-1404" d="2" t="reorder">
<part m="on" t="250"/>
<part m="off" t="250"/>
<repeat c="65535"/>
</tone>
<tone c1="30467" i1="-1104" c2="28959" i2="-1404" d="2" t="busy">
<part m="on" t="500"/>
<part m="off" t="500"/>
<repeat c="65535"/>
</tone>
<tone c1="30743" i1="-1384" c2="29780" i2="-1252" d="2" t="odial">
<part m="on" t="65535"/>
<repeat c="65535"/>
</tone>
<tone c1="30831" i1="-2032" c2="31538" i2="-814" d="2" t="idial">
<part m="on" t="65535"/>
<repeat c="65535"/>
</tone>
</tones>
You can create your own ring list by placing your .pcm or .raw file in the TFTP folder, along with this file (also create same or similar file called “distinctiveringlist.xml” if desired):
ringlist.xml
HTML Code:
<CiscoIPPhoneRingList>
<Ring>
<DisplayName>Old Style</DisplayName>
<FileName>ringer1.pcm</FileName>
</Ring>
<Ring>
<DisplayName>CTU 24</DisplayName>
<FileName>CTU24.raw</FileName>
</Ring>
<Ring>
<DisplayName>Merlin 2</DisplayName>
<FileName>merlin2.pcm</FileName>
</Ring>
<Ring>
<DisplayName>Merlin 7</DisplayName>
<FileName>merlin7.pcm</FileName>
</Ring>
<Ring>
<DisplayName>Pop</DisplayName>
<FileName>Pop.raw</FileName>
</Ring>
</CiscoIPPhoneRingList>
If you have your own webserver, you can also serve the directory, as well as custom backgrounds. For the directory, upload the file:
directory.xml
HTML Code:
<CiscoIPPhoneMenu>
<Title>{Personal Directory}</Title>
<Prompt>{Select a number}</Prompt>
<MenuItem>
<Name>{Name 1}</Name>
<URL>Dial:{number}</URL>
</MenuItem>
<MenuItem>
<Name>{Name 2}</Name>
<URL>Dial:{number}</URL>
</MenuItem>
..
..
..
</CiscoIPPhoneMenu>
To create a custom background, create a folder called Desktops/320x212x16 in your TFTP root (MUST be that name, based on resolution and color depth of your screen, depending on your phone model…Google is your friend). In that folder place your backgrounds in 320x212 and 80x53 resolution, PNG format with 16-bit color depth. Then place the following file in that same folder, with one entry for each background/thumbnail combo:
List.xml
HTML Code:
<CiscoIPPhoneImageList>
<ImageItem Image="TFTP:Desktops/320x212x16/mybackground80x53.png"
URL="TFTP:Desktops/320x212x16/mybackground320x212.png"/>
..
..
..
</CiscoIPPhoneImageList>
You can also create your own menu for the Services menu...look here for more info:
http://www.cisco.com/univercd/cc/td/...3/ipphs333.htm
PM me if you have any questions.
Good luck!