Android SIP with CSipSimple and pjsip



我正在编写一个允许用户使用SIP进行VOIP呼叫的自定义Android应用程序。用户按下按钮,与其他SIP用户发起语音呼叫。就是这样。唯一的其他要求是它必须在2.3+ Android设备上工作,并且不能仅限于wifi。

Android已经包含了一个SIP栈(截至2.3),我能够修改对讲机示例项目,使其完全按照我想要的方式工作。不幸的是,我不能在某些设备上使用这个应用程序(卡西欧突击队就是其中之一),更糟糕的是,这个应用程序只能在wifi上工作(正如我提到的,这对我的项目来说是不可接受的)。

我开始寻找另一个SIP堆栈与一个易于使用的API,遇到了CSimpleSip。我编译了它并运行了他们的演示项目(SipHome),它在我不支持的手机(包括Commando)上运行得很好,也可以在wifi上运行,满足了我的要求。我太兴奋了……直到我看了CSipSimple的源代码。我不知道如何开始提取对底层pjsip API的实际调用,也无法在10多个小时后使pjsip演示应用程序工作。

有没有人解构CSipSimple并将SIP部分从其令人难以置信的复杂UI中分离出来,或者有人知道更简单的SIP库吗?使用原生SIP API,我能够制作200行的Android活动,完美地进行调用……我如何用支持非wifi的第三方SIP栈来实现这一点?

谢谢你的建议,我知道很多人都被困在了这个阶段。

与其使用更复杂的CSipSimple,不如使用最基本的apjsua,它运行相同的pjsip堆栈,因此它应该也符合您的需求:http://trac.pjsip.org/repos/wiki/Getting-Started/Android.

我完全同意Balint的观点,apjsua是一个可以帮助你更好地理解的应用程序,但是当你不熟悉C(像我一样)时,从它开始可能并不明显,但这种方式更有效。

你可以看看www.pjsip.org,只关心你要下载的包,因为教程不是很清楚:例如,他们告诉你很多关于apjsua (pjsua的android实现),这个应用程序不包括在他们提供的下载链接中,你可以看到我的问题在这里:apjsua在哪?

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

使用csipsimple作为库项目。在csipsimple项目中有一个api用于将其用作库。您可以绑定到csipsimple服务并进行呼叫。

注册broadcastreceiver和intent filters用于从csipsimple获取回调。分析csipsimple中的call活动获取更多细节。

最新更新