SIP協議八(DTMF,語音留言,DND,TCP的SIP)

DTMF,語音留言,DND,TCP的SIP

DTMF

DTMF(dual-tone multifrequency):多音雙頻,由4個高頻羣和4個低頻羣組成。一個高頻信號和一個低頻信號疊加組成一個組合信號,代表一個數字。DTMF信號有16個編碼。

作用:可以作爲實現電話號碼快速可靠傳輸的一種技術,它具有很強的抗干擾能力和較高的傳輸速度,因此可廣泛應用在電話通信系統上。

VOIP中的傳送DTMF信號的三種方式
通過通信協議傳輸(SIP信令)【帶外檢測方式】
通過RTP的數據內容傳輸(In Band)【帶內檢測】
通過rfc2833的規則和格式包傳輸【帶內檢測】

詳解傳送DTMF信號的三種方式

(1)通過通信協議傳輸(SIP信令)【帶外檢測方式】
通過SIP信令的INFO方法攜帶DTMF信號。通過SIP INFO包中的signal字段識別DTMF按鍵。注意當DTMF爲"*"時不同的標準實現對應的signal=*或signal=10
好處:不會影響到RTP數據包的傳輸
不足:由於SIP控制信令和媒體傳輸(RTP)是分開傳輸的,很容易造成DTMF信號和媒體包不同步

抓包SIP INFO
話機A設置DTMF爲SIP INFO

A撥給B,A在通話中按1和0(A本身的聽筒,耳機,揚聲器可以清晰的聽到按鍵聲),查看INFO數據包的Message Body項的Signal字段爲1跟0
在這裏插入圖片描述
在這裏插入圖片描述

(2)通過RTP的數據內容傳輸(In Band)【帶內檢測】
In audio是指直接將DTMF的音頻數字信號不經任何處理直接打成RTP包在IP網中傳輸。其中可能和用戶的語音媒體流混合在一起傳輸。程序要獲知哪個包有DTMF信號,是什麼DTMF信號,必須提取RTP數據包進行頻譜分析,經過頻譜分析得到高頻和低頻的頻率,然後查表得到對應的按鍵。

抓包分析In audio
A設置DTMF方式爲In audio方式,A呼叫B(A按三次鍵,AB雙方均能聽到清晰的按鍵聲)
在invite和200 ok包中並沒有看到相關的DTMF信息
在這裏插入圖片描述
選擇A發送的RTP查看,可以看到RTP均勻的發送DTMF事件。
在這裏插入圖片描述
(3)通過rfc2833的規則和格式包傳輸【帶內檢測】
通過RTP傳輸,由特殊的rtpPayloadType即TeleponeEvent來標示RFC2833數據包。同一個DTMF按鍵通常會對應多個RTP包,這些RTP數據包的時間戳均相同,此可以作爲識別同一個按鍵的判斷依據,最後一包RTP數據包的end標誌置1表示DTMF數據結束。

抓包rfc2833
話機A設置DTMF爲rfd2833
在這裏插入圖片描述
A撥給B,A在通話中按8(A本身的聽筒,耳機,揚聲器可以清晰的聽到按鍵聲)
在這裏插入圖片描述
Payload type:telephone-event(101)是DTMF的有效載荷值
Timestamp:同一事件的時間戳值是一致的;接收方可以通過判斷時間戳來剔除冗餘信息。
Event ID:顯示按鍵值
在這裏插入圖片描述
RTP數據包的end標誌置1表示DTMF數據結束。
在這裏插入圖片描述
RFC2833模式下,一般DTMF發送有誤可能的情況有:A)Marker值標記錯誤;B)Timestamp時間戳重疊;C)Event Duration混亂

DTMF方式組合情況:

