WebRTC中的眩晕/翻转使用

WebRTC中的眩晕/翻转使用,webrtc,sip,stun,turn,ice-protocol,Webrtc,Sip,Stun,Turn,Ice Protocol,我正在用C语言开发一个小型webrtc应用程序。我正在使用sip信令进行webrtc调用。我对眩晕/转身/冰的使用有以下疑问 当我开始通话时,我会发送邀请和优惠(SDP)。在SDP中,我们需要加入ICE候选人 我有两个可能的案例。为了解释这一点,我将举一个例子。假设两个端点是A和B。我有一个sip代理服务器,比如P。我还有一个回合服务器(支持眩晕和回合),说它是T 案例1 所有实体A、B、P和T都位于同一个专用网络中。这里需要晕眩分辨率吗?如果是,那么我需要处理哪些眩晕请求/响应 案例2 此处A

我正在用C语言开发一个小型webrtc应用程序。我正在使用sip信令进行webrtc调用。我对眩晕/转身/冰的使用有以下疑问

当我开始通话时,我会发送邀请和优惠(SDP)。在SDP中,我们需要加入ICE候选人

我有两个可能的案例。为了解释这一点,我将举一个例子。假设两个端点是AB。我有一个sip代理服务器,比如P。我还有一个回合服务器(支持眩晕和回合),说它是T

案例1
所有实体ABPT都位于同一个专用网络中。这里需要晕眩分辨率吗?如果是,那么我需要处理哪些眩晕请求/响应

案例2
此处A位于专用网络中。其他实体BPT在公共网络中。在这种情况下,我希望我们需要进行晕眩/翻转分辨率。比如说,我从STUN开始,得到了主持人和自反候选人。我在一些示例中看到,还使用了权限、通道绑定请求。如果我使用的是just Stunk(无回合),在我获得主持人和反思候选人后,我是否需要做任何额外的事情


除此之外,对于使用gnutls(无openssl)的C中的stun/turn客户端,是否有任何好的开放源代码可用?

案例1-否。本质上不需要。只是没有简单的方法可以检测到邀请何时来自您所在的同一网络


案例2——如果你只是在使用眩晕,本地主持人和自反候选人都可以。TURN用于需要中继的场景(对称NAT场景)。

因此,在案例2中,最初我将发送STUN绑定请求,从响应中我将获得主机候选和自反候选。我将继续使用自反候选者中存在的IP/端口来构建SDP并继续调用。现在,我需要发送任何更多的晕眩请求在这一生的电话。请澄清。不,你没有。眩晕只用于收集你的服务器反射候选人。在那之后你就不再需要它了。为了验证,我在一个专用网络的两台机器上安装了sipml5(javascript格式的SIPWebRTC客户端)。我从公共网络使用的Sip服务器(sip2sip.info)。我在两个sipml5端点之间打了一个电话。我观察到,最初sipml5向stun服务器发送stun请求,在建立呼叫后,我看到两个sipml5端点之间交换了stun绑定数据包。为什么会这样,这里两个sipml5端点都在我的网络中,理想情况下它们不应该交换stun绑定请求。是因为我使用了公共stun服务器和公共sip服务器吗?Sipml5使用ICE协议在两个端点之间建立连接。根据ICE协议,两个端点之间的连接检查(称为ICE检查请求)通过STUN绑定数据包完成。这就是你看到的。