4

问候!

我正在为 Android 开发(尝试开发)一个 VoIP SIP 应用程序,经过两周与 mjsip、pjsip 和 sdk 库的争吵后,我选择了 JAIN-SIP。理论上,这些库看起来很棒。无需学习任何 android 本机代码、大量文档(但还不够,因为我在这里)等。

我的第一次尝试是使用 Android SDK 的 SIP 库(是的,我知道它们基于 JSIP),并且在 SipManager.open() 拒绝打开配置文件以与服务器通信后失败,没有任何异常或任何类型输出以帮助我诊断问题。(如果你有一个潜在的解决方案,请看这里)在研究了 mjsip 和 pjsip 之后,我决定按照计划,找出本机代码需要太多时间,所以 JAIN 似乎是完美的解决方案......或者是吗?

问题是 - JAIN SIP 库在包装中使用与 java 的核心库相同的名称,因此导致 dalvik 出现 dex 问题。但是好的,有一个“ant make all-android”解决方案可以将 sip 堆栈源构建到为 android 准备的单个 .jar 中。错了。只有“gov.nist”包被重构,“javax”包与以前一样,导致相同的 dalvik dex 问题。但是等等!- 还有 JarJar,一个重新打包你的 jar 并重构包的工具,解决了 dex 冲突。错误的. 使用 JarJar 重新打包还会重命名对堆栈进行加密和诸如此类所需的实际 javax.net 包的引用,从而导致异常和崩溃以及各种问题。所以我昨天大部分时间都在手动重构 javax 库,这导致

 ...Caused by: java.lang.Error: Unresolved compilation problem:

所以这是我的问题...

  1. 有没有人遇到过任何真正开箱即用的 android-ready jain-sip 库,无需重命名、重新打包和重构?
  2. 也许我的 JarJar 规则是错误的?有人可以为我提供规则来重命名所有包和对“javax.sip”和“javax.sdp”的引用,而不是“javax.net”吗?
  3. 是否还有其他适用于 android 的 SIP 库(不需要任何 NDK 或本机代码知识)?
  4. 为什么这在2014年还是那么痛?

PS 在将我指向谷歌页面或其他 stackoverflow 问题之前,请考虑一下我已经被困在这两个星期了,除了试图解决问题之外什么都不做——我可以向你保证,互联网已经被彻底搜索过,并且解决方案要么不适用,要么不起作用。

2016 年 5 月编辑 - 接受的答案现已过时,请参阅下面的 joelpatrol 的回复以获取更新的解决方案。这里

4

3 回答 3

5

您可以在此处找到重命名为 com.telestax 的 Android 特定 JAIN SIP 包https://mobicents.ci.cloudbees.com/job/jain-sip/ (android-jain-sip-ri jar),这是我们在 TeleStax 构建的以克服原生 JAIN SIP Android 问题。我们正在努力创建一个集成 WebRTC 媒体的移动 SDK,以便更容易在原生 Android 应用程序中实现消息传递和视频通话。我们将在未来几天创建一篇关于如何设置的博客文章。完成后,我将在此处更新线程

于 2014-09-18T13:50:02.717 回答
2

The accepted answer is out of date. The official builds now include a version suitable for Android, linked from the homepage: https://jsip.java.net/

I'm using them now and can confirm that they work fine.

于 2016-05-24T03:02:29.447 回答
0

有一些额外的陷阱,但制作自己的构建并不难。实际上只需 3-4 个 Eclipse 命令即可。由于需求量很大,我会制作一个合适的脚本来完成它,但除非非常紧急,否则我的目标是月底。

于 2014-09-18T09:59:17.753 回答