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: