我正在为我的End Project编程一个应该具有VoIP功能的应用程序。我已经开始使用android 2.3包含的新SIP API进行测试。问题是我实际上住在学生宿舍,所以我通过建筑物的代理连接到互联网,它似乎有一个严格的防火墙,不会让任何东西通过。
我已经尝试了几个免费的SIP服务器和客户端,结果总是一样的:从我的UAC我可以看到其他客户端是否在线,我甚至可以发送短信,但是无法建立实际的呼叫。我从来没有得到客户的任何回复。使用Linphone客户端我甚至无法连接到SIP服务器进行身份验证。
问题是,似乎我不能在我的建筑物外面打电话,但我已经成功地从安装在模拟器上的另一个Linphone客户端联系了我的PC上安装的Linphone客户端。显然,我可以在没有任何SIP服务器的情况下在本地网络内拨打电话,只需使用接收器的本地地址而不是SIP域。
问题是:我可以使用新的Android 2.3 SIP API做同样的事情吗?我是否可以通过拨打接收方的本地地址在本地网络中拨打电话,而无需在我的大楼外使用任何SIP服务器进行身份验证?
由于我的申请是出于演示目的,这对我来说已经足够了。在过去的三天里,我一直在寻找这个问题的解决方案,但我还没有想出任何有用的东西。 :/
提前致谢。
答案 0 :(得分:0)
我认为在Android 2.3中不应该出现任何原因。对于具有端口的其他客户端本地地址,可以进行对等呼叫。
您还可以在PC上安装SIP服务器Brekeke server。并且您可以使用完整的SIP URI进行呼叫。
答案 1 :(得分:0)
因为音频和视频数据是通过不同的端口号发送的,而不是sip端口号。 SIP端口是tcp,您可以在Internet上登录您的SIP服务器。但媒体端口是udp而你是在nat之后,你不能打电话。要做到这一点,防火墙需要了解sip消息,然后它应该为udp媒体打开端口。你还需要stun服务器来进行nat遍历消息。