mutliple streams on single peer connection

333 views
Skip to first unread message

Emanuele Bizzarri

unread,
Apr 26, 2016, 10:35:26 AM4/26/16
to discuss...@googlegroups.com
Hi,
I implemented multiple streams on a single peer connection for a video
conference SFU platform, using renegotiation and different ssrcs inside SDP.

RTP is forwarded to all connected users, while RTCP is forwarded or
generated by SFU following some rules.

I discovered 2 strange things.
Consider the scenario of only 2 users connected (one connection for
each) with audio and video enabled for both.
Now I disable both audio and video for one user.
When audio and video are disabled, the SFU renegotiates the SDP removing
the ssrc of the stream of the user without media.
From webrtc internals I see the onRemoveStream event log, so my
expectation is that the memory of the stream has been completely cleaned
on the rx side.
When this happens chrome stops to send RTCP_RR for that SSRC, but not
RTCP_REMB that will continue to arrive to the SFU.
Is it correct?
I ignore them, but my expectaion is that no RTCP should arrive.

Then, if audio and video a re-enabled again and the stream is recreated
using the same SSRC as before, chrome is not able to unprotect the rtp
packets.
From chrome logs I see messages like:
[15868:8548:0426/160615:ERROR:channel.cc(701)] Failed to unprotect video
RTP packet: size=1076, seqnum=2841, SSRC=768348135

On the SFU, when I remove the stream I use srtp_remove_stream api of
libsrtp (ssrc are stored internally in BIG ENDIAN).
if I change the ssrc of the stream every time it is recreated, all is
working as expected.

Maybe there are some reason on chrome behavior, but I like a comment by
someone.

Thank you in advance.

Emanuele Bizzarri

Taylor Brandstetter

unread,
Apr 26, 2016, 1:28:13 PM4/26/16
to discuss...@googlegroups.com
It may be useful to see the SDP sent by the SFU, as well as the rest of the Chrome log. Before the "Failed to unprotect" message, I'd expect to see another message like "Failed to unprotect SRTP packet, err=..." which could provide more information.



Emanuele Bizzarri

--

--- You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/571F7C9A.9070604%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Emanuele Bizzarri

unread,
Apr 27, 2016, 4:06:04 AM4/27/16
to discuss...@googlegroups.com
Ok,
so this is the scenario.
1. user1 join first, then user2, both with audio and video enabled
- this is user1 sdp (sent by SFU) when alone:
type: offer, sdp: v=0
o=- 923407868 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS
m=audio 1 RTP/SAVPF 111 103 104 0 8 106 105 13 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:3438303030
a=ice-pwd:ZtZV6f4V0YYdCiosrCJeGw
a=fingerprint:sha-256 1A:D1:74:C2:6C:99:6C:0E:CD:27:34:75:4F:15:D7:72:EB:62:22:2F:2E:86:33:5C:10:37:74:85:8F:1E:36:29
a=setup:actpass
a=mid:audio
b=AS:16
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=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
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:126 telephone-event/8000
a=maxptime:60
a=candidate:2 1 udp 65535 93.57.86.154 48000 typ host
a=candidate:1 1 udp 65525 10.0.0.166 48000 typ host
m=video 1 RTP/SAVPF 100
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:3438303030
a=ice-pwd:ZtZV6f4V0YYdCiosrCJeGw
a=fingerprint:sha-256 1A:D1:74:C2:6C:99:6C:0E:CD:27:34:75:4F:15:D7:72:EB:62:22:2F:2E:86:33:5C:10:37:74:85:8F:1E:36:29
a=setup:actpass
a=mid:video
b=AS:8192
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=sendrecv
a=rtcp-mux
a=rtpmap:100 VP8/90000
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 goog-remb
a=candidate:2 1 udp 65535 93.57.86.154 48000 typ host
a=candidate:1 1 udp 65525 10.0.0.166 48000 typ host

- this is sdp for user1 after user2 join:
type: offer, sdp: v=0
o=- 923407868 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS
m=audio 1 RTP/SAVPF 111 103 104 0 8 106 105 13 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:3438303030
a=ice-pwd:ZtZV6f4V0YYdCiosrCJeGw
a=fingerprint:sha-256 1A:D1:74:C2:6C:99:6C:0E:CD:27:34:75:4F:15:D7:72:EB:62:22:2F:2E:86:33:5C:10:37:74:85:8F:1E:36:29
a=setup:actpass
a=mid:audio
b=AS:16
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=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
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:126 telephone-event/8000
a=maxptime:60
a=ssrc:90653090 cname:0248688eae81d4ccafab28a307554a65612aa012-119-audio-cname
a=ssrc:90653090 msid:0248688eae81d4ccafab28a307554a65612aa012-119 0248688eae81d4ccafab28a307554a65612aa012-119-audio
a=ssrc:90653090 mslabel:0248688eae81d4ccafab28a307554a65612aa012-119
a=ssrc:90653090 label:0248688eae81d4ccafab28a307554a65612aa012-119-audio
a=candidate:2 1 udp 65535 93.57.86.154 48000 typ host
a=candidate:1 1 udp 65525 10.0.0.166 48000 typ host
m=video 1 RTP/SAVPF 100
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:3438303030
a=ice-pwd:ZtZV6f4V0YYdCiosrCJeGw
a=fingerprint:sha-256 1A:D1:74:C2:6C:99:6C:0E:CD:27:34:75:4F:15:D7:72:EB:62:22:2F:2E:86:33:5C:10:37:74:85:8F:1E:36:29
a=setup:actpass
a=mid:video
b=AS:8192
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=sendrecv
a=rtcp-mux
a=rtpmap:100 VP8/90000
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 goog-remb
a=ssrc:2045776428 cname:0248688eae81d4ccafab28a307554a65612aa012-119-video-cname
a=ssrc:2045776428 msid:0248688eae81d4ccafab28a307554a65612aa012-119 0248688eae81d4ccafab28a307554a65612aa012-119-video
a=ssrc:2045776428 mslabel:0248688eae81d4ccafab28a307554a65612aa012-119
a=ssrc:2045776428 label:0248688eae81d4ccafab28a307554a65612aa012-119-video
a=candidate:2 1 udp 65535 93.57.86.154 48000 typ host
a=candidate:1 1 udp 65525 10.0.0.166 48000 typ host



2. disable both audio and video for user2
the SFU generates a new sdp for user1:
type: offer, sdp: v=0
o=- 923407868 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS
m=audio 1 RTP/SAVPF 111 103 104 0 8 106 105 13 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:3438303030
a=ice-pwd:ZtZV6f4V0YYdCiosrCJeGw
a=fingerprint:sha-256 1A:D1:74:C2:6C:99:6C:0E:CD:27:34:75:4F:15:D7:72:EB:62:22:2F:2E:86:33:5C:10:37:74:85:8F:1E:36:29
a=setup:actpass
a=mid:audio
b=AS:16
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=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
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:126 telephone-event/8000
a=maxptime:60
a=candidate:2 1 udp 65535 93.57.86.154 48000 typ host
a=candidate:1 1 udp 65525 10.0.0.166 48000 typ host
m=video 1 RTP/SAVPF 100
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:3438303030
a=ice-pwd:ZtZV6f4V0YYdCiosrCJeGw
a=fingerprint:sha-256 1A:D1:74:C2:6C:99:6C:0E:CD:27:34:75:4F:15:D7:72:EB:62:22:2F:2E:86:33:5C:10:37:74:85:8F:1E:36:29
a=setup:actpass
a=mid:video
b=AS:8192
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=sendrecv
a=rtcp-mux
a=rtpmap:100 VP8/90000
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 goog-remb
a=candidate:2 1 udp 65535 93.57.86.154 48000 typ host
a=candidate:1 1 udp 65525 10.0.0.166 48000 typ host



In this phase I can detect issue number1. the SFU still continues to receive REMB coming from user1 and directed to user2 with previous ssrc

3. re-enable video for user2
the SFU generate a new SDP for user 1 containing the previously used ssrc:
type: offer, sdp: v=0
o=- 923407868 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS
m=audio 1 RTP/SAVPF 111 103 104 0 8 106 105 13 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:3438303030
a=ice-pwd:ZtZV6f4V0YYdCiosrCJeGw
a=fingerprint:sha-256 1A:D1:74:C2:6C:99:6C:0E:CD:27:34:75:4F:15:D7:72:EB:62:22:2F:2E:86:33:5C:10:37:74:85:8F:1E:36:29
a=setup:actpass
a=mid:audio
b=AS:16
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=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
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:126 telephone-event/8000
a=maxptime:60
a=ssrc:90653090 cname:0248688eae81d4ccafab28a307554a65612aa012-119-audio-cname
a=ssrc:90653090 msid:0248688eae81d4ccafab28a307554a65612aa012-119 0248688eae81d4ccafab28a307554a65612aa012-119-audio
a=ssrc:90653090 mslabel:0248688eae81d4ccafab28a307554a65612aa012-119
a=ssrc:90653090 label:0248688eae81d4ccafab28a307554a65612aa012-119-audio
a=candidate:2 1 udp 65535 93.57.86.154 48000 typ host
a=candidate:1 1 udp 65525 10.0.0.166 48000 typ host
m=video 1 RTP/SAVPF 100
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:3438303030
a=ice-pwd:ZtZV6f4V0YYdCiosrCJeGw
a=fingerprint:sha-256 1A:D1:74:C2:6C:99:6C:0E:CD:27:34:75:4F:15:D7:72:EB:62:22:2F:2E:86:33:5C:10:37:74:85:8F:1E:36:29
a=setup:actpass
a=mid:video
b=AS:8192
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=sendrecv
a=rtcp-mux
a=rtpmap:100 VP8/90000
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 goog-remb
a=ssrc:2045776428 cname:0248688eae81d4ccafab28a307554a65612aa012-119-video-cname
a=ssrc:2045776428 msid:0248688eae81d4ccafab28a307554a65612aa012-119 0248688eae81d4ccafab28a307554a65612aa012-119-video
a=ssrc:2045776428 mslabel:0248688eae81d4ccafab28a307554a65612aa012-119
a=ssrc:2045776428 label:0248688eae81d4ccafab28a307554a65612aa012-119-video
a=candidate:2 1 udp 65535 93.57.86.154 48000 typ host
a=candidate:1 1 udp 65525 10.0.0.166 48000 typ host



In this phase I can detect issue number2, the client of user1 is not able to decrypt srtp, like that inside webrtc stack there is the memory of the previously removed stream and its ssrc.
Wainting some time, the situation recovers and srtp stack restarts working well, (something related to roll over counter or sequence check).

This is the piece of chrome log around step3:
[14384:13320:0427/094109:INFO:webrtcvideoengine2.cc(769)] SetSendParameters: {codecs: [VideoCodec[100:VP8:1920:1080:60:1]], extensions: [{uri: urn:ietf:params:rtp-hdrext:toffset, id: 2}, {uri: http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 3}], max_bandwidth_bps: 8192000, options: VideoOptions {}}
[14384:13320:0427/094109:INFO:webrtcvideoengine2.cc(1097)] AddRecvStream: {id:0248688eae81d4ccafab28a307554a65612aa012-119-video;ssrcs:[2045776428];ssrc_groups:;cname:0248688eae81d4ccafab28a307554a65612aa012-119-video-cname;sync_label:0248688eae81d4ccafab28a307554a65612aa012-119}
[14148:12232:0427/094109:INFO:video_receive_stream.cc(183)] VideoReceiveStream: {decoders: [{decoder: (VideoDecoder), payload_type: 100, payload_name: VP8}], rtp: {remote_ssrc: 1041128363, local_ssrc: 567704936, rtcp_mode: RtcpMode::kCompound, rtcp_xr: {receiver_reference_time_report: off}, remb: on, transport_cc: off, nack: {rtp_history_ms: 1000}, fec: {ulpfec_payload_type: -1, red_payload_type: -1, red_rtx_payload_type: -1}, rtx: {}, extensions: [{name: http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 3}, {name: urn:ietf:params:rtp-hdrext:toffset, id: 2}]}, renderer: (renderer), render_delay_ms: 10, sync_group: DL05R9qdJ32X6qKUDorIvVJE, pre_decode_callback: nullptr, pre_render_callback: nullptr, target_delay_ms: 0}
[3132:12512:0427/094109:ERROR:gpu_video_decode_accelerator.cc(375)] HW video decode not available for profile 11
[14148:12232:0427/094109:WARNING:rtp_packet_history.cc(44)] Purging packet history in order to re-set status.
[14384:13320:0427/094109:INFO:video_receive_stream.cc(183)] VideoReceiveStream: {decoders: [{decoder: (VideoDecoder), payload_type: 100, payload_name: VP8}], rtp: {remote_ssrc: 2045776428, local_ssrc: 1621185960, rtcp_mode: RtcpMode::kCompound, rtcp_xr: {receiver_reference_time_report: off}, remb: on, transport_cc: off, nack: {rtp_history_ms: 1000}, fec: {ulpfec_payload_type: -1, red_payload_type: -1, red_rtx_payload_type: -1}, rtx: {}, extensions: [{name: http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 3}, {name: urn:ietf:params:rtp-hdrext:toffset, id: 2}]}, renderer: (renderer), render_delay_ms: 10, sync_group: 0248688eae81d4ccafab28a307554a65612aa012-119, pre_decode_callback: nullptr, pre_render_callback: nullptr, target_delay_ms: 0}
[14148:12232:0427/094109:INFO:channel.cc(1187)] Add send stream ssrc: 567704936
[14148:12232:0427/094109:VERBOSE1:webrtcvideoengine2.cc(934)] SetSend: true
[14148:12232:0427/094109:INFO:channel.cc(1705)] Changing video state, send=1
[14148:12232:0427/094109:VERBOSE1:port.cc(1053)] Jingle:Conn[000001B3046FCF20:audio:Lf3gnEGj:1:0:local:udp:10.0.0.x:61656->acLFNmSK:1:65525:local:udp:10.0.0.x:48001|CRWS|281431976459774|0]: UpdateState(), ms since last received response=59, ms since last received data=10, rtt=100, pings_since_last_response=
[14148:12232:0427/094109:VERBOSE1:p2ptransportchannel.cc(1023)] Sorting 1 available connections:
[14148:12232:0427/094109:VERBOSE1:p2ptransportchannel.cc(1026)] Conn[000001B3046FCF20:audio:Lf3gnEGj:1:0:local:udp:10.0.0.x:61656->acLFNmSK:1:65525:local:udp:10.0.0.x:48001|CRWS|281431976459774|0]
[14384:13320:0427/094109:WARNING:rtp_packet_history.cc(44)] Purging packet history in order to re-set status.
[14148:12232:0427/094109:VERBOSE1:p2ptransportchannel.cc(350)] Jingle:Channel[audio|1|RW]: Ice is completed for this channel.
[14384:13320:0427/094109:INFO:channel.cc(1262)] Add remote ssrc: 2045776428
[14384:13320:0427/094109:VERBOSE1:webrtcvideoengine2.cc(934)] SetSend: true
[14384:13320:0427/094109:INFO:channel.cc(1705)] Changing video state, send=1
[14148:12232:0427/094109:VERBOSE1:port.cc(1053)] Jingle:Conn[000001B3046FCF20:audio:Lf3gnEGj:1:0:local:udp:10.0.0.x:61656->acLFNmSK:1:65525:local:udp:10.0.0.x:48001|CRWS|281431976459774|0]: UpdateState(), ms since last received response=59, ms since last received data=10, rtt=100, pings_since_last_response=
[14148:12232:0427/094109:VERBOSE1:p2ptransportchannel.cc(1023)] Sorting 1 available connections:
[14148:12232:0427/094109:VERBOSE1:p2ptransportchannel.cc(1026)] Conn[000001B3046FCF20:audio:Lf3gnEGj:1:0:local:udp:10.0.0.x:61656->acLFNmSK:1:65525:local:udp:10.0.0.x:48001|CRWS|281431976459774|0]
[14148:12232:0427/094109:VERBOSE1:p2ptransportchannel.cc(350)] Jingle:Channel[audio|1|RW]: Ice is completed for this channel.
[14384:13320:0427/094109:VERBOSE1:port.cc(1053)] Jingle:Conn[000001610E8ACEE0:audio:nMEiJ1+8:1:0:local:udp:10.0.0.x:62590->nJcCg0SF:1:65525:local:udp:10.0.0.x:48000|CRWS|281431976459774|0]: UpdateState(), ms since last received response=292, ms since last received data=3016, rtt=100, pings_since_last_response=
[14384:13320:0427/094109:VERBOSE1:p2ptransportchannel.cc(1023)] Sorting 1 available connections:
[14384:13320:0427/094109:VERBOSE1:p2ptransportchannel.cc(1026)] Conn[000001610E8ACEE0:audio:nMEiJ1+8:1:0:local:udp:10.0.0.x:62590->nJcCg0SF:1:65525:local:udp:10.0.0.x:48000|CRWS|281431976459774|0]
[14384:13320:0427/094109:VERBOSE1:p2ptransportchannel.cc(350)] Jingle:Channel[audio|1|RW]: Ice is completed for this channel.
[14148:12232:0427/094109:INFO:webrtcvideoengine2.cc(1272)] SetCapturer: 567704936 -> (capturer)
[14384:13320:0427/094109:VERBOSE1:port.cc(1053)] Jingle:Conn[000001610E8ACEE0:audio:nMEiJ1+8:1:0:local:udp:10.0.0.x:62590->nJcCg0SF:1:65525:local:udp:10.0.0.x:48000|CRWS|281431976459774|0]: UpdateState(), ms since last received response=292, ms since last received data=3016, rtt=100, pings_since_last_response=
[14148:12232:0427/094109:INFO:webrtcvideoengine2.cc(951)] SetVideoSend (ssrc= 567704936, enable = 1options: VideoOptions {noise reduction: true, }).
[14384:13320:0427/094109:VERBOSE1:p2ptransportchannel.cc(1023)] Sorting 1 available connections:
[14148:12232:0427/094109:VERBOSE1:webrtcvideoengine2.cc(1372)] MuteStream: 567704936 -> unmute
[14384:13320:0427/094109:VERBOSE1:p2ptransportchannel.cc(1026)] Conn[000001610E8ACEE0:audio:nMEiJ1+8:1:0:local:udp:10.0.0.x:62590->nJcCg0SF:1:65525:local:udp:10.0.0.x:48000|CRWS|281431976459774|0]
[14148:12232:0427/094109:INFO:webrtcvideoengine2.cc(1389)] SetOptions: ssrc 567704936: VideoOptions {noise reduction: true, }
[14384:13320:0427/094109:VERBOSE1:p2ptransportchannel.cc(350)] Jingle:Channel[audio|1|RW]: Ice is completed for this channel.
[14148:12232:0427/094109:INFO:webrtcvideoengine2.cc(1680)] SetCodecAndOptions because of SetOptions; options=VideoOptions {noise reduction: true, }
[14148:12232:0427/094109:INFO:webrtcvideoengine2.cc(1782)] RecreateWebRtcStream (send) because of SetCodecAndOptions; options=VideoOptions {noise reduction: true, }
[10652:11300:0427/094109:INFO:CONSOLE(1)] "07:41:09.56", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[14148:12232:0427/094109:INFO:video_send_stream.cc(310)] ~VideoSendStream: {encoder_settings: {payload_name: VP8, payload_type: 100, encoder: (VideoEncoder)}, rtp: {ssrcs: [567704936], max_packet_size: 1200, extensions: [{name: http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 3}], nack: {rtp_history_ms: 1000}, fec: {ulpfec_payload_type: -1, red_payload_type: -1, red_rtx_payload_type: -1}, rtx: {ssrcs: [], payload_type: -1}, c_name: okRvd2bDp4J6tQl/}, pre_encode_callback: nullptr, post_encode_callback: nullptr, local_renderer: nullptr, render_delay_ms: 0, target_delay_ms: 0, suspend_below_min_bitrate: off}
[14384:13320:0427/094109:VERBOSE1:webrtcvoiceengine.cc(2471)] WebRtcVoiceMediaChannel::SetRawAudioSink: ssrc:90653090 (ptr)
[14384:13320:0427/094109:INFO:webrtcvoiceengine.cc(2181)] SetOutputVolume to 1 for channel 2 and ssrc 90653090
[14384:13320:0427/094109:INFO:remotevideocapturer.cc(30)] RemoteVideoCapturer::Start
[14384:13320:0427/094109:INFO:videoadapter.cc(173)] VAdapt input interval changed from 0 to 33333333
[14384:13320:0427/094109:INFO:webrtcvideoengine2.cc(1204)] SetSink: ssrc:2045776428 (ptr)
[14148:12232:0427/094109:INFO:video_send_stream.cc(209)] VideoSendStream: {encoder_settings: {payload_name: VP8, payload_type: 100, encoder: (VideoEncoder)}, rtp: {ssrcs: [567704936], max_packet_size: 1200, extensions: [{name: http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 3}], nack: {rtp_history_ms: 1000}, fec: {ulpfec_payload_type: -1, red_payload_type: -1, red_rtx_payload_type: -1}, rtx: {ssrcs: [], payload_type: -1}, c_name: okRvd2bDp4J6tQl/}, pre_encode_callback: nullptr, post_encode_callback: nullptr, local_renderer: nullptr, render_delay_ms: 0, target_delay_ms: 0, suspend_below_min_bitrate: off}
[10652:11300:0427/094109:INFO:CONSOLE(1)] "07:41:09.57", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[14148:12232:0427/094109:WARNING:rtp_packet_history.cc(44)] Purging packet history in order to re-set status.
[14148:12232:0427/094109:INFO:video_send_stream.cc(355)] (Re)configureVideoEncoder: {streams: [{width: 176, height: 144, max_framerate: 60, min_bitrate_bps:30000, target_bitrate_bps:8192000, max_bitrate_bps:8192000, max_qp: 56, temporal_layer_thresholds_bps: []}], content_type: kRealtimeVideo, encoder_specific_settings: (ptr), min_transmit_bitrate_bps: 0}
[14148:12232:0427/094109:VERBOSE1:vie_encoder.cc(495)] OnNetworkChanged, bitrate8192000 packet loss 0 rtt 1
[10652:11300:0427/094109:INFO:CONSOLE(1)] "07:41:09.57", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[10652:11300:0427/094109:INFO:CONSOLE(1)] "07:41:09.57", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[14384:13320:0427/094109:INFO:webrtcvoiceengine.cc(2181)] SetOutputVolume to 0 for channel 2 and ssrc 90653090
[10652:11300:0427/094109:INFO:CONSOLE(1)] "07:41:09.57", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[10652:11300:0427/094109:INFO:CONSOLE(1)] "07:41:09.58", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[14148:6380:0427/094109:INFO:webrtcvoiceengine.cc(1013)] webrtc: (agc_manager_direct.cc:344): [agc] Initial GetMicVolume()=255
[14148:12232:0427/094109:INFO:vie_receiver.cc(281)] Packet received on SSRC: 1041128363 with payload type: 100, timestamp: 1260774016, sequence number: 33297, arrival time: 517956838, abs send time: 1268170
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=10
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect audio RTP packet: size=43, seqnum=3194, SSRC=90653090
[14384:13320:0427/094109:VERBOSE1:rtcp_receiver.cc(1345)] Incoming PLI from SSRC 0
[14148:12232:0427/094109:VERBOSE1:rtcp_receiver.cc(1365)] Incoming REMB: 8388608
[14148:12232:0427/094109:VERBOSE1:rtcp_receiver.cc(1365)] Incoming REMB: 8388608
[14384:13320:0427/094109:VERBOSE1:rtcp_receiver.cc(1345)] Incoming PLI from SSRC 0
[14148:12232:0427/094109:INFO:webrtcvideoengine2.cc(1914)] SetDimensions: 1280x720 (not screencast)
[14148:12232:0427/094109:INFO:video_send_stream.cc(355)] (Re)configureVideoEncoder: {streams: [{width: 1280, height: 720, max_framerate: 60, min_bitrate_bps:30000, target_bitrate_bps:8192000, max_bitrate_bps:8192000, max_qp: 56, temporal_layer_thresholds_bps: []}], content_type: kRealtimeVideo, encoder_specific_settings: (ptr), min_transmit_bitrate_bps: 0}
[14148:12232:0427/094109:VERBOSE1:vie_encoder.cc(495)] OnNetworkChanged, bitrate8192000 packet loss 0 rtt 1
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=10
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect audio RTP packet: size=43, seqnum=3195, SSRC=90653090
[14148:12232:0427/094109:VERBOSE1:rtcp_receiver.cc(1365)] Incoming REMB: 8388608
[14148:12232:0427/094109:VERBOSE1:rtcp_receiver.cc(1365)] Incoming REMB: 8388608
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=10
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect audio RTP packet: size=42, seqnum=3196, SSRC=90653090
[14384:13320:0427/094109:WARNING:srtpfilter.cc(601)] Failed to unprotect SRTCP packet, err=10
[14384:13320:0427/094109:ERROR:channel.cc(711)] Failed to unprotect audio RTCP packet: size=110, type=200
[14384:13320:0427/094109:WARNING:srtpfilter.cc(601)] Failed to unprotect SRTCP packet, err=10
[14384:13320:0427/094109:ERROR:channel.cc(711)] Failed to unprotect video RTCP packet: size=110, type=200
[14384:13320:0427/094109:VERBOSE1:rtcp_receiver.cc(1365)] Incoming REMB: 8388608
[14384:13320:0427/094109:VERBOSE1:rtcp_receiver.cc(1365)] Incoming REMB: 8388608
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=7
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect video RTP packet: size=1196, seqnum=28957, SSRC=2045776428
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=7
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect video RTP packet: size=1196, seqnum=28958, SSRC=2045776428
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=7
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect video RTP packet: size=1196, seqnum=28959, SSRC=2045776428
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=7
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect video RTP packet: size=1196, seqnum=28960, SSRC=2045776428
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=7
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect video RTP packet: size=1196, seqnum=28961, SSRC=2045776428
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=7
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect video RTP packet: size=1196, seqnum=28962, SSRC=2045776428
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=7
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect video RTP packet: size=1196, seqnum=28963, SSRC=2045776428
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=7
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect video RTP packet: size=1196, seqnum=28964, SSRC=2045776428
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=7
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect video RTP packet: size=1196, seqnum=28965, SSRC=2045776428
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=7
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect video RTP packet: size=1197, seqnum=28966, SSRC=2045776428
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=7
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect video RTP packet: size=1196, seqnum=28967, SSRC=2045776428
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=10
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect audio RTP packet: size=42, seqnum=3197, SSRC=90653090
[14384:13440:0427/094109:VERBOSE1:vie_encoder.cc(495)] OnNetworkChanged, bitrate4530848 packet loss 0 rtt 1
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=7
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect video RTP packet: size=1197, seqnum=28968, SSRC=2045776428
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=7
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect video RTP packet: size=1196, seqnum=28969, SSRC=2045776428
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=7
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect video RTP packet: size=1197, seqnum=28970, SSRC=2045776428
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=7
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect video RTP packet: size=1196, seqnum=28971, SSRC=2045776428
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=7
[14384:13320:0427/094109:ERROR:channel.cc(701)] Failed to unprotect video RTP packet: size=1197, seqnum=28972, SSRC=2045776428
[14384:13320:0427/094109:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=7

This is a piece of log around where the decrypt recovers:
[14384:13320:0427/094524:ERROR:channel.cc(701)] Failed to unprotect audio RTP packet: size=42, seqnum=15960, SSRC=90653090
[14384:13320:0427/094524:VERBOSE1:rtcp_receiver.cc(1365)] Incoming REMB: 8388608
[14384:13320:0427/094524:VERBOSE1:rtcp_receiver.cc(1365)] Incoming REMB: 8388608
[14384:13320:0427/094524:VERBOSE1:port.cc(1053)] Jingle:Conn[000001610E8ACEE0:audio:nMEiJ1+8:1:0:local:udp:10.0.0.x:62590->nJcCg0SF:1:65525:local:udp:10.0.0.x:48000|CRWS|281431976459774|0]: UpdateState(), ms since last received response=500, ms since last received data=2, rtt=100, pings_since_last_response=
[14384:13320:0427/094524:VERBOSE1:port.cc(1116)] Jingle:Conn[000001610E8ACEE0:audio:nMEiJ1+8:1:0:local:udp:10.0.0.x:62590->nJcCg0SF:1:65525:local:udp:10.0.0.x:48000|CRWS|281431976459774|0]: Sending STUN ping , id=4b6a425449764b5a37713161
[14384:13320:0427/094524:VERBOSE1:port.cc(1296)] Jingle:Conn[000001610E8ACEE0:audio:nMEiJ1+8:1:0:local:udp:10.0.0.x:62590->nJcCg0SF:1:65525:local:udp:10.0.0.x:48000|CRWS|281431976459774|0]: Sent STUN ping, id=4b6a425449764b5a37713161, use_candidate=0
[14384:13320:0427/094524:VERBOSE1:port.cc(871)] Jingle:Conn[000001610E8ACEE0:audio:nMEiJ1+8:1:0:local:udp:10.0.0.x:62590->nJcCg0SF:1:65525:local:udp:10.0.0.x:48000|CRWS|281431976459774|0]: set_state
[14384:13320:0427/094524:VERBOSE1:port.cc(1242)] Jingle:Conn[000001610E8ACEE0:audio:nMEiJ1+8:1:0:local:udp:10.0.0.x:62590->nJcCg0SF:1:65525:local:udp:10.0.0.x:48000|CRWS|281431976459774|0]: Received STUN ping response, id=4b6a425449764b5a37713161, code=0, rtt=0, use_candidate=0, pings_since_last_response=
[14384:13320:0427/094524:VERBOSE1:port.cc(930)] Jingle:Conn[000001610E8ACEE0:audio:nMEiJ1+8:1:0:local:udp:10.0.0.x:62590->nJcCg0SF:1:65525:local:udp:10.0.0.x:48000|CRWS|281431976459774|0]: Received STUN ping, id=2141657d8c86c296928840ac
[14384:13320:0427/094524:VERBOSE1:port.cc(591)] Jingle:Port[000001610EA260E0:audio:1:0::Net[{F9BE9F80-87CA-4312-9990-DC3C7457AB4F}:10.0.0.x/24:Ethernet]]: Sent STUN ping response, to=10.0.0.x:48000, id=2141657d8c86c296928840ac
[14384:13320:0427/094524:WARNING:srtpfilter.cc(585)] Failed to unprotect SRTP packet, err=10
[14384:13320:0427/094524:ERROR:channel.cc(701)] Failed to unprotect audio RTP packet: size=42, seqnum=15961, SSRC=90653090
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.415", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.417", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.417", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.417", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.418", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.418", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.418", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.419", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.419", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.419", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.420", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[14148:14996:0427/094524:INFO:webrtcsdp.cc(2556)] Ignored line: c=IN IP4 0.0.0.0
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.420", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.420", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.420", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[14148:14996:0427/094524:INFO:webrtcsdp.cc(2556)] Ignored line: c=IN IP4 0.0.0.0
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.420", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.420", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[10652:11300:0427/094524:INFO:CONSOLE(149)] "extension serve request:", source: chrome-extension://ingddacbmngapennhhfhnpjnaklakach/background.js (149)
[14148:6808:0427/094524:INFO:webrtcsession.cc(1106)] BUNDLE already enabled for audio on audio.
[14148:6808:0427/094524:INFO:webrtcsession.cc(1106)] BUNDLE already enabled for video on audio.
[14148:6808:0427/094524:INFO:webrtcsession.cc(854)] Session:7300664819442915967 Old state:STATE_INPROGRESS New state:STATE_RECEIVEDOFFER
[14148:12232:0427/094524:INFO:channel.cc(1528)] Setting remote voice description
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(1377)] WebRtcVoiceMediaChannel::SetSendParameters: {codecs: [AudioCodec[111:opus:48000:0:2:9], AudioCodec[103:ISAC:16000:32000:1:8], AudioCodec[104:ISAC:32000:56000:1:7], AudioCodec[0:PCMU:8000:0:1:6], AudioCodec[8:PCMA:8000:0:1:5], AudioCodec[106:CN:32000:0:1:4], AudioCodec[105:CN:16000:0:1:3], AudioCodec[13:CN:8000:0:1:2], AudioCodec[126:telephone-event:8000:0:1:1]], extensions: [{uri: urn:ietf:params:rtp-hdrext:ssrc-audio-level, id: 1}, {uri: http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 3}], max_bandwidth_bps: 16000, options: AudioOptions {}}
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(1759)] Send channel 2 selected voice codec opus/48000/1 (111), bitrate=32000
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.421", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(1603)] Attempt to disable Opus DTX on channel 2
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(1615)] Attempt to set maximum playback rate to 48000 Hz on channel 2
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(2357)] WebRtcVoiceMediaChannel::SetSendBitrateInternal.
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(1759)] Send channel 2 selected voice codec opus/48000/1 (111), bitrate=16000
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(1752)] Disabling NACK for channel 0
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(2352)] WebRtcVoiceMediaChannel::SetMaxSendBandwidth.
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(2357)] WebRtcVoiceMediaChannel::SetSendBitrateInternal.
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.422", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(1759)] Send channel 2 selected voice codec opus/48000/1 (111), bitrate=16000
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(1434)] Setting voice channel options: AudioOptions {}
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(644)] ApplyOptions: AudioOptions {audio_jitter_buffer_max_packets: 50, audio_jitter_buffer_fast_accelerate: false, }
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(822)] NetEq capacity is 50
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(830)] NetEq fast mode? 0
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(858)] Delay agnostic aec is enabled? 0
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(867)] Extended filter aec is enabled? 0
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(876)] Experimental ns is enabled? 0
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.422", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(1446)] Set voice channel options.  Current options: AudioOptions {audio_jitter_buffer_max_packets: 50, audio_jitter_buffer_fast_accelerate: false, }
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(2066)] RemoveRecvStream: 1517068270
[14148:12232:0427/094524:INFO:webrtcvoiceengine.cc(2083)] Removing audio receive stream 1517068270 with VoiceEngine channel #0.
[14148:12232:0427/094524:INFO:audio_receive_stream.cc(129)] ~AudioReceiveStream: {rtp: {remote_ssrc: 1517068270, local_ssrc: 4195875351, extensions: [{name: http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 3}, {name: urn:ietf:params:rtp-hdrext:ssrc-audio-level, id: 1}], transport_cc: off}, receive_transport: nullptr, rtcp_send_transport: nullptr, voe_channel_id: 0, sync_group: DL05R9qdJ32X6qKUDorIvVJE}
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.422", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[14148:12232:0427/094524:INFO:channel.cc(1470)] Changing voice state, recv=1 send=1
[14148:12232:0427/094524:INFO:channel.cc(1783)] Setting remote video description
[14148:12232:0427/094524:INFO:webrtcvideoengine2.cc(769)] SetSendParameters: {codecs: [VideoCodec[100:VP8:1920:1080:60:1]], extensions: [{uri: urn:ietf:params:rtp-hdrext:toffset, id: 2}, {uri: http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 3}], max_bandwidth_bps: 8192000, options: VideoOptions {}}
[14148:12232:0427/094524:INFO:webrtcvideoengine2.cc(1183)] RemoveRecvStream: 1041128363
[14148:12232:0427/094524:INFO:video_receive_stream.cc(310)] ~VideoReceiveStream: {decoders: [{decoder: (VideoDecoder), payload_type: 100, payload_name: VP8}], rtp: {remote_ssrc: 1041128363, local_ssrc: 567704936, rtcp_mode: RtcpMode::kCompound, rtcp_xr: {receiver_reference_time_report: off}, remb: on, transport_cc: off, nack: {rtp_history_ms: 1000}, fec: {ulpfec_payload_type: -1, red_payload_type: -1, red_rtx_payload_type: -1}, rtx: {}, extensions: [{name: http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 3}, {name: urn:ietf:params:rtp-hdrext:toffset, id: 2}]}, renderer: (renderer), render_delay_ms: 10, sync_group: DL05R9qdJ32X6qKUDorIvVJE, pre_decode_callback: nullptr, pre_render_callback: nullptr, target_delay_ms: 0}
[10652:11300:0427/094524:INFO:CONSOLE(149)] "extension serve request:", source: chrome-extension://ingddacbmngapennhhfhnpjnaklakach/background.js (149)
[10652:11300:0427/094524:INFO:CONSOLE(1)] "07:45:24.422", source: https://ema.3cx.eu/webrtc/app.min.js?ver=9.0.135 (1)
[14384:10128:0427/094524:INFO:webrtcsdp.cc(2556)] Ignored line: c=IN IP4 0.0.0.0
[14384:10128:0427/094524:INFO:webrtcsdp.cc(2556)] Ignored line: c=IN IP4 0.0.0.0
[14384:10200:0427/094524:INFO:webrtcsession.cc(1106)] BUNDLE already enabled for audio on audio.
[14384:10200:0427/094524:INFO:webrtcsession.cc(1106)] BUNDLE already enabled for video on audio.
[14384:13320:0427/094524:INFO:channel.cc(1528)] Setting remote voice description
[14384:13320:0427/094524:INFO:webrtcvoiceengine.cc(1377)] WebRtcVoiceMediaChannel::SetSendParameters: {codecs: [AudioCodec[111:opus:48000:0:2:9], AudioCodec[103:ISAC:16000:32000:1:8], AudioCodec[104:ISAC:32000:56000:1:7], AudioCodec[0:PCMU:8000:0:1:6], AudioCodec[8:PCMA:8000:0:1:5], AudioCodec[106:CN:32000:0:1:4], AudioCodec[105:CN:16000:0:1:3], AudioCodec[13:CN:8000:0:1:2], AudioCodec[126:telephone-event:8000:0:1:1]], extensions: [{uri: urn:ietf:params:rtp-hdrext:ssrc-audio-level, id: 1}, {uri: http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 3}], max_bandwidth_bps: 16000, options: AudioOptions {}}
[14384:13320:0427/094524:INFO:webrtcvoiceengine.cc(1759)] Send channel 0 selected voice codec opus/48000/1 (111), bitrate=32000
[14384:13320:0427/094524:INFO:webrtcvoiceengine.cc(1603)] Attempt to disable Opus DTX on channel 0
[14384:13320:0427/094524:INFO:webrtcvoiceengine.cc(1615)] Attempt to set maximum playback rate to 48000 Hz on channel 0
[14384:13320:0427/094524:INFO:webrtcvoiceengine.cc(2357)] WebRtcVoiceMediaChannel::SetSendBitrateInternal.
[14384:13320:0427/094524:INFO:webrtcvoiceengine.cc(1759)] Send channel 0 selected voice codec opus/48000/1 (111), bitrate=16000
[14384:13320:0427/094524:INFO:webrtcvoiceengine.cc(1752)] Disabling NACK for channel 2
[14384:13320:0427/094524:INFO:webrtcvoiceengine.cc(2352)] WebRtcVoiceMediaChannel::SetMaxSendBandwidth.
[14384:13320:0427/094524:INFO:webrtcvoiceengine.cc(2357)] WebRtcVoiceMediaChannel::SetSendBitrateInternal.
[14384:13320:0427/094524:INFO:webrtcvoiceengine.cc(1759)] Send channel 0 selected voice codec opus/48000/1 (111), bitrate=16000
[14384:13320:0427/094524:INFO:webrtcvoiceengine.cc(1434)] Setting voice channel options: AudioOptions {}
[14384:13320:0427/094524:INFO:webrtcvoiceengine.cc(644)] ApplyOptions: AudioOptions {audio_jitter_buffer_max_packets: 50, audio_jitter_buffer_fast_accelerate: false, }
[14384:13320:0427/094524:INFO:webrtcvoiceengine.cc(822)] NetEq capacity is 50
[14384:13320:0427/094524:INFO:webrtcvoiceengine.cc(830)] NetEq fast mode? 0
[14384:13320:0427/094524:INFO:webrtcvoiceengine.cc(858)] Delay agnostic aec is enabled? 0
[14384:13320:0427/094524:INFO:webrtcvoiceengine.cc(867)] Extended filter aec is enabled? 0
[14384:13320:0427/094524:INFO:webrtcvoiceengine.cc(876)] Experimental ns is enabled? 0

