cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1846
Views
0
Helpful
0
Comments
robharat
Cisco Employee
Cisco Employee

Phone Registration for SCCP:

When a phone registers as a sccp device it follows through the cycle as follows:



  • DHCP message to get the IP address information and in most cases it gets the TFTP  address with Option 150.
  • Once it receives the TFTP Address it requests for CTL <macaddress>.tlv  .This file is only available  if the  phone is in a secure environment . If not in a secure environment, then the phone receives the message File not found.
  • After this the Phone requests for its configuration file SEP<macaddress>.cnf.xml. This file has the information on the Phone load, the CUCM IP address and other phone configuration details.



Sample configuration file is attached to the document.



Here is the screen shot of the packet capture from the phone.






In the traces for a phone registration we will see the following in TFTP logs:


At this point we find the cnf.xml and transfer it to the Phone:

01/14/2011 16:17:11.806 TFTP|TFTPCache::FindMatching(IPCTEST2), Found[ipctest2.cnf.xml]



Since this is a non-secure environment we see that there is no CTL file:

01/14/2011 16:17:11.806 TFTP|   CReqContext::tftp[0x944cfe0~137~10.10.210.200~3300] HandleCTL: Match[ipctest2] Found, looking for [CTLFile.tlv] to serve

01/14/2011 16:17:11.806 TFTP|TFTPEngine::sendNAK[0x944cfe0~137~10.10.210.200~3300], File[CTLFile.tlv], Error(1)

After the configuration file is downloaded we see the phone requesting for the Tones.xml file  and TFTP server is sending the information to the phone:


01/14/2011 16:17:15.110 TFTP|   TID[a58eaba0] TFTPServer::recvMessage[0x8a5afb8]() sockets:33 CReqContext[0x9451ee0] Requested File[English_United_States/ipc-sccp.jar]

01/14/2011 16:17:15.110 TFTP|TFTPEngine::isReadRequest[0x9451ee0~145~10.10.210.200~3300], [English_United_States/ipc-sccp.jar] opcode(1), Mode(octet), Serving Count(0)

When the transfer is completed we see the following message in the traces:

01/14/2011 16:17:15.199 TFTP|TID[ad0f6ba0] TFTPEngine::processMessage[0x9451ee0~145~10.10.210.200~3300], Transferred[English_United_States/ipc-sccp.jar] Socket[19]

After the phone has successfully downloaded the configuration it now tries to register with the primary callmanager server based on the information in the configuration file:


01/14/2011 16:17:16.299 CCM|StationInit: (0000000) alarmSeverity=2 text="25: Name=ipctest2 Load= 7.0.1.0 Last=Initialized" parm1=0(0) parm2=0(0).

01/14/2011 16:17:16.367 CCM|StationInit: (0000000) InboundStim - StationRegisterMessageID: Msg Size(received, defined) = 68, 128

01/14/2011 16:17:16.367 CCM|StationInit: (0000000) InboundStim - StationRegisterMessageId [Normal Device priority]:

In the above message the phone is trying to register with the callmanager server and the Last message (initialized) tells us that the phone was powered on and that is why it trying to register with the callmanger server.

Here the callmanager server is pulling up the information on this device:

01/14/2011 16:17:16.368 CCM|StationD:    (0000385) wait_register_StationRegister - Check MAC address & protocolVer & Call Limit (mac=005056A1033D, protocolVer=0x8570000F, limit=200)

After that we check the line information for this phone and communicate the same to the phone:

01/14/2011 16:17:16.370 CCM|StationD:    (0000385) Device ipctest2, --INFO-- line_register_LineRegisterRes registering line=1 and maxline=1

01/14/2011 16:17:16.370 CCM|StationD:(0000385) sendCapabilitiesReq Send StationOutputRegisterAck

As you can see the above message we request the capabilities of the phone and we also send an acknowledgement for the register message. Then we give the details about the phone like the line and the line configuration details, the softkey template, phone button template , softkey set request ,etc.


01/14/2011 16:17:16.371 CCM|StationInit: (0000385) InboundStim - Undefined Stimulus Device Message - MessageID: 0x2

01/14/2011 16:17:16.410 CCM|StationInit: (0000385) ButtonTemplateReq.

