0

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

我看到路由器没有通过公共端 NAT 将媒体路由到另一个设备(存在于同一个 NAT 中)......但是两个设备都发送媒体但无法接收任何......

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

路由器不通过映射端口在同一 NAT 内路由数据包是一种行为吗???

4

1 回答 1

0

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

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

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

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

于 2013-10-21T22:40:17.527 回答