-
Notifications
You must be signed in to change notification settings - Fork 442
Standards
The number of SIP related standards is enormous and growing. Some are useful, some are stupid, some are redundant and some never catch on. There is even an RFC to keep track of the SIP RFC's and it does a good job A Hitchhiker's Guide to the Session Initiation Protocol (SIP) although by its nature it was out of date as soon as it was written (for example the protocol in the document as OUTBOUND has since been allocated as RFC 5626) . The current state of SIP related standards is available on the IETF SIP Working Group home status page and a normative list of SIP related parameters; which includes things like headers, options tags etc; is available IANA SIP Parameters. Some good examples of SIP protocol usage are documented in Session Initiation Protocol Service Examples (RFC5359) and also at the industry sponsored portal http://www.tech-invite.com/.
This project makes an attempt to implement the core SIP: Session Initiation Protocol standard and also a number of related standards. This page lists the SIP related standards that are relevant to the project and the implementation effort or lack thereof for each one.
- RFC 3261 SIP: Session Initiation Protocol the core SIP protocol. The project seeks to fully implement the protocol described in this document. Complete.
- RFC 3262 Reliability of Provisional Responses in the Session Initiation Protocol (SIP) documents the use of the SIP final response reliability mechanism for provisional responses. Complete.
- RFC 3263 Session Initiation Protocol (SIP): Locating SIP Servers documents the mechanisms recommended to use DNS to locate SIP servers: utilises NAPTR, SRV and A records. The project seeks to fully implement the protocol described in this document. The implementation effort is estimated as 90% complete.
- RFC 3264 An Offer/Answer Model with the Session Description Protocol (SDP) and SDP: Session Description Protocol (RFC 4566) documents the format of the payload a SIP INVITE typically uses to establish a session or call. Since this project does not handle media only a rudimentary understanding of SDP packets is required, the only operation regularly carried out on an SDP packet is to substitute private IP addresses. The implementation effort is estimated as 20% complete.
-
RFC 3265 Session Initiation Protocol (SIP)-Specific Event Notification specifys a SIP event methodology to allow clients to subscribe to notifications for things like presence or dialog state. Event packages are listed at http://www.iana.org/assignments/sip-events. The project aims to fully implement the protocol described in this document. The implementation effort is estimated as 80% complete.
- RFC 3842 A Message Summary and Message Waiting Indication Event Package for the Session Initiation Protocol (SIP) message-summary event package, aka message waiting indicator (MWI),
- RFC 3856 A Presence Event Package for the Session Initiation Protocol (SIP) presence event package. Utilises PIDF payloads RFC 3863 Presence Information Data Format (PIDF),
- RFC 4235 An INVITE-Initiated Dialog Event Package for the Session Initiation Protocol (SIP) dialog event package. The implementation effort is estimated as 80% complete,
- RFC 3489 STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs) documents a general purpose mechanism that allows client applications behind NATs to learn their public IP address. Note that this RFC has been obsoleted by STUNv2. The project aims to fully implement the protocol described in this document. The implementation effort is estimated as 80% complete.
- RFC 3515 The Session Initiation Protocol (SIP) Refer Method documents a SIP REFER method enhancement that's used to facilitate blind and attended transfers for SIP calls. The project aims to fully implement the protocol described in this document. The implementation effort is estimated as 80% complete.
- RFC 3550 RTP: A Transport Protocol for Real-Time Applications documents the protocols used for transporting media payloads and for reporting quality metrics on the transmission of the media. Similarly to SDP this project does not handle media and only a rudimentary understanding of RTP and RTCP packets is required. The implementation effort is estimated as 40% complete.
- RFC 3581 An Extension to the Session Initiation Protocol (SIP) for Symmetric Response Routing documents the use of the rport parameter on Via branches, it's not really possible to do without this when using SIP on the internet and it should have been part of the main standard. The implementation effort is complete.
- RFC 4488 Suppression of Session Initiation Protocol (SIP) REFER Method Implicit Subscription documents a modification to the SIP REFER RFC that allows the implicit SIP event subscription to be cancelled. The project aims to fully implement the protocol described in this document. The implementation effort is estimated as 80% complete.
- RFC 5245 Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols bundles up a number of NAT handling mechanisms in an attempt to provide a reliable way to handle SIP (and other media session establishments) through NAT.
- RFC 5367 Subscriptions to Request-Contained Resource Lists in the Session Initiation Protocol (SIP) extends SIP Event Notifications (RFC 3265) to allow a single request to subscribe to a list of resources rather than only a single one. The project aims to fully implement the protocol described in this document. The implementation effort has not started.
- RFC 5626 Managing Client-Initiated Connections in the Session Initiation Protocol (SIP) documents the re-use of connections established by registrations for subsequent call requests along with some NAT keep-alive mechanisms. Equivalent but simpler procedures are already in use by this project and other user agents, it's unlikely this standard will get much traction. At the time of writing no effort will be made to implement the protocol in this document.