SIP
SIP, the session initiation protocol, is the IETF protocol for VOIP and other text and multimedia sessions, like instant messaging, video, online games and other services.
Abstract from the RFC 3261 (formatted_and_explained version) - SIP: Session Initiation Protocol
This document describes Session Initiation Protocol (SIP), an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants. These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences.
SIP invitations used to create sessions carry session descriptions that allow participants to agree on a set of compatible media types. SIP makes use of elements called proxy servers to help route requests to the user's current location, authenticate and authorize users for services, implement provider call-routing policies, and provide features to users. SIP also provides a registration function that allows users to upload their current locations for use by proxy servers. SIP runs on top of several different transport protocols.
SIP is very much like HTTP, the Web protocol, or SMTP. Messages consist of headers and a message body. SIP message bodies for phone calls are defined in SDP -the session description protocol.
- SIP is a text-based protocol that uses UTF-8 encoding
- SIP uses port 5060 both for UDP and TCP. SIP may use othertransports
SIP offers all potentialities of the common Internet Telephony features like:
- call or media transfer
- call conference
- call hold
Since SIP is a flexible protocol, it is possible to add more features and keep downward interoperability.
SIP also does suffer from NAT or firewall restrictions. (Refer to NAT and VOIP)
SIP can be regarded as the enabler protocol for telephony and voice over IP (VoIP) services. The following features of SIP play a major role in the enablement of IP telephony and VoIP:
- Name Translation and User Location: Ensuring that the call reaches the called party wherever they are located. Carrying out any mapping of descriptive information to location information. Ensuring that details of the nature of the call (Session) are supported.
- Feature Negotiation: This allows the group involved in a call (this may be a multi-party call) to agree on the features supported � recognizing that not all the parties can support the same level of features. For example video may or may not be supported; as any form of MIME type is supported by SIP, there is plenty of scope for negotiation.
- Call Participant Management: During a call a participant can bring other users onto the call or cancel connections to other users. In addition, users could be transferred or placed on hold.
- Call feature changes: A user should be able to change the call characteristics during the course of the call. For example, a call may have been set up as 'voice-only', but in the course of the call, the users may need to enable a video function. A third party joining a call may require different features to be enabled in order to participate in the call
- Media negotiation: The inherent SIP mechanisms that enable negotiation of the media used in a call, enable selection of the appropriate codec for establishing a call between the various devices. This way, less advanced devices can participate in the call, provided the appropriate codec is selected.
The SIP protocol
The SIP protocol defines several methods.
SIP methods defined in the SIP RFC
- SIP method ack: Used to facilitate reliable message exchange for INVITEs
- SIP method bye: Hangup a session
- SIP method cancel: Cancel an invite
- SIP method invite: Invite another UA to a session
- SIP method invite re-invite: Change a running session
- SIP method options
- SIP method register: Register a location with aSIP Registrar server
SIP method extensions from other RFCs
- SIP Message Waiting Indication: Extension inRFC 3842
- SIP method info: Extension inRFC 2976
- SIP method message: Extension in RFC 3428
- SIP method notify: Extension inRFC 2848PINT
- SIP method prack: Extension in RFC 3262
- SIP method PUBLISH: Extension isRFC 3903
- SIP method refer: Extension in RFC 3515
- SIP method subscribe: Extension inRFC 2848PINT
- SIP method unsubscribe: Extension inRFC 2848PINT
- SIP method update: Extension inRFC 3311
- SIP Specific Event Notification: Extension inRFC 3265
SIP responses
SIP terms and definitions
- SIP Authentication
- SIP Compression
- SIP DTMF signalling
- SIP outbound proxy
- SIP proxy
- SIP redirect server
- SIP registrar server
- SIP URI - how to specify a SIP connection in an URL
SIP RFCs
- RFC 2848 - The PINT Service Protocol: xtensions to SIP and SDP for IP Access to Telephone Call Service
- RFC 2976 - The SIP INFO Method
- RFC 3050 - Common Gateway Interface for SIP
- RFC 3087 - Control of Service Context using SIP Request-URI
- RFC 3261 Official Main SIP RFC
- RFC 3261 - SIP: Session Initiation Protocol (Main SIP RFC)
- RFC 3262 - Reliability of Provisional Responses in the Session Initiation Protocol (SIP)
- RFC 3263 - Session Initiation Protocol (SIP): Locating SIP Servers
- RFC 3264 - An Offer/Answer Model with the Session Description Protocol (SDP)
- RFC 3265 - Session Initiation Protocol (SIP)-Specific Event Notification
- RFC 3311 - The Session Initiation Protocol (SIP) UPDATE Method
- RFC 3312 - Integration of Resource Management and Session Initiation Protocol (SIP)
- RFC 3313 - Private Session Initiation Protocol (SIP) Extensions for Media Authorization
- RFC 3319 - Dynamic Host Configuration Protocol (DHCPv6) Options for Session Initiation Protocol (SIP) Servers
- RFC 3323 - A Privacy Mechanism for the Session Initiation Protocol (SIP)
- RFC 3324 - Short Term Requirements for Network Asserted Identity
- RFC 3325 - Private Extensions to the Session Initiation Protocol (SIP) for Asserted Identity within Trusted Networks
- RFC 3326 - The Reason Header Field for the Session Initiation Protocol (SIP)
- RFC 3327 - Session Initiation Protocol (SIP) Extension Header Field for Registering Non-Adjacent Contacts
- RFC 3329 - Security Mechanism Agreement for the Session Initiation Protocol (SIP)
- RFC 3361 - Dynamic Host Configuration Protocol (DHCP-for-IPv4) Option for Session Initiation Protocol (SIP) Servers
- RFC 3388 - Grouping of Media Lines in the Session Description Protocol (SDP)
- RFC 3420 - Internet Media Type message/sipfrag
- RFC 3428 - Session Initiation Protocol (SIP) Extension for Instant Messaging
- RFC 3485 - The Session Initiation Protocol (SIP) and Session Description Protocol (SDP) Static Dictionary for Signaling Compression (SigComp)
- RFC 3486 - Compressing the Session Initiation Protocol (SIP)
- RFC 3487 - Requirements for Resource Priority Mechanisms for the Session Initiation Protocol (SIP)
- RFC 3515 - The Session Initiation Protocol (SIP) Refer Method
- RFC 3524 - Mapping of Media Streams to Resource Reservation Flows
- RFC 3966 - The tel URI for Telephone Numbers
- RFC 4694 - Number Portability Parameters for the ""tel"" URI
References
- Additional SIP RelatedIETF Documents, Drafts, and RFCs
- Formatted/explained version of RFC 3261 (over 250 pages!)
- RFC 3329 : Security Mechanism Agreement for the Session Initiation Protocol (SIP)
- The IETF SIP Working Group - on this page, you'll find all current Internet Drafts, RFCs and standards
See also
- IAX versus SIP
- RTP: Real-Time Transport Protocol- the protocol most often used for voice communication
- SDP: The Session Description Protocol
- SIP call flows: Examples of SIP call flows
- SIP Number Portability Parameters
- SIP security
- SIP Security
- SIP simple: Instant messaging with SIP
- SIP SS7 gateways
- SIP tools
- SIP Trunking: Including trunk-group information in SIP INVITERFC4904
- SIP-T: Session Initiation Protocol for TelephonesRFC3372
External SIP links
- Back-to-back User Agent (B2BUA) SIP Servers Powering Next Generation Networks
- Basic SIP call flow andSIP error codes
- Columbia University SIP website — lots of diverse info here
- Deploying SIP to SIP-I interworking
- Doug Moeller's full day VOIP tutorialPowerpoint presentation (large 13MB zip file)
- free MWI routines
- Great SIP tutorial
- How a SIP server can handle theNAT traversal issue in SIP ?
- Important thing to look at if you get one way audio problem with Asterisk 1.4.10 and FreePBX 2.3.0
- IMS SIP Technology Overview
- Industry leading SIP training and SSCA/'ae Certification supported by the TIA, DIDX, Mitel, Panasonic, AudiCodes, Ingate, Brekeke, Bisci and many many more
- Open Source SIP and Media Links
- Overview of H.323-SIP Interworking
- Packetizer's SIP Information Site
- SIP and H.323 Call Flow Diagrams
- SIP Dojo where you can learn about SIP, SIP server, IP-PBX from a Dojo master.
- SIP FAQ: Columbia University SIP FAQ - visit it!
- Sip providers List of SIP providers.
- SIP providers List
- Sip providers reviews - Compare SIP providers and services
- SIP Server Technical Overview
- SIP settings for all Betamax providers'
- SIP Tutorial - SIP Tutorial/eLearning - wow!
- SIP Wikihttp://www.toyz.org/cgi-bin/sipwiki.cgi
- Dental Insurance
- SEO
- test de paternité
- Fanuc parts
- tennis apparel
- SIP, networks and NAT :http://www.voipuser.org/forum_topic_7295.html
- Tech-invite SIP Information Site
- The entire list of SIP related IETF specs
- The SIP Center Comprehensive information and resources on all things SIP.
- The SIP Forum:http://www.sipforum.com/
- What is SIP?