7

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

Android 已经包含一个 SIP 堆栈(从 2.3 开始),我能够修改 Walkie-Talkie 示例项目以完全按照我想要的方式工作。不幸的是,我无法在某些设备上使用这个应用程序(Casio Commando 就是其中之一),更糟糕的是,该应用程序只能在 wifi 上运行(正如我所提到的,这对我的项目来说是不可接受的)。

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

有没有人解构 CSipSimple 并将 SIP 部分从他们极其复杂的 UI 中分离出来,或者是否有人知道更简单的 SIP 库?使用本机 SIP API,我能够制作一个 200 行的 Android 活动,完美地进行调用......我如何使用支持非 wifi 的第三方 SIP 堆栈来实现这一点?

感谢您的任何意见,我知道很多人都被困在同一阶段。

4

3 回答 3

2

与其选择更复杂的 CSipSimple,不如攻击最基本的 apjsua,它运行相同的 pjsip 堆栈,因此它也有望满足您的要求:http ://trac.pjsip.org/repos/wiki/Getting-已启动/安卓

于 2013-04-09T17:33:55.933 回答
1

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

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

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

希望这可以帮助。

于 2013-04-11T16:32:39.340 回答
1

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

注册广播接收器和意图过滤器以从 csipsimple 获取回调。分析 csipsimple 中的 Incall 活动以获取更多详细信息。

于 2014-10-03T06:34:42.733 回答