【问题标题】:Android SIP with CSipSimple and pjsip带有 CSipSimple 和 pjsip 的 Android SIP
【发布时间】:2013-04-04 19:56:47
【问题描述】:

我正在编写一个自定义 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 堆栈来实现这一点?

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

【问题讨论】:

  • 我在库模式下使用过 CSipSimple,它实际上比解构整个包要容易得多。对于 OP 来说可能为时已晚,但任何其他寻找指针的人都可以在这里联系我。
  • @andreimarinescu 我正在研究 CSipSimple(或任何其他库),它可以让我进行语音/视频通话和即时消息。 :)
  • 好吧,你应该看看 Github 上的 SampleCSipSimpleApp,它是在库模式下使用 CsipSimple 的起点。 API 记录在这里:r3gis3r.github.io/SampleCSipSimpleApp/javadoc。另外,请记住许可模式。据我所知,除非您购买了 PJSIP 许可证,否则您必须提供正在开发的应用程序的源代码。

标签: android sip voip pjsip csip-simple


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    您可以查看www.pjsip.org,只需注意您将下载的软件包,因为教程不是很清楚:例如,他们经常向您介绍 apjsua(pjsua 的 android 实现)和这个app 不包含在他们提供的下载链接中,您可以在此处查看我的问题: where's apjsua?

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

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 嗨 Nidhin,你能简单解释一下吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多