What SIP Is Not
The virtual explosion in proposals to extend the SIP protocol to solve various
problems has resulted in much discussion about whether a particular application
is well suited to SIP or not. Some of the results of this discussion are summa-
rized here. A more detailed discussion of this is found in the SIP extension
guidelines document [1].
SIP is a protocol for initiating, modifying, and terminating interactive ses-
sions. SIP is not a protocol for device control or remote procedure calls (RPCs).
It is not a transport protocol—it can carry small message body attachments,
but not large chunks or streams of data. SIP is not a resource reservation pro-
tocol, since the path of SIP messages does not generally reflect the path of the
resulting media. SIP is also not a PSTN replacement protocol—its approach is
very different from telecommunications call models and telecommunication
signaling protocols. SIP can interwork with the PSTN through gateways, but
this is not the primary function of SIP. SIP is also not a session-management
protocol, but only a session-setup protocol.
SIP is also not a VoIP protocol, although VoIP is one possible service that can
be implemented over a SIP-enabled network. SIP is purely a signaling protocol
and makes no specification on media types, descriptions, services, and so on.
This is in comparison to a VoIP umbrella protocol such as H.323, which speci-
fies all aspects of signaling, media, features, services, and session control, sim-
ilar to the other ISDN family of protocols from which it is derived.
Introduction to SIP
SIP is a text-encoded protocol based on elements from the HyperText Trans-
port Protocol (HTTP) [2], which is used for web browsing, and also the Simple
Mail Transport Protocol (SMTP) [3], which is used for e-mail on the Internet.
SIP was developed by the IETF Multiparty Multimedia Session Control
(MMUSIC) WG as part of the Internet Multimedia Conferencing Architecture
[5] but has since gained its own SIP WG within the IETF. As the name implies,
the primary function of SIP is session initiation (setup), but it also has other
important uses and functions, such as notification for presence and short mes-
saging. SIP is used for peer-to-peer communications—that is, those in which
both parties in the call are considered equals, there is no master or slave. How-
ever, SIP uses a client-server transaction model similar to HTTP, as described
in the next section. A SIP client generates a SIP request. A SIP server responds
to the request by generating a response.
The growing set of SIP request types (known as methods) are shown in Table
6.1. The first six are defined in RFC 3261 [6], the base SIP specification. The rest
are extensions to SIP and are defined in separate RFCs or Internet drafts. New
methods are continually being proposed to add additional functionality to the
protocol.
102 Chapter 6