(1)In audio +RFC2833
A呼叫B,A按鍵,B聽不到按鍵音,查看invite和200 OK的SDP能看到RFC2833的有效載荷類型
(2)In audio+SIP INFO
A呼叫B,A按鍵,B均能聽到清晰的按鍵聲,查看invite和200 OK的SDP看不到RFC2833的有效載荷類型,查看SIP包能看到INFO包,查看RTP的播放情況,能看到均勻發送DTMF事件。
(3)RFC2833+SIP INFO
A 呼叫B,A按鍵,B不能聽到按鍵聲,查看invite和200 OK的SDP,能看到RFC2833的有效載荷類型,能查看到INFO 包,和RTP裏有event事件包。
(4)IN audio+RFC2833+SIP INFO
A呼叫B,A按鍵,B 不能聽到按鍵聲,查看invite和200 OK的SDP,能看到RFC2833的有效載荷類型,能查看到INFO包,RTP能看到event事件,RTP播放情況,能看到均勻的發送DTMF事件。

DTMF的有效載荷值——默認爲101,此值可以修改,取值範圍爲:96~127之間,修改此payload值後,在wireshark上如果不修改相對應的payload值,是無法查看到event事件的信息。

語音留言信箱

語音信箱(voice mail)用於接收遇忙或者無接聽情況下的語音留言而產生的電子郵件
開啓待測話機所用UCM服務器號碼的語音信箱功能
在這裏插入圖片描述
查看語音信箱接入號(想聽信箱直接撥語音信箱接入號)
在這裏插入圖片描述
設置待測話機的語音信箱接入號
在這裏插入圖片描述
啓用MWI功能
在這裏插入圖片描述
抓包分析
在這裏插入圖片描述
查看SUBSCRIBE包中
Event:Voice Mail事件類型必須爲Message-summary;
Accept:可接受的描述格式。
在這裏插入圖片描述

NOTIFY包中
Event:類型爲Message-summary,說明是一條Voice Mail更新通知;
Message-Waiting:無留言爲“no”,有留言爲“yes”;
Voice-Message:0/0,前者爲新留言數,後者爲舊留言數。
在這裏插入圖片描述

DND

DND同步:開啓免打擾模式,完全屏蔽來電,不同的是,來電Invite由誰回覆。
本地DND:開啓DND來電後依然會收到Invite,用戶可選擇是否有DND來電提示音,之後話機會自動拒接來電,並攜帶頭域爲"Warning: 399 GS “Do-not-disturb is on”"。
服務器DND:基於UCM遠程同步DND,開啓/關閉DND後會自動撥打一個*功能告訴服務器話機需要開啓/關閉DND,來電後(開啓DND)不會和收到Invite,服務器自動攔截Invite並處理。
.DND和遇忙轉移並存時,遇忙轉移優先級高

本地DND驗證抓包
開啓本地DND,用話機A撥打待測話機。
在這裏插入圖片描述
DND同步-服務器
首先進入UCM服務器地址,查看DND業務碼
在這裏插入圖片描述
其次到話機web頁面設置好業務碼
在這裏插入圖片描述
待測話機撥打*77開啓免打擾,抓包
在這裏插入圖片描述
用輔助機撥打給待測話機,抓包
(輔助話機撥打待測話機時,待測話機直接提示對方在通話中,待測話機並未收到Invite,服務器自動把該號碼標記爲免打擾了。由此可見,本地DND,話機會收到Invite,然後做出處理,而服務器DND,則服務器會自動處理DND。)
在這裏插入圖片描述

TCP的SIP

SIP協議通常都是用UDP傳輸,而這裏也可以用TCP來實現,做個對比,首先是毫無設置的話機A撥通話機B:
在這裏插入圖片描述
使用的是UDP作爲傳輸協議;
其次在UCM服務器上查看TCP所用端口
在這裏插入圖片描述
修改話機傳輸協議與SIP服務器端口號
在這裏插入圖片描述
在這裏插入圖片描述
話機A撥通話機B,抓包分析,這樣就實現了用TCP作爲傳輸層協議的SIP
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章