Keep in mind I'm using 2 tabs for the 2 users on the same machine, so the log contains informations for both users.

Maybe I'm missing something or doing something wrong.
tell me if you need more infos

Thak you for your help

Emanuele

Taylor Brandstetter

unread,
Apr 27, 2016, 1:06:25 PM4/27/16
to discuss...@googlegroups.com
For issue #1, the only way I can see that REMBs would be sent is if user1 receives an RTP packet from the old SSRC, even after it's been removed from the SDP. Is this possible?

For issue #2, it appears WebRTC doesn't clear the SRTP context. So when packets are received again, presumably with old sequence numbers, libsrtp returns "err_status_replay_old" (err=10).
As for the "err=7" (err_status_auth_fail), I'm not sure about that. Is the SFU possibly not encrypting with the correct key?

You may find the information in this bug discussion helpful: https://bugs.chromium.org/p/webrtc/issues/detail?id=3563
Maybe the best solution is to simply use new SSRCs.

Emanuele Bizzarri

unread,
Apr 28, 2016, 11:29:00 AM4/28/16
to discuss...@googlegroups.com
inline


On 27/04/2016 19:06, 'Taylor Brandstetter' via discuss-webrtc wrote:
For issue #1, the only way I can see that REMBs would be sent is if user1 receives an RTP packet from the old SSRC, even after it's been removed from the SDP. Is this possible?
I have just made another test disabling both audio and video for both users. The SFU doens't receive any RTP and any REMB, only RR with no rrb.
So I think that it is correct, maybe I was wrong on my previous REMB analysis.



For issue #2, it appears WebRTC doesn't clear the SRTP context. So when packets are received again, presumably with old sequence numbers, libsrtp returns "err_status_replay_old" (err=10).
As for the "err=7" (err_status_auth_fail), I'm not sure about that. Is the SFU possibly not encrypting with the correct key?
the connection and dtls exchange is unique, the SFU uses the key exchanged at the beginning, so the problem should not be here.

I gave a fast look at webrtc code (srtpfilter.cc) and I didn't find:
srtp_remove_stream (this api stores ssrc using big endian)
I don't know if SrtpSession is destroyed when the stream is removed but the peer connection is still alive.
Because inside SrtpSession I can see srtp_dealloc and it will remove the ssrc inside libsrtp.
But if the session is not destroyed, the used ssrc will continue to be stored inside libsrtp, and when I try to reuse it the sequence is for sure out of order.



You may find the information in this bug discussion helpful: https://bugs.chromium.org/p/webrtc/issues/detail?id=3563
Maybe the best solution is to simply use new SSRCs.
yes, I've implemented this workaround.

Thank you

Emanuele

Reply all
Reply to author
Forward
0 new messages