cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
6921
Views
5
Helpful
12
Replies

Configure Directory XML URL for IP 7940 Phone Not Associated with CUCM

I'm testing a Cisco IP 7940 on a third party Voip service. Is there a way to configure the directory XML URL without having CUC or similar software?

1 Accepted Solution

Accepted Solutions

Your thought is correct; you have to setup a TFTP server and upload the .xml config file there:

 

Here is a sample XML file for the 7940/7960:

<device>
<versionStamp>{7960 Sep 12 2016 08:02:59}</versionStamp>
<devicePool>
<callManagerGroup>
<members>
<member  priority="0">
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
</ports>
<processNodeName>10.10.10.1</processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
</devicePool>
<commonProfile>
<callLogBlfEnabled>2</callLogBlfEnabled>
</commonProfile>
<loadInformation></loadInformation>
<userLocale>
<name>English_United_States</name>
<langCode>en_US</langCode>
</userLocale>
<networkLocale>United_States</networkLocale>
<networkLocaleInfo>
<name>United_States</name>
</networkLocaleInfo>
<idleTimeout>0</idleTimeout>
<authenticationURL></authenticationURL>
<directoryURL>http://10.10.10.1:80/localdirectory</directoryURL>
<idleURL></idleURL>
<informationURL></informationURL>
<messagesURL></messagesURL>
<proxyServerURL></proxyServerURL>
<servicesURL>http://10.10.10.1:80/CMEserverForPhone/serviceurl</servicesURL>
<dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
<dscpForCm2Dvce>96</dscpForCm2Dvce>
<vendorConfig>
<daysBacklightNotActive>1,7</daysBacklightNotActive>
<backlightOnTime>08:30</backlightOnTime>
<backlightOnDuration>00:01</backlightOnDuration>
<backlightIdleTimeout>00:05</backlightIdleTimeout>
<displayOnWhenIncomingCall>10</displayOnWhenIncomingCall>
</vendorConfig>
</device>

 

 

Georgios
Please rate if you find this helpful.

View solution in original post

12 Replies 12

Georgios Fotiadis
VIP Alumni
VIP Alumni

I assume you are referring to CUCM (and not CUC which is Cisco Unity Connection). Yes, you can do that if you change the <directoryURL> or the <servicesURL> of the phone's configuration file.

You may also find this helpful: Cisco Unified IP Phone Services Application Development Notes

Georgios
Please rate if you find this helpful.

Thanks for the response. When I view the Directories URL on the 7940 itself there doesn't appear to be a way to edit the URL. Under Current Settings it just says Unprovisioned. How do I provision it? 

You will not edit it at the phone. You will create the corresponding XML configuration file and "feed" it to the phone. What kind of 3rd party server are you using? How do you register your 7940 phones?

Georgios
Please rate if you find this helpful.

I'm testing a service called Voip.MS. The phones are registered through them, but they don't push XML files to the endpoints. Do I need to setup a TFTP server with the XML files? Do you have any sample directory XML files I can take a look at?

Your thought is correct; you have to setup a TFTP server and upload the .xml config file there:

 

Here is a sample XML file for the 7940/7960:

<device>
<versionStamp>{7960 Sep 12 2016 08:02:59}</versionStamp>
<devicePool>
<callManagerGroup>
<members>
<member  priority="0">
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
</ports>
<processNodeName>10.10.10.1</processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
</devicePool>
<commonProfile>
<callLogBlfEnabled>2</callLogBlfEnabled>
</commonProfile>
<loadInformation></loadInformation>
<userLocale>
<name>English_United_States</name>
<langCode>en_US</langCode>
</userLocale>
<networkLocale>United_States</networkLocale>
<networkLocaleInfo>
<name>United_States</name>
</networkLocaleInfo>
<idleTimeout>0</idleTimeout>
<authenticationURL></authenticationURL>
<directoryURL>http://10.10.10.1:80/localdirectory</directoryURL>
<idleURL></idleURL>
<informationURL></informationURL>
<messagesURL></messagesURL>
<proxyServerURL></proxyServerURL>
<servicesURL>http://10.10.10.1:80/CMEserverForPhone/serviceurl</servicesURL>
<dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
<dscpForCm2Dvce>96</dscpForCm2Dvce>
<vendorConfig>
<daysBacklightNotActive>1,7</daysBacklightNotActive>
<backlightOnTime>08:30</backlightOnTime>
<backlightOnDuration>00:01</backlightOnDuration>
<backlightIdleTimeout>00:05</backlightIdleTimeout>
<displayOnWhenIncomingCall>10</displayOnWhenIncomingCall>
</vendorConfig>
</device>

 

 

