Session Initiation Protocol (SIP) is an industry-standard protocol for establishing and controlling Voice over IP (VoIP) sessions and other forms of multimedia IP communications sessions such as video and text messaging. Originally defined in 1999 by Internet Engineering Task Force (IETF) RFC 2543, SIP has emerged as the real-time communications signaling protocol of choice for both service providers and enterprises. It has widely supplanted earlier IP multimedia signaling protocols such as H.323.
SIP is supported in a wide variety of contemporary IP communications products including IP-PBXs, unified communications servers, application servers and videoconferencing systems as well as a range of endpoints including IP phones, softphone clients and unified communications (UC) clients for various platforms (PCs, smartphones, and tablets) and operating systems. In addition, a number of communications service providers offer SIP trunking services, which are more flexible and cost-effective than conventional PRI (Primary Rate Interface) trunks.
Because SIP is a widely adopted standard, it helps service providers and enterprises eliminate cost and complexity, accelerate the pace of innovation and avoid vendor lock-in. Technology organizations can construct diverse multivendor networks that meet their specific functional and financial requirements.Download Dummies Guide
What is SIP (Session Initiation Protocol): Functional Overview
SIP is a simple ASCII-based peer-to-peer request/response protocol used to establish, maintain and terminate sessions between two or more parties. In SIP parlance, logically speaking, the endpoints in any given session act as user agents (UAs) that issue and respond to SIP requests. An endpoint is said to act as a user agent client (UAC) when initiating SIP requests and a user agent server (UAS) when responding to SIP requests. A physical SIP endpoint can support both UAC and UAS functions, for example acting as UAC when initiating a VoIP call to another party or acting as a UAS when accepting a call from another party.
In simple terms, SIP entities can be broadly categorized as clients or servers. Endpoints such as softphones and IP phones are examples of clients. Examples of servers include:
- Proxy server – receives and forwards SIP requests on a client’s behalf
- Registrar – accepts endpoint registration requests and manages location information
- Redirect server – redirects requests back to the client, directing the user to try an alternate server
A SIP user is assigned a unique address known as a URL (uniform resource identifier) that is similar in format to an email address such as sip:email@example.com. The user part of the address could be an alphanumeric user id or a phone number (E.164 address).
RFC 2543 defines a number of SIP request methods (commands) for signaling sessions:
- INVITE – used to initiate a session
- ACK – used to confirm messages have been reliably exchanged
- BYE – terminates a session
- CANCEL – terminates a request
- OPTIONS – used to discover information about a UA’s capabilities without contacting the UA directly
- REGISTER – used to register a UA with the registrar
SIP Call Flow
The figure below from IETF RFC3665 diagrams a basic SIP call flow between calling party Alice and called party Bob.
Relationship to Real-time Transport Protocol
SIP is a control plane protocol used to establish and terminate sessions. SIP is not involved in the transport of the media itself. The Real-time Transport Protocol (RTP) governs the delivery of the multimedia traffic over the IP network.
Role of Session Border Controllers in SIP networks
A Session Border Controller or SBC is a special-purpose device that protects and regulates IP communications flows. As the name implies, session border controllers are deployed at network borders to control IP communications sessions. Service providers and enterprises often deploy SBCs to mitigate SIP security, interoperability and interworking challenges; to implement call admission or service quality assurance controls; or to route SIP sessions to optimize economics (least cost routing) or availability.