Closed wangduanduan closed 5 years ago
架构图颜色标识说明:
WebRTC有三个模块:
浏览器和某些非浏览器之间的呼叫,有些时候以为没有DTLS指纹,而导致呼叫失败。如下图使用JsSIP, 一个sipPhone和WebRTC之间的呼叫,因为没有携带DTLS指纹而导致呼叫失败。
emit "peerconnection:setremotedescriptionfailed" [error:DOMException: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Failed to set remote offer sdp: Called with SDP without DTLS fingerprint.
一个完整的SIP INVITE信令。其中a=fingerprint:sha-256字段表示DTLS指纹。
a=fingerprint:sha-256 74:CD:F4:A0:3B:46:01:1C:0C:5D:04:D0:17:E5:A4:A1:04:35:97:1C:34:A3:61:60:79:52:02:F3:05:9E:7D:FE
SDP协议用来协商两个SIP UA之间能力,例如媒体编解码能力。
sdp协议举例。sdp协议的详细介绍可以参考 RFC4566
v=0 o=- 7158718066157017333 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE 0 a=msid-semantic: WMS byn72RFJBCUzdSPhnaBU4vSz7LFwfwNaF2Sy m=audio 64030 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126 c=IN IP4 192.168.2.180
WebRTC对安全性是要求非常高的。无论是信令还是与语音流,WebRTC要求信息传递必须加密。
WebRTC 功能
WebRTC 架构
内部结构
架构图颜色标识说明:
WebRTC有三个模块:
WebRTC 如何通信
WebRTC 的核心组件
WebRTC 音频和视频引擎
WebRTC 底层协议
浏览器和某些非浏览器之间的呼叫,有些时候以为没有DTLS指纹,而导致呼叫失败。如下图使用JsSIP, 一个sipPhone和WebRTC之间的呼叫,因为没有携带DTLS指纹而导致呼叫失败。
一个完整的SIP INVITE信令。其中a=fingerprint:sha-256字段表示DTLS指纹。
SDP: Session Description Protocol
SDP协议用来协商两个SIP UA之间能力,例如媒体编解码能力。
sdp协议举例。sdp协议的详细介绍可以参考 RFC4566
加密
WebRTC对安全性是要求非常高的。无论是信令还是与语音流,WebRTC要求信息传递必须加密。
JavaScript API
参考