我在亚马逊ec2上运行我的星号服务器,用android编写我的voip应用程序。除了一个,我的voip应用程序试图用双NAT网络连接到sip服务器时,一切正常。我不能接电话。
在星号控制台上,我可以清楚地看到带有错误ip地址的sip寄存器。
我的3G服务提供商使用双nat,所谓分配给我的公共IP实际上是NAT私有ip。
当我搜索什么是我的ip时,我得到了不同的IP。这清楚地表明我在双重NAT网络中。
如果我尝试同样的方案,用c偶发简单,它注册了正确的IP。没有晕眩的帮助。
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",我想这不是真正的公众,而是我的3G服务提供商的私人IP。
我知道这里有很多专业人士建议我忘掉android,去买pjsip。但是由于资源许可,我花了很多钱。
有人知道我如何在不切换到pjsip的情况下解决这个问题?我看到了用于android的选项“出站代理地址”,不确定这是否有帮助?
发布于 2014-01-13 07:48:26
设法解决了这个问题。
在星号create扩展中,只需更改NAT > yes。
C偶普不需要这个额外的步骤。
发布于 2014-03-05 07:05:03
使用双nat来解决问题: SIP (注册,电话铃声,.)和RTP冲突(声音)。
要解决SIP问题,可以使用(sip.conf):
nat=yes 另外,您必须在每个路由器中配置DMZ。
要解决RTP,可以使用(sip.conf):
externaddr=public_ip
localnet=privates_ip就这样。
https://stackoverflow.com/questions/21017045
复制相似问题