resip學習筆記(訊息路由)

2021-09-22 10:20:04 字數 831 閱讀 5013

我們知道,sip訊息的格式有很多如

sip:[email protected]

sip:34020000002000000001@3402000000

當訊息的request line 頭部中網域名稱部分(@之後的部分)為ip位址時我們都知道,直接將該訊息傳送至該指定的ip位址中去就可以了,但是當網域名稱部分不是ip位址時,是網域名稱如"3402000000", 這時我們需要進行dns查詢獲取最終的目的ip,在進行dns查詢的過程中,resip協議棧提供了集中方式。

方式1,通過本機的hosts(windows系統檔案)檔案中查詢網域名稱繫結的ip位址

採用這種方式時,需要做一些額外的設定,比如告訴協議棧,讓其在進行網域名稱解析的時候首先查詢hosts中的記錄,如果hosts檔案中沒有則進行後續的操作,如果有則直接獲取該ip位址。

讓協議棧在進行網域名稱查詢時首先查詢hosts檔案的設定語句為:aresdns::enablehostfilelookuponlymode(true);

方式2,對於28181中,我們知道所有客戶端往出發送的訊息必須全部傳送給其指定的伺服器,所以這種情況下我們可以強制指定訊息的目的地而不進行dns查詢。強制指定訊息的目的地的操作語句為:

resip::uri forcetarget;

forcetarget.user() = msipserverid;

forcetarget.host() = msipserverip;

forcetarget.port() = msipserverport;

request->setforcetarget(forcetarget);

mdum->send(request);

resip學習筆記(sip訊息的產生和傳送)

本篇博文的目的是告訴大家如何徹底弄清楚resip協議棧的工作流程,resip作為最著名的sip協議棧之一,如果是接觸網路 通訊 網路會議或者是gb28181的同志相當有必要認認真真學習一下resip協議棧。對於任何乙個sip協議棧的學習我們只要弄清楚下面3點,可以說是已經掌握了這個協議棧的骨架了,先...

resip學習筆記(sip訊息的接收與處理)

在簡紹sip訊息的接收與處理之前我先們說一點意外獲取到的資訊 不知正確否?sipstack與dialogusagemanager fifo是其父類transactionuser的成員變數 中各維護乙個fifo但兩個fifo本質上不是同乙個fifo。但是裡面存放的訊息都是同乙個型別,一般情況下要傳送的...

resip學習筆記之指定需要鑑權認證的信令

在使用resip協議棧的時候我們發現只要將需要鑑權認證設定為true,那麼受到的所有訊息都會進行鑑權認證,必須等客戶端在傳送的訊息頭中新增authorization欄位,並且通過鑑權認證之後才會去進行後續的處理,而很多業務需求中我們只需要讓sip協議棧對register訊息進行鑑權認證,其餘的訊息不...