[Home]

Summary:ASTERISK-28655: core: Many things require an audio stream to be present to work
Reporter:Dan Jenkins (danjenkins)Labels:webrtc
Date Opened:2019-12-11 13:58:06.000-0600Date Closed:
Priority:MajorRegression?No
Status:Open/NewComponents:Bridges/bridge_softmix
Versions:16.6.1 Frequency of
Occurrence
Constant
Related
Issues:
Environment:Attachments:
Description:If you send a MediaStream up to Asterisk that doesn't contain an audio track, asterisk will accept the stream and will try to forward on the video track but the browser on the other end won't receive any packets. Add an audio track with generated silence to the MediaStream and all is well.

I can give you a build of dana that's broken if you need it. I figured this out by generating a stream from getDisplayMedia() with no audio

Comments:By: Asterisk Team (asteriskteam) 2019-12-11 13:58:07.986-0600

Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution.

A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report.

Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process].

Please note that once your issue enters an open state it has been accepted. As Asterisk is an open source project there is no guarantee or timeframe on when your issue will be looked into. If you need expedient resolution you will need to find and pay a suitable developer. Asking for an update on your issue will not yield any progress on it and will not result in a response. All updates are posted to the issue when they occur.

By: Joshua C. Colp (jcolp) 2019-12-11 14:23:51.523-0600

What's the SDP for this? And do you mean a call without audio?

By: Dan Jenkins (danjenkins) 2019-12-11 15:06:11.593-0600

Yes, Video without Audio (just displaymedia for example)

OFFER

{noformat}
v=0
o=- 3743695824920815205 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0
a=msid-semantic: WMS iBR3GFjitqbsxU4tVwY3RlmkUD9oN16gKNIO
m=video 55336 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 122 127 121 125 107 108 109 124 120 123 119 114 115 116
c=IN IP4 <ip>
a=rtcp:9 IN IP4 0.0.0.0
a=candidate:916626476 1 udp 2122260223 10.0.0.132 55336 typ host generation 0 network-id 2
a=candidate:2773179782 1 udp 2122194687 10.0.0.218 62953 typ host generation 0 network-id 1 network-cost 10
a=candidate:3582139072 1 udp 1686052607 <ip> 55336 typ srflx raddr 10.0.0.132 rport 55336 generation 0 network-id 2
a=ice-ufrag:tLSr
a=ice-pwd:o2UU65KebbaNsvtz5knwi+AY
a=ice-options:trickle
a=fingerprint:sha-256 F4:F8:22:D9:E8:DB:60:A7:04:35:24:81:E7:5E:4D:8F:96:37:3E:80:93:4E:F3:BD:35:38:A2:14:88:E1:3A:A8
a=setup:actpass
a=mid:0
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:13 urn:3gpp:video-orientation
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:12 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:11 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:8 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07
a=extmap:9 http://www.webrtc.org/experiments/rtp-hdrext/color-space
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=sendrecv
a=msid:iBR3GFjitqbsxU4tVwY3RlmkUD9oN16gKNIO a238ca9b-3623-4208-9ca3-6840bf126136
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 profile-id=0
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 VP9/90000
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=fmtp:100 profile-id=2
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:102 H264/90000
a=rtcp-fb:102 goog-remb
a=rtcp-fb:102 transport-cc
a=rtcp-fb:102 ccm fir
a=rtcp-fb:102 nack
a=rtcp-fb:102 nack pli
a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtpmap:122 rtx/90000
a=fmtp:122 apt=102
a=rtpmap:127 H264/90000
a=rtcp-fb:127 goog-remb
a=rtcp-fb:127 transport-cc
a=rtcp-fb:127 ccm fir
a=rtcp-fb:127 nack
a=rtcp-fb:127 nack pli
a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
a=rtpmap:121 rtx/90000
a=fmtp:121 apt=127
a=rtpmap:125 H264/90000
a=rtcp-fb:125 goog-remb
a=rtcp-fb:125 transport-cc
a=rtcp-fb:125 ccm fir
a=rtcp-fb:125 nack
a=rtcp-fb:125 nack pli
a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:107 rtx/90000
a=fmtp:107 apt=125
a=rtpmap:108 H264/90000
a=rtcp-fb:108 goog-remb
a=rtcp-fb:108 transport-cc
a=rtcp-fb:108 ccm fir
a=rtcp-fb:108 nack
a=rtcp-fb:108 nack pli
a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
a=rtpmap:109 rtx/90000
a=fmtp:109 apt=108
a=rtpmap:124 H264/90000
a=rtcp-fb:124 goog-remb
a=rtcp-fb:124 transport-cc
a=rtcp-fb:124 ccm fir
a=rtcp-fb:124 nack
a=rtcp-fb:124 nack pli
a=fmtp:124 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0032
a=rtpmap:120 rtx/90000
a=fmtp:120 apt=124
a=rtpmap:123 H264/90000
a=rtcp-fb:123 goog-remb
a=rtcp-fb:123 transport-cc
a=rtcp-fb:123 ccm fir
a=rtcp-fb:123 nack
a=rtcp-fb:123 nack pli
a=fmtp:123 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032
a=rtpmap:119 rtx/90000
a=fmtp:119 apt=123
a=rtpmap:114 red/90000
a=rtpmap:115 rtx/90000
a=fmtp:115 apt=114
a=rtpmap:116 ulpfec/90000
a=ssrc-group:FID 518123842 3252002199
a=ssrc:518123842 cname:Wht4M0arpjxINEkx
a=ssrc:518123842 msid:iBR3GFjitqbsxU4tVwY3RlmkUD9oN16gKNIO a238ca9b-3623-4208-9ca3-6840bf126136
a=ssrc:518123842 mslabel:iBR3GFjitqbsxU4tVwY3RlmkUD9oN16gKNIO
a=ssrc:518123842 label:a238ca9b-3623-4208-9ca3-6840bf126136
a=ssrc:3252002199 cname:Wht4M0arpjxINEkx
a=ssrc:3252002199 msid:iBR3GFjitqbsxU4tVwY3RlmkUD9oN16gKNIO a238ca9b-3623-4208-9ca3-6840bf126136
a=ssrc:3252002199 mslabel:iBR3GFjitqbsxU4tVwY3RlmkUD9oN16gKNIO
a=ssrc:3252002199 label:a238ca9b-3623-4208-9ca3-6840bf126136
{noformat}

