Hi,
I’m using Python AIORTC to connect to Janus (v1.1.2-1 on Debian 12) VideoCall plugin.
1 side of the call is on Chrome browser, and the other side is my Python application.
I initiate the call from my Python application, and send the sdp offer. Chrome receives it, accepts the call and then throws an error:
WebRTC error... Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Failed to set remote offer sdp: A BUNDLE group contains a codec collision for header extension id=2. The id must be the same across all bundled media descriptions
This is the SDP offer I sent:
v=0
o=- 3901404255 3901404255 IN IP4 0.0.0.0
s=-
t=0 0
a=group:BUNDLE 0 1
a=msid-semantic:WMS *
m=audio 61579 UDP/TLS/RTP/SAVPF 96 0 8
c=IN IP4 172.31.32.1
a=sendrecv
a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:2 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=mid:0
a=msid:4ebfde1c-a56a-4a2a-b084-3fdf7c89d611 936cba27-1f3d-49e1-9b0f-988ee07e2c41
a=rtcp:9 IN IP4 0.0.0.0
a=rtcp-mux
a=ssrc:3488650956 cname:f0a44492-2228-44a0-af9e-07256e306cbc
a=rtpmap:96 opus/48000/2
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=candidate:a8ef6ed08ab806cd148f2c9022edbbb4 1 udp 2130706431 172.31.32.1 61579 typ host
a=candidate:82e9602c7df32073a4b76d6a53955092 1 udp 2130706431 172.31.224.1 61581 typ host
a=candidate:87710fa2be7d00463d2ae2728d0ff01d 1 udp 2130706431 192.168.33.1 61583 typ host
a=candidate:7350cffd563061f98694d8ec4d4c14fa 1 udp 2130706431 169.254.20.45 61585 typ host
a=candidate:8a683661bf9dc5ce5081c553e88ed8b3 1 udp 2130706431 192.168.217.1 61587 typ host
a=candidate:ccb286943ebb94806472fb078df1d063 1 udp 2130706431 192.168.172.1 61589 typ host
a=candidate:c615840d686f26c91b1a2aa71ce3813a 1 udp 2130706431 2001:e68:543c:691b:1ac:4f44:d651:9ae3 61591 typ host
a=candidate:f9667b84221782eb624583dcc9843d17 1 udp 2130706431 2001:e68:543c:691b:151:2590:415d:3ad3 61593 typ host
a=candidate:b0bf24b9a4f2e7cd5ecbff46dc6fcbcd 1 udp 2130706431 192.168.0.2 61595 typ host
a=candidate:380df8f5866b8cef660f9558d990eddc 1 udp 1694498815 42.188.62.172 61595 typ srflx raddr 192.168.0.2 rport 61595
a=end-of-candidates
a=ice-ufrag:b63N
a=ice-pwd:cPw8LJcMrCWqT5dBmP8IOV
a=fingerprint:sha-256 DE:36:3D:1A:A8:01:28:00:6E:78:4A:E2:24:AB:42:DD:9F:1A:F4:44:70:24:79:0A:66:25:0B:84:C0:27:6D:4B
a=setup:actpass
m=video 61580 UDP/TLS/RTP/SAVPF 97 98 99 100 101 102
c=IN IP4 172.31.32.1
a=sendrecv
a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=mid:1
a=msid:4ebfde1c-a56a-4a2a-b084-3fdf7c89d611 d4279a89-2064-4634-8819-3a61832a16c8
a=rtcp:9 IN IP4 0.0.0.0
a=rtcp-mux
a=ssrc-group:FID 1499895093 281211299
a=ssrc:1499895093 cname:f0a44492-2228-44a0-af9e-07256e306cbc
a=ssrc:281211299 cname:f0a44492-2228-44a0-af9e-07256e306cbc
a=rtpmap:97 VP8/90000
a=rtcp-fb:97 nack
a=rtcp-fb:97 nack pli
a=rtcp-fb:97 goog-remb
a=rtpmap:98 rtx/90000
a=fmtp:98 apt=97
a=rtpmap:99 H264/90000
a=rtcp-fb:99 nack
a=rtcp-fb:99 nack pli
a=rtcp-fb:99 goog-remb
a=fmtp:99 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtpmap:100 rtx/90000
a=fmtp:100 apt=99
a=rtpmap:101 H264/90000
a=rtcp-fb:101 nack
a=rtcp-fb:101 nack pli
a=rtcp-fb:101 goog-remb
a=fmtp:101 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:102 rtx/90000
a=fmtp:102 apt=101
a=candidate:a8ef6ed08ab806cd148f2c9022edbbb4 1 udp 2130706431 172.31.32.1 61580 typ host
a=candidate:82e9602c7df32073a4b76d6a53955092 1 udp 2130706431 172.31.224.1 61582 typ host
a=candidate:87710fa2be7d00463d2ae2728d0ff01d 1 udp 2130706431 192.168.33.1 61584 typ host
a=candidate:7350cffd563061f98694d8ec4d4c14fa 1 udp 2130706431 169.254.20.45 61586 typ host
a=candidate:8a683661bf9dc5ce5081c553e88ed8b3 1 udp 2130706431 192.168.217.1 61588 typ host
a=candidate:ccb286943ebb94806472fb078df1d063 1 udp 2130706431 192.168.172.1 61590 typ host
a=candidate:c615840d686f26c91b1a2aa71ce3813a 1 udp 2130706431 2001:e68:543c:691b:1ac:4f44:d651:9ae3 61592 typ host
a=candidate:f9667b84221782eb624583dcc9843d17 1 udp 2130706431 2001:e68:543c:691b:151:2590:415d:3ad3 61594 typ host
a=candidate:b0bf24b9a4f2e7cd5ecbff46dc6fcbcd 1 udp 2130706431 192.168.0.2 61596 typ host
a=candidate:380df8f5866b8cef660f9558d990eddc 1 udp 1694498815 42.188.62.172 61596 typ srflx raddr 192.168.0.2 rport 61596
a=end-of-candidates
a=ice-ufrag:cEek
a=ice-pwd:SRmAXiNuaJoDOIQ2BmqSEe
a=fingerprint:sha-256 DE:36:3D:1A:A8:01:28:00:6E:78:4A:E2:24:AB:42:DD:9F:1A:F4:44:70:24:79:0A:66:25:0B:84:C0:27:6D:4B
a=setup:actpass
And this is the SDP offer Chrome receives:
v=0
o=- 3901404255 3901404255 IN IP4 124.217.248.175
s=-
t=0 0
a=group:BUNDLE 0 1
a=ice-options:trickle
a=fingerprint:sha-256 0A:C6:D8:AD:FD:53:60:23:78:4F:51:A8:79:47:FD:28:0C:60:9B:ED:59:27:31:60:37:AD:59:C2:7E:39:E5:0D
a=extmap-allow-mixed
a=msid-semantic: WMS *
m=audio 9 UDP/TLS/RTP/SAVPF 96 0 8
c=IN IP4 124.217.248.175
a=sendrecv
a=mid:0
a=rtcp-mux
a=ice-ufrag:CiSO
a=ice-pwd:R22GGPoFCnCbowEXY48Sp1
a=ice-options:trickle
a=setup:actpass
a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:2 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=rtpmap:96 opus/48000/2
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=msid:4ebfde1c-a56a-4a2a-b084-3fdf7c89d611 936cba27-1f3d-49e1-9b0f-988ee07e2c41
a=ssrc:1102037388 cname:janus
a=candidate:1 1 udp 2015363327 124.217.248.175 52921 typ host
a=end-of-candidates
m=video 9 UDP/TLS/RTP/SAVPF 97 99 101 98 100 102
c=IN IP4 124.217.248.175
a=sendrecv
a=mid:1
a=rtcp-mux
a=ice-ufrag:CiSO
a=ice-pwd:R22GGPoFCnCbowEXY48Sp1
a=ice-options:trickle
a=setup:actpass
a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=rtpmap:97 VP8/90000
a=rtcp-fb:97 nack
a=rtcp-fb:97 nack pli
a=rtcp-fb:97 goog-remb
a=rtpmap:99 H264/90000
a=rtcp-fb:99 nack
a=rtcp-fb:99 nack pli
a=rtcp-fb:99 goog-remb
a=fmtp:99 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtpmap:101 H264/90000
a=rtcp-fb:101 nack
a=rtcp-fb:101 nack pli
a=rtcp-fb:101 goog-remb
a=fmtp:101 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:98 rtx/90000
a=fmtp:98 apt=97
a=rtpmap:100 rtx/90000
a=fmtp:100 apt=99
a=rtpmap:102 rtx/90000
a=fmtp:102 apt=101
a=ssrc-group:FID 3193070238 7418011
a=msid:4ebfde1c-a56a-4a2a-b084-3fdf7c89d611 d4279a89-2064-4634-8819-3a61832a16c8
a=ssrc:3193070238 cname:janus
a=ssrc:7418011 cname:janus
a=candidate:1 1 udp 2015363327 124.217.248.175 52921 typ host
a=end-of-candidates
If I send only either video or audio stream, then chrome will happily accept it and the stream can start.
How do I solve this issue? Please help.