The first version of SIP was published in 1999, than the standard was updated to version 2.0 in 2002.
SIP is a text-based protocol. The formatting of SIP requests and responses is based on HTTP. Endpoints that communicate using SIP use the following protocols:
- SIP used to establish and terminate the session;
- Session Description Protocol (SDP for short), used to exchange information about audio channels;
- RTP used to send the real-time streams of audio across the network.
SIP messages are exchanged between two endpoints. The exchange of messages consists of a request and the response or responses. The messages that belong to the same activity / transaction share the same activity / transaction ID. This ID is called CSeq in SIP. Each activity / transaction should have a CSeq number, with only a single exception: the ACK message (ACK for “acknowledge”) uses the same CSeq number as the activity / transaction in which it applies.
- Messages: There can be two types of messages: Request and Responses;
- Transaction: Occurs between client and server;
- Dialog: A dialog is just a series of transactions between two SIP peers. The purpose
of a dialog is to setup, possibly modify, and then tear down a session. It’s a completed request with Call-ID, To and From Tags established which may or may not consist of a media stream.
A SIP network can consist of a number of components. It is often the case in practice that some of the components are combined in one SIP server.
- Proxies, registrars, and redirect servers.
Components of the SIP network:
- User Agent: The User agent is seen as an endpoint which can initiate, modify, or terminate a session. It could be a softphone, a mobile, or a workstation. User agents are logically divided into two segments − The User Agent Client (UAC) role, the UA sends requests. In the User Agent Server (UAS) role, the UA receives requests and sends responses.
- Registrar: The registrar server accepts registration requests from user agents. It helps users to authenticate themselves within the network. The REGISTER message contains location information, i.e. IPADDR, hardphones, and softphones.
- Proxy: The function of a proxy server is to receive and forward requests to SIP endpoints. The proxy server has access to the location database which is maintained by the registrar, and enforcing call policies, and ensuring that end points are allowed to place calls through the SIP proxy.
- Redirect Server: The SIP redirect server accepts INVITES requests and acknowledges all of them with responses to the 3xx class of SIP messages, redirecting the calling client to the actual location it needs to contact.