首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >双NAT环境下的Android SIP

问双NAT环境下的Android SIP
EN

Stack Overflow用户
提问于 2014-01-09 10:05:25
回答 2查看 1.6K关注 0票数 0

我在亚马逊ec2上运行我的星号服务器,用android编写我的voip应用程序。除了一个,我的voip应用程序试图用双NAT网络连接到sip服务器时,一切正常。我不能接电话。

在星号控制台上,我可以清楚地看到带有错误ip地址的sip寄存器。

我的3G服务提供商使用双nat,所谓分配给我的公共IP实际上是NAT私有ip。

当我搜索什么是我的ip时,我得到了不同的IP。这清楚地表明我在双重NAT网络中。

如果我尝试同样的方案,用c偶发简单,它注册了正确的IP。没有晕眩的帮助。

代码语言:javascript
复制
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的选项“出站代理地址”,不确定这是否有帮助?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-13 07:48:26

设法解决了这个问题。

在星号create扩展中,只需更改NAT > yes。

C偶普不需要这个额外的步骤。

票数 1
EN

Stack Overflow用户

发布于 2014-03-05 07:05:03

使用双nat来解决问题: SIP (注册,电话铃声,.)和RTP冲突(声音)。

要解决SIP问题,可以使用(sip.conf):

代码语言:javascript
复制
nat=yes 

另外,您必须在每个路由器中配置DMZ。

要解决RTP,可以使用(sip.conf):

代码语言:javascript
复制
externaddr=public_ip
localnet=privates_ip

就这样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21017045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档