【发布时间】:2014-03-02 07:01:53
【问题描述】:
我只是对 SIP 的工作原理感到困惑,但我的却没有。 我制作了一个简单的 android 服务器,它打开一个服务器套接字并监听 3G/4G 网络上的传入连接。然后我创建了一个连接到服务器的客户端,连接被我运营商的防火墙(AT&T)阻止了。
在此之后,我下载了一个基于SIP的开源VOIP应用,并将这2部电话注册到SIP代理上,让它们互相呼叫,这样就完美了。
我对 SIP 如何在蜂窝网络上工作感到非常困惑,SIP 是一种 p2p 协议,SIP 代理仅用于重定向。这 2 部电话如何在 VOIP 会话中相互连接?为什么此连接没有被运营商阻止?有人可以向我解释吗?提前谢谢!
更新:我刚刚尝试在 AT&T 和 SPRINT 网络之间发送一个 UDP 数据包,它不起作用;(
【问题讨论】:
-
谢谢,但我关心的是他们如何在通常被运营商阻止的 3G 网络上的 2 部手机之间建立直接 TCP 连接,我知道 VOIP 是如何工作的。
-
您确定他们使用 TCP 并且不借助 SIP 代理进行 UDP 穿孔?
-
我觉得VOIP需要TCP来保证QOS
-
SIP 使用重传来为 UDP 等不可靠的传输增加一些可靠性。它绝对不需要需要 TCP。
-
@JunfeiWang 也许他们使用提供加密的 TLS。因此运营商无法检测这是否是 SIP 消息