【发布时间】:2011-08-17 01:51:14
【问题描述】:
一段时间以来,我一直在使用 Android 2.3 中的 SipDemo SDK。
Android 开发者页面上的文档写得很好,但是 不是很多。它没有解释任何有关 IP、端口、NAT 和 STUN 的内容。 我知道这些东西应该如何工作,但它没有说明如何 Android 的 SIP API 处理它。还是它完全处理 NAT...
这里,有人提到 API 确实对公共 IP 进行了一些测试 和端口,但这是我第一次阅读它: http://code.google.com/p/android/issues/detail?id=14043&can=1&q=sip%20ip&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars 所以我不确定这是不是真的。至少对我来说,它没有用。
但现在我的问题是: 当我将 SipDemo 按原样部署到连接到 WiFi 的设备时 或模拟器,提供我的凭据(我知道他们使用 SipDroid 和其他 SIP 应用程序)SipDemo 显示“注册 失败的”。 我做了一些嗅探,发现了发送到 SipServer 的数据包 都包括设备或模拟器的本地 IP,而不是我的 NAT 的公共 IP 一。类似通过:SIP/2.0/UDP 192.168.0.106:53230 服务器正确回复不允许使用 RFC1918 IP。
我在 SipDemo 中添加了一个 STUN 测试并成功检索了我的 公共 IP 和端口。但我找不到如何将它传递给我的 创建了 SipProfile 或 SipManager。
我的问题: 有没有人做过一个使用 SIP API 的应用程序 NAT? API 如何处理 NAT?我如何传递我得到的信息 从我自己的 STUN 客户端到 SIP API?
我知道 SipDroid 和许多其他 SIP 实现,但它们 均不使用内置 API。
【问题讨论】: