Tuesday 24 May 2016

SIP CALL FLOW

In SIP Basics we discussed about components of SIP. It's time to understand a sample call flow. Before we start I would like to discuss few components of call flow:


Request: When a UAC (User Agent Client) wants to initiate a call it sends an Invite to the UAS (User Agent Server). In this case Invite is a request .

Response: A reply to UAC's request is called a response. In this case it would be 100 Trying, which we will discuss in a moment.






In the above example as we can see we have two users Jammy and Danny. Jammy wants to call Danny and he dials the Danny's number. Here is the list of events that will happen: 

  • Once Jammy completes dialing Danny's number he sends a set-up request in from of an Invite message.
  • In response to Jammy's request, Danny's device sends a response back as 100 Trying. It is an informational response which informs Jammy that his request for set-up has been received and Danny's device is trying to process the request.
  • If Danny is available and reachable her device will ring, and the response 180 Ringing has been sent to Jammy informing that her phone is ringing.
  • As soon as Danny answers the phone , it sends a 200 OK message informing that call has been answered.
  • An ACK  message is sent to acknowledge the 200 OK message.
  • After OK and ACK messages, both parties can talk to each other and media starts flowing in form of RTP.
  • If any of the parties wants to end the  call it sends a BYE message to the other party. In this call Jammy has hung up the phone so he is sending the BYE message.
  • Other party sends a 200 OK message in response to the BYE message and call ends now.
There are few more things that needs to be understood with the call flow basics:

Transaction: A request and a response to that request is considered to be one transaction. In the above example we have three transactions:
  1. From Invite to 200 OK.
  2. ACK itself.We will discuss more about acknowledge more which will clarify why it is a single transaction.
  3. Bye and 200 OK
SIP Method : To start a SIP session a request has been sent to UAS by UAS. The initial request type is known as method, or we can say first message of a SIP transaction is a method.  i.e Invite, ACK, BYE, Cancel etc.

Session : Media flow between the endpoints is considered to be a session . In the above example RTP flow is considered to be a session.

Dialogue: Dialogue is a peer to peer relationship between two user-agents and often created after the successful response to the request. In the above example The complete call flow is one dialogue. 

PS: If you like this post please like my Facebook page Cisco Voice Virtual Lab which will help you to know about my next post on Facebook.


2 comments:

  1. this explanation for sip msgs and transaction and dialog is the best i have ever seen ... you are the best

    ReplyDelete
  2. excellent and simple........really you are doing very good
    thanks............

    ReplyDelete