2012-11-22 56 views
45

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

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

回答

53

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

参考Android Developer's Guide

有不同的开源SIP协议栈库以及项目提供互联网上。您可以下载该项目的源代码。

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

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

有已在其projects.like Sipdroid使用这些库不同开源项目采用MjSipCsipsimple用途PjSip,imsdroid使用doubangoLinphone使用belle-sip

您可能也喜欢引用这个Android SIP stack - what to use?

+0

你能打电话和登录TLS我正在尝试使用douubango,但不是运行于UDP上的TLS,它工作正常 – Khan

+0

@Khan对不起,我没有深入研究,但是你可以试试[Lumicall](http://www.lumicall.org/) ),它支持TLS,它也是一个开放源码 – juned

+0

我试图实施CSIPSimple它有4或5个项目,它也显示和错误你怎么配置它 – Khan

30

开源SIP堆栈:

  1. Android SDK中的默认实现(API> 9):
    优点:提供的文档。容易明白。
    缺点:并非所有设备都支持。仅在大多数设备上使用WiFi。无法更改编解码器。

  2. 第三方

的Java:

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

优势:甲骨文(星期日)项目==>活动的发展。看起来比MjSIP更容易(更多文档)。
缺点:没有用于“着名”的应用程序。

  • MjSIP(许可证:GNU GPL)

优点:SipDroid是建立在它。 (源代码可用)(red5phone是另一个项目) 缺点:不完全符合RFC ?.缺乏教程(尽管可用Javadocs)。成熟。发展几乎死亡。

  • Doubango框架[机器人-NGN-堆](许可证: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

+1

“仅在WiFi上工作”---嗯,奇怪,我通常通过3G拨打自己 – djdance

+0

“Works on Wifi only”是否有任何文件参考? – ZhangLei

+0

@ZhangLei“在大多数设备,它只能通过无线网络的工作原理,没有3G或LTE(注意'android.net.sip.SipManager' contains方法['isSipWifiOnly'](http://developer.android.com/reference/ Android设备/网络/ SIP/SipManager.html#isSipWifiOnly(android.content.Context))知道,如果启用此限制)。” 【来源】(http://stackoverflow.com/a/20583243/1449056) – JohnTube