ANSWER

{noformat}
v=0
o=- 2407835237 4 IN IP4 <ip>
s=Asterisk
c=IN IP4 <ip>
t=0 0
a=msid-semantic:WMS *
a=group:BUNDLE 0
m=video 17600 UDP/TLS/RTP/SAVPF 96 102 98
a=connection:new
a=setup:active
a=fingerprint:SHA-256 9A:0F:F2:66:63:A5:0C:AA:2E:63:66:7F:64:0C:DA:6F:48:15:72:95:92:F7:FF:43:1D:96:30:F0:10:A0:5A:5B
a=ice-ufrag:2520304f60ec952b5d25a7027b820c6d
a=ice-pwd:4e3895d41b71b83f4e66c303088ca477
a=candidate:Hfa032a12 1 UDP 2130706431 <ip> 17600 typ host
a=candidate:H5d4a4668 1 UDP 2130706431 <ip> 17600 typ host
a=candidate:H5fb3cf51 1 UDP 2130706431 <ip> 17600 typ host
a=rtpmap:96 VP8/90000
a=rtpmap:102 H264/90000
a=fmtp:102 packetization-mode=1;level-asymmetry-allowed=1;profile-level-id=42001F
a=rtpmap:98 VP9/90000
a=sendrecv
a=rtcp-mux
a=ssrc:145385114 cname:dec35d74-63ec-4eea-ab43-870e590192b6
a=msid:23a1970a-b677-4656-92fb-6e74a1e2cce5 a888ce6f-fcc5-42c5-84f9-29f1e79dc912
a=rtcp-fb:* transport-cc
a=rtcp-fb:* ccm fir
a=rtcp-fb:* goog-remb
a=rtcp-fb:* nack
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=mid:0
{noformat}

REINVITE OFFER to peer

