One problem with the original SIP specification was that it not provided any method for the recipient of a request to know if it's provisional responses have reached their destination when using an unreliable transport such as UDP. PRACK is the reliable provisional response ,using reliable provisional responses, these responses are retransmitted by the UAS in response to an INVITE until a PRACK is received from the UAC. If the PRACK is acceptable to the UAS, the UAS would then respond with a 200 OK to the PRACK. In this instance the PRACK serves the same role as an ACK in a normal INVITE transaction. However, unlike the ACK, PRACK has its own response. A call flow of an INVITE transaction using reliable provisional responses can be seen below.
Basic Call Flow with-out PRACK (Between UAC ---- UAS )
=======================================
------- INVITE , CSeq=1-------------------------------->
<-------------------100 Trying------------------------------
<-----------------180 Ringing , Cseq=1---------------
<--------------------200 OK, Cseq=1---------------------
------------------------- ACK, Cseq=1------------------------>
Call Flow With the PRack
===================
UAC UAS
-------------------INVITE ,Support =100rel, CSeq=1------------------------>
<-------------------100 Trying--------------------------------------------------------------
<-----------------180 Ringing ,RSeq=1, CSeq=1--------------------------------
---------------------PRACK, CSeq=2,RAck=1 INVITE------------------------->
<--------------------200 OK, CSeq=2 PRACK--------------------------------------
<--------------------200 OK, CSeq=1 INVITE--------------------------------------
------------------------- ACK, CSeq=1--------------------------------------------------->
No comments:
Post a Comment