Understanding IP Phone Behavior Skinny Client Control Protocol
Understanding IP Phone Behavior Skinny Client Control Protocol SCCP Prof. Yousif @ Valencia Community College
Skinny Protocol • Skinny Protocol is a lightweight master/slave protocol • Call. Manager controls every function of the phone. • Call. Manager facilitates call signaling to other devices using different protocols – H. 323 for routers – TAPI/JTAPI for Soft Phones/IP Communicator
Master/Slave Example • When the Phone goes off-hook, it notifies CM that the user has gone off-hook. • CM sends a message to the phone notifying it play dial tone. • The phone can not determine when to play dial tone on its own. • It is important to understand the roles that both IP phones and CM play when troubleshooting IP phones • Example: Where do you troubleshoot the problem of delayed dial tone? ? ?
Call Processing Behavior • The Call Processing Behavior can be best explained by examining The CM trace file • CM Traces are configured from Cisco Service configuration.
From the Trace Menu, Select Trace configuration
Collect the Traces for a Certain Period of Time
A Sample Trace for a Call Between Two IP Phones 1. IP phones use the Skinny protocol to communicate with Call. Manager 2. All messages to and from a Skinny device are preceded by either the word Station. Init or Station. D. 3. Station. Init means that an inbound TCP message form a Skinny station reached Call. Manger. 4. Example: Station. Init: 00004 Off. Hook
TCP Handle • The TCP handle represents a unique value that identifies a specific IP pone registered to this CM Server. • With The TCP handle, you can follow every message sent and received from a particular IP phone. • The TCP handle of a device can also be found by looking up the IP phone’s MAC Address until you find a keep alive message to that phone. • Example: Station. Init - Inbound. Stim - Keep. Alive. Message - Send Keep. Alive to Device Controller. Device. Name=SEP 000 F 8 F 59 D 304, TCPHandle=00004, IPAddr=192. 168. 1. 128, Port=52952, Device Controller=[1, 92, 1]|<CLID: : Stand. Alone. Cluster><NID: : 19 2. 168. 1. 140>
Skinny Protocol • The Off. Hook message means that Call. Manger received a Skinny message indicating the phone went off-hook • The next message in the trace file is: Station. D: 00004 Station. Output. Display. Text=‘ 40000 ‘ • Station. D signifies that the CM server is sending a message to the IP phone. • Notice that the same TCP handle is listed • The number 40000 represents the directory number of the phone.
Other Skinny Messages • Station. D: 00004 Start. Tone tone=33(Inside. Dial. Tone) Tells the IP phone to start plying dial tone. • Call. Reference=16777225: The Call reference ID is created by CM for each participant in a call and can be used to track a particular call through a CM Trace
Other Skinny Messages • Station. Init: 00004 Keypad. Button kp. Button=4 • Station. D: 00004 Stop. Tone. • CCM|Station. D: 00004 Select. Soft. Keys instance=1 reference=16777225 soft. Key. Set. Index=6 • Station. Init: 00004 Keypad. Button kp. Button=0 • CCM|Station. Init: 00004 Keypad. Button kp. Button=0. | • Station. Init: 00004 Keypad. Button kp. Button=0. • Station. Init: 00004 Keypad. Button kp. Button=4 • Note: digit * shows as e and a # shows as f • Station. D: 00004 Select. Soft. Keys instance=1 reference=16777225 soft. Key. Set. Index=8
Other Skinny Messages • Call Manger is constantly analyzing the digits the user dials, and once it finds an exact match, digit analysis returns the results for the match. • Now is the time to ring the CIPC phone which is configured with DN 40004. • The Call Routing Chapter will provide additional details on how digit analysis wok in CM
Other Skinny Messages • Because CM has collected all the required digits, it is ready to notify the destination IP phone there is an incoming call. • Station. D: 00005 Call. State call. State=4 line. Instance=1 • Station. D: 00005 Call. Info calling. Party. Name='Wael Yousif' calling. Party=40000 cgpn. Voice. Mailbox= called. Party. Name='' called. Party=40004 • call. Reference=16777226 • Station. D: 00005 Set. Ringer ring. Mode=2(Inside. Ring) • Station. D: 00005 Display. Pri. Notify time. Out. Value=10 pri=5 notify='€ 40000' content='From 40000'
Other Skinny Messages • Notice that the CIPC phone has a different TCP handle (was assigned during registration) • Also, notice that the CIPC phone has a different Call. Reference ID • The CIPC phone now starts to ring displaying the calling party name and extension number
Other Skinny Messages • The following messages perform two functions: First, the display on the IPP changes to indicate that the call is in progress. Second, the phone is told to play the ringback tone which you hear when you place a call • Station. D: 00004 Call. State call. State=12 line. Instance=1 • Station. D: 00004 Call. Info calling. Party. Name='Wael Yousif' calling. Party=40000 cgpn. Voice. Mailbox= called. Party. Name='' called. Party=40004 • Station. D: 00004 Start. Tone tone=36(Alerting. Tone),
The CIPC Answers the Call • Station. Init: 00005 Soft. Key. Event soft. Key. Event=11(Answer) line. Instance=1 • The above message is equivalent to the “Station. Init Off. Hook” message in the case where the called phone is another IPP. • The preparation is now complete for the actual media connection
Audio Stream Setup • Skinny uses Real Time Transport Protocol (RTP) over User Datagram Protocol (UDP) packets to send and receive Voice Over IP samples. • Each RTP stream is called a logical Channel. • A Logical Channel is a Unidirectional RTP stream, • To Have a two-way conversation, you must have two logical channels opened; one from the calling device to the called device and one from the called device to the calling device.
Audio Stream Setup • In the following section you can see how CM asks the IP phone to open a connection to receive RTP streams. • You can also see how that CM asks the IP phone for specific parameters, including the codec and packet size. • Station. D: 00004 Open. Receive. Channel conference. ID=0 pass. Thru. Party. ID=1000091 millisecond. Packet. Size=20 compression. Type=4(Media_Payload_G 711 Ulaw 64 k) qualifier. In=? . my. IP: 8001 a 8 c 0 (192. 168. 1. 128)|<CLID: : Stand. Alone. Cluster><NID: : 192. 1 68. 1. 140><CT: : 1, 100
Audio Stream Setup • Upon receiving an Open. Receive. Channel message, the I phone selects the UDP port number it wants to use to receive RTP packets and reports this information back to the CM in an Open. Receive. Channel. Ack message. • Station. Init: 00004 Open. Receive. Channel. Ack Status=0, Ip. Addr=0 x 8001 a 8 c 0, Port=17198
Audio Stream Setup • The same handshake of “Open. Receive. Channel” and “Open. Receive. Channel. Ack” is done at the called phone. • When CM receives the Open. Receive. Channel. Ack from the CIPC phone, containing the UDP port number, it forwards this information to the calling phone in a Start. Media. Transmission message • Station. Init: 00005 Open. Receive. Channel. Ack Status=0, Ip. Addr=0 xf 001 a 8 c 0, Port=24600 • Station. D: 00004 Start. Media. Transmission conference. ID=0 pass. Thru. Party. ID=1000091 remote. Ip. Address=f 001 a 8 c 0(192. 168. 1. 240) remote. Port. Number=24600 milli. Second. Packet. Size=20 compress. Type=4(Media_Payload_G 711 Ulaw 64 k)
Audio Stream Setup • At this point the two phones are sending RTP messages to each other. • Notice that for the duration of this call, the two phones never have sent nor received any Skinny signaling to or from each other. • This is because all the signaling goes through CM • The only time IP phones send packets to each other is for the actual Voice Stream.
Labs • CCM Traces • Challenge Lab: Capture The Call Setup and Media Transport Processes using Ethereal
- Slides: 22