【问题标题】:VoIP library for Android [closed]适用于 Android 的 VoIP 库 [关闭]
【发布时间】:2012-11-10 18:33:25
【问题描述】:

我需要在我的 Android 应用程序中集成 VoIP 服务。
有没有免费(最好的开源)库?

我需要图书馆至少允许通过互联网进行语音通话,而不一定是互联网到电话(如 2 个 Skype 帐户)。

【问题讨论】:

    标签: android open-source voip


    【解决方案1】:

    开源 SIP 堆栈:

    1. Android SDK 的默认实现(API > 9):
      优点:文档可用。易于理解。
      缺点:并非所有设备都受支持。无法更改编解码器。

    2. 第三方

    Java:

    • JainSIP(许可证:公共领域)

    优势:Oracle (Sun) 项目 ==> 积极开发。看起来比 MjSIP 更容易(更多文档)。
    缺点:没有在“著名”应用中使用。

    • MjSIP(许可证:GNU GPL)

    优点:SipDroid 是建立在它之上的。 (提供源代码)(red5phone 是另一个项目) 缺点:不完全符合 RFC?缺乏教程(尽管有 Javadocs)。复杂的。开发几乎死了。

    • Doubango 框架 [android-ngn-stack](许可证:GNU GPLv3)

    优点:IMSDroid 是建立在它之上的。 (提供源代码)
    缺点:生成的 apk 文件大小往往“很大”(>15MB,如 here 所述)

    C/C++:

    • 本机 SIP 堆栈

    优点:多种选择(PjSip [CSipSimple]、GNU oSIP/eXoSIP [Linphone,已经制作了自己的堆栈 belle-sip])。完全符合 RFC?更好的性能。
    缺点:Android NDK/JNI 适合初学者。

    来源(旧的,主要是 C/C++):

    http://www.cs.columbia.edu/sip/implementations.html
    http://www.pernau.at/kd/voip/bookmarks-sip-stacks.html

    【讨论】:

    • “仅在 WiFi 上工作” --- 嗯,奇怪,我只是通过 3G 正常调用自己
    • 是否有“Works on Wifi only”的文档参考?
    • @ZhangLei "在大多数设备中,它只能通过 WiFi,而不是 3G 或 LTE 工作(注意 android.net.sip.SipManager 包含方法 isSipWifiOnly 以了解是否启用了此限制)。" source
    • @JohnTube 感谢您的耐心等待。顺便说一句,当我在两端使用扬声器时,我发现音频质量总是变差,噪音太大。 (我正在尝试使用 android sdk 和 linphone 的 sip 堆栈。)你知道吗?
    • 抱歉,我帮不了你。
    【解决方案2】:

    从 android 版本 2.3 开始,在 Android 中添加了 SIP API。您可以使用内置的 SipStack 库或第三方开源 sip 堆栈。

    参考Android Developer's Guide

    互联网上有不同的开源 sip 堆栈库和项目。您可以下载该项目的源代码。

    这里是一些流行的开源 sip 堆栈库的列表,这些库允许通过互联网进行语音呼叫。

    1.Pjsip
    2.Mjsip
    3.doubango
    4.belle-sip

    有不同的开源项目在他们的项目中使用了这些库。比如Sipdroid 使用 MjSipCsipsimple 使用 PjSipimsdroid 使用 doubango 和 Linphone 使用 belle-sip

    你也可以参考这个Android SIP stack - what to use?

    【讨论】:

    • 你能在 TLS 上打电话和登录吗?我正在尝试使用 doubango,但在 UDP 上的 TLS 运气不好,它工作正常
    • @Khan 抱歉,我没有深入研究这个,但是你可以试试Lumicall,它支持 TLS 并且它也是一个开源的
    • 我尝试实现 CSIPSimple 它有 4 或 5 个项目,它还显示和错误你如何配置它
    • 祝Android SIP 接口正常工作。在他们假定的演示之外的任何工作示例的快速谷歌搜索将是徒劳的。我已经spent hours 试图让演示连接到在其他客户端工作但没有运气的 SIP 服务器,而且似乎没有人能够/关心解决这个问题,这已被广泛报道。它还依赖于 javax,即使尝试在我的项目中构建整个 SIP 堆栈也无法完成,除非您想构建整个 Android 操作系统。
    • @Gemi,没有谷歌不会主持你的电话。您可以通过在系统(本地或远程)中安装任何电话引擎(如 Asterisk 或 Freeswitch)来创建自己的服务器,然后您就可以开始了
    【解决方案3】:

    如果您需要 VoIP 但不需要 SIP,请查看 WebRTC http://www.webrtc.org/

    【讨论】:

      猜你喜欢
      • 2013-11-10
      • 2010-11-19
      • 2011-08-22
      • 1970-01-01
      • 1970-01-01
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多