In this article, we will go deep dive into Cisco IP Phone Auto Registration for SIP Protocol. This is a very basic topic of which every VoIP personnel should be aware. This is also a very common topic for any VoIP interview being the most frequently asked question.
This article will provide you deep-dive information on how CUCM Auto Registration works. We will start with Bootup and cover all messages between the network and CUCM.
- IP phone gets power from a POE switch. or POWER INJ OR Power brick/power adapter/power cube. Ideally, we see the first CDP/LLDP message from Switch which also consists of power information of around 15.6 Watts, IP phone negotiates and takes about 4-5 Watts.
- The phone loads its own default firmware.
- The phone gets a voice VLAN from the switch as configured on the switch from CDP (Cisco discovery protocol), which is Cisco proprietary, or from LLDP (Link layer discovery protocol) which is an open standard.
- CDP/LLDP is a layer 2 protocol that is used to detect directly connected devices.
- Multicast mac-addresss for CDP is 01.00.0c.cc.cc.cc
- Multicast mac-addresss for LLDP is 01.80.c2.00.00.0e
- Now IP Phone needs an IP address that can be assigned statically or can be obtained from DHCP. Let’s talk about DHCP, Phone sends a DHCP to discover message as a Broadcast message with
- source IP addresss= 0.0.0.0
- destination IP addresss= 255.255.255.255
- source mac addresss= <IP PHONE MAC ADDRESSS>
- destination mac addresss= FF.FF.FF.FF.FF.FF
- Depending on topology DHCP may be configured either on a directly connected switch or on any other router.
- DHCP OFFER message returns
- DHCP request sent
- DHCP ACK returns
Now IP phone has an IP address.
This DHCP also provides other important information such as Domain name, DNS IP Address, TFTP server address.
The TFTP server address can be configured in the OPTION 150 section or OPTION 66 section.
In option 150, you can assign 2 TFTP server addresses. In Option 66, You can assign only one TFTP address.
5. Now phone sends a GET CTL<SEP mac-addresss>.tlv to TFTP server address assigned.
CTL is basically Cisco Trust Lists.
Either 404 not found returns or 200 OK returns from TFTP address.
In a non-secure cluster, you will see 404 not found, if you have a UC cluster in Mixed mode then you will see 200 OK.
- IP phone now sends GET ITL<SEP mac-address>.tlv
ITL is Identity Trust Lists.
404 not found returns
7. IP phone sends GET ITLFILE.Tlv
200 OK returns
In this 200 OK, IP Phone will receive signatures from the call manager publisher. Below is a sample screenshot of packet capture during an Auto Registration.
8. IP phone sends Get<SEP mac-address>.cnf.xml.sgn
IP phone will receive 404 not found, as this is auto registration and CUCM is not aware of the new phone and does not have any configuration file ready.
9. IP phone sends Get /XMLdefault.cnf.xml.sgn
Call manager sends 200 OK.
In 200 OK, IP phone receives XMLdefault.cnf.xml.sgn file which has the following information:
(i) whether auto registration is enabled or not
(ii) call manager group
which have publisher as priority 0
(iii) IP and port information that what are redecided ports of SIP port, ethernet port, MGCP port as shown below:
(iv) then TVS group which has only publisher with priority 0, as I have only one node in my environment.
(v) Then load information of all the IP phone series within the Device pack of CUCM.
Now IP Phone sends REFER message to CUCM with DN as “AUTO-REG”
For which CUCM sends 202 accepted.
CUCM asks the IP phone to restart after matching certificates and asks the IP Phone to restart.
10. Phone when again boots up sends again GET CTL<SEP mac-address>.tlv
IP phone receives 404 not found
11. Phone sends GET ITL<SEP mac-addresss>.tlv
IP phone receives 200 OK, in these 200 OK IP phones receives the ITL file which consists of the following certificates:
(i) CCM + TFTP certificates
(ii) TVS certificates of the nodes in the CCM group
(iii) CAPF certificates which are used in a secure cluster
12. Phone requests for SEP<mac-address>.cnf.xml.sgn (which is a config file for the IP phone)
IP phone receives 200 OK, in this 200 OK there is a config file which contains the IP Phones DN and other configuration.
Internally CUCM matches signatures
Once matched, CUCM sends 202 Accepted for the Refer message.
The phone sends its first register message with expire value of 3600.
At the backend, CUCM creates its configuration file. Once it creates and assigns DN to the phone and matches current load firmware on IP Phone and default load set on CUCM, it sends a NOTIFY message to IP Phone asking to download firmware if required and perform a restart.
IP Phone in turn sends back 200 OK for the Notify.
Now when IP Phone boots up, it will get all Files required and CUCM has already shared its DN. IP Phone will come up with DN and again send a register message with DN assigned to it.
CUCM sends 200 OK and registers the device.
Once registered, the IP Phone will continue sending the Register messages as keepalives configured in SIP Profile for the IP Phone on CUCM with Expire 0, for which CUCM will continue to keep replying 200 OK.
Hope this article gives you an understanding of how IP Phone boots up and gets auto-registered to CUCM.
Are you looking for consulting, advisory and professional services to deploy a Collaboration Environment for your organization? Zindagi can help.
Zindagi Technologies Pvt. Ltd. is an IT consultancy and professional services organization based out of New Delhi, India. We have expertise in planning, designing, and deployment of collaboration environments, large-scale data centers, Private/Public/Hybrid cloud solutions. We believe in “Customer First” and provide quality services to our clients always.
Sr. Collaboration Consultant