Android Native SIP DTMF

Lea*_*ner 5 android sip

我正在android SIP(android.net.sip)用来VOIP打电话.试图发送DTMF.在SipAudioCall类的android中已经给出了两种方法

void sendDtmf(int code, Message result)
Sends a DTMF code.

void sendDtmf(int code)
Sends a DTMF code.
Run Code Online (Sandbox Code Playgroud)

我想用sendDtmf(int code)方法发送DMTF.但我不知道如何改变它是否实际发送.执行此操作后,我在收件人/发件人方面没有任何语气.打电话给我没有效果(因为它的后台处理不可见).任何人都可以让我知道我怎样才能改变它?另请解释我使用第二种方法sendDtmf(int code, Message result).

Sha*_*ell 2

通过sip发送DTMF主要有以下三种方法:

  1. 带内RTP 有效负载
  2. 生成DTMF 音
  3. sip 信息消息(已过时且很可能未使用)

它很可能使用带内 RTP 有效负载数据包。尽管我知道的大多数 sip 堆栈都有某种选项来选择要发送的 DTMF 类型。

抱歉,我对内置 Android SIP 堆栈一无所知,因此我无法直接回答有关其实现的问题。

为了检查 DTMF 是否正确发送,我会使用WireShark之类的工具来捕获 RTP 音频流。然后,您可以使用wiresharks voip 呼叫图分析选项,它将在RTP 中显示DTMF 事件!

VOIP 调用图分析输出