2011-05-16 188 views
2

我正在为我的End Project编程一个应具有VoIP功能的应用程序。我已经开始使用android 2.3包含的新SIP API进行测试。问题是我实际上住在学生的宿舍,所以我通过大楼的代理连接到互联网,似乎有一个严格的防火墙,不让任何事情通过。对IP的直接SIP呼叫

我曾尝试一些免费的SIP服务器和客户端,结果总是相同的:从我的UAC我可以看到,如果其他客户端在线,我甚至可以发短信,但它不可能建立一个实际的通话。我从来没有得到任何客户的回应。使用Linphone客户端我甚至无法连接到SIP服务器进行身份验证。

问题是,看起来我无法在我的大楼外打电话,但我已经成功联系安装在我的PC上的安装在仿真器上的另一个Linphone客户端上的Linphone客户端。显然,我可以在没有任何SIP服务器的情况下在本地网络内拨打电话,只需使用接收器的本地地址而不是SIP域。

Screenshot 1

Screenshot 2

的问题是:我可以做了全新的Android 2.3 SIP API一样吗?只需调用接收者的本地地址,我可以在本地网络内拨打电话,而无需使用我的建筑物外的任何SIP服务器进行身份验证?

由于我的应用程序是用于演示目的,这对我来说已经足够了。过去三天我一直在寻找解决这个问题的办法,但我还没有拿出任何有用的东西。 :/

在此先感谢。

回答

0

我不明白为什么它不应该在Android 2.3中可能。点对点呼叫可能与其他客户端本地地址与端口。

您还可以在PC上安装SIP服务器Brekeke server。你可以使用完整的sip URI来拨打电话。

0

由于音频和视频数据通过不同于sip端口号的端口号发送。 Sip端口是tcp,您可以在Internet上登录您的SIP服务器。但媒体端口是udp,你在nat后面,你不能拨打电话。要做到这一点,防火墙需要了解sip消息,然后它应该打开udp媒体的端口。你也需要击穿服务器的nat遍历消息。