Network elements (NE):
SIP defines user-agents as well as several types of server network elements. Two SIP endpoints can communicate without any intervening SIP infrastructure. However, this approach is often impractical for a public service, which needs directory services to locate available nodes on the network.
User agent
A SIP user agent (UA) is a logical network end-point used to create or receive SIP messages and thereby manage a SIP session. A SIP UA can perform the role of a user agent client (UAC), which sends SIP requests, and the user agent server (UAS), which receives the requests and returns a SIP response. These roles of UAC and UAS only last for the duration of a SIP transaction.[7]
A SIP phone is an IP phone that implements SIP user agent and server functions, which provide the traditional call functions of a telephone, such as dial, answer, reject, hold/unhold, and call transfer.[12][13] SIP phones may be implemented as a hardware device or as a softphone. As vendors increasingly implement SIP as a standard telephony platform, often driven by 4G efforts, the distinction between hardware-based and software-based SIP phones is being blurred and SIP elements are implemented in the basic firmware functions of many IP-capable devices. Examples are devices from Nokia and BlackBerry.[14]
In SIP, as in HTTP, the user agent may identify itself using a message header field User-Agent, containing a text description of the software/hardware/product involved. The user agent field is sent in request messages, which means that the receiving SIP server can see this information. SIP network elements sometimes store this information and it can be useful in diagnosing SIP compatibility problems.
Proxy server
The proxy server is an intermediary entity that acts as both a server and a client for the purpose of making requests on behalf of other clients. A proxy server primarily plays the role of routing, meaning that its job is to ensure that a request is sent to another entity closer to the targeted user. Proxies are also useful for enforcing policy, such as for determining whether a user is allowed to make a call. A proxy interprets, and, if necessary, rewrites specific parts of a request message before forwarding it.
Registrar
A registrar is a SIP endpoint that accepts REGISTER requests and places the information it receives in those requests into a location service for the domain it handles. The location service links one or more IP addresses to the SIP URI of the registering agent. The URI uses the sip: scheme, although other protocol schemes are possible, such as tel:. More than one user agent can register at the same URI, with the result that all registered user agents receive the calls to the URI.
SIP registrars are logical elements, and are commonly co-located with SIP proxies. But it is also possible and often good for network scalability to place this location service with a redirect server.
Redirect server
A user agent server that generates 3xx (Redirection) responses to requests it receives, directing the client to contact an alternate set of URIs. The redirect server allows proxy servers to direct SIP session invitations to external domains.
Session border controller
Session border controllers serve as middle boxes between UA and SIP servers for various types of functions, including network topology hiding, and assistance in NAT traversal.
Gateway
Gateways can be used to interface a SIP network to other networks, such as the public switched telephone network, which use different protocols or technologies.
Basic Call Flow
The following image shows the basic call flow of a SIP session.
Given below is a step-by-step explanation of the above call flow:
- An INVITE request that is sent to a proxy server is responsible for initiating a session.
- The proxy server sends a 100 Trying response immediately to the caller (Alice) to stop the re-transmissions of the INVITE request.
- The proxy server searches the address of Bob in the location server. After getting the address, it forwards the INVITE request further.
- Thereafter, 180 Ringing (Provisional responses) generated by Bob is returned back to Alice.
- A 200 OK response is generated soon after Bob picks the phone up.
- Bob receives an ACK from the Alice, once it gets 200 OK.
- At the same time, the session gets established and RTP packets (conversations) start flowing from both ends.
- After the conversation, any participant (Alice or Bob) can send a BYErequest to terminate the session.
- BYE reaches directly from Alice to Bob bypassing the proxy server.
- Finally Bob sends a 200 OK response to confirm the BYE and the session is terminated.
- In the above basic call flow, three transactions are (marked as 1, 2, 3) available.
The complete call (from INVITE to 200 OK) is known as a Dialog.
SIP Trapezoid
How does a proxy help to connect one user with another? Let us find out with the help of the following diagram.
The topology shown in the diagram is known as a SIP trapezoid. The process takes place as follows:
- When a caller initiates a call, an INVITE message is sent to the proxy server. Upon receiving the INVITE, the proxy server attempts to resolve the address of the callee with the help of the DNS server.
- After getting the next route, caller’s proxy server (Proxy 1, also known as outbound proxy server) forwards the INVITE request to the callee’s proxy server which acts as an inbound proxy server (Proxy 2) for the callee.
- The inbound proxy server contacts the location server to get information about the callee’s address where the user registered.
- After getting information from the location server, it forwards the call to its destination.
- Once the user agents get to know their address, they can bypass the call, i.e., conversations pass directly.
You’re a real deep thnreki. Thanks for sharing.
Awesome you should think of sonemhitg like that