Session Initiation Protocol (SIP)

fishnibblersspongySoftware and s/w Development

Dec 14, 2013 (3 years and 10 months ago)

88 views

Session Initiation Protocol

(SIP)

Stephen Jones


1/25/01

Organization: G061

Project: 51MSR81G

What is SIP?


A simple, powerful protocol that allows users to initiate
interactive sessions (audio/video/VoIP)


An alternative approach to the H.323 protocol


Advantages:

-
Flexible

-
Scalable

-
Easy to implement

-
Interoperable

-
Extensible

Where did SIP come from?


Began as a component of the Mbone, a multicast network that
provides dynamic content across the Internet.

-
Needed to be interoperable with other protocols, including
Session Description Protocol (SDP), Real
-
Time Streaming
Protocol (RTSP), and Session Announcement Protocol
(SAP)


Interest in VoIP provided impetus to complete specification in
1998.


Became an official IETF standard, RFC 2543, in March 1999.


Tri
-
annual “bake
-
offs” ensure compatibility between different
implementations

What does SIP do?


Handles the establishment of user sessions

-
Does not define the actual session information

-
Locate users in a very dynamic environment


Delivers a description of the session

-
Uses common MIME extensions

-
Can negotiate a common format


Allows users to change/control/terminate sessions

Example 1


User 1 requests a session, passing characteristics to other
users


User 2 accepts invitation, modifying session as necessary


Session begins


Either user signals the other if changes are necessary, or
when terminating the session

IP Network

SIP Signaling

Media Stream

User 1

User 2

Network Entities


User Agent:

-
User Agent Client (sends requests)

-
User Agent Server (returns responses)

-
Usually combined on a user’s client machine


Redirect Server

-
Accepts SIP requests, translates them to new addresses,
and returns these values


Proxy Server

-
Acts like a proxy server for web accesses


Registrar

-
Accepts REGISTER requests. Typically combined with a
Proxy or Redirect server

Example 2


Steve registers with the local SIP server (Not shown)


Deb invites Steve<sip:srjones@mitre.org> (Found using DNS SRV Resource
Records)


Server responds with a redirect message


machine1 ACKs server response and resends to machine2


Steve receives request and replies with OK to join session

Deb <sip:deb@machine1.mitre.org>

<sip:server.mitre.org>

Steve <sip:srjones@machine2.mitre.org>

1. INVITE

2. Resp. 302

3. ACK

4. INVITE

5. Resp. 200

Points about Example 2


SIP URL’s similar to email addresses that use
mailto:

-
sip:srjones@mitre.org

-
sip:+1
-
781
-
271
-
2517@mitre.org; user=phone



SIP is a request
-

response protocol

-
Small set of well
-
defined Request messages (INVITE,
REGISTER, CANCEL, ACK, OPTIONS, BYE)

-
Responses include status code that may define whether
further interactions required

-
Allows protocol to use either UDP or TCP

-
Handles timing and retransmit issues


Users can be addressed by a common name

-
No matter which machine the recipient is on, they can be
reached at their address

-
Internet scalable

Message Structure


Structure of SIP messages are text
-
based and based on
HTTP:



start line


message
-
header line



message
-
header line







message
-
header line


<CRLF>


message
-
body


Example messages

<sip:deb@machine1.mitre.org>

<sip:srjones@machine2.mitre.org>

INVITE sip:srjones@machine2.mitre.org

Via: SIP/2.0/UDP machine1.mitre.org

From: <sip:deb@machine1.mitre.org>

To: <sip:srjones@machine2.mitre.org>

Call
-
ID: 123456@machine1.mitre.org

CSeq: 1 INVITE

Subject: Big meeting

Content
-
Length: 125

Content
-
Type: application/sdp


(SDP message body)

SIP/2.0 180 Ringing

Via: SIP/2.0/UDP machine1.mitre.org

From: <sip:deb@machine1.mitre.org>

To: <sip:srjones@machine2.mitre.org>

Call
-
ID: 123456@machine1.mitre.org

Cseq: 1 INVITE

Content
-
Length: 0

SIP/2.0 200 OK

...

Sample Implementation
-

A Conferencing Service


User is automatically registered upon starting tool. They will
be found through an extension to DNS which will forward sip:
calls to the appropriate SIP server


Active tools are selected for each area (audio, video, VoIP
phone, etc) by clicking the appropriate button, which cycles
through choices (e.g. desktop chat tool or Palm chat tool)


A prompt (with an appropriate text message) will be displayed
when someone attempts to call


The
Call

button will allow for quick lookup of users (LDAP)
and tools users wish to use


When iconified, the tool goes into “User Busy” mode


Services That SIP Can Provide


Call Hold


Consultation Hold


Unattended Transfer


Call forward on Busy/No Answer/Unconditional


3
-
Way Conference


Find
-
Me


Incoming/Outgoing Call Screening


Call Waiting

Dynamic Capabilities Provided By SIP


Call Processing Language (CPL)

-
XML scripts that may be created by end users and
uploaded to SIP servers for configurable call setup


SIP CGI

-
Provide information in the same manner as HTTP CGI


SIP Servlets

-
Again work the same as the HTTP version

-
Can be hosted in end user devices as well as servers

SIP vs. H.323

SIP (IETF)


A piece of a communications
system


Flexible
-

can be combined
with other protocols


Designed as a WAN protocol


Many concepts derived from
HTTP


Extremely easy to implement


Fully integrated with other
Internet protocols (email, web)



H.323 (ITU)


A complete, integrated suite of
protocols for communications


Provides all protocols it
requires


Designed as a LAN protocol


Many components derived
from other ITU protocols


Very complicated to
implement

Interoperability with Other Services


Internet
-
PSTN telephony

-
Use of phone numbers allows VoIP phones and standard
PSTN phones to contact each other

-
Gateways already exist to do this


SIP
-
H.323 Internetworking

-
Internet Draft has been prepared to address this capability

-
Lucent PacketStar IP


SIP
-
WAP interoperability

-
Proxy server can pass information between networks


SIP
-
Instant Messaging/Presence Awareness

-
Extensions to SIP have been proposed to allow IMPP
interoperability


SIP
-
SOAP (Simple Object Access Protocol)

-
Internet Draft has been prepared

Potential Problems for SIP


Shortage of IPv4 addresses and growing use of Network
Address Translators (NAT)

-
SIP carries the IP addresses and ports of the session to
be established

-
NATs may cause these sessions to be un
-
routable

-
This effects other protocols as well (H.323)


Same problem can exist with Firewalls


Relatively new

Future Directions


Will see more implementations of the protocol

-
Bake
-
offs have increased in participation significantly

-
SIP initiative within JAIN


Members: AT&T, British Telecom, Cisco, dynamicsoft,
Ericsson, & Sun


New extensions being added

-
RFC 2543 currently being revised

-
New methods, headers, and responses have been
proposed

-
Investigating management of SIP resources through
SNMP

-
Exploring QoS issues in determining call setup

Resources


Hennig Schulzrinne’s page:
http://www.cs.columbia.edu/~hgs/sip


Sip Forum: http://www.sipforum.org


IETF charter: http://www.ietf.org/html.charters/sip
-
charter.html


The SIP Center: http://www.sipcenter.com