cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
17942
Views
3
Helpful
7
Replies

How to find TFTP server host for a UCM

sbejawad
Level 1
Level 1

Hi Team,

  Requirement :    We have a requirement to find the TFTP server host name for the given user id and password.

Accomplished as of now :    1. Using User id and Password we were able to identify UCM URL .https://ucm-ap701-bgl.cisco.com:8443/

                                               2.Using this UCM URL we are able to find the server IP addresses using UDS API. Here we got 5 IP addresses as a response.

  Question : How to find the TFTP server IP address among these 5 IP's and We need Host name's not the IP address. This requirement should work dynamically across all the clusters.  Is there any other alternate way to find this.?         

Thanks,

Sivaganga Bejawada

1 Accepted Solution

Accepted Solutions

sbejawad
Level 1
Level 1

HI All,

  Thanks for all the help. I am able to identify the Host name for the IP address using the Java program. java.net package IP Address related classes are helpful.

<uri>http://64.103.128.12:6970/SPDefault.cnf.xml</uri>

<uri>http://72.163.130.37:6970/SPDefault.cnf.xml</uri>


Thanks,

Sivaganga Bejawada

View solution in original post

7 Replies 7

Geevarghese Cheria
Cisco Employee
Cisco Employee

Hi Siva,

   What i understand from your question is that you are having a cucm cluster  5 servers with 1 publisher and 4 subscribers and you would like to know which is the TFTP server ip.  I think by knowing the hostname for which the tftp service is enabled you can find the server ip. (From cucm serviceability page.)

During installation of the publisher and subscriber, Cisco recommend that you do not select the option to enable DNS unless DNS is specifically required for system management purposes. If DNS is enabled, Cisco still highly recommend that you do not use DNS names in the configuration of the IP Communications endpoints, gateways, and Unified CM servers. so getting hostname will be possible only if DNS is enabled.

Within a Cisco Unified CM system, endpoints such as IP phones rely on a TFTP-based process to acquire configuration files, software images, and other endpoint-specific information. The Cisco TFTP service is a file serving system that can run on one or more Unified CM servers. It builds configuration files and serves firmware files, ringer files, device configuration files, and so forth, to endpoints.

By architecture, the TFTP server would be the one pushing out the firmware load and  to the phones. If you are planning to use a stand alone tftp server then it is good to have dial plans, locales and device packs uploaded on this standalone TFTP server, in case the server roles were adjusted at a later point in time.

Please refer - Trivial File Transfer Protocol (TFTP)  for related information.

Thanks and Regards,

Geevarghese

Hi Geevarghese,

       Thanks for the response. As discussed over the web ex our requirement is,

1. we want to make a video call from browser using Jabber SDK.

2. The SDK is able to establish call using TFTP server host name

3. Using IP address it's not able to establish video call.

Need To accomplish : We need to find a way to get TFTP host name dynamically using our java code.

Input the user will give from Web Page: User id and Password.

if we pass user id and password to phone.cisco.com we were able to resolve CUCM host name https://ucm-ap701-bgl.cisco.com:8443/ucmuser/main

Similarly is there a way we can query any API to find out CUCM TFTP server host name?

This is the link which have sample code snippet that we used to establish video call.

https://developer.cisco.com/site/collaboration/jabber/websdk/learn/voice-and-video-how-to/add-video-call-capabilities/

Thanks,

Sivaganga Bejawada

On CUCM 10.0.1 or later, you can get the list of CUCM nodes with TFTP running by doing an HTTP GET on https://{CUCM_HOST}/cucm-uds/user/{userId}

Note: you must provide the credentials from the user in a BASIC Authorization header.

UDS returns an element named "serviceProfile" which has a set of "uri" elements which point to the HTTP TFTP URLs where a client can download the service profile.

Example:

<serviceProfile>

  <uri>http://se034a-58-240:6970/SPDefault.cnf.xml</uri>

</serviceProfile>

If you aren't interested in that particular file from TFTP, you could parse the URI and extract the hostname. TFTP will be running on that hostname/IP (depending on what you used when you configured your CUCM nodes).

Hi Christopher,

     Thanks a lot  the responding. We were able to invoke the URL you have given(https://{CUCM_HOST}/cucm-uds/user/{userId}) . The response have the TFTP IP addresses but we need host names for the IP's.

<uri>http://64.103.128.12:6970/SPDefault.cnf.xml</uri>

<uri>http://72.163.130.37:6970/SPDefault.cnf.xml</uri>

   Could you please let us know is there any way to find out host name's for these IP's using a program or any API like above.

Why host name : If we use these IP's in the Jabber SDK  video call it's not working. If we provide host name it's working

Jabber SDK Video call Reference : https://developer.cisco.com/site/collaboration/jabber/websdk/learn/voice-and-video-how-to/add-video-call-capabilities/

Thanks,

Sivaganga Bejawada

The URLs returned here should reflect the configuration in UCM re hostname/IP.  It is possible to fully install/configure a UCM cluster using only admin provided IP addresses (not using DNS host names) - common in lab environments.  I would definitely not expect UDS to internally obtain a host name from UCM, then do a DNS resolution and pass the resulting IP to a UDS request.

Similarly there is particular no restriction for the Jabber SDK to have a DNS host name for any of the UCM/TFTP locations - a simple IP address can work.  The tutorial page you linked shows an IP in the sample code.

A couple of things to look at re Jabber connection:

- The Jabber SDK will by default attempt to validate the SSL certificate from UCM when it connects.  This can cause issues if the UCM certificate has not been installed on the PC; or if Jabber was given an IP address for UCM but the UCM's self-signed certificate was created using a hostname (and the opposite can occur, if the UCM cert was created using an IP address and Jabber attempts to connect using a hostname.)  There is an option in Jabber SDK for disabling the certificate check (disableCertValidation:) https://developer.cisco.com/media/JabberVoiceAndVideoAPI/symbols/%24.fn.cwic.html#-disableCertValidation

- The Jabber SDK plugin creates a detailed log, which can be helpful in identifying connection issues.  https://developer.cisco.com/site/collaboration/jabber/websdk/develop-and-test/voice-and-video/troubleshooting/

If you are unable to spot the issue in this log, I can suggest posting the issue description and attaching the log in the Jabber SDK forum: Jabber

sbejawad
Level 1
Level 1

HI All,

  Thanks for all the help. I am able to identify the Host name for the IP address using the Java program. java.net package IP Address related classes are helpful.

<uri>http://64.103.128.12:6970/SPDefault.cnf.xml</uri>

<uri>http://72.163.130.37:6970/SPDefault.cnf.xml</uri>


Thanks,

Sivaganga Bejawada

jakerby
Cisco Employee
Cisco Employee

Here is an updated way to get tftp servers for CUCM cluster:

  1. I found we can use “wget https://ucm-amy01-mtv.cisco.com:8443/cucm-uds/clusterUser?username=cecusername” and parse using python or other scripting language to get the CUCM cluster.

  1. Cluster tftp’s are: primary(am1) = clustername+11(am111) and secondary(am1) = clustername+12(am112).

  1. Cluster tftp’s rarely change. 
  • Use of a table mapping the tftp servers to the cluster. IE. AM1 primary = 72.163.130.37; AM1 secondary = 64.103.131.11; Using a table makes it rather easy to update any tftp server for a cluster if any do change via a webpage rather than digging through code
Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: