我运行坐在亚马逊ec2上的星号服务器,并使用android sip sdk编写我的voip应用程序。一切正常,除了一个,当我的voip应用程序尝试连接到具有双NAT网络的SIP服务器时。我无法接听电话。在双NAT环境中的Android SIP
从星号控制台,我可以清楚地看到与错误的IP地址的SIP注册。
我的3G服务提供商使用双NAT,所谓的公共IP分配给我的实际上是一个NAT私有IP。
当我做谷歌什么是我的IP,我有不同的IP。这清楚地表明我在双NAT网络中。
如果我用csipsimple尝试相同的场景,它使用正确的IP注册。没有STUN的帮助。
ip-10-236-xxx-xxx*CLI> sip show peers
Name/username Host Dyn Forcerport ACL Port Status
5000/5000 10.120.1.242 D A 42964 UNREACHABLE
在看“10.120.1.242”,这不是真正的公共我想有,但私有IP从我的3G服务提供商。
我知道许多亲这里必须建议我忘掉android sdk sip,去pjsip。但由于密切的源代码授权,它花费了我不少。
任何人都知道如何解决这个问题,而无需切换到pjsip?我看到有一个选项“出站代理地址”为android sdk sip,不知道这是否有帮助?