Session Initiation Protocol
Internet protocol suite |
---|
Application layer |
Transport layer |
Internet layer |
Link layer |
Session Initiation Protocol (SIP) is a protocol developed by the IETF MMUSIC Working Group and proposed standard for initiating, modifying, and terminating an interactive user session that involves multimedia elements such as video, voice, instant messaging, online games, and virtual reality. In November 2000, SIP was accepted as a 3GPP signaling protocol and permanent element of the IMS architecture . It is one of the leading signalling protocols for Voice over IP, along with H.323.
Protocol design
A goal for SIP was to provide a superset of the call processing functions and features present in the public switched telephone network (PSTN). As such, features that permit familiar telephone-like operations are present: dialing a number, causing a phone to ring, hearing ringback tones or a busy signal. Implementation and terminology are different.
SIP also implements many of the more advanced call processing features present in Signalling System 7 (SS7), though the two protocols themselves could hardly be more different. SS7 is a highly centralized protocol, characterized by highly complex central network architecture and dumb endpoints (traditional telephone handsets). SIP is a peer-to-peer protocol. As such it requires only a very simple (and thus highly scalable) core network with intelligence distributed to the network edge, embedded in endpoints (terminating devices built in either hardware or software). Many SIP features are implemented in the communicating endpoints as opposed to traditional SS7 features, which are implemented in the network.
Although many other VoIP signaling protocols exist, SIP is characterized by its proponents as having roots in the IP community rather than the telecom industry. SIP has been standardized and governed primarily by the IETF while the H.323 VoIP protocol has been traditionally more associated with the ITU. However, the two organizations have endorsed both protocols in some fashion.
SIP works in concert with several other protocols and is only involved in the signaling portion of a communication session. SIP acts as a carrier for the Session Description Protocol (SDP), which describes the media content of the session, e.g. what IP ports to use, the codec being used etc. In typical use, SIP "sessions" are simply packet streams of the Real-time Transport Protocol (RTP). RTP is the carrier for the actual voice or video content itself.
The first proposed standard version (SIP 2.0) was defined in RFC 2543. The protocol was further clarified in RFC 3261, although many implementations are still using interim draft versions. Note that the version number remains 2.0.
SIP is similar to HTTP and shares some of its design principles: It is human readable and request-response structured. SIP proponents also claim it to be simpler than H.323. However, some would counter that while SIP originally had a goal of simplicity, in its current state it has become as complex as H.323. SIP shares many HTTP status codes, such as the familiar '404 not found'. The promoters of SIP have said that the rapid innovation and application development that has characterized the Web will now mark the telephony industry, too. SIP and H.323 are not limited to voice communication but can mediate any kind of communication session from voice to video or future, unrealized applications.
SIP network elements
Hardware endpoints, devices with the look, feel, and shape of a traditional telephone, but that use SIP and RTP for communication, are commercially available from several vendors. Some of these can use Electronic Numbering (ENUM) to translate existing phone numbers to SIP addresses using DNS, so calls to other SIP users can bypass the telephone network, even though your service provider might normally act as a gateway to the PSTN network for traditional phone numbers (and charge you for it).
Today, software SIP endpoints are common. Microsoft Windows Messenger uses SIP and in June, 2003, Apple Computer announced, and released in public beta, iChat AV, a new version of their AOL Instant Messenger compatible client that supports audio and video chat through SIP.
SIP also requires proxy and registrar network elements to work as a practical service. Although two SIP endpoints can communicate without any intervening SIP infrastructure (which is why the protocol is described as peer-to-peer), this approach is impractical for a public service. There are various softswitch implementations (by Nortel, Sonus and many more) which can act as proxy and registrar. Other companies, led by Ubiquity Software and Dynamicsoft have implemented products based on the proposed standards, building on the Java JAIN specification.
From the RFCs:
- "SIP makes use of elements called proxy servers to help route requests to the user's current location, authenticate and authorize users for services, implement provider call-routing policies, and provide features to users."
- "SIP also provides a registration function that allows users to upload their current locations for use by proxy servers. "
- "Since registrations play an important role in SIP, a [ User Agent Server ] that handles a REGISTER is given the special name registrar."
- "It is an important concept that the distinction between types of SIP servers is logical, not physical."
Instant messaging (IM) and presence
A standard instant messaging protocol based on SIP, called SIMPLE, has been proposed and is under development. SIMPLE can also carry Presence Information, conveying a person's willingness and ability to engage in communications. Presence information is most recognizable today as buddy status in IM clients such as MSN Messenger and AIM.
Some efforts have been made to integrate SIP-based VoIP with the XMPP presence specification used by Jabber. Most notably Google Talk, who has extended XMPP to integrated voice, plans to integrate SIP. Gizmo Project, who has implemented SIP has integrated XMPP in their client and service.
Also for mobiles phones
Commercial application
The Real-time Transport Protocol (RTP) used to carry the media stream does not traverse NAT routers. Most SIP clients can use STUN to traverse full cone, restricted cone, and port restricted cone NAT but not symmetrical NAT. Also some newer routers now recognize and pass SIP traffic. RTP Proxies, special purpose SIP line speed processors analogous to HTTP proxies commonly used in the early 1990s, enable CALEA and traversal of older, SIP-unaware NAT devices.
As envisioned by its originators, SIP's peer-to-peer nature does not enable network-provided services. For example, the network can not easily support legal interception of calls (referred to in the United States by the law governing wiretaps, CALEA). Emergency calls (calls to E911 in the USA) are difficult to route. It is difficult to identify the proper Public Service Answering Point, PSAP because of the inherent mobility of IP end points and the lack of any network location capability. However, as commercial SIP services begin to take off practical solutions to these problems are being proven. Standards being developed by such organizations as 3GPP and 3GPP2 define applications of the basic SIP model which facilitate commercialization and enable support for network-centric capabilities such as CALEA.
Companies such as Vonage and SIPphone were consumer SIP pioneers and have a fast growing subscriber base. Major carriers like AT&T and Level(3) are now following suit. The traditional telecommunications industry (including companies such as Lucent Technologies and Nortel) is now focused on developing systems based on the architecture model and SIP extensions as defined by 3GPP in their IP Multimedia Subsystem (IMS).
Some VoIP phone companies, such as BroadVoice, allow customers to bring their own SIP devices, including SIP-capable telephone sets, the Asterisk PBX, or softphones. The new market for consumer SIP devices continues to expand.
The open source community started to provide more and more of the SIP technology required to build both end points as well as proxy and registrar servers leading to a commoditization of the technology, which accelerates global adoption. SIPfoundry has made available and actively develops a variety of SIP stacks, client applications and SDKs, but also entire IP PBX solutions that compete in the market against mostly proprietary IP PBX implementations from established vendors.
Software
- SIP Communications Solutions:
- 3Com SIP PBX - Enterprise IP Telephony applications suite using SIP
- Asterisk Open Source SIP/IAX PBX
- Brekeke OnDO PBX
- Microsoft Office Live Communications Server
- Rostrvm Switchless - Standards based call centre architecture using SIP
- sipX - The Open Source SIP PBX (also available in commercially supported form from Pingtel.)
- SIP Servers:
- Ubiquity SIP Application Server
- 3Com VCX IP Telephony Module: Back-to-Back User Agent SIP PBX
- BEA WebLogic SIP Server
- Brekeke OnDO SIP Server, is available for Windows, Linux, and Mac OS X. It is free for personal and educational use.
- Cisco SIP Proxy Server
- Nortel SIP Multimedia Communication Server 5200
- IPTel.org free SIP Express Router [1]
- Pingtel Call Manager (based on SIP Foundry open source)
- SIP Clients:
- GNOME Meeting: H323 and SIP client (as of version 1.3-opal) for GNU/Linux.
- Gizmo Project: Powered by SIPphone.com, works on Mac OS X, Windows, and Linux.
- sipXphone - A SIP client for Windows and Linux
- PhoneGaim is free software for SIP, based on Gaim.
- X-Lite is a popular Windows and Linux softphone.
- Kphone is a free Linux softphone using Qt libraries.
- Linphone is a free Linux softphone using GTK libraries
- Pingtel SIP soft phone (single user, enterprise, or OEM version for embedding. OEM version is embedded in Earthlink Vling service.)
- SJPhone is a free SIP client that runs on Mac OS X, Windows, PocketPC and Linux
- Jajah is a free Softphone that runs on Windows, Mac OS X and Linux is coming soon.
- OpenWengo is an open source SIP client that runs on Windows and Linux. Mac OS X and PocketPC is coming soon.
- SFLPhone is an open source SIP client that runs
- ZAP is is an open source, XUL-based SIP client
- SIP Test tools:
- SFTF: SIP Forum User Agent Test Framework (open source; written by the SIP Forum).
- SIPp: An Open Source SIP test tool (functional and performance tests).
- Sipsak: sipsak is a command line tool which can send simple requests to a SIP server (Open Source).
- bandwidth VoIP Test: Bandwidth.com offer a tool to test the SIP ports on your network
See also
External links
- ONsip.org – Open Source community dedicated to VoIP solutions based on SIP
- Page of Henning Schulzrinne's Co-author of the SIP Internet standards-track
- Session Initiation Protocol (SIP) and Its Functions
- The SIP Forum page
- The SIP Specifications (RFCs):
- RFC 3853: S/MIME Advanced Encryption Standard (AES) Requirement for the Session Initiation Protocol (SIP)
- RFC 3702: Authentication, Authorization, and Accounting Requirements for the Session Initiation Protocol (SIP)
- RFC 3261: SIP: Session Initiation Protocol html version
- RFC 3515: The Session Initiation Protocol (SIP) Refer Method
- Packetizer's VoIP Protocol Information
- VoIP User Community Resource
- 3GPP - The Third Generation Partnership Project
- VoIP Forum and General Information
- SIP Broker - Open SIP network peering service
- SIP Security