路由器不通过STUN映射端口将数据包转发到其他设备

时间:2013-10-21 12:53:51

标签: sockets sip router stun

我一直在SIP协议中实现STUN ...... 我看到当我在同一个NAT后面连接2个设备并在两者中启用STUN时,我无法通过映射端口接收媒体..这种行为是否正确?

我看到路由器没有通过公共端NAT将媒体路由到另一个设备(存在于同一个NAT中)......但是这两个设备都发送媒体但是CAN Not RECEIVE没有...

我已经尝试过3台路由器,发现所有路由器都没有将数据包转发到其他设备.....

Router NOT是否通过映射端口在同一NAT内路由数据包???

1 个答案:

答案 0 :(得分:0)

STUN仅用于允许客户端应用程序确定其公共IP地址,因此STUN本身不直接映射任何端口或通过NAT影响媒体遍历。

NATs有不同类型,它们可能以不同方式对您的RTP(媒体)连接造成严重破坏。有很多文章涉及SIP和音频问题,这是我写的SIP and Audio

如果要将SIP呼叫发送到SIP提供商,通常最好不要使用STUN,因为提供商通常会在其服务器上具有逻辑,该逻辑将使用公共IP地址SIP数据包替换SP数据包中的任何私有IP地址来自。如果RTP数据包来自与SIP INVITE请求的SDP部分中公布的套接字不同的套接字,则提供商的媒体服务器将切换到该套接字;这克服了为客户端的RTP套接字指定私有IP地址。

如果您尝试在专用网络上的两个SIP用户代理之间进行呼叫,那么STUN可能很有用,但您可能需要在两个用户代理前面的路由器上设置端口转发规则。