WebRTC中SDP的setup:actpass、active、passive

  • a=setup 主要是表示dtls的协商过程中角色的问题,谁是客户端,谁是服务器
    • a=setup:actpass 既可以是客户端,也可以是服务器
    • a=setup:active 客户端
    • a=setup:passive 服务器
  • 由客户端先发起client hello

rfc 标准文档
https://tools.ietf.org/html/rfc4145#section-4

WebRTC中SDP的setup:actpass、active、passive_第1张图片


  • 参考地址:

https://webrtc.org.cn/sdp-2/

  • 其主要内容如下:
用一个真实的例子解释为什么这很烦

可以很清楚的看到这其中有什么问题。如果看不出来的话,我会用一个关于SDP a=setup真实的用例来解释:

让我们假设Alice想要与Bob进行音频和数据通道通信,所以Alice创建了她的本地RTCPeerConnection,并且得到了相应的SDP请求。

根据RFC 5763,SDP请求的a=setup属性必须是“actpass”,也就是应答方(Bob)需要决定谁是DTLS用户谁是DTLS服务器。

Bob生成相应的SDP应答,其中包括a=setup:active,意思是Bob成为了DTLS用户,而Alice成为DTLS服务器。

在ICE和DTLS处理之后,Alice和Bob两个人互相交换了他们的音频和数据。

之后,Bob想要在通信中加上网络摄像头捕捉的视频,所以他得到了一个包括网络摄像头流信息的SDP重请求。

还是,依据RFC 5673,这个SDP重请求中要有a=setup:actpass。

Alice接到SDP重请求并且产生一个重响应。

为了保持现有的DTLS关联开放,这个SDP重响应必须有a=setup:passive项。

你可能感兴趣的:(WebRTC中SDP的setup:actpass、active、passive)