Session Initiation Protocol (SIP)
SIP Extensions and Enhancements
n RFC 2543, March 1999
n
RFC 3261, June 2002
n
SIP has attracted enormous interest.
n
Traditional telecommunications companies, cable TV providers and ISP
n A large number of extensions to SIP have been proposed.
n
SIP will be enhanced considerably before it
becomes an Internet standard.
183 Session Progress
n It has been included within the revised SIP spec.
n
To open one-way audio path from called end to calling end
n
Enable in-band call progress information to be transmitted
n
Tones or announcements
n
Interworking with SS7 network
n
ACM (Address Complete Message)
n
For SIP-PSTN-SIP connections
The Supported Header
n The Base RFC 2543
n
The Require: Header
n
In request (client ->server)
n
A client indicates that a server must support certain extension.
n
The Unsupported Header
n
In response (server -> client)
n
420 (bad extension)
n
A cumbersome way of determining what extensions a server does or does not support
n The Supported: Header (RFC 3261)
n
May be included in OPTIONS request
n
Associated with the Supported: header is 421 (extension required) response.
n
Can also be included in responses
SIP INFO Method
n Be specified in RFC 2976
n For transferring information during an ongoing session
n
DTMF digits, account-balance information, mid-call signaling information (from PSTN)
n
Application-layer information could be transferred in the middle of a call.
n A powerful, flexible tool to support new
services
SIP Event Notification
n Several SIP-based
applications have been devised based on the concept of a user being informed of some event.
n
E.g., Instant messaging
n RFC 3265 has addressed the issue of event
notification.
n
SUBSCRIBE and NOTIFY
n
The Event header
Subscriber Notifier
SUBSCRIBE
200 OK NOTIFY 200 OK
NOTIFY 200 OK
a b c d e f
Current state information
Updated state information
SIP for Instant Messaging
n The IETF working group – SIP for Instant
Messaging and Presence Leveraging Extensions (SIMPLE)
n A new SIP method – MESSAGE
n
This request carries the actual message in a message body.
n
A MESSAGE request does not establish a SIP dialog.
Daniel<sip:Collins@station1.work.com>
Boss<sip:Manager@pc1.home.com> sip:Server.work.com
MESSAGEsip:Collins@work.com SIP/2.0 Via: SIP/2.0/UDP pc1.home.net;
branch=z9hG4bK7890 Max-Forwards: 70
From: Boss<sip:Manager@home.net>
To: Daniel<sip:Collins@work.com>
Call-ID: 123456@pc1.home.net CSeq: 1 MESSAGE
Content-Type: text/plain Content-Length: 19
Content-Disposition: render Hello. How are you?
MESSAGE sip:Collins@work.com SIP/2.0 Via: SIP/2.0/UDP server.work.com;
branch=z9hG4bKxyz1
Via: SIP/2.0/UDP pc1.home.net; branch=z9hG4bK7890 Max-Forwards: 69
From: Boss<sip:Manager@home.net>
To: Daniel<sip:Collins@work.com>
Call-ID: 123456@pc1.home.net CSeq: 1 MESSAGE
Content-Type: text/plain Content-Length: 19
Content-Disposition: render Hello. How are you?
SIP/2.0 200 OK
Via: SIP/2.0/UDP server.work.com;
branch=z9hG4bKxyz1
Via: SIP/2.0/UDP pc1.home.net; branch=z9hG4bK7890 From: Boss<sip:Manager@home.net>
To: Daniel<sip:Collins@work.com>
Call-ID: 123456@pc1.home.net CSeq: 1 MESSAGE
Content-Length: 0 SIP/2.0 200 OK
Via:SIP/2.0/UDP pc1.home.net;branch=z9hG4bK7890 From: Boss<sip:Manager@home.net>
To: Daniel<sip:Collins@work.com>
Call-ID: 123456@pc1.home.net CSeq: 1 MESSAGE
Content-Length: 0 ab
c d
Daniel<sip:Collins@station1.work.com>
Boss<sip:Manager@pc1.home.com> sip:Server.work.com
MESSAGE sip:Manager@home.net SIP/2.0 Via: SIP/2.0/UDP station1.work.com;
branch=z9hG4bK123 Max-Forwards: 70
From: Daniel<sip:Collins@work.com>
To: Boss<sip:Manager@home.net>
Call-ID: 456789@station1.work.com CSeq: 1101 MESSAGE
Content-Type: text/plain Content-Length: 22
Content-Disposition: render I’m fine. How are you?
MESSAGEsip:Manager@home.net SIP/2.0
Via: SIP/2.0/UDP server.work.com; branch=z9hG4bKabcd
Via: SIP/2.0/UDP station1.work.com; branch=z9hG4bK123
Max-Forwards: 69
From: Daniel<sip:Collins@work.com>
To: Boss<sip:Manager@home.net>
Call-ID: 456789@station1.work.com CSeq: 1101 MESSAGE
Content-Type: text/plain Content-Length: 22
Content-Disposition: render I’m fine. How are you?
SIP/2.0 200 OK
Via: SIP/2.0/UDP server.work.com; branch=z9hG4bKabcd
Via: SIP/2.0/UDP station1.work.com; branch=z9hG4bK123
From: Daniel<sip:Collins@work.com>
To: Boss<sip:Manager@home.net>
Call-ID: 456789@station1.work.com CSeq: 1101 MESSAGE
Content-Length: 0
SIP/2.0 200 OK
Via: SIP/2.0/UDP station1.work.com;
branch=z9hG4bK123
From: Daniel<sip:Collins@work.com>
To: Boss<sip:Manager@home.net>
Call-ID: 456789@station1.work.com CSeq: 1101 MESSAGE
Content-Length: 0 ef
g h
SIP REFER Method
n To enable the sender of the request to instruct the receiver to contact a third party
n
With the contact details for the third party included within the REFER request
n
For Call Transfer applications
n The Refer-to: and Refer-by: Headers
n The dialog between Mary and Joe remains established.
n
Joe could return to the dialog after consultation with Susan.
sip:Mary@station1.work.co
m sip:Joe@station2.work.com sip:Susan@station3.work.com
REFER sip:Joe@station2.work.com SIP/2.0
Via: SIP/2.0/UDP station1.work.com; branch=z9hG4bK789
Max-Forwards: 70
From: Mary<sip:Mary@work.com>; tag=123456 To: Joe<sip:Joe@work.com>; tag=67890
Contact: Mary<Mary@station1.work.com>
Refer-To: Sussan<sip:Sussan@station3.work.com>
Call-ID: 123456@station1.work.com CSeq: 123 REFER
Content-Length: 0 SIP/2.0 202 Accepted
Via: SIP/2.0/UDP station1.work.com; branch=z9hG4bK789
From: Mary<sip:Mary@work.com>; tag=123456 To: Joe<sip:Joe@work.com>; tag=67890
Contact: Joe<Joe@station2.work.com>
Call-ID: 123456@station1.work.com CSeq: 123 REFER
Content-Length: 0
INVITE sip:Susan@station3.work.com SIP/2.0
Via: SIP/2.0/UDP station2.work.com; branch=z9hG4bKxyz1
Max-Forwards: 70
From: Joe<sip:Joe@work.com>; tag=abcxyz To: Susan<sip:Susan@station3.work.com>
Contact: Joe<Joe@station2.work.com>
Call-ID: 67890@station2.work.com CSeq: 567 INVITE
Content-Type: application/sdp Content-Length: xx
Content-Disposition: session {message body}
a
b c
sip:Mary@station1.work.co m
sip:Joe@station2.work.com sip:Susan@station3.work.com
e
f g
SIP/2.0 200 OK
Via: SIP/2.0/UDP station2.work.com; branch=z9hG4bKxyz1
From: Joe<sip:Joe@work.com>; tag=abcxyz
To: Susan<sip:Susan@station3.work.com>; tag=123xyz Call-ID: 67890@station2.work.com
CSeq: 567 INVITE
Content-Type: application/sdp Content-Length: xx
Content-Disposition: session {message body}
ACKsip:Susan@station3.work.com SIP/2.0
Via: SIP/2.0/UDP station2.work.com; branch=z9hG4bKxyz1
Max-Forwards: 70
From: Joe<sip:Joe@work.com>; tag=abcxyz
To: Susan<sip:Susan@station3.work.com>; tag=123xyz Call-ID: 67890@station2.work.com
CSeq: 567 ACK Content-Length: 0 NOTIFY sip:Mary@station1.work.com SIP/2.0
Via:SIP/2.0/UDP station2.work.com;branch=z9hG4bK123
Max-Forwards: 70
To: Joe<sip:Joe@work.com>; tag=67890
From: Mary<sip:Mary@work.com>; tag=123456 Contact: Joe<Joe@station2.work.com>
Call-ID: 123456@station1.work.com CSeq: 124 NOTIFY
Content-Type: message/sipfrag;version=2.0 Content-Length: 15
SIP/2.0 200 OK
Via: SIP/2.0/UDP station2.work.com; branch=z9hG4bK123
To: Joe<sip:Joe@work.com>; tag=67890
From: Mary<sip:Mary@work.com>; tag=123456 Call-ID: 123456@station1.work.com
CSeq: 124 NOTIFY Content-Length: 0 h
Reliability of Provisional Responses [1/2]
n Provisional Responses
n
100 (trying), 180 (ringing), 183 (session in progress)
n
Are not answered with an ACK
n If the messages is sent over UDP
n
Unreliable
n Lost provisional response may cause problems when interoperating with other network
n
180, 183 → Q.931 alerting or ISUP ACM
n
To drive a state machine
n
E.g., a call to an unassigned number
n
ACM to create a one-way path to relay an announcement such as
“The number you have called has been changed”
n
If the provisional response is lost, the called might left in the dark
and not understand why the call did not connect.
n
RFC 3262
n
Reliability of Provisional Responses in SIP
n
Supported: 100rel
n
RSeq Header
n
Response Seq
n
+1, when retxm
n
RAck Header
n
Response ACK
n
In PRACK
n
RSeq+CSeq
n
PRACK
n
Prov. Resp. ACK
n
Should not
n
Apply to 100
n
Default timer value = 0.5 s
Reliability of Provisional Responses [2/2]
The SIP UPDATE Method
n To enable the modification of session
information before a final response to an INVITE is received
n
The dialog is in the early state (An INVITE that receives a 183 response that includes a message body)
n
The message body might establish a media stream from callee to caller for sending a ring tone or music while the called party is alerted.
n
The UPDATE method can be used to change the codec
n Another important usage is when reserving
network resources as part of a SIP session
establishment.
Integration of SIP Signaling and Resource Management [1/2]
n
Ensuring that sufficient resources are available to handle a media stream is very important.
n
To provide a high-quality service for a carrier-grade network
n
The signaling might take a different path from the media.
n
The successful transfer of signaling messages does not imply to a successful transfer of media.
n
Assume resource-reservation mechanisms are available (Chapter 8)
n
On a per-session basis
n
End-to-end network resources are reserved as part of session establishment.
n
On an aggregate basis
n
A certain amount of network resources are reserved in advance for a certain type of usage.
n
Policing functions at the edge of the network
Integration of SIP Signaling and Resource Management [2/2]
n Reserving network
resources in advance of altering the called user
n A new draft –
“Integration of Resource Management and SIP”
n
By using the provisional responses and UPDATE method
n
By involving extensions to
SDP
Example of e2e Resource Reservation [1/2]
n SDP for initial INVITE
v=0 o=userA 45678 001 IN IP4 stationA.network.com s= c=IN IP4 stationA.nework.com
t=0 0
m=audio 4444 RTP/AVP 0 a=curr: qos e2e none
a=des: qos mandatory e2e sendrecv
n SDP for 183 response
v=0 o=userB 12345 001 IN IP4 stationB.network.com s= c=IN IP4 stationB.nework.com
t=0 0
m=audio 6666 RTP/AVP 0 a=curr: qos e2e none
a=des: qos mandatory e2e sendrecv
a=conf: qos e2e recv
Example of e2e Resource Reservation [2/2]
n SDP for UPDATE
v=0 o=userA 45678 001 IN IP4 stationA.network.com s= c=IN IP4 stationA.nework.com
t=0 0
m=audio 4444 RTP/AVP 0 a=curr: qos e2e send
a=des: qos mandatory e2e sendrecv
n SDP for 200 response
v=0 o=userB 12345 001 IN IP4 stationB.network.com s= c=IN IP4 stationB.nework.com
t=0 0
m=audio 6666 RTP/AVP 0 a=curr: qos e2e sendrecv
a=des: qos mandatory e2e sendrecv
Example of Aggregate- based Reservation
n
Each participant deals with network access permission at its own end.
n
Mandatory means that the session can not continue unless the required resources are
definitely available.
n
None is the initial situation and indicates that no effort to
reserve resources has yet taken place.
n
Response 580 (precondition
failure)
Usage of SIP for Features/Services [1/2]
n Call-transfer application (with REFER method)
n Personal Mobility through the use of registration
n One number service through forking proxy
n Call-completion services by using Retry-After: header
n To carry MIME content as well as an SDP description
n
To include a piece of text, an HTML document, an image and so on
n SIP address is a URL
n
Click-to-call applications
n The existing supplementary services in traditional telephony
n
Call waiting, call forwarding, multi-party calling, call screening
Usage of SIP for Features/Services [2/2]
n
Proxy invokes various types of advanced feature logic.
n
Policy server (call-routing, QoS)
n
Authentication server
n
Use the services of an IN SCP over INAP
n
The network might use the Parley Open Service Access (OSA) approach, utilizing application programming
interfaces (APIs) between the nodes.
Call Forwarding
n
On busy
n
486, busy here
n
With the same To, User 3 can recognize that this call is a forwarded call,
originally sent to User 2.
n
Contact: header in 200 response
n
Call-forwarding-on-no- answer
n
Timeout
n
CANCEL method
Consultation Hold
n A SIP UPDATE
n User A asks User B a
question, and User B need to check with User C for the correct answer.
n If User C needs to talke to User A directly, User B
could use the REFER
method to transfer the
call to User C.
PSTN Interworking
n
PSTN Interworking
n
A SIP URL to a telephone number
n
A network gateway
n
Seamless interworking between two different
protocols is not quite easy.
n
One-to-one mapping between these protocols
n
PSTN – SIP – PSTN
n
MIME media types
n
For ISUP
n
SIP for Telephony (SIP-T)
n
The whole issue of
interworking with SS7 is
fundamental to the success
of VoIP in the real world.
Interworking with H.323
n SIP-H.323 interworking gateway
Summary
n The future for signaling in VoIP networks
n
Simple, yet flexible
n
Easier to implement
n
Fit well with the media gateway control protocols
n
Coexisting with PSTN
n SIP is the protocol of choice for the evolution of third-generation wireless networks.
n
SIP-based mobile devices will become available.
n