Saturday, 25 July 2015

CUCM TFTP Server

In a collaboration environment TFTP service can be provided using two models:

  1. CUCM TFTP Server
  2. External TFTP Server

Configuration files are delivered to endpoints using TFTP transfer protocol. Configuration files share the following parameters:

  1. Prioritized list of CUCM servers for endpoints to register
  2. TCP port used to connect to CUCM servers
  3. Executable load identifiers

In addition, the configuration file per device include the following parameters as well:

  1. Local/language information
  2. URLs for phone buttons (messages, directories, services, and information)
  3. For gateways (e.g. MGCP), the configuration file contains gateway configuration

The configuration file can be in the following formats:

  1. .cnf
  2. .xml
  3. .cnf.xml

Note: A key difference between .cnf and .xml that phones requesting .cnf will get the load ID from CUCM while phones using .xml will get the load ID in the XML file

The format of the file is controlled by the service parameter Build CNF Files. Navigate to System > Service Parameters > #select server# > Cisco TFTP > Select Advanced to display all parameters.

  • Build None - All files are built in .cnf.xml
  • Build All - All files are built in .cnf
  • Build Selective - all files are built in the format .cnf.xml expect for some specific models listed below. For these models the file will be built in the format .cnf.

Device Type
Device Name
MODEL_30SPP
Cisco 30 SP+
MODEL_12SPP
Cisco 12 SP+
MODEL_12SP
Cisco 12 SP
MODEL_12S
Cisco 12 S
MODEL_30VIP
Cisco 30 VIP or DPA
MODEL_IP_CONFERENCE_PHONE
Cisco 7935
MODEL_SCCP_PHONE
SCCP Phone
MODEL_VEGA
Analog Access
MODEL_UONE
Voice Mail Port

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

Note: If you upload none configuration files to CUCM TFTP server such as RingList.xml, Jabber-Config.xml, Lists.xml, you need to restart TFTP service on CUCM server. Also, these files won't be replicated across the cluster and you need to upload them on each node in the cluster manually.

TFTP Process for SCCP Phones

  1. Once the phone boot it will try to contact the DHCP server (using a broadcast frame) to get IP Address, Mask, Default Gateway, DNS, Domain Name, and TFTP Server IP
  2. The phone will send a TFTP request to CUCM TFTP server to download the configuration file
  3. CUCM TFTP server will search for the configuration file in three internal caches, then disk, then external Cisco File server (if specified)
  4. In case the TFTP server find the file, it will send it to the phone. The phone will parse the file and will try to contact the CUCM server using the provided IP/Domain Name and Port.
  5. If the file doesn't have the CUCM IP/Name, the phone will try to register with the TFTP server
  6. In case the TFTP server didn't have the configuration file, it will respond to the phone with 'File Not Found'

TFTP Process for SIP Phones

  1. Once the phone boot, it will try to contact the DHCP server (using a broadcast frame) to get IP Address, Mask, Default Gateway, DNS, Domain Name, and TFTP Server IP
  2. The phone will send a TFTP request to CUCM TFTP server to download all files (not only configuration file).
  3. When SIP Phone configuration changes, CUCM database will notify TFTP server to rebuild all files for specific phone with the new changes. This is applicable to phone dialplan and phone softkey as well.
  4. TFTP server will update the cache with the new files
  5. In case the TFTP server didn't have the configuration file, it will respond to the phone with 'File Not Found'

Note: In case the phone is running Extension Mobility (EM) and a user logged in/out, CUCM database notify TFTP server to rebuild all file for the specific phone with the EM profile details

Here are the files generated by CUCM database in TFTP Server:

SIP Configuration File Type
Model 7970/71, 7961, 7941, 7911
Model 7960/40
Model 7905
Model 7912
SIP IP Phone
SEP.cnf.xml
SIP.cnf
ld
gk
Dial Plan
DR.xml
.xml
Parameter in ld
Parameter in gk
Softkey Template
SK.xml
Not configurable
Not configurable
Not configurable

Note: They the files names vary based on the phone model

Obtaining TFTP Address

Cisco IP Phones and Gateways can obtain TFTP address in one of the following methods (in order):

  • Assigned TFTP server address manually (Settings > Network Configuration)
  • DHCP custom option 150
  • Gateways and phones can query CiscoCM1 (ensure that your DNS server is configured to resolve this name to TFTP server address)
  • DHCP option 066
  • The phone or gateway can use the value of Next-Server in the boot processes (siaddr)
  • Gateways and phones also accept the DHCP Optional Server Name (sname) parameter

Note: 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 that is saved in memory.

4 comments:

  1. how can you write/upload a modified .cnf.xml file to CUCM RAM?

    ReplyDelete
    Replies
    1. You can do this from Admin OS > TFTP Management > Upload/Download.

      You need to make sure that you have the phone already created for the corresponding file. If you don't CUCM will discard the file after upload and restart of TFTP service

      Delete