我正在编写一个自定义Android应用程序,允许用户使用SIP进行VOIP调用。当用户按下按钮时,与另一个SIP用户发起语音呼叫。而已。唯一的其他要求是它必须在2.3+ Android设备上工作,并且不能仅限于wifi。
Android已经包含一个SIP堆栈(从2.3开始),我能够修改Walkie-Talkie示例项目,使其完全符合我的需求。不幸的是,我无法将这个应用程序与某些设备一起使用(卡西欧突击队是其中之一),更糟糕的是,该应用程序仅适用于wifi(正如我所提到的,我的项目无法接受)。
我开始使用易于使用的API搜索另一个SIP堆栈,并遇到了CSimpleSip。我编译并运行他们的演示项目(SipHome),它在我不支持的手机(包括Commando)上工作得很好,它也可以在wifi上工作,满足我的要求。我很兴奋......直到我查看了CSipSimple的源代码。我不知道如何开始提取对底层pjsip API的实际调用,也不知道我能在10个多小时后让pjsip演示应用程序正常工作。
有没有人解构过CSipSimple并将SIP部分从其极其复杂的用户界面中分离出来,或者是否有人知道更简单的SIP库?使用原生SIP API,我能够进行200行Android活动,使呼叫完美无缺......如何通过支持非wifi的第三方SIP堆栈来实现这一目标?
感谢您的任何意见,我知道有很多人在同一阶段陷入困境。
答案 0 :(得分:2)
不应该使用更复杂的CSipSimple,而应该攻击最基本的apjsua,它运行相同的pjsip堆栈,因此它也应该符合您的要求:http://trac.pjsip.org/repos/wiki/Getting-Started/Android。
答案 1 :(得分:1)
我完全赞同Balint,apjsua是一个可以帮助你更好地理解的应用程序,但是当你不熟悉C(就像我一样)时,开始使用它可能并不明显,但它更有效率方式。
你可以看一下www.pjsip.org,只关心你要下载的包,因为教程不是那么清楚:例如他们会谈论你很多关于apjsua(pjsua的android实现)并且这个应用程序不包含在他们提供的下载链接中,您可以在此处看到我的问题: where's apjsua?
当然,您必须在pjsip网站上观看Android教程。
希望这有帮助。
答案 2 :(得分:1)
使用csipsimple作为库项目。在csipsimple项目中有一个api用于将其用作库。您可以绑定到csipsimple服务并进行调用。
注册广播解析器和意图过滤器,以便从csipsimple获取回调。在csipsimple中分析Incall活动以获取更多详细信息。