VoIP应用开发的问题(SIP等)

时间:2013-01-22 16:30:12

标签: android sip voip rtp

我正在寻找有关Android VoIP应用程序开发的一般建议(技术,最佳实践等)。已发布类似问题,但我提出了具体问题。

我做了很多研究,我注意到有几种可能的解决方案(当然我知道SDK中的SIP堆栈(也包括甚至包括语音传输),但由于它在大多数设备上都不可用,所以我不知道打算使用它。另外,我读到了Adobe Flex的实现,但我想坚持使用原生的东西。

我想到的是以下内容:

  • 使用SIP启动会话(服务器存在)。在消息中使用SDP来描述会话。

  • 建立p2p连接(防火墙/路由可能是一个问题 - 可以使用STUN - DNS可能不合适)

  • 进行实际传输,我相信所涉及的数据包/ procols是(有效负载)in - > 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:虽然不紧急或不确定,但便携性可能是未来的重要因素。 我将在不久的将来也需要视频传输。

3 个答案:

答案 0 :(得分:1)

您应该查看IMSDROID项目。它使用Doubango Framework,它是用C语言编写的,具有很高的可移植性。更重要的是,它也是开源的,所以你可以玩他们的代码,并可能为社区做出贡献。

http://code.google.com/p/imsdroid/

欢呼:)

答案 1 :(得分:0)

看一下teamSpeak。他们提供原生sdk-s。但他们不是免费的。 它不是P2P,需要服务器(至少我知道) 可能值得一分钟。 http://www.teamspeak.com/?page=teamspeak3sdk

答案 2 :(得分:0)

只使用基本功能编写自己的SIP堆栈需要几个月的时间。 我建议使用现有的SIP堆栈。讨论了一些开源here