找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1941|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

有關(guān)SIP中的PRACK的含義和使用

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:107189 發(fā)表于 2016-3-5 18:20 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
今天被同事問到了PRACK的含義,雖然心里明白,但是在感覺還是沒有說清楚,其實(shí)還是自己對其認(rèn)識的模糊和不徹底導(dǎo)致的,否則怎么可能說不清楚呢? 于是對PRACK又做了一下了解,PRACK的具體含義和使用如下:

PRACK:the Provisional Response ACKnowledgement

SIP中的最終響應(yīng)被理解是會可靠傳輸?shù),例如對?yīng)INVITE的200OK響應(yīng),UAC會給一個ACK,告訴UAS已經(jīng)收到了200OK。200與ACK間的可靠性是end-to-end的。PRACK是SIP消息中保證臨時消息(101-199)可靠傳輸?shù)臋C(jī)制。PRACK就是仿照200OK的可靠性響應(yīng),對除100以外的1xx臨時響應(yīng)(100是hop-to-hop的),進(jìn)行可靠性傳輸。PRACK一般是對收到183 call in progress/180 ringing的確認(rèn),

PRACK的實(shí)現(xiàn)
  UAC與UAS對是否支持該擴(kuò)展的協(xié)商,就是通過一個option tag -- 100rel。
  為達(dá)到該目的,UAC有兩種選擇,在INVITE消息中加入Require:100rel或者Supported:100rel。UAS在接受到上述消息中,也存在選擇的問題。
  當(dāng)INVITE中含有Supported:100rel,UAS在發(fā)送臨時消息中,可以根據(jù)UAS中是否支持PRACK決定發(fā)送臨時消息中的參數(shù)。如果支持則臨時消息中加入Require:100rel和Rseq字段,接到該消息UAC發(fā)送PRACK;否則不加上述參數(shù),UAC不發(fā)PRACK。
  當(dāng)INVITE中含有Require:100rel。UAS如果不支持PRACK需要使用420(不正確的擴(kuò)展)來拒絕呼叫。否則臨時消息中加入Require:100rel和Rseq字段,接到該消息UAC發(fā)送PRACK。
  例如:UAC發(fā)起的INVITE中含有Supported:100 rel,而UAS也支持該擴(kuò)展并且在183響應(yīng)中有Require:100rel,說明接下來會話中,對所有100以外的1xx響應(yīng),均要有PRACK回應(yīng)。


PRACK被定義在RFC3262中。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表