01/14/2011 16:17:16.411 CCM|StationInit: (0000385) SoftKeyTemplateReq.

01/14/2011 16:17:16.411 CCM|StationInit: (0000385) SoftKeySetReq.

01/14/2011 16:17:16.411 CCM|StationInit: (0000385) ConfigStatReq.

Here is the response from the phone for the capabilities request which is all the codec the phone supports:

01/14/2011 16:17:16.411 CCM|StationInit: (0000385) InboundStim - StationCapabilitiesResMessageID: Msg Size(received, defined) = 168, 296

01/14/2011 16:17:16.411 CCM|StationInit: (0000385) CapabilitiesRes capCount=10 caps= 4(60) 2(60) 86(60) 7(20) 6(20) 11(60) 12(60) 15(60) 16(60) 257(1)


After the all the different templates are sent to the phone you will see the following message in the traces which confirms that the device has been registered with the Callmanager server successfully:

01/14/2011 16:17:16.412 CCM|Device Register deviceName : ipctest2, IPAdress : 10.10.210.200, IPv6Address : not shown, IPv4Attribute : 0, IPv6Attribute : 0, LoadID : , ActiveLoadID : , InactiveLoadID : , DeviceType : 30016, Protocol : 1

01/14/2011 16:17:16.412 CCM|DebugMsg deviceName : ipctest2, DeviceType : 30016, risClass: 1

01/14/2011 16:17:16.412 CCM|SCCP Device Register from Unregister: deviceName(ipctest2), Protocol(1), RegisteredSCCP(2), RegisteredSIP(0), Registered(2)

01/14/2011 16:17:16.415 CCM|StationD:   

(0000385) DisplayPromptStatus timeOut=0 Status='€ ' content='Your current options' line=0 CI=0 ver=8570000f.|<CLID::StandAloneCluster><NID::10.10.210.10><CT::1,100,39,1.37792><IP::10.10.210.200><DEV::ipctest2><LVL::State Transition><MASK::0020>

01/14/2011 16:17:16.415 CCM|LineControl(30) - ipctest2 registered, CEPN=c3d23d4b-944f-3657-d70e-ff5c2830a0e9, deviceType=1|<CLID::StandAloneCluster><NID::10.10.210.10><CT::1,100,39,1.37794><IP::10.10.210.200><DEV::ipctest2><LVL::Detailed><MASK::0800>

01/14/2011 16:17:16.415 CCM|No associated device or user.

01/14/2011 16:17:16.415 CCM|LineControl::sendSNFNotifyIndForPresenceWithAlerting mPrecenceWithAlertingChangeNotifySubscribed=0, calllist#=0

01/14/2011 16:17:16.416 CCM|DeviceManager:star_DeviceStart Name=5002: Key=7ba1df48-456d-f1a8-4834-a797fc957cb3 RegisterDevice=3 DualModeFlag=0

At this point the actual phone will say that it is registered and it will if there is no forward all set  show the message “Your Current Options”.


After this the phone will send a keep alive message every 30 seconds to the primary Callmanager server and every 60 seconds to the secondary callmanager server in the callmanager group.


Phone Registration for SIP:

The registration that we are going to look at is for a Cisco SIP phone.


When a phone registers as a SIP device it follows through the cycle as follows which is similar to a SCCP phone :



  • DHCP message to get the IP address information and in most cases it gets the TFTP  address with Option 150.
  • Once it receives the TFTP Address it requests for CTL <macaddress>.tlv  .This file is only available  if the  phone is in a secure environment . If not in a secure environment, then the phone receives the message File not found.
  • After  this the Phone requests for its configuration file  SEP<macaddress>.cnf.xml. This file has the information on the  Phone load, the CUCM IP address and other phone configuration details.

Sample configuration file for a SIP phone is attached to the document.


The following screen shots shows the different parts of the SIP phone registration:


In the TFTP traces we will see the follwoing for the initial request for CTL file:

