我正在寻找有关为 Android 开发 VoIP 应用程序的一般建议(技术、最佳实践等)。已经发布了类似的问题,但我包括了具体问题。
我做了一些研究,我注意到有几种可能的解决方案(当然我知道 SDK 中的 SIP 堆栈(也包括语音传输),但由于它在大多数设备上不可用,我不打算使用它。此外,我阅读了有关 Adobe Flex 实现的信息,但我想坚持使用原生的东西)。
让我印象深刻的是:
使用 SIP 启动会话(服务器存在)。在消息中使用 SDP 来描述会话。
建立 p2p 连接(防火墙/路由可能有问题 - 可以使用 STUN - 可能涉及 DNS)
进行实际传输,我相信所涉及的数据包/协议是(有效负载)在 -> RTP in -> UDP in -> IP。
目前这似乎很复杂,所以我的第一个问题是:
1)这是一种标准方法吗?这是最佳实践吗?我得到一些提示,相反,MSRP 可用于传输内容,但我读过它仅适用于 IM、文件等。
2) 我应该使用哪个 SIP 堆栈以获得最佳结果/性能?我可以使用 Java/Eclipse 进行开发。我想选择 JSIP(或基于 jsip 的 tinysip),但不确定。
3)请给我一些关于如何在Java for Android(RTP)中实现数据传输的提示
最后一点,我一点也不排除 pjsip。我认为它实际上可能更快,因为它使用 NDK (我可以切换到 C++,np) 。我还读到它已经包含音频/视频传输。我只是不知道它的使用和扩展有多容易,它到底有多好。如果你用过,请告诉我!
谢谢你。
PS:虽然不紧急或不确定,但便携性可能是未来的一个重要因素。在不久的将来,我也需要视频传输。