【问题标题】:Android-ready JAIN-SIP library?Android 就绪的 JAIN-SIP 库?
【发布时间】:2014-09-18 09:21:15
【问题描述】:

你好!

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

我的第一次尝试是使用 Android SDK 的 SIP 库(是的,我知道它们基于 JSIP),但在 SipManager.open() 拒绝打开配置文件以与服务器通信后它失败了,没有例外或任何类型的输出来帮助我诊断问题。 (如果您有潜在的解决方案,请查看here)在研究了 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”的引用,但NOT“javax.net”?
  3. 是否还有其他适用于 android 的 SIP 库(不需要任何 NDK 或本机代码知识)?
  4. 为什么 2014 年还这么痛?

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

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

【问题讨论】:

  • 我承认这可能是一个好问题,但也存在一些问题:1) SO 不接受库推荐。 2) 没问题。 3) 再次,原因与 1. 4) 相同。不是建设性的问题。您可能通过告诉您在 JarJar 上尝试了哪些规则来尝试改进这个问题。这样,人们可能知道出了什么问题。除此之外,Android VoIPers 可能真的不多。
  • 1) 抱歉,错过了这条规则。 2) 酷。 3) 同 1。 4) 同意。了解为什么可以构建消息、将其发送到服务器并侦听回复仍然很有用,但是当打包到一个基本上做同样事情的库中时会变得如此忙碌。

标签: java android sip jain-sip


【解决方案1】:

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

【讨论】:

  • org.nist (com.telestax) 包不是问题 - javax.sip.* 和 javax.sdp.* 是问题,因为它们使用与 JDK 相同的名称(SDK 的) 核心库。
  • 我们将把它们重命名为 javaxx.sip 和 javaxx.sdp,如果您有更好的名称,请随时提出。准备好后我会在这里更新
  • 我尝试重命名它们是“jainx.**”
  • 重命名为 javaxx.sip 和 javaxx.sdp 完成。 gov.nist 也更名为 gov.nist.android。您可以在mobicents.ci.cloudbees.com/job/jain-sip/lastSuccessfulBuild/… 找到最新的 jar
  • 太棒了!最好的客户支持。
【解决方案2】:

接受的答案已过期。官方构建现在包括一个适用于 Android 的版本,链接自主页:https://jsip.java.net/

我现在正在使用它们,并且可以确认它们工作正常。

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 不再紧急,因为我再次给Android SDK的库提供了机会,并且意外地取得了一些进展。但是这样的剧本肯定会让其他一些可怜的人受益,如果我决定再给 JAIN 一次机会,我可能也会受益。
    猜你喜欢
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    • 2014-09-04
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多