Untitled Document
 
 
 
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)
  • ASCII based, signalling protocol
  • Analogous to HTTP messages
  • Works independent of the underlying network transmission mechanism to:
    • Establish a session
    • Maintain a session
    • Modify and Terminate a session
 
SIP Overview (2)
  • Strength is it's simplicity and basic assumptions
    • Component reuse
      • A child of SMTP and HTTP
      • SIP also uses MIME to carry extra information
      • Uses URI Eg: sip:lakmal@sip.org
    • 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.
    • Interoperability
      • An open standart
      • Can implement to communicate with other SIP based products
 
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
  • SIP forms only part of an overall IP telephony system
  • Other IETF protocol standards are used to build a fully functioning VoIP system.
  • example:
    • RSVP- to reserve network resources
    • RTP (Real Time Transport Protocol)- to transport real time data
    • RTSP (Real Time Streaming protocol)- for controlling delivery of streaming media
    • SAP (Session Advertisement Protocol)- for advertising multimedia session via multicast
 
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)
  • Permits interaction between devices via sidnalling messages
  • these messages can :
    • Register a user with a system
    • Invite a users to join an interactive session
    • Negotiating the terms and conditions of session
    • Establish a media stream between 2 or more end points
    • terminate a session
 
SIP Architecture
  • A distributed client server architecture
  • Different servers to handle
  • Hence load balancing
  • Redundancy
 
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
  • Need to be registered user
  • Send INVITE message to one or more devices / users
  • INVITE has many forms of addressing :
    • E.164 phone numbers
    • Direct dialed IP addresses
    • SIP URLs
 
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
  • Device hangs up first issues a BYE message to the other device
  • Tear down the media stream and make way both ends to create or receive future service
 
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
      • 180 ringing
    • 2xx - Successful Responses
      • 200 OK
    • 3xx - Rediction Responses
      • 302 Moved Temporarily
    • 4xx - Request Failure Responses
      • 404 Not Found
    • 5xx - Server Failure Responses
      • 503 Service Unavailable
    • 6xx - Global Failure Responses
      • 600 Busy Everywhere
 
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
  • The SIP address is identified by a SIP URL, in the format: user@host
  • Globally accessible address
  • Examples of SIP URLs:
    • sip:hostname@vovida.org
    • sip:hostname@192.168.10.1
    • sip:14083831088@vovida.org
 
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
 
DNS Quarrying
  • dig -t SRV _sip._udp.mydomain.com
  • Example SRVrecords
    • #dig -t srv _sip._udp.cs.columbia.edu
    • #host -v -t srv sip.tcp.cs.columbia.edu
    • #host -v -t srv _sip._udp.cs.columbia.edu
 
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)
  • To :
    • Provides identity of the intended recipient of the request
    • To : <sip :5120@192.168. 36 .180 >
 
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)
  • Content-Type :
    • Provides information about media type of message body
    • Content-Type : application/sdp
 
Simplified SIP Call Setup and Tear down
 
Feature Creation
  • A SIP based system supports rapid feature and service creations
  • Tools
    • Call Processing Language (CPL)–XML based
    • Common Gateway Interface (CG I)
    • SIP-CGI
    • Servlets and Applets
    • JAIN API
      • Enable rapid development of telecommunication products and services for the Java platform
 
Call Processing Language
  • Allow users to create simple Internet telephony services
  • Features:
    • Creatable and editable by simple graphical tools
    • Independent of signalling protocol
    • Safe to run in servers
    • XML like tags
Untitled Document
 
Copyright © XTC Solution 2005-2006 | All rights reserved