Friday, 9 March 2018

SIP (Session Initiation Protocol) Call Flow



Hi All,

       Here we would like to share the SIP call flow. Here we have also included PSTNs, so that the reader can co-relate the message of SIP and ISUP.

Scenario:
 
     A Number wants to call  B Number which is catered by PSTN B.
  • PSTN A to MSS X protocol used in ISUP.
  • MSS X to MSS Y protocol used in SIP.
  • MSS Y to PSTN B protocol is ISUP.
1) After receiving IAM  from PSTN A with called party number as B number  MSS X after number analysis detects the B number has to be routed to MSS Y which is connected by SIP. MSS X send a INVITE message.
Major components of INVITE are "Called Party", "Calling Party", "Bearer information", "Codec".

2) MSS Y receives INVITE and responds with 100 (Trying) message.
This response indicates that the request has been received by the next-hop server and that some unspecified action is being taken on behalf of this call (for example, a database is being consulted). At the same time after number analysis its send IAM to PSTN B.

3) MSS Y send 183 message to MSS X. This message is called as Session progress indicated that session is in progress. In response to 183 MSS A sends PRACK. PRACK (PRovisional ACKnowledgement) is like any another request within a dialog.
** PRACK is response for 1XX mesages
    ACK is response for 2XX messages.

4) After analysis of B number PSTN B sends ACM with "Called Party status indicator = no indication" to MSS Y. MSS Y sends 200 message to MSS X in turn MSS X forwards ACM message to PSTN A.

5) When B number starts ringing PSTN B send CPG message with "Called Party status indicator = Subscriber free". Indicates that subscriber is free and ringing.
MSS Y send 180 ringing message to MSS X.

Which is communicated to PSTN A in CPG message and A number can hear a ringtone.

6) B number answers the call in response PSTN B send ANM message to MSS Y. MSS Y send 200(With ANM) message to MSS X. MSS X responds with ACK , also forwards ANM message to PSTN A. At this point of time speech path is through.

7) After conversation A number releases the call. REL is send from PSTN A to MSS X in response MSS X sends BYE message to MSS Y. MSS Y send the REL message to PSTN B.

8) PSTN B release the resources and respond with RLC message to MSS Y. MSS Y relays the 200(with RLC) message to MSS X. RLC is then forwarded to PSTN A. This complete the release of all resources used for call.

SIP Requests and Descriptions


In typical VoLTE point of view here is a list of all SIP messages and their meaning. In the rightmost column you can find the RFC number.
SIP RequestDescriptionDefinition
INVITEIndicates that a client is being invited to participate in a call sessionRFC 3261
ACKConfirms that the client has received a final response to an INVITE requestRFC 3261
BYETerminates a call; can be sent by either the caller or the called partyRFC 3261
CANCELCancels any pending requestRFC 3261
OPTIONSQueries the capabilities of serversRFC 3261
PRACKProvisional acknowledgementRFC 3262
SUBSCRIBESubscribes to event notificationRFC 3265
NOTIFYNotifies the subscriber of a new EventRFC 3265
PUBLISHPublishes an event to the ServerRFC 3903
INFOSends mid-session information that does not modify the session stateRFC 6086
REFERAsks recipient to issue a SIP request (call transfer)RFC 3515
MESSAGETransports instant messages using SIPRFC 3428
UPDATEModifies the state of a session without changing the state of the dialog.RFC 3311

SIP Codes and Descriptions

SIP is based around request/response transactions, in a similar manner to the Hypertext Transfer Protocol (HTTP). Each transaction consists of a SIP request (which will be one of several request methods), and at least one response.
These codes are grouped according to their first digit as “provisional”, “success”, “redirection”, “client error”, “server error” or “global failure” codes, corresponding to a first digit of 1–6; these are expressed as, for example, “1xx” for provisional responses with a code of 100–199.
SIP CodeDescription
1xxProvisional Responses
100Trying
180Ringing
181Call is Being Forwarded
181Queued
183Session Progress
199Early Dialog Terminated
2xxSuccessful Response
200OK
202Accepted
204No Notification
3xxRedirection Response
300Multiple Choices
301Moved Permanently
302Moved Temporarily
305Use Proxy
380Alternative Service
4xxClient Failure Response
400Bad Request
401Unauthorized
402Payment Required
403Forbidden
404Not Found
405Method Not Allowed
406Not Acceptable
407Proxy Authentication Required
408Request Timeout
410Gone
412Conditional Request Failed
413Request Entity Too Large
414Request-URI Too Long
415Unsupported Media Type
416Unsupported URI Scheme
417Unknown Resource-Priority
420Bad Extension
421Extension Required
422Session Interval Too Small
423Interval Too Brief
428Use Identity Header
429Provide Referer Identity
430Flow Failed
433Anonymity Disallowed
436Bad Identity-Info
437Unsupported Certificate
438Invalid Identity Header
439First Hop Lacks Outbound Support
440Max-Breadth Exceeded
469Bad Info Package
470Consent Needed
480Temporarily Unavailable
481Call/Transaction Does Not Exist
482Loop Detected
483Too Many Hops
484Address Incomplete
485Ambiguous
486Busy Here
487Request Terminated
488Not Acceptable Here
489Bad Event
491Request Pending
493Undecipherable
494Security Agreement Required
5xxServer Failure Response
500Server Internal Error
501Not Implemented
502Bad Gateway
503Service Unavailable
504Server Time-out
505Version Not Supported
513Message Too Large
580Precondition Failure
6xxGlobal Failure Response
600Busy Everywhere
603Decline
604Does Not Exist Anywhere
606Not Acceptable
Comments and Appreciations are most welcome.


ChEEeeeEEeeeErs!!!
Telecom ChampTeam
telecomchamp@gmail.com

No comments:

Post a Comment

5G Network Funcntion :- UDM

The 5G UDM, or User Data Management, is a critical component in 5G (fifth-generation) wireless networks. It plays a key role in managing use...

Popular Post