Cisco CallManager System Guide, Release 3.1(1)
Cisco TFTP

Table Of Contents

Cisco TFTP

TFTP Process Overview

Understanding How Devices Use DHCP and Cisco TFTP

Understanding How Devices Access the TFTP Server

Understanding How Devices Identify the TFTP Server

Alternate TFTP Paths

TFTP Configuration Checklist

Where to Find More Information


Cisco TFTP


The Cisco TFTP service builds and serves files consistent with the trivial file transfer protocol, which is a simplified version of the File Transfer Protocol (FTP). Cisco TFTP builds configuration files and serves embedded component executables, ringer files, and device configuration files.

A configuration file contains a prioritized list of Cisco CallManagers for a device (telephones and gateways), the TCP port on which the device connects to those Cisco CallManagers, and an executable load identifier. Configuration files for Cisco IP Phone 7960 and 7940 models also contain URLs for the phone buttons: messages, directories, services, and information. Configuration files for gateways contain all their configuration information.

Configuration files may be in a .cnf format or a .cnf.xml format, depending on the device type and your TFTP service parameter settings. When you set the BuildCNFFlag service parameter to True, the TFTP server builds both .cnf.xml and .cnf format configuration files for devices. When you set the parameter to False, the TFTP server builds only .cnf.xml files for devices.

This section describes the relationship among Cisco CallManager, TFTP, and Dynamic Configuration Protocol (DHCP) as well as the relationship between devices and the TFTP server. This section contains the following topics:

TFTP Process Overview

Understanding How Devices Use DHCP and Cisco TFTP

Understanding How Devices Access the TFTP Server

Understanding How Devices Identify the TFTP Server

Alternate TFTP Paths

TFTP Configuration Checklist

Where to Find More Information

TFTP Process Overview

The TFTP server can handle simultaneous requests for configuration files. This section describes the request process.

When a device boots, it queries a DHCP server for its network configuration information. The DHCP server responds with an IP address for the device, a subnet mask, a default gateway, a Domain Name System (DNS) server address, and a TFTP server name or address.


Note If DHCP is not enabled on a device, you must assign it an IP address and configure the TFTP server locally on the device.


The device requests a configuration file from the TFTP server. The TFTP server searches primary and alternate paths (if specified) for the configuration file. If the TFTP server finds the configuration file, it sends it to the device. If the device receives the Cisco CallManager name, it resolves the name using DNS and opens a Cisco CallManager connection. If the device does not receive an IP address or name, it uses the default server name.

If the TFTP server cannot find the configuration file, it sends a "file not found" error message to the device.

Devices requesting a configuration file while the TFTP server is processing the maximum number of requests (30) receive an error message from the TFTP server, which causes the device to request the configuration file later.

For a more detailed description of how devices boot, see the "Understanding How Devices Use DHCP and Cisco TFTP" section.

Understanding How Devices Use DHCP and Cisco TFTP

Cisco telephony devices require IP addresses that are assigned manually or by using DHCP. Devices also require access to a TFTP server that contains device loads and device configuration files.

Obtaining an IP Address

If DHCP is enabled on a device, DHCP automatically assigns IP addresses to the device when you connect it to the network. The DHCP server directs the device to a TFTP server. For example, you can connect multiple Cisco IP phones anywhere on the IP network, and DHCP automatically assigns IP addresses to them and provides them with the path to the appropriate TFTP server.

If DHCP is not enabled on a device, you must assign it an IP address and configure the TFTP server locally on the device.

The default DHCP setting varies depending on the device:

Cisco IP phones are DHCP-enabled by default. If you are not using DHCP, you need to disable DHCP on the phone and manually assign it an IP address.

DHCP is always enabled for Cisco Access Analog and Cisco Access Digital Gateways.

For Cisco Catalyst 6000 8 Port Voice T1/E1 and Services Modules, the Network Management Processor (NMP) on the Cisco Catalyst 6000 may or may not have DHCP enabled. If DHCP is not enabled, you will need to configure the IP address through the Cisco IOS command-line interface on the Cisco Catalyst 6000.

Requesting the Configuration File

Once a device obtains an IP address (through DHCP or manual assignment), it requests a configuration file from the TFTP server.

If a device has been manually added into the Cisco CallManager database, the device accesses a configuration file corresponding to its device name. If auto-registration is enabled in Cisco CallManager, the phones access a default configuration file from the TFTP server.


Note Phones represent the only device type that can auto-register and that have default configuration files. You must manually add all other devices to the Cisco CallManager database.


If a phone has an XML-compatible load, it requests a .cnf.xml format configuration file; otherwise, it requests a .cnf file.


Note The TFTP server only builds the .cnf format configuration files if you leave the BuildCNFFlag service parameter set to the default value of True. You must leave this parameter set to the default value until you have converted all of your phones to the Cisco CallManager 3.1 release. You must continue to use the default value if you are using third party phones.


Contacting Cisco CallManager

