0

我捕获了一个 SIP 呼叫的 tcpdump 以调试 DTMF 问题(重复数字),但我在解释它时遇到了一些问题。

据我了解,当我通过wireshark的“VOIP CALL”解析捕获的流量时,我应该看到类似这样的内容(对于数字123):

CAPTURE 1
RTP 电话事件 DTMF 一 1
(事件结束)
RTP 电话事件 DTMF 二 2
(事件结束)
RTP 电话事件 DTMF 三 3
(事件结束)

但我看到的是
CAPTURE 2
RTP 电话事件 DTMF 一 1
RTP 电话事件 DTMF 一 1
RTP 电话事件 DTMF 一 1
(结束)
RTP 电话事件 DTMF 二 2
RTP 电话事件 DTMF 二 2
RTP 电话事件 DTMF 二 2
(结束)
RTP 电话事件 DTMF 二 3
RTP 电话事件 DTMF 二 3
RTP 电话事件 DTMF 二 3
(结束)

在 1 个系统上,CAPTURE 2 被检测为 123,但在另一个系统上,它似乎将其解码为具有重复数字。Wireshark 不将它们组合为单个 RTP 事件的原因是什么?

这是 rtp 流量:
捕获 1:

RTP EVENT DTMF 1
RTP EVENT DTMF 1
RTP EVENT DTMF 1(结束)
RTP EVENT DTMF 1(结束)
RTP EVENT DTMF 1(结束)
RTP EVENT DTMF 2
RTP EVENT DTMF 2
RTP EVENT DTMF 2(结束)
RTP EVENT DTMF 2(结束) )
RTP EVENT DTMF 2(结束)
RTP EVENT DTMF 3
RTP EVENT DTMF 3
RTP EVENT DTMF 3(结束)
RTP EVENT DTMF 3(结束)
RTP EVENT DTMF 3(结束)
RTP Payload
...
...
...
RTP Payload

而 CAPTURE 2 是:
RTP 事件 DTMF 1
RTP 有效负载
RTP 事件 DTMF 1
RTP 有效负载
RTP 事件 DTMF 1(结束)
RTP 有效负载
RTP 事件 DTMF 1(结束)
RTP 有效负载
RTP 事件 DTMF 1(结束)
RTP 有效负载
RTP 有效负载
RTP 有效负载
RTP 有效负载
RTP 有效负载
RTP 事件 DTMF 2
RTP 有效负载
RTP 事件 DTMF 2
RTP 有效负载
RTP 事件 DTMF 2(结束)
RTP 有效负载
RTP 事件 DTMF 2(结束)
RTP 有效负载
RTP 事件 DTMF 2(结束)
RTP 有效负载
RTP 有效负载
RTP 有效负载
RTP 有效负载
RTP 事件 DTMF 3
RTP 有效负载
RTP 事件 DTMF 3
RTP 有效负载
RTP 事件 DTMF 3(结束)
RTP 有效负载
RTP 事件 DTMF 3(结束)
RTP 有效负载
RTP 事件 DTMF 3(结束)
RTP 有效负载
RTP 有效负载
RTP 有效负载
RTP 有效负载
RTP 有效负载
RTP 有效负载

CAPTURE 2 是否遵循 RFC2833?

4

2 回答 2

3

实际上,规范鼓励您冗余传输 RTP Event 数据包,因为可能会丢失数据包,并且他们建议至少发送 3 次。检查每个重复事件的开始和结束时间。如果您需要扩展事件(键仍然按住,比您想在一个事件中编码的时间长等),那么您可以扩展它而不结束它。

这也是 End 数据包被发送 3 次的原因。(参见RFC 2833 的第 3.6 节)。

于 2010-10-22T23:37:18.683 回答
2

RFC 2833 “事件”完全有可能被编码为多个 RTP 数据包。3.6 节告诉我们,

如果一个事件持续超过一个周期,则产生事件的源应发送一个新的事件包,其 RTP 时间戳值对应于事件的开始,并且事件的持续时间相应增加。

RFC 将“一个周期”定义为 50 毫秒。

所以

RTP 事件 DTMF 1
RTP 事件 DTMF 1
RTP 事件 DTMF 1(结束)

意味着我们有人按下 1 键大约 150 毫秒。

于 2010-10-02T07:12:58.103 回答