2013-04-04 103 views
7

我正在写一个自定义Android应用程序,允许用户使用SIP进行VOIP呼叫。当用户按下按钮时,与另一个SIP用户发起语音通话。而已。唯一的其他要求是它必须在2.3以上的Android设备上工作,并且不能仅限于WiFi。Android SIP与CSipSimple和pjsip

Android已经包含一个SIP堆栈(从2.3开始),并且我能够修改Walkie-Talkie示例项目以使其完全符合我的需求。不幸的是,我无法使用这个应用程序与某些设备(卡西欧突击队是其中之一),更糟糕的是,该应用程序只能在无线网络上工作(正如我所提到的,我的项目无法接受)。

我开始搜索另一个具有易于使用的API的SIP堆栈,并且遇到了CSimpleSip。我编译并运行了他们的演示项目(SipHome),它在我的不支持的手机(包括突击队)上完美运行,并且它还通过无线网络工作,满足了我的要求。我很兴奋......直到我看了CSipSimple的源代码。我不知道如何开始提取实际的对基础pjsip API的调用,也不能让pjsip演示应用程序在超过10个小时后工作。

有没有人解构CSipSimple,并从他们令人难以置信的复杂UI中分离出SIP部分,还是有人知道更简单的使用SIP库?通过本地SIP API,我能够完成一个200行的Android活动,完美地完成了呼叫......如何使用支持非WiFi的第三方SIP堆栈来实现这一目标?

感谢您的任何意见,我知道很多人都陷入了这个同一阶段。

+1

我在库模式下使用CSipSimple,实际上比解构整个包要容易得多。对OP来说可能太晚了,但其他任何寻找指针的人都可以在这里找到我。 – andreimarinescu 2014-08-21 12:47:18

+1

@andreimarinescu我正在调查CSipSimple(或任何其他库),这将允许我进行语音/视频通话和即时消息。 :) – 2014-11-16 17:39:06

+1

那么,你应该看看Github上的SampleCSipSimpleApp,它是在库模式下使用CsipSimple的一个起点。这里记录API:http://r3gis3r.github.io/SampleCSipSimpleApp/javadoc/。另外请记住许可模式。据我所知,除非你已经购买了PJSIP许可证,否则你将不得不提供你正在开发的应用程序的源代码。 – andreimarinescu 2014-11-17 11:38:16

回答

1

我完全同意Balint,apjsua是帮助你更好理解的应用程序,但是当你不熟悉C时(比如我),它可能并不明显,但它更有效率这条路。

你可以看看www.pjsip.org,只关心你将要下载的软件包,因为这个教程不太清楚:例如,他们会谈论你很多关于apjsua(pjsua的android实现)和这个应用程序是不包含在他们提供的下载链接中,你可以在这里看到我的问题: where's apjsua?

当然,你必须在pjsip网站上观看android教程。

希望这会有所帮助。

1

使用csipsimple作为库项目。csipsimple项目中有一个API用于库。您可以绑定到csipsimple服务并进行调用。

注册broadcastrecievers和intent过滤器以获取从csipsimple回拨。有关更多详细信息,请以csipsimple分析Incall活动。