97成人免费视频,97视频免费公开成人福利,免费视频99,99婷婷,国产伊人久久,亚洲视频欧美,国产精品福利久久

您當前的位置是:  首頁 > 資訊 > 國內(nèi) >
 首頁 > 資訊 > 國內(nèi) >

SIP協(xié)議規(guī)范RFC3261中文分享-22

2020-09-22 09:44:56   作者: james.zhu   來源:Asterisk開源派   評論:0  點擊:


  接分享21內(nèi)容,繼續(xù)分享關(guān)于關(guān)于UAC處理的部分內(nèi)容和UAS的處理流程。
  12.2.1.2 Processing the Responses
  UAC將會從事務(wù)層收到一個請求的響應(yīng)消息。如果客戶端事務(wù)返回一個超時的話,此錯誤看作是一個408(請求超時)響應(yīng)。
  UAC處理方式需要注意。如果此UAC收到了一個針對一個請求返回的3xx響應(yīng),此請求是在一個dialog中發(fā)送到請求,那么,此UAC處理方式和dialog外部發(fā)送到請求處理方式相同。具體的討論參考Section 8.1.3.4。
  注意,但是,當UAC嘗試可選地址時,它仍然使用路由組支持此dialog創(chuàng)建請求的 Route頭。
  當UAC收到一個針對目的地刷新請求的2xx響應(yīng)時,如果出現(xiàn)了遠端目的地URL的話,UAC必須用此響應(yīng)中的Contact頭的URL替換dialog的遠端目的地( remote target URI)。
  如果在dialog中的請求響應(yīng)是一個481錯誤(Call/Transaction Does Not Exist) 或者一個408 (Request Timeout)的話,UAC應(yīng)該結(jié)束此dialog。UAC也應(yīng)該結(jié)束完全無請求響應(yīng)回復(fù)的dialog(此客戶端事務(wù)層將會通知TU超時的結(jié)果)。
  對于以INVITE發(fā)起的dialogs,通過發(fā)送一個BYE消息來結(jié)束dialog。
  12.2.2 UAS Behavior
  在dialog中發(fā)送的請求就像其他請求一樣,它是一個原子的核心請求。如果UAS接受了一個特別的請求,所有和它關(guān)聯(lián)的狀態(tài)修改都要被執(zhí)行。如果此請求被拒絕的話,不執(zhí)行任何狀態(tài)修改的流程。
  注意,一些請求,例如,INVITE請求,它們會影響一些狀態(tài)改變。
  UAS將會從事務(wù)層收到此請求。如果此請求在To頭中包含一個tag標簽,UAS core會處理dialog身份確認,和此請求保持一致,然后通過現(xiàn)有的dialogs和此dialog進行對比。如果對比匹配的話,那將確認這是一個mid-dialog 請求。在此情況下,UAS首先使用同樣的針對外部dialog請求的處理規(guī)則來執(zhí)行處理流程,具體的討論在Section 8.2中。
  如果此請求的To頭中包含了一個并且tag,但是,dialog身份確認不能匹配當前存在的任何dialog時,UAS可能已經(jīng)出現(xiàn)系統(tǒng)崩潰然后重新啟動,或者維持現(xiàn)有狀態(tài),這里,此UAS可能已經(jīng)收到一個請求,這個請求可能是支持了不同的(失敗的)UAS(這些UAS有能力構(gòu)建To標簽,因此那個UAS可以通過此tag標簽來確認請求,這些標簽是用來支持UAS提供失敗恢復(fù)狀態(tài)的標簽)。另外一種可能是,收到的請求可能已經(jīng)執(zhí)行了錯誤路由。基于To tag標簽,UAS可能接受或者拒絕此請求。接受此請求可以為To tag標簽提供健壯性,因此dialog可以維持持續(xù)性,甚至UAS崩潰。希望支持這種能力的UA必須考慮前面的這一點。在處理過程中可能出現(xiàn)一些問題,例如UA重啟時選擇了嚴格遞增CSeq 序列號,重構(gòu)路由組和接受超出范圍的RTP時間戳和序列號碼。
  如果UAS想解決此請求的,因為UAS不想重新創(chuàng)建此dialog,UAS必須針對其請求回復(fù)一個481響應(yīng)(Call/Transaction Does Not Exist)狀態(tài)響應(yīng)碼,并且發(fā)送此響應(yīng)到服務(wù)器事務(wù)層。
  如果此請求沒有通過任何方式修改dialog狀態(tài)的話,此請求可能就會在dialog中收到(例如,OPTIONS請求)。對它們的處理方式就像外部dialog中收到的請求一樣。
  如果遠端序列號為空,此序列號必須設(shè)置為在請求中CSeq頭的序列號值。如果遠端序列號不為空,但是請求中的序列號值低于遠端序列號的話,此請求已經(jīng)排序異常,必須返回一個500(Server Internal Error)錯誤響應(yīng)碼。如果遠端序列號不為空,并且請求的序列號大于遠端的序列號值,此請求是按續(xù)處理的。本地CSeq序列號大于遠端CSeq序列號一位數(shù)是可能存在的。這本身不是一個錯誤狀態(tài),UAS應(yīng)該準備好接收處理類似的請求,這樣的請求中攜帶的CSeq值會高于前一個接收的請求的CSeq值。
  如果代理對一個由UAC生成的請求進行驗證的話,此UAC需要重新提交攜帶安全消息的請求。重新提交請求將會生成一個新的CSeq序列號。因為UAS從來沒有看到過第一個請求,因此,UA會在CSeq序列號位置提示間斷,這樣的間斷不代表任何錯誤狀態(tài)消息。
  當UAS收到一個目的地刷新請求時,它必須使用此請求中Contact頭中的URL替換dialog中的遠端目的地URL地址(如果存在的話)。
【免責聲明】本文僅代表作者本人觀點,與CTI論壇無關(guān)。CTI論壇對文中陳述、觀點判斷保持中立,不對所包含內(nèi)容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

專題

CTI論壇會員企業(yè)

开江县| 腾冲县| 镇沅| 华宁县| 蚌埠市| 铜山县| 南平市| 清丰县| 宜阳县| 白朗县| 衡山县| 开阳县| 汕尾市| 南漳县| 衡东县| 五指山市| 柘城县| 曲靖市| 唐海县| 航空| 宾川县| 云龙县| 莱芜市| 泸西县| 保德县| 丰顺县| 南岸区| 明星| 班玛县| 灵川县| 贵德县| 洛隆县| 贵州省| 黎川县| 增城市| 绥德县| 承德县| 四平市| 庆安县| 凌海市| 巍山|