未触发 WebRTC ondatachannel

WebRTC ondatachannel not triggered

我有一个RTCPeerConnection,已经正常建立,可以转发视频和音频

问题是——这个连接应该也有一个由服务器(jitsi-videobridge)创建的RTCDataChannel。


这是传入的 SDP:

v=0
o=- 52c2f31d2e997e86 2 IN IP4 127.0.0.1
s=-
t=0 0
a=x-attach-conference-id:52c2f31d2e997e86
a=x-attach-new-participant-flag
a=group:BUNDLE audio video data
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 102 0 8 106 105 13 127 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=candidate:1 1 ssltcp 2130706431 192.168.0.5 4443 typ host generation 0
a=candidate:2 1 ssltcp 2130706431 2001:0:5ef5:79fb:309f:3941:bb9f:8a46 4443 typ host generation 0
a=candidate:4 1 udp 2113939711 2001:0:5ef5:79fb:309f:3941:bb9f:8a46 10000 typ host generation 0
a=candidate:3 1 udp 2113932031 192.168.0.5 10000 typ host generation 0
a=ice-ufrag:54ku71b09j1sc9
a=ice-pwd:6aajbrmegkmgl6g9aoc1p14m50
a=fingerprint:sha-1 DF:09:D9:FD:E0:D8:03:71:90:B4:CA:E9:A7:2E:FE:07:A2:B3:F8:4B
a=setup:actpass
a=mid:audio
a=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10; useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
a=rtpmap:102 ILBC/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:127 red/8000
a=rtpmap:126 telephone-event/8000
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=x-attach-channel-id:90780b7ef750e3f0
a=ssrc:3478236559 cname:mcu
a=ssrc:3478236559 msid:mcu mcu-audio0
a=ssrc:3478236559 mslabel:mcu
a=ssrc:3478236559 label:mcu-audio0
m=video 9 UDP/TLS/RTP/SAVPF 100
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=candidate:1 1 ssltcp 2130706431 192.168.0.5 4443 typ host generation 0
a=candidate:2 1 ssltcp 2130706431 2001:0:5ef5:79fb:309f:3941:bb9f:8a46 4443 typ host generation 0
a=candidate:4 1 udp 2113939711 2001:0:5ef5:79fb:309f:3941:bb9f:8a46 10000 typ host generation 0
a=candidate:3 1 udp 2113932031 192.168.0.5 10000 typ host generation 0
a=ice-ufrag:54ku71b09j1sc9
a=ice-pwd:6aajbrmegkmgl6g9aoc1p14m50
a=fingerprint:sha-1 DF:09:D9:FD:E0:D8:03:71:90:B4:CA:E9:A7:2E:FE:07:A2:B3:F8:4B
a=setup:actpass
a=mid:video
a=sendrecv
a=rtcp-mux
a=rtpmap:100 VP8/90000
a=fmtp:100 x-google-start-bitrate=550
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 goog-remb
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=x-google-flag:conference
a=imageattr:* recv [x=640,y=480] [x=160,y=120]
a=x-attach-channel-id:48fbbaf7ca9b1ed0
a=ssrc:4166867687 cname:mcu
a=ssrc:4166867687 msid:mcu mcu-video0
a=ssrc:4166867687 mslabel:mcu
a=ssrc:4166867687 label:mcu-video0
m=application 9 DTLS/SCTP 5000
c=IN IP4 0.0.0.0
a=candidate:1 1 ssltcp 2130706431 192.168.0.5 4443 typ host generation 0
a=candidate:2 1 ssltcp 2130706431 2001:0:5ef5:79fb:309f:3941:bb9f:8a46 4443 typ host generation 0
a=candidate:4 1 udp 2113939711 2001:0:5ef5:79fb:309f:3941:bb9f:8a46 10000 typ host generation 0
a=candidate:3 1 udp 2113932031 192.168.0.5 10000 typ host generation 0
a=ice-ufrag:16hvt1b09hq7nv
a=ice-pwd:71ut14smqi4327i5m8b7p76unr
a=fingerprint:sha-1 DF:09:D9:FD:E0:D8:03:71:90:B4:CA:E9:A7:2E:FE:07:A2:B3:F8:4B
a=setup:actpass
a=mid:data
a=sctpmap:5000 webrtc-datachannel 1024
a=x-attach-sctpconnection-id:c1d38e64f921d720

如您所见,它有一个 DataChannel 块 m=application 9 DTLS/SCTP 5000


我将 ondatachannel 事件附加到 RTCPeerConnection。由于某种原因它永远不会触发。

我可以寻找什么想法? 考虑到 SDP 包含数据通道,我希望看到此事件触发。


版本Version 52.0.2743.116 (64-bit) macOS El Capitan,还在 Google Chrome Version 54.0.2840.71 Windows 8.1 上测试。


我愿意提供更多信息。然而,由于代码大部分是专有的,不幸的是不包括大量的源代码。所以请原谅缺乏来源。 :(

如果大家有什么idea/question欢迎留言评论

原来端口被服务器端的防火墙阻止了。由于我只负责客户端,所以我没有注意到这一点。 :(