01/14/2011 16:24:06.547 TFTP|-->CReqContext::tftp[0x9460200~168~10.10.210.200~3309]
01/14/2011 16:24:06.547 TFTP|CReqContext::CheckAndSetIsStatic(ctlsep005056a1033d.tlv) is (Not a Static) File
01/14/2011 16:24:06.547 TFTP|CReqContext::isCTLCAPFRequest[CTLSEP005056A1033D.tlv] Not a CTLCAPF File
01/14/2011 16:24:06.547 TFTP|   CReqContext::tftp[0x9460200~168~10.10.210.200~3309] HandleCTL: [CTLSEP005056A1033D.tlv] is CTLSEPMac.tlv file, Searching[005056A1033D]
01/14/2011 16:24:06.547 TFTP|TFTPCache::FindMatching(005056A1033D), Found[SEP005056A1033D.cnf.xml]
01/14/2011 16:24:06.547 TFTP|   CReqContext::tftp[0x9460200~168~10.10.210.200~3309] HandleCTL: Match[005056A1033D] Found, looking for [CTLFile.tlv] to serve
01/14/2011 16:24:06.547 TFTP|TFTPEngine::sendNAK[0x9460200~168~10.10.210.200~3309], File[CTLFile.tlv], Error(1)

Based on the above logs since the phone we are trying to register is not a secure  phone there is no CTL file.


After this the phone requests for its configuration file and the TFTP server gives that information:

01/14/2011 16:24:06.598 TFTP|   TID[a58eaba0] TFTPServer::recvMessage[0x8a5afb8]() sockets:33 CReqContext[0x9461fa0] Requested File[SEP005056A1033D.cnf.xml]
01/14/2011 16:24:06.598 TFTP|TFTPEngine::isReadRequest[0x9461fa0~171~10.10.210.200~3309], [SEP005056A1033D.cnf.xml] opcode(1), Mode(octet), Serving Count(0)
01/14/2011 16:24:06.598 TFTP|   TID[a58eaba0] TFTPServer::recvMessage[0x8a5afb8]() sockets:33 count(00000), connect(0x9461fa0), nbytes(32)

Once the configuration file is received by the phone it requests for the sip.jar file associated with the sip phone:

1/14/2011 16:24:06.978 TFTP|TFTPEngine::isReadRequest[0x9463360~173~10.10.210.200~3309], [English_United_States/ipc-sip.jar] opcode(1), Mode(octet), Serving Count(0)
01/14/2011 16:24:06.978 TFTP|   TID[a58eaba0] TFTPServer::recvMessage[0x8a5afb8]() sockets:33 count(00000), connect(0x9463360), nbytes(42)

After the .jar file is received by the phone it proceeds to send the reister request to the Primary callmanager server:

01/14/2011 16:24:13.360 CCM|//SIP/SIPTcp/wait_SdlReadRsp: Incoming SIP TCP message from 10.10.210.200 on port 3311 index 3 with 973 bytes:
REGISTER sip:10.10.210.10 SIP/2.0
Via: SIP/2.0/TCP 10.10.210.200:3311;branch=z9hG4bK00003855
From: <sip:5005@10.10.210.10>;tag=005056a1033d000200002720-0000571e
To: <sip:5005@10.10.210.10>
Call-ID: 005056a1-033d0003-000024a7-0000539c@10.10.210.200
Max-Forwards: 70
Date: Sun, 00 Jan 1900 00:00:00 GMT
CSeq: 101 REGISTER
User-Agent: Cisco-SIPIPCommunicator/8.3.0
Contact: <sip:9a9a2695-653d-b663-4961-0e780177d09a@10.10.210.200:3311;transport=tcp>;+sip.instance="<urn:uuid:00000000-0000-0000-0000-005056a1033d>";+u.sip!model.ccm.cisco.com="30016";+u.sip!devicename.ccm.features.cisco.com="SEP005056A1033D"
Supported: replaces,join,norefersub,extended-refer,X-cisco-callinfo,X-cisco-serviceuri,X-cisco-escapecodes,X-cisco-service-control,X-cisco-srtp-fallback,X-cisco-monrec,X-cisco-config,X-cisco-sis-2.0.0,X-cisco-xsi-6.0.2
Content-Length: 0
Reason: SIP;cause=200;text="cisco-alarm:12 Name=SEP005056A1033D Load=CIPC-7-0-1-0 Last=cm-reset-tcp"
Expires: 3600

The callmanager server then responds with 100 trying as follows:

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: