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
在这里插入图片描述

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