{noformat}
v=0
o=- 195352506 5 IN IP4 <ip>
s=Asterisk
c=IN IP4 <ip>
t=0 0
a=msid-semantic:WMS *
a=group:BUNDLE 0 1 video-2
m=audio 14084 UDP/TLS/RTP/SAVPF 111 126
a=connection:existing
a=setup:actpass
a=fingerprint:SHA-256 95:71:7B:BE:ED:C6:EF:80:A4:E0:12:5B:57:55:C3:BC:E7:A1:33:42:2F:38:E5:44:28:94:47:F9:5C:F3:21:17
a=ice-ufrag:65a2f35522cdbe2c2602e0fb74046d35
a=ice-pwd:324eda2c1d1389870a36552b227395a4
a=candidate:Hfa032a12 1 UDP 2130706431 <ip> 14084 typ host
a=candidate:H5d4a4668 1 UDP 2130706431 <ip> 14084 typ host
a=candidate:H5fb3cf51 1 UDP 2130706431 <ip> 14084 typ host
a=rtpmap:111 opus/48000/2
a=fmtp:111 useinbandfec=1
a=rtpmap:126 telephone-event/8000
a=fmtp:126 0-16
a=ptime:20
a=maxptime:20
a=sendrecv
a=rtcp-mux
a=ssrc:335572677 cname:d6e179e9-1c3e-47d6-85ae-2f275a2a5347
a=msid:439f8236-1903-4fe9-a525-877c3933f187 7e1dc317-9994-4867-8332-2dc36a74ed23
a=rtcp-fb:* transport-cc
a=mid:0
m=video 14084 UDP/TLS/RTP/SAVPF 96 102 98
a=connection:existing
a=setup:actpass
a=fingerprint:SHA-256 95:71:7B:BE:ED:C6:EF:80:A4:E0:12:5B:57:55:C3:BC:E7:A1:33:42:2F:38:E5:44:28:94:47:F9:5C:F3:21:17
a=ice-ufrag:65a2f35522cdbe2c2602e0fb74046d35
a=ice-pwd:324eda2c1d1389870a36552b227395a4
a=rtpmap:96 VP8/90000
a=rtpmap:102 H264/90000
a=fmtp:102 packetization-mode=1;level-asymmetry-allowed=1;profile-level-id=42001F
a=rtpmap:98 VP9/90000
a=sendrecv
a=rtcp-mux
a=ssrc:958918571 cname:112d3a25-1adc-426c-b045-b65cdd2422ee
a=msid:439f8236-1903-4fe9-a525-877c3933f187 aae9fee8-426f-4e39-870b-0f53d27811ae
a=rtcp-fb:* transport-cc
a=rtcp-fb:* ccm fir
a=rtcp-fb:* goog-remb
a=rtcp-fb:* nack
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=mid:1
m=video 14084 UDP/TLS/RTP/SAVPF 96 102 98
a=connection:existing
a=setup:actpass
a=fingerprint:SHA-256 95:71:7B:BE:ED:C6:EF:80:A4:E0:12:5B:57:55:C3:BC:E7:A1:33:42:2F:38:E5:44:28:94:47:F9:5C:F3:21:17
a=ice-ufrag:65a2f35522cdbe2c2602e0fb74046d35
a=ice-pwd:324eda2c1d1389870a36552b227395a4
a=rtpmap:96 VP8/90000
a=rtpmap:102 H264/90000
a=fmtp:102 packetization-mode=1;level-asymmetry-allowed=1;profile-level-id=42001F
a=rtpmap:98 VP9/90000
a=sendrecv
a=rtcp-mux
a=ssrc:888816470 cname:41ba6b00-ea41-4681-aedf-6287735a57dc
a=msid:11420eea-552d-4375-8545-98c8ee20d90c 316a147e-a9d9-4b65-88fb-408add26008b
a=rtcp-fb:* transport-cc
a=rtcp-fb:* ccm fir
a=rtcp-fb:* goog-remb
a=rtcp-fb:* nack
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=mid:video-2
{noformat}

existing peer gets a video track for the screenshare but never gets any data for it. you only get data if you pass an audio stream in along with the original video track

By: Sean Bright (seanbright) 2020-01-20 15:50:19.817-0600

bq. I can give you a build of dana that's broken if you need it. I figured this out by generating a stream from getDisplayMedia() with no audio

Yes, please do.

By: Dan Jenkins (danjenkins) 2020-01-21 04:54:44.547-0600

Sean:

branch for the code - https://github.com/nimbleape/dana-the-stream-gatekeeper/tree/only-send-video-asterisk-issue
deployed version of it (you need to input your own details) - https://5e26d575f461bf000872917a--gifted-almeida-0fdb60.netlify.com/

you'll need the ARI bridge running (if you're using ARI... I guess some dialplan with confbridge would work) - I've just enabled it so if you don't set mqtt or rtpserver in the config it'll just act like an SFU, no snooping etc - https://github.com/nimbleape/dana-tsg-ari-bridge

Let me know if you need anything else