6

我想构建一个 iPhone 应用程序,它可以选择通过 SIP (VoIP) 拨打电话,但目前我不知道如何开始。

有没有人有关于这个主题的一些信息,或者我可以用来实现 SIP 功能的演示项目?

提前致谢!

4

3 回答 3

14

你面前有一条漫长而有趣的道路。: - )。

  1. 您将需要选择一个 SIP 库来构建您的应用程序。有许多开源的 SIP 堆栈,其中一些甚至有适用于 Mac OS 和 iOS 的 xCode 项目。您可能想查看ReSIPRocatePJSipSofia SIPoSIP/exoSIP

  2. 您需要围绕该 sip 堆栈构建逻辑,这将允许您管理 sip 对话,并处理您想要支持的所有可能的呼叫场景,为这些呼叫设置和管理音频通道等。一些 SIP 堆栈上面的功能比其他功能更多。还有许多公司出售基于这些开源 SIP 堆栈构建的 iOS 工具包,以使您的工作更轻松。

  3. 您需要将该 SIP 堆栈与 iOS 集成。这意味着将您的 iOS 应用程序连接到(可能的)基于 C 的 SIP 堆栈并对其进行管理。Apple 在其“高级应用程序技巧”iOS 开发人员文档(高级应用程序技巧)中提供了一组非常简短的关于开发 VoIP 应用程序的建议,其中提供了有关背景和音频通道的建议。

  4. 使用 SIP 服务器和其他 sip 客户端进行测试。创建一个 Asterisk/Freeswitch 框并向其注册 SIP 客户端,包括您的 iOS Sip 客户端和其他基于桌面的 SIP 电话(XLite 是一个很好的使用)。尝试您想要支持的所有通话场景。

至于演示,有一个基于 PJSIP 的名为 siphone 的开源 iPhone 应用程序,它的源代码可免费下载:http ://code.google.com/p/siphon/

我还会查看当前 App Store 中许多基于 SIP 的应用程序中的一些。这些包括 Bria、Acrobits、Fring、Truphone、iSIP 等。

于 2012-07-25T19:14:56.930 回答
4

我知道这有点晚了,但供将来参考;我们有很好经验的另一种 SIP 堆栈是Linphone 项目

与前面提到的一些堆栈一样,如果您也计划为其他操作系统(例如 Android)编写代码,则此堆栈非常适合。

于 2012-08-08T11:54:45.787 回答
3

检查下面的链接。您将从那里获得源代码,并且可以为设备和模拟器构建。

https://github.com/radif/SIPHON-SIP-Client-that-actually-compiles

于 2013-01-04T11:31:53.627 回答