繁体   English   中英

Android Native SIP DTMF

[英]Android Native SIP DTMF

我使用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.

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

使用sip发送DTMF有三种主要方法:

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

最有可能的是它使用带内RTP有效载荷数据包。 虽然我知道大多数sip堆栈都有某种选择来选择要发送的DTMF类型。

对不起我对内置的Android SIP堆栈一无所知,所以我无法直接回答有关实现的问题。

我要做的是检查DTMF是否正确发送是使用类似WireShark来捕获RTP音频流。 然后,您可以使用wiresharks voip调用图分析选项,它将在RTP中显示DTMF事件!

VOIP调用图分析输出

android.net.sip仅支持dtmf模式RFC 2883.您可以使用wireshark等软件和/或服务器端日志(或其他对等日志)轻松查看这些消息。 只需确保对方支持这种dtmf(RFC 2883支持)。

我使用Counterpath X-Lite V4.9.8来帮助使用本机SIP库开发Android OS SIP应用程序。 X-Lite Softphone / Preferences / Calls应设置为“通过RFC 2833发送”。

一旦你有一个带有双向音频的有效SIP呼叫,并且你使用你的call.sendDtmf(5),作为一个例子,在那个呼叫期间,你可以通过X-Lite应用程序听到DTMF音调,音调持续约1 /每秒2秒。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM