Featured Resources:

line

Newsletter

Email Address:


line

Ask the Expert

Have a question for our resident expert? Email your questions to Ken.

« News from Globalcomm 2006 | Main | Interesting News Nuggets - June 9, 2006 »

A Look at Cisco Skinny Client Control Protocol (SCCP)

I’ve been assembling some information about Cisco’s Skinny Client Control Protocol and figured this was a good opportunity to share what I’ve found about how it works for those who may be curious, but don’t have time to research all the different resources.

Cisco introduced SCCP - Skinny Client Control Protocol (most just call it Skinny). It's a a Cisco proprietary protocol used between Cisco Call Manager and Cisco VOIP phones, but it is also supported by some other vendors. With SCCP, the vast majority of the H.323 processing power resides in the Cisco Call Manager. The phones run the Skinny Client, which consumes less processing overhead. The Client communicates with the Call Manager.

I'll share some of the resources I used along the way because I think one of the greatest values in this sort of communications is our ability to share. I'll share the resources I can remember, and try to cite those where I just can't recall the original source. Most of this is not my original work, but rather some research and information gathering I've done.

Skinny Client Control Protocol
From Wikipedia, the free encyclopedia

SCCP is a proprietary terminal control protocol originally developed by Selsius Corporation. It is now owned and defined by Cisco Systems, Inc. as a messaging set between a skinny client and the Cisco CallManager. Examples of skinny clients include the Cisco 7900 series of IP phone such as the Cisco 7960, Cisco 7940 and the 802.11b wireless Cisco 7920. Skinny is a lightweight protocol which allows for efficient communication with Cisco Call Manager which may act as a proxy for signalling of call events with other common protocols such as H.323, SIP, ISDN and/or MGCP.

A skinny client uses TCP/IP to and from one or more Call Managers in a cluster. RTP/UDP/IP is used to and from a similar skinny client or H.323 terminal for the bearer traffic (real-time audio stream). SCCP is a stimulus-based protocol and is designed as a communications protocol for hardware endpoints and other embedded systems, with significant CPU and memory constraints.

Cisco acquired SCCP technology when it acquired Selsius Corporation in the late 1990's. As a remnant of the Selsius origin of the current Cisco IP phones, the default device name format for registered Cisco phones with CallManager is SEP -- as in Selsius Ethernet Phone -- followed by the MAC address.

Other companies like Symbol Technologies and SocketIP have implemented this protocol in VoIP Terminals (phones) and Media Gateway Controllers or Softswitches.

A company named IPBlue has created a software phone (soft phone) which uses SCCP for signaling, too. This phone in fact appears to the Cisco CallManager server as a 7960 hardware phone.

In addition, Cisco has come out with its own version of a skinny softphone called Cisco Unified IP Communicator. Previously, Cisco had a JTAPI/CTI version of a softphone called Cisco IP Softphone.

About the SCCP Protocol
The SCCP protocol is a Cisco protocol standard for real-time calls and conferencing over Internet Protocol (IP). With the SCCP protocol, Cisco IP phones can co-exist in an H.323 environment.

An H.323 proxy can be used to communicate with the Skinny client using the SCCP protocol. In such a case, the telephone is a Skinny client over IP, in the context of H.323. A proxy is used for the H.225 and H.245 signaling.

With the SCCP protocol architecture, the vast majority of the H.323 processing power resides in an H.323 proxy — the Cisco CallManager. The end stations (IP phones) run what is called the Skinny client, which consumes less processing overhead. The client communicates with CallManager using connection-oriented (TCP/IP-based) communication to establish a call with another H.323-compliant end station. Once CallManager has established the call, the two H.323 end stations use connectionless (UDP/IP-based) communication for audio transmissions.

I can't recall where I found this, but it's a good useful overview -

Background
The SCCP protocol is a Cisco protocol standard for real-time calls and conferencing over IP.

An H.323 proxy can be used to communicate with the Skinny client using the SCCP protocol. In such a case, the telephone is a Skinny client over IP, in the context of H.323. A proxy is used for the H.225 and H.245 signaling.

With the SCCP protocol architecture, the majority of the H.323 processing power resides in an H.323 proxy — the Cisco CallManager. The end stations (IP phones) run the Skinny client, which consumes less processing overhead. The client communicates with CallManager using connection-oriented (TCP/IP-based) communication to establish a call with another H.323-compliant end station. Once Cisco CallManager has established the call, the two H.323 end stations use connectionless (UDP/IP-based) communication for audio transmissions.

Call States
This list defines the call states that are sent to SCCP endpoints, such as Cisco IP phones by Cisco CallManager in SCCP protocol. Cisco CallManager functions as an H.323 proxy. These are not the call states used in Cisco CallManager internally. Instead, they are the call states sent from Cisco CallManager and understood by the SCCP endpoints:

      1—Off Hook
      2—On Hook
      3—Ring Out
      4—Ring In
      5—Connected
      6—Busy
      7—Line In Use
      8—Hold
      9—Call Waiting
      10—Call Transfer
      11—Call Park
      12—Call Proceed
      13—In Use Remotely
      14—Invalid Number

From protocols.com, we get this additional information -

Skinny Client Control Protocol (SCCP). Telephony systems are moving to a common wiring plant. The end station of a LAN or IP- based PBX must be simple to use, familiar and relatively cheap. The H.323 recommendations are quite an expensive system. An H.323 proxy can be used to communicate with the Skinny Client using the SCCP. In such a case the telephone is a skinny client over IP, in the context of H.323. A proxy is used for the H.225 and H.245 signalling.

The skinny client (i.e. an Ethernet Phone) uses TCP/IP to transmit and receive calls and RTP/UDP/IP to/from a Skinny Client or H.323 terminal for audio. Skinny messages are carried above TCP and use port 2000.

The messages consist of Station message ID messages. They can be of the following types:


Code Station Message ID Message

0x0000 Keep Alive Message

0x0001 Station Register Message

0x0002  Station IP Port Message

0x0003 Station Key Pad Button Message

0x0004 Station Enbloc Call Message

0x0005 Station Stimulus Message

0x0006 Station Off Hook Message

0x0007 Station On Hook Message

0x0008 Station Hook Flash Message

0x0009 Station Forward Status Request Message

0x11 Station Media Port List Message

0x000A Station Speed Dial Status Request Message

0x000B Station Line Status Request Message

0x000C Station Configuration Status Request Message

0x000D Station Time Date Request Message

0x000E Station Button Template Request Message

0x000F Station Version Request Message

0x0010 Station Capabilities Response Message

0x0012 Station Server Request Message

0x0020 Station Alarm Message

0x0021 Station Multicast Media Reception Ack Message

0x0024 Station Off Hook With Calling Party Number Message

0x22 Station Open Receive Channel Ack Message

0x23 Station Connection Statistics Response Message

0x25 Station Soft Key Template Request Message

0x26 Station Soft Key Set Request Message

0x27 Station Soft Key Event Message

0x28 Station Unregister Message

0x0081 Station Keep Alive Message

0x0082 Station Start Tone Message

0x0083 Station Stop Tone Message

0x0085 Station Set Ringer Message

0x0086 Station Set Lamp Message

0x0087 Station Set Hook Flash Detect Message

0x0088 Station Set Speaker Mode Message

0x0089 Station Set Microphone Mode Message

0x008A Station Start Media Transmission

0x008B Station Stop Media Transmission

0x008F Station Call Information Message

0x009D Station Register Reject Message

0x009F Station Reset Message

0x0090 Station Forward Status Message

0x0091 Station Speed Dial Status Message

0x0092 Station Line Status Message

0x0093 Station Configuration Status Message

0x0094 Station Define Time & Date Message

0x0095 Station Start Session Transmission Message

0x0096 Station Stop Session Transmission Message

0x0097 Station Button Template Message

0x0098 Station Version Message

0x0099 Station Display Text Message

0x009A Station Clear Display Message

0x009B Station Capabilities Request Message

0x009C Station Enunciator Command Message

0x009E Station Server Respond Message

0x0101 Station Start Multicast Media Reception Message

0x0102 Station Start Multicast Media Transmission Message

