2013-01-22 29 views
1

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

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

什么粘在我的脑海如下:

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

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

  • 使实际传输,我相信所涉及的分组/ procols是(有效载荷)的 - > RTP in - > UDP in - > IP。

这目前看来比较复杂,所以我的第一个问题是:

1)这是一个标准的做法?这是最佳实践吗?我得到了一些提示,相反,MSRP可用于传输内容,但我已经读过它仅适用于IM,文件等。

2)我应该使用哪个SIP堆栈来获得最佳结果/性能?我可以使用Java/Eclipse进行开发。我正在选择JSIP(或基于jsip的tinysip),但我不确定。

3)请给我关于如何实现的Android(RTP Java中的数据传输)

作为最后一个音符一些提示,我并不排除PJSIP。我认为它可能实际上更快,因为它使用NDK(我可以切换到C++,np)。我还读到它已经包含音频/视频传输。 我只是不知道它是多么容易使用和扩展它,它真的有多好。如果您已经使用过,请告诉我!

谢谢。 PS:虽然不是紧急或确定,但可携带性可能是未来的一个重要因素。 我将在不久的将来需要视频传输。

+0

请根据您的经验给出答案。如果你提出了一个框架,请告诉我们它的稳定性,可靠性,可移植性,易学性/文档等。只要有可能,请使用参数(最好根据你自己的经验)来证明为什么它是被选择的框架。 – stormofwar

回答

0

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

+0

我确实看了一下。人们在他们的论坛上抱怨他们自己的Android应用程序。快速浏览也给了我一个印象:它不能连接到任何voip服务器,而只能连接到teampeak服务器。 – stormofwar

+0

你是对的,他们给解决方案扩展与语音聊天的应用程序。 android应用程序真的很麻烦,主要是UX很糟糕。带宽,CPU使用率低,延迟低,质量也可以。 – Marcell

1

您应该签出IMSDROID项目。它使用C语言编写的Doubango框架,具有高度的可移植性。此外,它也是开源的,所以你可以玩他们的代码,并可能为社区做出贡献。

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

欢呼:)

0

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

相关问题