There are some entities that help SIP in creating its network. In SIP, every network element is identified by a SIP URI (Uniform Resource Identifier) which is like an address. Following are the network elements −
It is the endpoint and one of the most important network elements of a SIP network. An endpoint can initiate, modify, or terminate a session. User agents are the most intelligent device or network element of a SIP network. It could be a softphone, a mobile, or a laptop.
User agents are logically divided into two parts −
User Agent Client (UAC) − The entity that sends a request and receives a response.
User Agent Server (UAS) − The entity that receives a request and sends a response.
SIP is based on client-server architecture where the caller’s phone acts as a client which initiates a call and the callee’s phone acts as a server which responds the call.
It is the network element that takes a request from a user agent and forwards it to another user.
Basically the role of a proxy server is much like a router.
It has some intelligence to understand a SIP request and send it ahead with the help of URI.
A proxy server sits in between two user agents.
There can be a maximum of 70 proxy servers in between a source and a destination.
There are two types of proxy servers −
Stateless Proxy Server − It simply forwards the message received. This type of server does not store any information of a call or a transaction.
Stateful Proxy Server − This type of proxy server keeps track of every request and response received and can use it in future if required. It can retransmit the request, if there is no response from the other side in time.
The registrar server accepts registration requests from user agents. It helps users to authenticate themselves within the network. It stores the URI and the location of users in a database to help other SIP servers within the same domain.
Take a look at the following example that shows the process of a SIP Registration.
Here the caller wants to register with the TMC domain. So it sends a REGISTER request to the TMC’s Registrar server and the server returns a 200 OK response as it authorized the client.
The redirect server receives requests and looks up the intended recipient of the request in the location database created by the registrar.
The redirect server uses the database for getting location information and responds with 3xx (Redirect response) to the user. We will discuss response codes later in this tutorial.
The location server provides information about a caller's possible locations to the redirect and proxy servers.
Only a proxy server or a redirect server can contact a location server.
The following figure depicts the roles played by each of the network elements in establishing a session.
SIP is structured as a layered protocol, which means its behavior is described in terms of a set of fairly independent processing stages with only a loose coupling between each stage.
The lowest layer of SIP is its syntax and encoding. Its encoding is specified using an augmented Backus-Naur Form grammar (BNF).
At the second level is the transport layer. It defines how a Client sends requests and receives responses and how a Server receives requests and sends responses over the network. All SIP elements contain a transport layer.
Next comes the transaction layer. A transaction is a request sent by a Client transaction (using the transport layer) to a Server transaction, along with all responses to that request sent from the server transaction back to the client. Any task that a user agent client (UAC) accomplishes takes place using a series of transactions. Stateless proxies do not contain a transaction layer.
The layer above the transaction layer is called the transaction user. Each of the SIP entities, except the Stateless proxies, is a transaction user.