0x0103 Station Stop Multicast Media Reception Message

0x0104 Station Stop Multicast Media Transmission Message

0x105 Station Open Receive Channel Message

0x0106 Station Close Receive Channel Message

0x107 Station Connection Statistics Request Message

0x0108 Station Soft Key Template Respond Message

0x109 Station Soft Key Set Respond Message

0x0110 Station Select Soft Keys Message

0x0111 Station Call State Message

0x0112 Station Display Prompt Message

0x0113 Station Clear Prompt Message

0x0114 Station Display Notify Message

0x0115 Station Clear Notify Message

0x0116 Station Activate Call Plane Message

0x0117 Station Deactivate Call Plane Message

0x118 Station Unregister Ack Message

There's an excellent paper by Mark Miller of Diginet Corporate entitled Protocols for the Converged Network that was published some time ago by Sniffer Technologies as part of a briefing. You can probably Google for the PDF.

Miller had this to add -
With the SCCP architecture, the vast majority of the H.323 processing power resides in an H.323 proxy known as the Cisco Call Manager. The end stations (telephones) run what is called the Skinny Client, which consumes less processing overhead. The Client communicates with the Call Manager using connection-oriented (TCP/IP-based) communication to establish a call with another H.323-compliant end station. Once the Call Manager has established the call, the two H.323 end stations use connectionless (UDP/IP-based) communication for audio transmissions. Costs and overhead are thus reduced by confining the complexities of H.323 call setup to the Call Manager, and using the Skinny protocol for the actual audio communication into and out of the end stations.
He also provided a good diagram of implementation of the ITU-T and IETF protocols which I've recreated.



Summary
I wrote A Look at H.323 a while back. It's posted in the Realtime VoIP Community Reading Room if you want to dig into H.323. One of the clear visions many people have of H.323 is that it's big. It's been called a "pig pf a protocol" in the past due to the way it consumes resources. The reason is simple. It's extensive in an effort to incorporate all the traditional ITU-T protocols from the PSTN.

What Cisco has done is close one eye to the past and "skinnied" H.323 basics into a more efficient protocol for communications between their VoIP phones and their Call Manager. SCCP doesn't provide the comprehensive interoperability that H.323 might offer, but it provides a good mechanism for sharing the states of devices and calls to better manage network resources in a VoIP environment. Along the way, some other vendors have also supported SCCP in an effort to provide standardized support for what is becoming a common VoIP protocol in service today.

Technorati Tags: , , , , , , , ,

Comments

SCCP may have been a "skinned" version of H.323, but it differs from H.323 in one main respect. Two H.323 clients can talk to each other without the need for a Gatekeeper, whereas two SCCP clients need a CM. One big advantage of SCCP is it is very easy to recreate PBX features, even after the clients have been deployed; H.323 and SIP require full protocol development. In this respect SCCP resembles DCP from Definity days.

I'm a bit annoyed to find this graet comment from Aswath and note that Typepad didn't send em email notice that he'd left it. So I'm days behind.

When I was reading, there was a niggling sense of deja vu that this seemed somehow reminiscent of something from my past. And he's right, it's DCP and how the Definity architecture worked.

I agree that the SCCP skinned version of H.323 does inject that requirement for the CM in the flow. Then again, Cisco sells the CM. It's not surprising to me that they'd spin it to their advantage.

I'm finding, in a couple of real world deployments, that the ability to recreate PBX features is one aspect customers really like. Thye have a preconceived notion of what features they want based on the framework of their past. SCCP eases recreating those features and makes the VoIP evolution perhaps "feel" a bit less disruptive to the people using phones.

Post a comment

(All comments are approved by site leader before appearing here. Thanks for commenting!)

line

Ken Camp's Bio:

Ken Camp has more than 25 years of experience in information technology. Ken spent 17 years with AT&T and Lucent Technologies successfully designing and implementing voice and data networks. He later worked in the security marketplace and played a key role in early IPSec VPN deployments. As an independent consultant, Ken's primary focal areas include network performance improvement, security practices and the design and deployment of integrated voice and data solutions. He may be contacted at: ken_camp@realtimepublishers.net

line

Blog Roll