Blog
VoIP

SIP Protocol: Understand how a VoIP call works

Understand how the SIP protocol works and how it establishes, maintains, and terminates VoIP calls between extensions.

SipPulse - Technical TeamFebruary 1, 20133 min read
Share
SIP Protocol: Understand how a VoIP call works

SIP Protocol: Understand how a VoIP call works

VoIP calls, like any information that travels on the Internet, are also based on packet traffic that uses a protocol (rules that regulate communication between two machines).

The protocol used in VoIP calls can be SIP, IAX, H.323, MGCP, XMPP, or others. However, currently the SIP protocol has been better accepted by telecom companies, having good penetration in the telephony market.

Today we will talk about how this protocol works and cover the SIP dialogue with a proxy server connecting two extensions.

How a VoIP call works

In this example of a call using the SIP protocol, it is easy to observe the messages exchanged to establish the call. Below is the step-by-step process:

  1. User Lucien dialed user Carlos. At this moment, Lucien's extension forwarded the INVITE to the SIP server where it is registered
  2. The server forwarded the INVITE to Carlos's extension (internal call), and responded to Lucien with "100 Trying" informing that it is attempting to make the call
  3. When Carlos's extension receives the call request, it sends "180 Ringing" to the server, informing that it received the INVITE and is ringing
  4. The server relays to Lucien's extension the message informing that the phone is ringing
  5. Carlos answers the phone, at this moment his extension sends "200 OK" informing that the phone was answered and the media stream can now be established
  6. The server relays the "200 OK" to the originating extension (Lucien) which responds with "ACK" (Acknowledge) confirming that it received the "200 OK"
  7. The server relays the "ACK" to Carlos's extension which, upon receiving the confirmation, opens the media session directly between the two extensions, starting the conversation
  8. Carlos ends the call, at this moment the extension sends the BYE message, signaling the disconnect
  9. The server relays the BYE to Lucien's extension, which responds with 200 OK, confirming the call termination

Important observations

Whenever the destination extension is available and receives the call request (INVITE), it returns the Ring (180 Ringing) informing that it is ringing. If this extension is busy, not registered, or for some other reason cannot answer, it will return an error code.

The fact that media is passing directly from one extension to the other (point-to-point) is a strong indication that the server is acting as a SIP Proxy.

In a call with audio passing point-to-point, the server cannot control media or record calls. However, bandwidth consumption is much lower, since only SIP packets (purely text) travel to the server for call control.

SIP Packet (INVITE)

Below we can see the basic information contained in an INVITE-type SIP packet:

INVITE sip:4031@servidor.sip SIP/2.0
Via: SIP/2.0/UDP 192.168.0.50:1047;branch=z9hG4bK188800439
From: "Lucien <4030>" <sip:4030@servidor.sip>;tag=738994358
To: <sip:4031@servidor.sip>
Call-ID: 1287077758@192.168.0.43
CSeq: 1 INVITE
Contact: <sip:4030@192.168.0.50:1047>
Content-Type: application/sdp
Max-Forwards: 70
  • INVITE — In this line, the commands that establish the SIP dialogue are sent. The INVITE message is the request for a new call. Note that in this field it is also possible to observe the destination number (B number).
  • From — This field identifies the call originator (A number).
#SIP#VoIP#protocol

Related Articles