Android 2.3 SIP API如何处理NAT?

Android 2.3 SIP API如何处理NAT?,android,api,sip,stun,Android,Api,Sip,Stun,一段时间以来,我一直在玩Android 2.3中的SipDemo SDK Android开发者页面上的文档写得很好,但是很简单 不多。它没有解释关于IP、端口、NAT和STUN的任何内容。 我知道这东西应该怎么用,但没说怎么用 Android的SIPAPI处理这个问题。或者它能处理NAT吗 这里,有人提到API确实对公共IP进行了一些测试 还有波特,但这是我第一次读到它: 所以我不确定这是真的。至少对我来说,它不起作用 但现在我的问题是: 当我将SipDemo as部署到连接到WiFi的设备时

一段时间以来,我一直在玩Android 2.3中的SipDemo SDK

Android开发者页面上的文档写得很好,但是很简单 不多。它没有解释关于IP、端口、NAT和STUN的任何内容。 我知道这东西应该怎么用,但没说怎么用 Android的SIPAPI处理这个问题。或者它能处理NAT吗

这里,有人提到API确实对公共IP进行了一些测试 还有波特,但这是我第一次读到它: 所以我不确定这是真的。至少对我来说,它不起作用

但现在我的问题是: 当我将SipDemo as部署到连接到WiFi的设备时 或者向emulator提供我的凭据(我知道它们可以使用 SipDroid和其他SIP应用程序)SipDemo显示“注册” 失败”。 我做了一些嗅探,发现了发送到SipServer的数据包 所有这些都包括设备或模拟器本地IP,而不是我的NAT的公共IP 一个。类似于Via:SIP/2.0/UDP 192.168.0.106:53230 服务器正确答复不允许使用RFC1918 IP

我在SipDemo中添加了一个眩晕测试,并成功地恢复了我的 公共IP和端口。但是我找不到一个方法如何把它传给我的朋友 创建SipProfile或SipManager

我的问题: 有没有人曾经在一个应用程序背后使用SIPAPI制作过应用程序 纳特? API如何处理NAT?我怎样才能传递我得到的信息 从我自己的STUN客户端到sipapi

我知道SipDroid和许多其他SIP实现,但它们 所有这些都不使用内置API

我在SipDemo中添加了一个眩晕测试,并成功地恢复了我的 公共IP和端口。但是我找不到一个方法如何把它传给我的朋友 创建SipProfile或SipManager

如果您支持对称NAT,则无所谓,因为将为出站SIP连接创建新的NAT绑定,因此您使用STUN收集的信息实际上不可用

您不应该从SIPAPI担心NAT,服务器需要为您实现NAT遍历技术

在某些情况下,您可以从客户端实际执行某些操作:当使用ICE时,您可以选择自己的TURN服务器,但我认为Android尚未实现ICE和TRUN支持。即使会,您仍然需要部署TRUN服务器

例如,免费服务确实实现了NAT遍历技术