Android,VPN,Asterisk通讯

时间:2012-02-15 00:49:30

标签: android voip vpn asterisk nat

我正在尝试使用Android SIP API为Android编写一个voip应用程序(是的,我知道这只适用于某些带有2.3版本的Androids)。我希望通过Asterisk服务器路由呼叫。呼叫也需要加密。存在一个问题,即Asterisk和Androids需要在同一个子网上(否则不会交换音频)。我在http://blog.harritronics.com/2011/06/android-gingerbread-and-asterisk-pbx.html找到了一篇很好的博客文章,描述了那些好奇的人的情况。

我正在寻找如本文所讨论的设置VPN解决方案,因为我认为这可以解决NAT问题以及加密问题。我的第一个想法是使用OpenVPN,因为有一个非常活跃的社区,软件看起来很不错。但是,经过进一步检查,似乎在任何给定时间我都只能在VPN服务器上有2个客户端(对于免费版本)。每个额外的客户端连接是5美元。简而言之,我想知道是否存在可扩展的免费解决方案。我希望能够将大约100个Android手机连接到此VPN,以便同时与Asterisk通信。

另外,我之前没有做过任何VPN工作。我想知道我可以简单地在Android设置中使用VPN配置吗?或者是否需要额外的申请?我看到OpenVPN有一个Android的客户端解决方案,只有在手机被植根时才有效 - 这不是一个选项,因为它们不是我的手机。任何建议都将不胜感激。

谢谢!

2 个答案:

答案 0 :(得分:0)

不确定您一直在关注什么,但OpenVPN肯定对客户端数量没有任何限制。无论如何,正如您所知,默认的Android发行版不支持OpenVPN,尽管它集成在CyanogenMod中。 Android也有一个内置的VPN客户端,所以你只需找到一个可以使用它的服务器。从4.0(ICS)开始,也可以编写自己的VPN实现而无需使用手机。

BTW,只有在手机被NAT(例如,通过WiFi连接到内部路由器等)时才会出现音频问题。如果有全局地址,应该没有问题。如果您通过3G连接,这取决于您的运营商是否为手机提供实际的全球地址。

另一个替代方案不是Android SIP堆栈。还有其他解决方案,他们可能没有这个限制。检查sipdroid,它是开源的:

http://sipdroid.org/

另一种选择是不要尝试编写自己的应用程序,只需使用sipdroid:)

答案 1 :(得分:0)

除了Asterix的nat = yes选项,我只考虑另外一个解决方案。那个nat选项在路由器后面对我起作用,但我知道它不是一个非常聪明的" NAT穿越Asterisk,它需要" colaboration"来自客户。另一个解决方案可能是...当我使用它时,我使用的是CSipSimple,它是Android的开源voip客户端,可能你可以查看源代码并找到为什么遍历在路由器后面工作做NAT。

如果你只是寻找 Android VPN client ,那么其中有一些,至少有一个有100%免费选项。

希望有所帮助!