sip裡面的幾個概念,會話 事務

2021-07-23 17:20:14 字數 1415 閱讀 1135

transaction

事務是指乙個請求訊息以及這個請求對應的所有響應訊息的集合;對於invite事務來講,除包含invite請求和對應的響應訊息外,在非成功響應的情況下,還包括ack請求。via頭中的branch引數能夠唯一確定乙個事務。branch值相同,代表同乙個 transaction(事務)。事務是由事件(方法)來引起的,乙個方法(method)的建立和到來都將建立新的事務。(實際上當收到新訊息時,就是根據branch來查詢對應的事務)

根據sip協議描述

乙個transaction由5個必要部分組成:from、to、via頭中的branch引數、call-id和cseq,這5個部分一起識別某乙個transaction

,如果缺少任何一部分,該transaction就會設定失敗。

dialog

對話是兩個ua之間持續一段時間的點對點的sip連線,它使ua之間的訊息變得有序,同時給出請求訊息的正確的路由。即

call-id、from-tag以及to-tag三個值的組合能夠唯一標識一次對話

。對話一般是由invite and subscribe  來建立的。即對話處於確定階段時,對話已經建立起來。

session

會話是一次通訊過程中所有參與者之間的關聯關係以及他們之間的**流的集合。只有當**協商成功後,會話才能被建立起來。

對話是end-point對end-point的關係,即真實的通訊雙方, 

而transaction 是hop by hop的關係,即路由過程中互動的雙方。

transaction:維護hop to hop狀態,包括乙個請求和其觸發的所有響應,包括若干暫時響應和乙個最終響應。生命週期從請求產生到收到最終響應。 

dialog:維護peer to peer狀態,目前只有invite和subscribe請求會觸發dialog。其生命週期貫穿乙個端到端會話的始終。

下面的示意圖清晰的顯示了它們之間的關係

(ringing 是 1xx 響應,  ok是 2xx 響應) 

caller呼叫callee的號碼來建立一系列的對話(dialogs),這些對話組成了乙個呼叫(call),即乙個會話.

例如:ua-a       b2bua        ua-b

| --- inv -> |

|--- inv -> |

|<- 200 --- |

| <- 200 --- |

|<====通話中====>|

| --- bye -> |

|--- bye -> |

|<- 200 --- |

| <- 200 --- |

這是一次會話(session),裡面包含了兩個對話(dialog)。

這兩個對話(dialog)分別是:

1. ua-a與b2bua之間的對話(dialog)

2. b2bua與ua-b之間的對話(dialog)

SIP 的幾個概念

sip協議初學者必須明白的幾個重要概念 一 sip協議的分層結構 sip是乙個分層結構協議,它的行為根據一組平等獨立的處理階段來描述,每一階段之間只是松耦合。sip的最底層是語法和編碼。它的編碼使用增強backus nayr形式語法 bnf 來規定。第二層是傳輸層,定義了網路上客戶機與伺服器傳送請求...

關於Docker裡面的幾個主要概念

這裡用個不太恰當的比方來說明。兩種方式構建映象的主要步驟 1.從容器構建映象 以下簡稱容器映象 2.使用dockerfile構建映象 以下簡稱dockerfile映象 兩種構建方式的區別 1.容器映象的構建者可以任意修改容器的檔案系統後進行發布,這種修改對於映象使用者來說是不透明的,映象構建者一般也...

關於正則裡面的幾個不解的情況!

1.匹配包括換行符的所有字元 根據手冊上寫的 只能匹配出 n以外的所有的字元,但是用 n 或者 n.都是匹配不出任何字元來著,更是失去了原本匹配任何字元的功能,修改為 s s w w 或者 使用匹配 模式 s 最新手冊中查詢到.在代表實際的.不具有匹配功能 2.關於正則 不匹配連續字串的情況 如果說...