My recent column on Voice over IP (VoIP) protocols covered the major players: H.323, Session Initiation Protocol (SIP), Megaco (H.248), Media Gateway Control Protocol (MGCP), and RTP. What we didn't cover were proprietary VoIP protocols such as the peer-to-peer VoIP protocols used by Skype, the Skinny Client Control Protocol (SCCP, also known as Skinny) used by Cisco, and the Inter-Asterisk Exchange (IAX) protocol used by Asterisk. This week, we'll take a look at these and other proprietary protocols used in various vendors' implementations of VoIP.
SkypeSkype is a highly popular "soft phone" implementation of VoIP that runs on Windows, Macintosh OS X, and Linux. The same folks who brought us the popular Kazaa file sharing application (now owned by eBay) created the program. Because its basic computer to computer service is free, it provides a way for consumers to try IP telephony without much commitment or hassle. Users can also use Skype for videoconferencing in addition to voice.
Unfortunately, the Skype protocols and software are closed source, so we don't know nearly as much about how they work under the hood as we do about the H.323 and SIP; the widely known International Telecommunication Union (ITU) and Internet Engineering Task Force (IETF) standards define those two protocols. We do know that Skype differs from most VoIP technologies in that it uses a peer-to-peer model rather than the centralized call server model used by other, more standard VoIP applications.
To say that Skype operates without a server, though, would be inaccurate. Users log on to a Skype login server to verify their public keys; this connection uses 256-bit Advanced Encryption Standard (AES) encryption with 1536-bit or 2048-bit (available to paid users) keys for security. Users connect to their destinations by going through "supernodes," or other Skype users with public IP addresses—hence the peer-to-peer model. Peers, rather than centralized servers, handle bandwidth-intensive tasks. Each packet uses encryption to protect the confidentiality of calls routed through peers.
To make calls to a public switched telephone network (PSTN) phone (with the exception of toll-free numbers) with Skype, you must use their paid service, called SkypeOut, which is billed on a per-minute basis. A companion service, called SkypeIn, allows Skype users to receiving incoming calls from PSTN phones. SkypeIn encrypts calls to PSTN numbers until they reach the PSTN gateway.
SkinnyThe SCCP is Cisco's proprietary VoIP protocol, used to connect Cisco VoIP phones to the Cisco Call Manager server. The Cisco Call Manager is an H.323 proxy that communicates with Skinny clients (the Cisco phones), resulting in much less overhead than with H.323. As the name suggests, SCCP is a "lite" client that reduces the processing load on the hardware.
When calling a non-Skinny client, the clients establish a connection through the Call Manager using TCP and then the two endpoints communicate using UDP. When Skinny phones connect to each other, they use RTP over UDP.
Some vendors in addition to Cisco also support SCCP, and Cisco Call Manager 4.0 supports a secure version of SCCP, which uses Transport Layer Security (TLS) to encrypt communications and provide for confidentiality of voice conversations.


















Nice article. I would enjoy seeing some sample calls, i.e. packet captures using these protocols, particularly the non-propietary ones and the sccp and iax.
Posted by Steve on Saturday, May 19 2007 05:55 AM