在簡紹sip訊息的接收與處理之前我先們說一點意外獲取到的資訊(不知正確否?)sipstack與dialogusagemanager(fifo是其父類transactionuser的成員變數)中各維護乙個fifo但兩個fifo本質上不是同乙個fifo。但是裡面存放的訊息都是同乙個型別,一般情況下要傳送的訊息都會放在sipstack的fifo中,而從遠端接收到的響應一般情況下會放在dialogusagemanager的fifo中。
sipstack的執行緒會不停呼叫sipstack::process(fdset& fdset)函式,去檢查是否有新訊息收到,如果有最終將其放入dum的fifo中(本質上該fifo是dum從其父類transactionuser處繼承來的)。
應用程式應當不停地去呼叫dialogusagemanager::process(int timeoutms, resip::lockable* mutex)方法,去檢測是否有訊息被放入fifo佇列中,如果有process()函式會呼叫相應的邏輯去處理,詳細的處理流程如下圖所示:
resip學習筆記(sip訊息的產生和傳送)
本篇博文的目的是告訴大家如何徹底弄清楚resip協議棧的工作流程,resip作為最著名的sip協議棧之一,如果是接觸網路 通訊 網路會議或者是gb28181的同志相當有必要認認真真學習一下resip協議棧。對於任何乙個sip協議棧的學習我們只要弄清楚下面3點,可以說是已經掌握了這個協議棧的骨架了,先...
resip學習筆記(訊息路由)
我們知道,sip訊息的格式有很多如 sip 34020000002000000001 192.168.0.1 sip 34020000002000000001 3402000000 當訊息的request line 頭部中網域名稱部分 之後的部分 為ip位址時我們都知道,直接將該訊息傳送至該指定的i...
SIP概述 SIP學習筆記(一)
sip是乙個應用層控制協議,它能建立 修改和終止多 會話 會議 sip透明的支援名字對映和重定向服務。sip支援建立和終止多 通訊的5個方面 1 使用者位置 確定用於通訊的終端系統 2 使用者可用性 確定被呼叫者參加通訊的意願 3 使用者能力 確定使用的 和 引數 一般結合sdp 4 會話建立 響鈴...