Georgios
Please rate if you find this helpful.

So there is no way to manually configure the URL without Cisco software or setting up a TFTP server? In other words, I can't just put the directory xml file on an internal web server and point the directory URL to that xml file. Is that correct? 

For the 7940, no there is no other option.

For other phone model (eg. 78xx) you could purchase 3rd Party Call Control (3PCC) firmware that would allow you do so.

Georgios
Please rate if you find this helpful.

I created a configuration file using the sample you provided. Here it is:

 


<device>
<versionStamp>{7940 Sep 12 2016 08:02:59}</versionStamp>
<devicePool>
<callManagerGroup>
<members>
<member priority="0">
<callManager>
<ports>
<ethernetPhonePort></ethernetPhonePort>
</ports>
<processNodeName></processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
</devicePool>
<commonProfile>
<callLogBlfEnabled>2</callLogBlfEnabled>
</commonProfile>
<loadInformation></loadInformation>
<userLocale>
<name>English_United_States</name>
<langCode>en_US</langCode>
</userLocale>
<networkLocale>United_States</networkLocale>
<networkLocaleInfo>
<name>United_States</name>
</networkLocaleInfo>
<idleTimeout>0</idleTimeout>
<authenticationURL></authenticationURL>
<directoryURL>http://192.168.128.135:80/directory.xml>
<idleURL></idleURL>
<informationURL></informationURL>
<messagesURL></messagesURL>
<proxyServerURL></proxyServerURL>
<servicesURL></servicesURL>
<dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
<dscpForCm2Dvce>96</dscpForCm2Dvce>
<vendorConfig>
<daysBacklightNotActive>1,7</daysBacklightNotActive>
<backlightOnTime>08:30</backlightOnTime>
<backlightOnDuration>00:01</backlightOnDuration>
<backlightIdleTimeout>00:05</backlightIdleTimeout>
<displayOnWhenIncomingCall>10</displayOnWhenIncomingCall>
</vendorConfig>
</device>

 

I named it based on the <SIP MAC Address>.cnf.xml and placed it in the tftp directory on my tftp server. I then updated the network configuration settings on the 7940 to turn off DHCP and enter the IP address of the tftp server. I've rebooted the phone and the directory still isn't showing under the directories button. Any thoughts on what I'm doing wrong?

Does the phone register to the PBX and makes/receives calls? I see that in your XML configuration, you have not closed the <directoryURL> tag; i.e. </directoryURL>.

Georgios
Please rate if you find this helpful.

The phone is registered with the PBX and makes/receives calls. I closed the tag and rebooted again. I checked the Directories URL in the settings and it says "Unprovisioned"still.

Can you take a packet capture from the phone (span the phone port to a PC and have a wireshark running) and open some SIP debugging at the server at the same time? To see what happens when you press the Directories button.

Georgios
Please rate if you find this helpful.

It looks like it was a file permissions issue. I've fixed it by changing the permissions to 777. 

 

I do have another issue though. The directory listing won't dial.

 

Here's the XML text:

 

<CiscoIPPhoneMenu>
 <Title>UPC IP Telephony Directory</Title>
 <Prompt>People reachable via VoIP</Prompt>

 <MenuItem>
  <Name>Test</Name>
  <URL>Dial:1010</URL>          
 </MenuItem>

</CiscoIPPhoneMenu>

 

The directory loads fine, but when I push "select" nothing happens. I'm assuming it's an issue with the URL, but I can't seem to find a solution.