Session Initiation Protocol (SIP)

Home      RTP resources    VoIP resources    SIP RFCs in detail
Tutorials
  | Standards  | Portals Implementations  | Soft Phones | Cisco | Testing Mailing Lists | Products | Links | Books    

SIP Introduction

SIP is an application-layer control protocol that can establish, modify, and terminate multimedia sessions such as Internet telephony calls. SIP can also invite participants to already existing sessions, such as multicast conferences. Media can be added to (and removed from) an existing session. SIP transparently supports name mapping and redirection services, which supports personal mobility - users can maintain a single externally visible identifier regardless of their network location.

SIP should be used in conjunction with other protocols in order to provide complete services to the users. These architectures will include protocols such as the Real-time Transport Protocol (RTP) for transporting real-time data and providing QoS feedback, the Real-Time streaming protocol (RTSP) for controlling delivery of streaming media, the Media Gateway Control Protocol (MEGACO) for controlling gateways to the Public Switched Telephone Network (PSTN), and the Session Description Protocol (SDP) for describing multimedia sessions.

SIP Protocol

Overview of Operation
Definitions
SIP Messages
General User Agent Behavior
Registrations
Initiating a Session
Proxy Behavior
Header Fields
Response Codes
SIP Session Setup Example - Cheat Sheet (download)
SIP Registration Examples - Cheat Sheet (download)

SIP Tutorials

SIP Cookbook - sip.edu
SIP Technical Overview - Avaya
SIP Protocol Overview - Radvision
SIP Tutorial - TEKELEC
Programming SIP - SIP Center
SIP - Lecture slides of Henning Schulzrinne
SIP - Network Sorcery
 
NAT Traversal for Multimedia over IP Services - Newport Networks
SIP, Security and Session Controllers - Newport Networks
Lawful Intercept Overview - Newport Networks
Secure Voice-over-IP by Markus and Christoph
TR/87 Using CSTA for SIP phone UAs - ECMA

Standards

IETF Charters
 
Session Initiation Protocol Core (sipcore)      Drafts (active+expired)     Bugs in RFC/Drafts
Basic Level of Interoperability for SIP Services (bliss)
SIP for Instant Messaging and Presence Leveraging Extensions (simple)
Multiparty Multimedia Session Control (mmusic)
Audio/Video Transport (avt)
Centralized Conferencing (xcon)
Behavior Engineering for Hindrance Avoidance (behave)
Extensible Messaging and Presence Protocol (xmpp)
Peer-to-Peer Session Initiation Protocol (p2psip)
Telephone Number Mapping (enum)
Emergency Context Resolution with Internet Technologies (ecrit)
 
Consortiums
SIP Forum
P2P SIP
VOIPSA - Voice over IP Security Alliance
ENUM Forum
 
RFCs 

Detailed list as per Rosenburg's Hitchhikers guide to SIP

RFC 3261 - SIP: Session Initiation Protocol
RFC 3263 - Locating SIP Servers
RFC 3264 - An Offer/Answer Model with the Session Description Protocol
RFC 4556 - Session Description Protocol
 

Portals

The SIP Center
SIP Technical Portal - Tech Invite
pulver.com - "Voice" of IP Communications
TMCnet - VoIP News and Internet Telephony
VOIP Wiki - www.voip-info.org
TELEPHONY Magazine
VoIP Magazine Online

Implementations

Open Source
Asterisk | The Open Source PBX
FreeSWITCH
Kamailio SIP Server
OpenSIPS Project
SIP server for Windows
Brekeke SIP Server
SIP Express Router
OpenXCAP - Free XCAP server
OpenSBC
Sippy B2BUA
SIPfoundry
The GNU oSIP library
The eXtended osip library
pjsip.org
PartySIP
SIP Express Router
Java SIP
libSRTP - SRTP library
 
Commercial Servers
Avaya
Cisco
Broadsoft
Microsoft OCS
 
 
Commercial Source Code
Aricent
Radvision
M5T
Data Connection
Trillium

Soft Phones

Xlite (xten)
Kapanga Soft Phone
Zoiper Softphone
Windows Messenger - Microsoft
SIP Multimedia PC Client - Nortel
OpenWengo
Express Talk
Sippax
Linphone (Linux)
Twinkle (Linux)

Cisco

SIP - Technology Support
Quality of Service for VoIP
Cisco IOS Voice Configuration Library
Cisco Unified SIP SRST 4.0

Testing

Commercial
Spirent
IXIA
Brix Networks
Empirix
RADCOM
Radvision
Codenomicon
Teltone
GL Communications
 
