- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
从此处找到的示例开始:https://trac.pjsip.org/repos/wiki/Getting-Started/Android ,我设法构建并运行了 pjsua2 示例应用程序。
问题是我无法发送 DTMF 代码,它们出现在 logcat 中但根本没有发送(我使用 wireshark 进行了检查)。确认通话状态后,我尝试发送 DTMF 代码,如下所示:
currentCall.dialDtmf("123#");
或
currentCall.dialDtmf("1");
currentCall.dialDtmf("2");
currentCall.dialDtmf("3");
currentCall.dialDtmf("#");
如果我发送这些代码,服务器应该开始播放声音,所以我得到一些反馈,表明代码已正确发送。问题不在服务器端,因为我已经用其他第 3 方应用程序进行了测试。
我也尝试过以下但没有成功:
OnDtmfDigitParam dtmfDigitParam = new OnDtmfDigitParam();
dtmfDigitParam.setDigit("1");
currentCall.onDtmfDigit(prm);
还有其他想法吗?
编辑:我认为这与 RTP 有关?该库似乎没有响应它发送给 Android 应用程序的服务器消息(RTP g711A - 这是在 ACK @call 建立/确认后发送的)。
谢谢!
最佳答案
检查您的服务器接受什么类型的 DTMF。
Pjsua2 dialDtmf
方法将使用 RFC 2833 有效负载格式将 DTMF 数字发送到远程。
您可以在 wireshark 中将 DTMF 数据包视为 RTP 事件。
引用下面的链接...
关于Android pjsip DTMF 代码不发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24367467/
我开发了 android 应用程序,可以在单击按钮时调用其他人,但现在我想在需要时将 dtmf 音调从应用程序发送到该呼出电话。那么该怎么做呢? 最佳答案 其实是可以的。它不是那么明显,也不是那么优雅
我有以下拨号方案: exten => 224,1,NoOp(IN CALL : ${CALLERID(num)} => ${EXTEN}) exten => 224,n,Dial(${
我想知道是否有人遇到过在 iPhone SDK 中生成铃声的方法。我正在尝试生成 DTMF 音调,但似乎找不到任何实质性内容。我还希望能够指定播放音调的时间(即模拟按住按钮而不是简单地按下按钮....
所以我打开了一个我在 audacity 中生成的 DTMF 音调的 .raw 文件。我抓取了一个类似于维基百科文章中的 jar 装 goertzel 算法。虽然它似乎没有解码正确的数字。 解码后的数字
我正在尝试为基于 WebRTC 的 Android/iOS 应用程序实现 DTMF。是否有适用于 Android 的 DTMF API?我试过调用以下内容: m_peerConnectionFacto
所以我打开了一个我在 audacity 中生成的 DTMF 音调的 .raw 文件。我抓取了一个类似于维基百科文章中的 jar 装 goertzel 算法。虽然它似乎没有解码正确的数字。 解码后的数字
我正在尝试为基于 WebRTC 的 Android/iOS 应用程序实现 DTMF。是否有适用于 Android 的 DTMF API?我试过调用以下内容: m_peerConnectionFacto
我需要在我的应用程序中开发拨号盘,就像原生 iPhone 手机应用程序拨号盘一样。我已将 .wav 文件添加到我的项目中,以便在单击数字按钮时播放声音,但它们太大声了。但 iPhone 手机应用程序拨
我正在尝试执行以下操作 我正在使用我的 java 应用程序给另一个人打电话(已经完成并且工作正常)。 然后我正在播放录音,例如“请按 1 以继续用英语”(已经完成并且工作正常)。 现在我想检测那个人按
我已经阅读了有关用于检测带内 dtmf 的 freeswitch 中的 start_dtmf 应用程序。 我已经测试过这个,但它没有检测到任何 DTMF。 请帮我。 最佳答案 老问题,但值得
我只需要一段 java 代码,它可以从麦克风中检测 DTMF,并将字符打印到 System.out。我一直在寻找,但找不到。 最佳答案 关于用 Java 捕获音频的 Oracle 文档: http:/
从此处找到的示例开始:https://trac.pjsip.org/repos/wiki/Getting-Started/Android ,我设法构建并运行了 pjsua2 示例应用程序。 问题是我无
有什么方法可以动态生成上行链路 DTMF 音(即接收器听到它)? 当我查看 android 源代码时,我看到了一个名为 startDTMF() 的函数,这正是我所需要的,但我找不到任何允许我访问该函数
我正在使用 android SIP(android.net.sip) 进行 VOIP 通话。正在尝试发送 DTMF。在SipAudioCall类的android中给出了两个方法 void sendDt
我想在接听电话后调用一个号码,这通常是通过通话中的拨号盘完成的。 我尝试了以下方法,但开始调用新电话(ACTION_VIEW 也是如此)。 Intent dial = new Intent(Inten
我正在调用一个带有号码的通话应用程序,然后通过 发送 dtmf 音 String number = "tel:+1234567,890#"; Intent c1 = new Intent(androi
Android 的新手。我有一个应用程序正在运行,我正在生成 DTMF 信号并解释微 Controller 生成的内容。我成功地生成了音调,但是音调是通过扬声器播放的,我想通过一个拼接的耳机插孔播放音
我有一个拨号方案,我想要的是,如果用户按任意键然后再次播放文件,但我不明白如何在拨号方案中获取dtmf 值。这是我的拨号方案: [callme] exten => s,1,Answer exten
我正在开展一个项目,该项目要求我的应用能够在通话期间以语音的上行链路频率发送 DTMF 音。 我的两个条件是: 我们不使用定制的 Android 平台 我们不需要root手机 我花了几天时间做功课,并
我正在将 CallKit 与 VOIP 应用集成。我能够拨入和拨出电话。我遵循了以下步骤: 配置 Audio Session 在(didActivate)中启动音频 在(didDeActivate)中
我是一名优秀的程序员,十分优秀!