History |
- Session Initiation Protocol (SIP) is an RFC of the Internet Engineering Task Force (IETF)
- First started in 11999 as RFC 2543 (Obsolete)
- A second verssion in 2002 as RFC 3261
- -http://www.zvon.org/tmRFC/RFC3261/Output/index.html-
- Proposed nest RFC 3265
|
|
SIP |
| "Session Initiation Protocol |
| An application layer signaling protocol that defines initiation, modification and termination of interactive, multimedia communication sessions between user" |
|
| |
Another VOiP Protocol? |
-
Simplifies access, interfaces, and applications allowing powerful new service combinations
-
Facilating a platform which is of vendor independentCritical enabler for Circuit to Packet convergence, delivaring on the Servise Intelligent Architecture vision
-
Growing interest in the industry
-
Microsoft adopted SIP as primary communication protocol in Window XP
-
Various standart bodies have incorporated SIP into their plans:
-
Most competitors are incorperating SIP intoproduct plans
-
Some customer are operating or planning commercially available SIP offering for end users
-
SIMPLE - a SIP based protocol for Instant Messaging
-
MSN already implemented (MSN 5.0)
-
AOL to follow
|
|
|
| |
SIP Overview (1) |
|
| |
SIP Overview (2) |
-
Strength is it's simplicity and basic assumptions
-
-
Scalability
-
Functionality such as proxying, redirection, locarion, or registration can reside in different physical server.
-
Distributed functionality allows new processes to be added without affecting other components.
|
-
|
|
|
| |
SIP Overview (3) |
-
Mobility
-
Support user mobility by proxying and redirecting requests to auser's current location
-
The user can be using a PC at work, PC at home, wireless phone, IP phone, or regular phone
-
Users must register their current location
-
Proxy servers will forward calls to the user's current location
-
Example mobality applications include presence and call forking
|
|
|
| |
Integration with IETF Protocol |
|
| |
Related Protocol |
|
| |
SIP Capabilities (1) |
-
Determine location of target points-Support address resolution, name mapping, call redirection
-
Determine media capabilities - SIP uses Session Description Protocol (SDP) for this
-
Determine availability - returns a message why the remote party cannot ba contacted
-
Establish a session between end points - also supports mid call changes, changes of media characteristic or codec
-
Handles termination of calls - transfer of calls
|
|
| |
SIP Capabilities (2) |
|
| |
SIP Architecture |
|
| |
SIP Components |
-
SIP User Agents
-
User Agent Clients (UAC)
-
User Agent Service UAS)
|
-
SIP Servers
-
Proxy server
-
Location server
-
Redirect server
-
Registrar server
|
|
|
| |
User Agent (1) |
Consists of UAC aprt and a UAS part |
-
UAC - An entity that initiates a call
-
UAS - An entity that receives a call
-
UAC is the only SIP component that can create an original request
-
Phones - acts as UAC or UAS
-
Implemented in hardware or Software Components
-
Includes softphones, sip ip phones, gateways
|
|
| |
User Agent (2) |
-
Gateways - provide call control, mainly translation function between SIP conferencing end points and other terminal types
- Includes a translation between translation formats
- Translation between codecs
|
|
|
| |
User Agent (3) |
|
| |
User Agent (4) |
|
| |
| SIP Distributed Architecture |
|
| |
Proxy Server |
-
Acts Both as a Server and Client
-
Receives SIP message, forwards to next SIP server
-
Can perform function such as Authentication, Autherisation, network access control, routing
-
Requests are servised internally or by passing them on, possibly after translation, to other servers
-
Interprets, rewrites or translates a request message before forwarding it.
|
|
| |
Redirect Server |
-
Provides information about next hop to the user
-
Maps address to zero or more real addresses
-
Does not accept or terminate calls
-
Does not initiate its own SIP request
-
Generates SIP responses to locate other entities
|
|
| |
Registerar Server |
-
Accept registeration requests from users
-
Maintain user's whereabouts at a Location Server
-
Typically co-located with a proxy server or a redirect server andmay offer location services
-
may also support authentication
|
|
| |
Location Server |
- Used by a SiP redirect of proxy server to abtain information about a called party's possible location (s)
|
|
|
Similar Domain Communication |
|
| |
Dissimilar Domains |
|
| |
Registering Process |
-
Registeration links a user to their service provider
-
First a REGISTER message is sent looking for a registrar server
-
Registrar finds user ID with IP
-
These registrations are not permenant
-
Registrations expires within minutes but continuously renewed
|
|
| |
Inviting Users |
|
| |
Negotiating terms and conditions |
-
Need to pass type of session
-
Carries this information as attachment
-
Concern only with the delivery of message and not the content
-
To carry this information, SIP uses SDP (Session Description Protocol)
-
Upon receiving an INVITE message, a party can either accept or reject invitation
|
| |
Establishing a media stream |
-
After accepting invitation, inviting party see or hear an indication to indicate the called party has been located
-
This may be a ring tone or a graphical indication
-
Generally generated by the end users device
-
In voice calls media stream uses RTP (Real time Transmission Protocol RFC 1889)
|
|
| |
Termination |
|
| |
SIP Message - Method and Responses |
-
SIP Methods:
-
INVITE - Initiates a call by inviting user to participate in session
-
ACK - Confirms that the client has received a final response to an INVITE request
-
BYE - Indicates termination of the call
-
CANCEL - Cancel a pending request
-
REGISTER - Registers the user agent
-
OPTION - used to query the capabilities of a server
-
INFO - Used to carry out-of-bound information, such as DTMF digits
|
|
-
SIP Responses
-
1xx - Informational Message
-
2xx - Successful Responses
-
3xx - Rediction Responses
-
4xx - Request Failure Responses
-
5xx - Server Failure Responses
-
6xx - Global Failure Responses
|
|
|
| |
SIP Responses (1) |
Informational |
Redirection |
-
100Trying
-
180 Ringing
-
181 Call forwarded
-
182 Queued
-
183 Session Progress
|
-
300 Multiple Choices
-
301 Moved Perm
-
302 Moved Temp
-
380 Alternative Serv
|
|
| |
SIP Responses (2) |
Request Failure |
Server Failure |
-
400 Bad Request
-
401 Unauthorized
-
403 Forbidden
-
404 Not Found
-
405 Bad Method
-
415 Unsupp. Content
-
420 Bad Extensions
-
486 Busy Here
|
-
504 Timeout
-
503 Unavailable
-
501 Not Implemented
-
500 Server Error
|
|
| |
SIP Responses (3) |
Global Failure |
-
600Busy Everwhere
-
603 Decline
-
604Doesn't Exist
-
606 Not Acceptable
|
|
| |
SIP Addressing |
|
| |
DNS SRV (RFC 2782) Resource Records |
-
SIP clients need to reach SIP servers for purposes of registration and call control
-
Redundant servers to handle calls if primary SIP server is unavailable
-
Can meet these requirement by using DNS SRV Resource Records
-
Available in BIND 8.X and up releases
|
|
| |
SRV Resource Records |
-
Format
_service._protocol SRV Priority Weight Port hostname |
-
Example
_sip._udp |
SRV 0 0 5060 |
gateway.mydomain.com |
_sip._tcp |
SRV 0 0 5060 |
sip-server.cs.columbia.edu |
|
SRV 1 0 5060 |
backup.ip.provider.net |
_sip._udp |
SRV 0 0 5060 |
sip-server.cs.columbia.edu |
|
SRV 1 0 5060 |
backup.ip.provider.net |
allows priority (for backup) and weight (for load balancing)
|
|
| |
Zone file configuration |
; zone 'mydomain.com' last serial 2004071308 |
$ORIGIN com |
mydomain 86400 |
IN |
SOA |
gateway.mydomain.com |
|
postmaster.mydomain.com |
|
|
2004111908 ; Serial |
|
|
36000 ; Refresh |
|
|
900 ; Retry |
|
|
36000 ; Expire |
|
|
288000 ; Minimum |
IN |
NS |
gateway.mydomain.com |
IN |
NS |
ns3.backupdomain.com |
IN |
MX |
1 gateway.mydoamin.com |
IN |
A |
192.168.0.1 |
; If we place the SRV record above the next line it fails to load$ORIGIN fitawi.com |
_sip._udp |
|
SRV |
0 0 |
5060 |
gateway.mydomain.com |
gateway |
IN |
A |
|
|
192.168.0.1 |
www |
IN |
CNAME |
|
|
gateway.mydomain.com |
|
|
|
| |
| |
|
| |
SIP Headers |
-
Much of the syntax and semantics are borrowed from HTTP
-
Looks more like HTTP message - message formatting, header and MIME support
-
Example SIP INVITE header:
INVITE sip : 5120@192.168..36.180 SIP/2.0 |
Via : SIP/2.0.UDP 192.168.6.21:5060 |
From: sip:5121@192.168.6.21 |
To: <sip:5120@192.168.36.180> |
Call-ID: c2943000-e0563-2alce-2e323931@192.168.6.21 |
CSeq:1 INVITE |
Expires: 180 |
User-Agent : Cisco IP Phone/ Rev. 1/SIP enabled |
Accept: application/sdp |
Contact: sip:5121@192.168.6.21:5060 |
Content-Type: application/sdp |
|
|
| |
Breakdown of header (1) |
-
INVITE :
-
message type
-
Address of called party
-
SIP versi on used by caller
-
Semicolon indicates s tart of URI para meters
-
Eg:- user=phone indicates call is for a phone number and not a SIP IP address
-
INVITE sip:5120@192.168.36.180 SIP/2.0
|
|
|
| |
Breakdown of header (2) |
-
Via :
-
History of message's path through net work(s)
-
Helps to prevent looping and ensures replies route back to originator
-
Indicates the used transport protocol, ip address and port of sender
-
Via : SIP /2.0/UDP 192.168.6.21: 50 6 0
|
|
|
| |
| Breakdown of header (3) |
-
From :
-
A field required in all requests and esponse messages
-
Provides identity of reques's initiator
-
From : sip:5121@192.168.6.21
|
|
|
| |
Breakdown of header (4) |
|
| |
Breakdown of header (5) |
-
Call-ID :
-
Provides a globally unique identifier to distinguish specific invitations or multiple registrations of the sameuser
-
Typically uses a 32-bit cryptographically random numbers
-
Call-ID : c2943000-e0563-2a1ce-2e323931@192.168.6.21
|
|
|
| |
Breakdown of header (6) |
-
CSeq or command sequence :
-
Needed in both request messages as well as response messages
-
Need to increment this when a user with the same Call-ID wants to send different SIP methods or content
-
When sending responses to requests, CSeq should be the same
-
CSeq : 1 INVITE
|
|
|
| |
Breakdown of header (7) |
|
| |
Simplified SIP Call Setup and Tear down |
|
| |
Feature Creation |
|
| |
Call Processing Language |
|
|
|