问题标签 [mjsip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
21854 浏览

android - Android SIP 堆栈 - 使用什么?

我需要在 Android 上创建一个 SIP 堆栈,它可以与 asterix 一起使用,并且可以让用户更改编解码器(我需要实现 G729 和其他一些编解码器)。我是这个领域(语音和编解码器)的新手,我将不胜感激每一点信息。在我对 Internet 的研究中,我发现了以下 SIP 堆栈:

  1. PJSIP
  2. MJSIP
  3. 耆那教

您建议将什么用于商业程序?或者你可以推荐一些其他的吗?对于我的特殊情况,它必须支持 G729 编解码器。

0 投票
1 回答
723 浏览

android - 星号:如果 SIP 对等体未注册,则不允许调用

我正在开发一个基于 SIP 的应用程序。一般来说,如果星号的一个注册用户呼叫未注册的用户,在这种情况下通话需要几分钟才能挂断,用户需要等待一段时间才能拨打另一个电话。

所以我想要做的是,我不想让调用者调用未注册的对等方。那么在星号对等设置中是否有任何参数可以设置来执行此任务。

我正在使用sipdroid作为参考。

0 投票
1 回答
598 浏览

nullpointerexception - 我无法创建 SipProvider-MjSip 库

我是 MjSip 的新手,我想创建一个 SipProvider 类的实例。所以我写了这个小代码但得到了一些错误:

这是错误堆栈:

我使用的是局域网,IP 地址是有效的。为什么会这样??请帮我!!!

0 投票
4 回答
60477 浏览

sip - “SIP/2.0 488 此处不可接受”错误

我是 MjSip 的新手,我使用 MjUa 来创建客户端。我想连接到星号服务器。它支持 G.711,但我无法配置我的应用程序。我使用这个配置:

但我仍然收到 488 错误,请帮助我。如何更改“MjUa”配置文件?


这是所有消息日志:

0 投票
1 回答
1854 浏览

java - 以编程方式在我的网络上呼叫我的 VoIP 电话

环境如下:我们的网络上有 PC 和 Cisco VoIP 电话。网络上有一个允许 VoIP 电话呼叫的电话开关,但我认为该开关与项目的这一部分无关。

这是我第一次将 VoIP 包含到我的软件中,所以我尝试先让我的 PC 向我的 VoIP 电话发出呼叫。从 PC 上,我可以 ping 电话的 IP 地址并得到响应,所以我应该能够与它通信。

到目前为止,我希望电话会响起。我在 Java 中使用 mjsip,我收到一条呼叫失败消息,原因是“请求超时”并且没有响铃。对于接听电话后会发生什么,我还没有完成任何代码,但我想至少让它响起。

我希望有更多 VoIP 经验的人可以验证或排除我的不当行为,或者能够揭露更多的陷阱。例如,我什至可以期望电话仅仅因为它是 VoIP 电话而响应 sip 呼叫吗?即使它是同一网络上的 VoIP 电话,我是否必须通过电话交换机?只是我的代码有问题吗?

假设我已经正确完成了该代码,它正在启动一个 sip 堆栈,设置用户配置文件,并尝试调用与手机 IP 和端口 5060 相对应的 sip 地址(谷歌告诉我 sip 端口通常是 5060 )。

如果我运行它,以下是我得到的输出。

0 投票
1 回答
4862 浏览

java - MJSIP:向服务器注册android客户端:onUaRegistrationFailure;Wireshark 400/错误请求

'你好

我尝试用 MJSIP 为 android 开发一个软电话。我有一个简单的测试设置:

  • 1 台 PC (Win7) 和 SIP 电话(号码 1000)
  • 1 台带有 sip 电话(号码 1001)和 Freeswitch 的 VM (Win7)

sip phone #1000 可以拨打#1001 和backwords。在我正在运行 eclipse 的 VM 上,我尝试使用 Freeswitch 注册 android siphone(编号 1002)。但我总是得到 onUaRegistrationFailure

我的日志显示:

有人可以给我一个提示如何注册android模拟器吗?为什么我会收到 onUaRegistrationFailure?

谢谢

编辑1:我改变了一些小东西,再次测试并查看wireshark。

来自wireshark:400请求:

编辑2:将端口编辑为“54321”并将IP编辑为10.0.2.15后,这应该是android开发页面wireshark上写的模拟器网络接口显示405(不允许方法)。

痕迹:

编辑3:领域“172.22.0.34”端口5060和自己的ip:10.0.2.15显示结果:403禁止但我在wireshark中看不到任何东西。所以模拟器没有发送任何东西?

edit4:我使用了不同的 IP 和端口配置。这是我测试过的。配置:

更改端口

更改领域的ip

edit5:如果我注册 X-Lite,这就是wireshark 跟踪的样子:

edit6:当我尝试调用 toURL 时的 FS 日志:

edit7 在 pc 的 wlan 中使用真实设备进行测试:

0 投票
1 回答
1855 浏览

java - Android:通过 RTP (G.711 PCMU) 将 .wav 发送到 SIP-Phone,非常嘈杂,基于 SipDroid/MjSIP 的噼啪声

我想将 .wav 文件从我的 android 传输(仅发送)到软电话(x-lite),以便 x-lite 上的被叫方可以听到 .wav 文件的声音。

场景如下:Android和x-lite都在同一个WLAN中,都连接到FreeSwitch。我可以从安卓手机呼叫 x-lite。如果在 x-lite 上接受呼叫,则 android 会发送 .wav 文件,我可以在 wireshark 中看到 RTP 数据包(G.711 PCMU)从手机发送到 x-lite。我能听到一些声音,但不是我所期望的。相反,它的噼啪声、嘈杂声和一些哔哔声。

那么我发送给 x-lite 的 SDP 有问题吗?

还是我发送.wav的方式有问题?

如果我在 Wireshark 中关注 UDP Stream,开头看起来像这样:

......嗯............-......1......0......,......)......'......0...... ?...=.#.'.$. 。!....................Tm值........................... ..$.............. ......&............ ...... ……………………………………………………………………………………………………………………………………………… ……………………M……=……我……W……J……/………… .............#...<...T...Z...B.................M.. ...#...5....5..............”...... ...... .......5.WL..N............M....C......8.m.'。 R...>...O...p...~...e...I...3... ................... …………………………………………………………………………………………………………………… ..........................M.... ...5...R.. .L...3.../...B...Z...b... ...X...B...!.........{............MM.........$...2...(........................................................lM...............................-.!.R.J.].s.Z.t.U.c.b..qv....y.........M...h.. .V...Y...c...lfE*................................(...E. ..X........M....J....5.H.7.5.^...~...j...... ....(.=.h....F....Q...(....M....EX..{.. .L.2………………Q.……v……………… ..........M..................0...S....K....7.+.B.... ......&......O......]............M......rB......w.. .8.Q...?...A...>....).../.

所以我猜它不是空的。在信号开始后,一些信号从 x-lite 发送到 android,然后再从 android 发送一些包到 x-lite ......等等

谁能告诉我为什么我听不到声音?

(也欢迎其他解决方案)编辑:

这是来自 MjSip 的 RTPStramSender 的实现:http: //pastebin.com/xU4EdEex

编辑 2:我将 RFC 中的 SDP 更改为:

但什么也没发生。我更改了帧大小和帧速率,但噼啪声只会变得更快或更慢

编辑3:RtpPacket的实现: http ://pastebin.com/tDLr5CYF

0 投票
1 回答
681 浏览

android - 所有第三方 sip 库示例项目都包含很多错误。如何进行

起初我想使用本机 sip apis 在 android 应用程序中实现 sip 调用,它工作正常,但在 CANVAS 3、Samsung S2、s3 等某些设备中它不起作用。调试后我发现这行代码返回 NULL

经理 = SipManager.newInstance(ctx);

这意味着该设备不支持 Sip APIs。但在同一设备上,其他用于 sipcalling 的应用程序(如 SipDroid 等)工作正常。怎么可能?他们不使用本机 sip APIs 吗?

所以开始寻找第三方支持,但所有的库只有一个开源项目,我在导入这些项目时遇到很多错误。

使用mjsip库的sipdroid

csipsimple使用pjsip

imsdroid使用Doubango

我已经尝试了很多次构建它并在android模拟器上启动它,但没有任何成功。源代码不会生成并生成大约 1500 个错误。同时,当我下载应用程序的 apk 文件时,它在模拟器上运行没有任何问题。

我已经搜索了互联网,并没有在公开场合发现任何关于该问题原因的具体问题。

我想知道官方网站上的源代码是否有一些实际应用程序没有的错误,并且您还没有机会将更正添加到公共源代码中。

0 投票
0 回答
481 浏览

android - Android对讲机应用程序无法连接到服务器

我正在尝试修改开源应用程序 Android Walkie Talkie http://sourceforge.net/projects/android-ptt/但原始应用程序本身在连接到服务器时似乎有问题。我找不到问题。该应用程序正在使用 mjsip 服务器,它显示 getaddrinfo(-1) error=8。