People may wonder why I would call the Session Initiation Protocol (SIP) “The Next Frontier.” “The Next Frontier,” conjures up images of spaceships, planets and intergalactic battles. Certainly a communications protocol can’t be that exciting. But, in the spirit of 2007, a year when a telephone can generate enough excitement to get people camping out at strip malls, “The Next Frontier” may not be too much of a stretch to describe a communications protocol.
Why is SIP important? SIP lowers the barriers of entry for developers of communications applications. Signaling protocols traditionally existed at the physical layer, SIP exists at the application layer. That translates into the ability to develop a SIP based application and plug it into a SIP infrastructure without concern to the underlying transport, for example wireless or wire-line. The SIP infrastructure gives the ability to create event driven applications that contact the end user on the device of their preference. In other words, applications using SIP can communicate with an end-user wherever they are, on whatever device they specify, using multiple forms of media (video, voice, and data).
SIP Messaging
SIP is an application level protocol that creates a media session between two or more user agents (UA) – SIP enabled endpoints. SIP is a “rendezvous” protocol, which extends it past signaling and allows a UA to communicate with other UAs in ways that traditional telephony cannot. SIP allows a UA to request information about or provide information to another UA. A UA may range from a SIP phone to a multi-media device, like a laptop or a smart phone.
A SIP Request is used to establish a dialog between two UAs. A SIP Response is a three digit numerical code, with the first digit indicating the class of the response (for example, a success response would be a 2xx response code). A SIP Transaction is a SIP request and the final SIP response to that request.
SIP Messages are similar to an e-mail message with a request Uniform Resource Indicator (URI) as the destination and the body in Multipurpose Internet Mail Extensions (MIME). The header of a SIP message contains information used by the SIP application. The SIP message body supports multiple content types, from plain text and HTML to presence and conferencing state information. To create a dialog, SIP uses the Session Description Protocol (SDP), with one party making an SDP request and the other replying with a SDP answer.
SIP Infrastructure
SIP contains an infrastructure far larger than the UAs that are establishing the session. Devices in this infrastructure may include: the SIP Proxy Server; SIP Redirect Server; and SIP Registrar Servers. It is important to note that all of these devices are logical, meaning that they do not need to be physically deployed as separate processing elements.
The SIP Proxy Server receives a SIP request and forwards the request. A common usage for the SIP proxy server would be for Network Address Translation (NAT) or firewall access control. The SIP Redirect Server receives a SIP request and performs a query, returning the results to the requesting UA. The SIP Registrar Server allows a user to associate a UA with their identity; this is a URI to URI mapping that will be discussed in greater detail in a future posting.
Looking ahead
The purpose of this posting was to get the reader familiarized with the most basic concepts in SIP. Postings in the near future will include: SIP Call Flow; SIP Events; Presence and Network Concerns.