Test Cases
UNH VoIP - Test Suites
ETSI TS 102 027-2 - Test Suite
TAHI SIP Test Package and Test Scenario
RFC 4475 - SIP Torture Test Messages
 
Tools
SIP swiss army knife - sipsak.org
SIPp test tool
Sipbomber
SIP Forum Test Framework (SFTF)
SIPFlow - sipient.com
Call Flow
PROTOS - SIP Security Testing
VoIPER - VoIP Fuzzing Tool
 
SIP Test Tools Overview
VoIP Security Tool List - VoIPSA
TestYourVoIP.com
VoIPTroubleshooter.com
How To Debug and Troubleshoot VOIP - voip-info.org

Mailing Lists

Protocol Related - IETF
Implementation Related - columbia.edu

Products

SIP Products - Pulver.com
Softswitch Products - Pulver.com
SIP Products - sipcenter.com

Links

SIP Resources - Henning Schulzrinne
SIP Resources - Jonathan Rosenberg
SIP.edu  
Packetizer.com SIP  
SIP - Wikipedia
VOIP Wiki - www.voip-info.org

Books

1. SIP by Alan B. Johnston
2. SIP Demystified by Gonzalo Camarillo
3. Internet Communications Using SIP by Henry Sinnreich, Alan B. Johnston
4. SIP Beyond VoIP by Henry Sinnreich, Alan B. Johnston
 

Maintained by Anil Edathara

Last Modified: February 21, 2010

 

Internet Communications Using SIP by Henry Sinnreich, Alan B. Johnston     SIP by Alan B. Johnston     SIP Beyond VoIP by Henry Sinnreich, Alan B. Johnston

Carrier Grade Voice Over IP by Daniel Collins     SIP Demystified by Gonzalo Camarillo      Internet Communications Using SIP by Henry Sinnreich, Alan B. Johnston          

SIP Methods RFC
ACK Acknowledge final response to Invite 3261
BYE Terminate a session 3261
CANCEL Cancel a previous request 3261
INFO Mid-session signaling 2976
INVITE Initiate a session 3261
MESSAGE Allows the transfer of IMs 3428
NOTIFY Event notification 3265
OPTIONS Query to find the capabilities 3261
PRACK Acknowledgement  for Provisional responses 3262
PUBLISH Publish event state 3903
REFER Transfer user to a 3rd party 3515
REGISTER Register with a SIP network 3261
SUBSCRIBE Request asynchronous event notification 3265
UPDATE Update parameters of a session 3311
 
Response Codes
    Provisional 1xx
    100 Trying
    180 Ringing
    181 Call Is Being Forwarded
    182 Queued
    183 Session Progress
 
 
  Successful 2xx
    200 OK
    202 Accepted
 
 
  Redirection 3xx
    300 Multiple Choices
    301 Moved Permanently
    302 Moved Temporarily
    305 Use Proxy
    380 Alternative Service
 
 
  Request Failure 4xx
    400 Bad Request
    401 Unauthorized
    402 Payment Required
    403 Forbidden
    404 Not Found
    405 Method Not Allowed
    406 Not Acceptable
    407 Proxy Authentication Required
    408 Request Timeout
    410 Gone
    412 Conditional Request Failed
    413 Request Entity Too Large
    414 Request-URI Too Long
    415 Unsupported Media Type
    416 Unsupported URI Scheme
    417 Unknown Resource-Priority
    420 Bad Extension
    421 Extension Required
    422 Session Interval Too Small
    423 Interval Too Brief
    428 Use Identity Header
    429 Provide Referrer Identity
    436 Bad Identity-Info
    437 Unsupported Certificate
    438 Invalid Identity Header
    480 Temporarily Unavailable
    481 Call/Transaction Does Not Exist
    482 Loop Detected
    483 Too Many Hops
    484 Address Incomplete
    485 Ambiguous
    486 Busy Here
    487 Request Terminated
    488 Not Acceptable Here
    489 Bad Event
    491 Request Pending
    493 Undecipherable
    494 Security Agreement Required
 
 
  Server Failure 5xx
    500 Server Internal Error
    501 Not Implemented
    502 Bad Gateway
    503 Service Unavailable
    504 Server Time-out
    505 Version Not Supported
    513 Message Too Large
    580 Precondition Failure
 
  
  Global Failures 6xx
    600 Busy Everywhere
    603 Decline
    604 Does Not Exist Anywhere
    606 Not Acceptable