After obtaining the configuration file from the TFTP server, a device attempts to make a TCP connection to the highest priority Cisco CallManager in the list specified in the configuration file. If the device was manually added to the database, Cisco CallManager identifies the device. If auto-registration is enabled in Cisco CallManager, phones that were not manually added to the database attempt to auto-register in the Cisco CallManager database.

Cisco CallManager informs devices using .cnf format configuration files of their load ID. Devices using .xml format configuration files receive the load ID in the configuration file. If the device load ID differs from the load ID that is currently executing on the device, the device requests the load associated with the new load ID from the TFTP server and resets itself. For more information on device loads, see the "Device Support" section on page 9-1.

Once a telephone is ready to make a call, it will request an available ringer list from the TFTP server. If the telephone user changes the ring type, the TFTP server sends the new ring type.

Understanding How Devices Access the TFTP Server

You can enable the IP phones and gateways to discover the TFTP server IP address in one or more of the following ways, depending on the device type:

Gateways and phones can use DHCP custom option 150.

Cisco recommends this method. With this method, you configure the TFTP server IP address as the option value.

Gateways and phones can use DHCP option 066.

You may configure either the DNS Host Name or IP address of the TFTP server as the option value.

Gateways and phones can query CiscoCM1.

The Domain Name System (DNS) must be able to resolve this name to the IP address of the TFTP server.

You can configure phones with the IP address of the TFTP server. If DHCP is enabled on the phone, you can still configure an alternate TFTP server IP address locally on the phone that will override the TFTP address obtained through DHCP.

Gateways and phones also accept the DHCP Optional Server Name (sname) parameter.

The phone or gateway can use the value of Next-Server in the boot processes (siaddr).

Devices save the TFTP server address in nonvolatile memory. If one of the preceding methods was available at least once, but is not currently available, the device uses the address saved in memory.

The TFTP server must subscribe to the Cisco CallManager publisher (master database). For small systems, the TFTP server can coexist with a Cisco CallManager on the same server.

Understanding How Devices Identify the TFTP Server

Phones and gateways have an order of precedence that they use for selecting the address of the TFTP server if they receive conflicting or confusing information from the DHCP server. The basis for the order of precedence depends on the method used to specify the TFTP server (method 1 in the following list has the highest precedence):

1. The phone or Catalyst 6000 gateway uses a locally configured TFTP server address.

This address overrides any TFTP address sent by the DHCP server.

2. The phone or gateway queries the DNS name CiscoCM1, and it is resolved.

The phone or gateway always tries to resolve the DNS name CiscoCM1. If this name is resolved, it overrides all information sent by the DHCP server.

You do not need to name the TFTP server CiscoCM1, but you must enter a DNS CName record to associate CiscoCM1 with the address or name of the TFTP server.

3. The phone or gateway uses the value of Next-Server in the boot processes.

The address of the TFTP server traditionally uses this DHCP configuration parameter. When configuring BOOTP servers, this field typically serves as the address of the TFTP server.

This information is returned in the siaddr (server IP address) field of the DHCP header. Use this option, if available, because some DHCP servers will place their own IP address in this field when it is not configured.

4. The phone or gateway uses the site-specific option 150.

This option resolves the issue that some servers do not allow the Next-Server configuration parameter. Some servers allow access to the Next-Server parameter only when IP addresses are statically assigned.

5. The phone or gateway uses the Optional Server Name parameter.

This DHCP configuration parameter designates the DNS name of a TFTP server. Currently, you can configure only a DNS name in this parameter; do not use a dotted decimal IP address.

6. The phone or gateway uses the 066 option, which is the name of the boot server.

Option 066 normally replaces the sname (server name) field when option overloading occurs. This name field can contain a DNS name or a dotted decimal IP address.

Do not use the 066 option with the 150 option.

If they are sent together, the device prefers the IP address over the name given by the 066 option. However, if both a dotted decimal IP address and a 150 option are sent, order of preference depends on the order in which they appear in the option list. The device chooses the last item in the option list. To reiterate, option 066 and option 150 are mutually exclusive.

Alternate TFTP Paths

You can specify alternate TFTP paths if you have multiple clusters. You only want to configure one server for many DHCP scopes. The TFTP server stores files for the cluster containing the TFTP server in the primary path and stores the files for the other clusters in alternate paths. You can specify up to 10 alternate paths by entering a value for the AlternateFileLocation parameters. For more information on TFTP service parameters, refer to the "Service Parameters Configuration" in the Cisco CallManager Administration Guide.

TFTP Configuration Checklist

Table 8-1 lists the steps needed to configure the Cisco TFTP service.

Table 8-1 TFTP Configuration Checklist

Configuration Steps
Procedures and Related Topics

Step 1 

Install the TFTP service on the appropriate server.

Inserting Cisco TFTP Service on a Server, Cisco CallManager Administration Guide

Step 2 

Configure the appropriate service parameters, including the AlternateFileLocation parameters, if appropriate.

Updating a Service Parameter, Cisco CallManager Administration Guide


Where to Find More Information

Related Topics

Service Parameters Configuration, Cisco CallManager Administration Guide

Cisco TFTP Configuration, Cisco CallManager Administration Guide