SDP offer answer協商原則

2021-08-19 02:37:50 字數 825 閱讀 1768

規則1:初始offer必須在invite訊息或者第乙個可靠的非失敗型響應中。(理解:初始的offer不能在prack/ack/update中)

規則2:如果初始offer在invite訊息中,answer必須出現在乙個可靠的非失敗型響應中(補充:當可靠的1**響應和2**響應都攜帶了sdp,那麼兩者的sdp內容必須一致,且2**中的sdp被忽略)

規則3:如果初始offer出現在第乙個可靠的非失敗型響應中,answer必須出現在對該響應的確認訊息中(ack/prack)

規則4:如果已經傳送或接受對於第乙個offer的answer,uac可以繼續傳送新的offer;相反的,如果沒有確認對前乙個offer的answer,不能傳送新的offer。(理解:只有上一次能力協商完成之後,才能發起新的能力協商)

規則5:如果已經傳送或接受對於初始offer的answer,uas禁止在之後同乙個事務的響應訊息中帶上新的offer。(理解:這個規則和規則2是一致的,可靠的1**和2**響應都屬於invite事務,所以2**中的sdp認為是重複的,被忽略,而不是新的offer)

規則6:如果uac接收到1**中的offer,必須在prack方法中帶有answer。但是如果uac收到1**中的answer,則可能在prack帶上新的offer。如果uas接收到prack中的offer,則必須在2**中帶上answer。(理解:prack屬於新的事務,所以當1**響應完成上一次的能力協商,所以prack可以發起新的能力協商,這與規則4是保持一致的)

規則7:如果offer/answer互動成功的話,在invite事務沒有完成之前也能建立好會話。(理解:這就我們的早期會話**場景,因為會話的最終目的是為了**的互通,當能力協商之後,就可以**互動了)

協程巢狀協程

import asyncio import functools 第三層協程 async def test1 print 我是test1 await asyncio.sleep 1 print test1已經睡了1秒 await asyncio.sleep 3 print test1又睡了3秒 ret...

9 協程 協程理論

本節的主題是基於單執行緒來實現併發,即只用乙個主線程 很明顯可利用的cpu只有乙個 情況下實現併發,為此我們需要先回顧下併發的本質 切換 儲存狀態 ps 在介紹程序理論時,提及程序的三種執行狀態,而執行緒才是執行單位,所以也可以將上圖理解為執行緒的三種狀態cpu正在執行乙個任務,會在兩種情況下切走去...

python協程與非同步協程

在前面幾個部落格中我們一一對應解決了消費者消費的速度跟不上生產者,浪費我們大量的時間去等待的問題,在這裡,針對業務邏輯比較耗時間的問題,我們還有除了多程序之外更優的解決方式,那就是協程和非同步協程。在引入這個概念之前我們先看 看這個圖 從這個我們可以看出來,假如來了9個任務,即使我們開了多程序,在業...