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