Skip to content

Instantly share code, notes, and snippets.

@chadxz
Last active December 16, 2015 15:39
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chadxz/0f9240ed96af871ac156 to your computer and use it in GitHub Desktop.
Save chadxz/0f9240ed96af871ac156 to your computer and use it in GitHub Desktop.
Chrome 46 WebRTC Renegotiation Issues

Chrome 46 WebRTC Renegotiation Issues

The below SDP is recreated using the following steps:

  • Participant A offers audio+video to Participant B
  • B answers with audio+video
  • Call connected.
  • A renegotiates to remove audio, making it a video-only call from it's side
    • calls getUserMedia with { audio: false, video: true }
    • removes all streams from the peer connection, and adds the stream from getUserMedia
    • calls createOffer, setLocalDescription, then sends the offer to B
  • B answers with audio+video.
    • calls setRemoteDescription with the received offer, then createAnswer() and sends the answers to A
  • Renegotiation complete, but unexpected results.
    • A calls setRemoteDescription with the answer from B

At the end of the renegotiation even though Participant A has an "active" MediaStreamTrack for the audio coming from Participant B, there is no data flowing on it (based on the graphs in chrome://webrtc-internals) and no audible audio on Participant A's speakers.

v=0
o=- 8418807676587322968 3 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS jddpGzsbRievqMRDEYPSrUvMg9C4sKrRUhaC
m=audio 63992 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 126
c=IN IP4 54.183.230.120
a=rtcp:53700 IN IP4 54.183.230.120
a=candidate:2218435994 1 udp 2122260223 192.168.99.1 53454 typ host generation 0
a=candidate:3089184991 1 udp 2122194687 10.24.16.137 64252 typ host generation 0
a=candidate:1180660037 1 udp 2122129151 10.24.66.119 64616 typ host generation 0
a=candidate:2218435994 2 udp 2122260222 192.168.99.1 62670 typ host generation 0
a=candidate:3089184991 2 udp 2122194686 10.24.16.137 53967 typ host generation 0
a=candidate:1180660037 2 udp 2122129150 10.24.66.119 52808 typ host generation 0
a=candidate:1311850763 1 udp 1685987071 216.207.245.1 61170 typ srflx raddr 10.24.16.137 rport 64252 generation 0
a=candidate:1311850763 2 udp 1685987070 216.207.245.1 61172 typ srflx raddr 10.24.16.137 rport 53967 generation 0
a=candidate:2957969553 1 udp 1685921535 216.207.245.1 61171 typ srflx raddr 10.24.66.119 rport 64616 generation 0
a=candidate:2957969553 2 udp 1685921534 216.207.245.1 61175 typ srflx raddr 10.24.66.119 rport 52808 generation 0
a=candidate:1311850763 1 udp 1685987071 216.207.245.1 61195 typ srflx raddr 10.24.16.137 rport 64252 generation 0
a=candidate:1311850763 2 udp 1685987070 216.207.245.1 61197 typ srflx raddr 10.24.16.137 rport 53967 generation 0
a=candidate:2957969553 1 udp 1685921535 216.207.245.1 61201 typ srflx raddr 10.24.66.119 rport 64616 generation 0
a=candidate:2957969553 2 udp 1685921534 216.207.245.1 61203 typ srflx raddr 10.24.66.119 rport 52808 generation 0
a=candidate:1311850763 1 udp 1685987071 216.207.245.1 64252 typ srflx raddr 10.24.16.137 rport 64252 generation 0
a=candidate:1311850763 2 udp 1685987070 216.207.245.1 53967 typ srflx raddr 10.24.16.137 rport 53967 generation 0
a=candidate:2957969553 1 udp 1685921535 216.207.245.1 64616 typ srflx raddr 10.24.66.119 rport 64616 generation 0
a=candidate:2957969553 2 udp 1685921534 216.207.245.1 52808 typ srflx raddr 10.24.66.119 rport 52808 generation 0
a=candidate:3401144682 1 tcp 1518280447 192.168.99.1 0 typ host tcptype active generation 0
a=candidate:4137862191 1 tcp 1518214911 10.24.16.137 0 typ host tcptype active generation 0
a=candidate:148671925 1 tcp 1518149375 10.24.66.119 0 typ host tcptype active generation 0
a=candidate:3401144682 2 tcp 1518280446 192.168.99.1 0 typ host tcptype active generation 0
a=candidate:4137862191 2 tcp 1518214910 10.24.16.137 0 typ host tcptype active generation 0
a=candidate:148671925 2 tcp 1518149374 10.24.66.119 0 typ host tcptype active generation 0
a=candidate:1311850763 1 udp 1685987071 216.207.245.1 61187 typ srflx raddr 10.24.16.137 rport 64252 generation 0
a=candidate:2957969553 1 udp 1685921535 216.207.245.1 61192 typ srflx raddr 10.24.66.119 rport 64616 generation 0
a=candidate:2957969553 2 udp 1685921534 216.207.245.1 61196 typ srflx raddr 10.24.66.119 rport 52808 generation 0
a=candidate:2957969553 2 udp 1685921534 216.207.245.1 61211 typ srflx raddr 10.24.66.119 rport 52808 generation 0
a=candidate:1311850763 1 udp 1685987071 216.207.245.1 61206 typ srflx raddr 10.24.16.137 rport 64252 generation 0
a=candidate:1311850763 2 udp 1685987070 216.207.245.1 61190 typ srflx raddr 10.24.16.137 rport 53967 generation 0
a=candidate:1311850763 2 udp 1685987070 216.207.245.1 61207 typ srflx raddr 10.24.16.137 rport 53967 generation 0
a=candidate:2957969553 1 udp 1685921535 216.207.245.1 61209 typ srflx raddr 10.24.66.119 rport 64616 generation 0
a=candidate:1311850763 1 udp 1685987071 216.207.245.1 61179 typ srflx raddr 10.24.16.137 rport 64252 generation 0
a=candidate:2957969553 2 udp 1685921534 216.207.245.1 61185 typ srflx raddr 10.24.66.119 rport 52808 generation 0
a=candidate:2957969553 1 udp 1685921535 216.207.245.1 61181 typ srflx raddr 10.24.66.119 rport 64616 generation 0
a=candidate:1311850763 2 udp 1685987070 216.207.245.1 61182 typ srflx raddr 10.24.16.137 rport 53967 generation 0
a=candidate:635996666 1 udp 41819903 54.183.230.120 63992 typ relay raddr 216.207.245.1 rport 64252 generation 0
a=candidate:635996666 2 udp 41819902 54.183.230.120 53700 typ relay raddr 216.207.245.1 rport 53967 generation 0
a=candidate:635996666 1 udp 41754367 54.183.230.120 64120 typ relay raddr 216.207.245.1 rport 64616 generation 0
a=candidate:635996666 2 udp 41754366 54.183.230.120 56180 typ relay raddr 216.207.245.1 rport 52808 generation 0
a=candidate:635996666 1 udp 25042687 54.183.230.120 49845 typ relay raddr 216.207.245.1 rport 63949 generation 0
a=candidate:635996666 2 udp 25042686 54.183.230.120 49417 typ relay raddr 216.207.245.1 rport 46632 generation 0
a=ice-ufrag:GUDieln7W6IaDjX+
a=ice-pwd:XAxPgt5guDTpkQdVX46s7SK3
a=fingerprint:sha-256 1D:E1:1B:8D:EC:C0:E8:B4:0D:FF:70:50:7A:77:26:5A:18:A0:35:B1:F5:7F:87:89:98:22:47:14:C7:2A:9C:00
a=setup:actpass
a=mid:audio
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=sendonly
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: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
m=video 54566 UDP/TLS/RTP/SAVPF 100 116 117 96
c=IN IP4 54.183.230.120
a=rtcp:53142 IN IP4 54.183.230.120
a=candidate:2218435994 1 udp 2122260223 192.168.99.1 59142 typ host generation 0
a=candidate:3089184991 1 udp 2122194687 10.24.16.137 53011 typ host generation 0
a=candidate:1180660037 1 udp 2122129151 10.24.66.119 52137 typ host generation 0
a=candidate:2218435994 2 udp 2122260222 192.168.99.1 62683 typ host generation 0
a=candidate:3089184991 2 udp 2122194686 10.24.16.137 50289 typ host generation 0
a=candidate:1180660037 2 udp 2122129150 10.24.66.119 64900 typ host generation 0
a=candidate:1311850763 1 udp 1685987071 216.207.245.1 61173 typ srflx raddr 10.24.16.137 rport 53011 generation 0
a=candidate:1311850763 2 udp 1685987070 216.207.245.1 61176 typ srflx raddr 10.24.16.137 rport 50289 generation 0
a=candidate:2957969553 1 udp 1685921535 216.207.245.1 61178 typ srflx raddr 10.24.66.119 rport 52137 generation 0
a=candidate:2957969553 2 udp 1685921534 216.207.245.1 61180 typ srflx raddr 10.24.66.119 rport 64900 generation 0
a=candidate:1311850763 1 udp 1685987071 216.207.245.1 61199 typ srflx raddr 10.24.16.137 rport 53011 generation 0
a=candidate:1311850763 2 udp 1685987070 216.207.245.1 61202 typ srflx raddr 10.24.16.137 rport 50289 generation 0
a=candidate:2957969553 1 udp 1685921535 216.207.245.1 61204 typ srflx raddr 10.24.66.119 rport 52137 generation 0
a=candidate:2957969553 2 udp 1685921534 216.207.245.1 61205 typ srflx raddr 10.24.66.119 rport 64900 generation 0
a=candidate:1311850763 1 udp 1685987071 216.207.245.1 53011 typ srflx raddr 10.24.16.137 rport 53011 generation 0
a=candidate:1311850763 2 udp 1685987070 216.207.245.1 50289 typ srflx raddr 10.24.16.137 rport 50289 generation 0
a=candidate:2957969553 1 udp 1685921535 216.207.245.1 52137 typ srflx raddr 10.24.66.119 rport 52137 generation 0
a=candidate:2957969553 2 udp 1685921534 216.207.245.1 64900 typ srflx raddr 10.24.66.119 rport 64900 generation 0
a=candidate:3401144682 1 tcp 1518280447 192.168.99.1 0 typ host tcptype active generation 0
a=candidate:4137862191 1 tcp 1518214911 10.24.16.137 0 typ host tcptype active generation 0
a=candidate:148671925 1 tcp 1518149375 10.24.66.119 0 typ host tcptype active generation 0
a=candidate:3401144682 2 tcp 1518280446 192.168.99.1 0 typ host tcptype active generation 0
a=candidate:4137862191 2 tcp 1518214910 10.24.16.137 0 typ host tcptype active generation 0
a=candidate:148671925 2 tcp 1518149374 10.24.66.119 0 typ host tcptype active generation 0
a=candidate:2957969553 1 udp 1685921535 216.207.245.1 61198 typ srflx raddr 10.24.66.119 rport 52137 generation 0
a=candidate:2957969553 1 udp 1685921535 216.207.245.1 61212 typ srflx raddr 10.24.66.119 rport 52137 generation 0
a=candidate:2957969553 2 udp 1685921534 216.207.245.1 61200 typ srflx raddr 10.24.66.119 rport 64900 generation 0
a=candidate:2957969553 2 udp 1685921534 216.207.245.1 61213 typ srflx raddr 10.24.66.119 rport 64900 generation 0
a=candidate:1311850763 2 udp 1685987070 216.207.245.1 61194 typ srflx raddr 10.24.16.137 rport 50289 generation 0
a=candidate:1311850763 2 udp 1685987070 216.207.245.1 61210 typ srflx raddr 10.24.16.137 rport 50289 generation 0
a=candidate:1311850763 1 udp 1685987071 216.207.245.1 61193 typ srflx raddr 10.24.16.137 rport 53011 generation 0
a=candidate:1311850763 1 udp 1685987071 216.207.245.1 61208 typ srflx raddr 10.24.16.137 rport 53011 generation 0
a=candidate:1311850763 1 udp 1685987071 216.207.245.1 61183 typ srflx raddr 10.24.16.137 rport 53011 generation 0
a=candidate:2957969553 1 udp 1685921535 216.207.245.1 61188 typ srflx raddr 10.24.66.119 rport 52137 generation 0
a=candidate:1311850763 2 udp 1685987070 216.207.245.1 61184 typ srflx raddr 10.24.16.137 rport 50289 generation 0
a=candidate:2957969553 2 udp 1685921534 216.207.245.1 61191 typ srflx raddr 10.24.66.119 rport 64900 generation 0
a=candidate:635996666 2 udp 41819902 54.183.230.120 53142 typ relay raddr 216.207.245.1 rport 50289 generation 0
a=candidate:635996666 1 udp 41819903 54.183.230.120 54566 typ relay raddr 216.207.245.1 rport 53011 generation 0
a=candidate:635996666 2 udp 41754366 54.183.230.120 56267 typ relay raddr 216.207.245.1 rport 64900 generation 0
a=candidate:635996666 1 udp 41754367 54.183.230.120 59642 typ relay raddr 216.207.245.1 rport 52137 generation 0
a=candidate:635996666 1 udp 25042687 54.183.230.120 61614 typ relay raddr 216.207.245.1 rport 63955 generation 0
a=candidate:635996666 2 udp 25042686 54.183.230.120 49668 typ relay raddr 216.207.245.1 rport 63958 generation 0
a=ice-ufrag:GUDieln7W6IaDjX+
a=ice-pwd:XAxPgt5guDTpkQdVX46s7SK3
a=fingerprint:sha-256 1D:E1:1B:8D:EC:C0:E8:B4:0D:FF:70:50:7A:77:26:5A:18:A0:35:B1:F5:7F:87:89:98:22:47:14:C7:2A:9C:00
a=setup:actpass
a=mid:video
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:14 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 urn:3gpp:video-orientation
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=rtpmap:116 red/90000
a=rtpmap:117 ulpfec/90000
a=rtpmap:96 rtx/90000
a=fmtp:96 apt=100
a=ssrc-group:FID 2483177971 1998965231
a=ssrc:2483177971 cname:ffm/J2GBto7fKsP2
a=ssrc:2483177971 msid:jddpGzsbRievqMRDEYPSrUvMg9C4sKrRUhaC d496c196-7d35-4317-bb23-cee8930b6dbb
a=ssrc:2483177971 mslabel:jddpGzsbRievqMRDEYPSrUvMg9C4sKrRUhaC
a=ssrc:2483177971 label:d496c196-7d35-4317-bb23-cee8930b6dbb
a=ssrc:1998965231 cname:ffm/J2GBto7fKsP2
a=ssrc:1998965231 msid:jddpGzsbRievqMRDEYPSrUvMg9C4sKrRUhaC d496c196-7d35-4317-bb23-cee8930b6dbb
a=ssrc:1998965231 mslabel:jddpGzsbRievqMRDEYPSrUvMg9C4sKrRUhaC
a=ssrc:1998965231 label:d496c196-7d35-4317-bb23-cee8930b6dbb
v=0
o=- 8561102871870256061 3 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS GwLh7Qt9MYgfZioQs51UFtNJbMFnKn9T3KaV
m=audio 61218 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 126
c=IN IP4 216.207.245.1
a=rtcp:9 IN IP4 0.0.0.0
a=candidate:2218435994 1 udp 2122260223 192.168.99.1 49404 typ host generation 0
a=candidate:3089184991 1 udp 2122194687 10.24.16.137 65309 typ host generation 0
a=candidate:1180660037 1 udp 2122129151 10.24.66.119 51053 typ host generation 0
a=candidate:1311850763 1 udp 1685987071 216.207.245.1 61218 typ srflx raddr 10.24.16.137 rport 65309 generation 0
a=candidate:2957969553 1 udp 1685921535 216.207.245.1 61223 typ srflx raddr 10.24.66.119 rport 51053 generation 0
a=candidate:1311850763 1 udp 1685987071 216.207.245.1 65309 typ srflx raddr 10.24.16.137 rport 65309 generation 0
a=candidate:1311850763 1 udp 1685987071 216.207.245.1 61219 typ srflx raddr 10.24.16.137 rport 65309 generation 0
a=candidate:2957969553 1 udp 1685921535 216.207.245.1 61224 typ srflx raddr 10.24.66.119 rport 51053 generation 0
a=candidate:2957969553 1 udp 1685921535 216.207.245.1 51053 typ srflx raddr 10.24.66.119 rport 51053 generation 0
a=ice-ufrag:+mis/VZcM2Yf4Gsp
a=ice-pwd:rtpUoT2+kBc/D6+8VCjtaOA8
a=fingerprint:sha-256 1D:E1:1B:8D:EC:C0:E8:B4:0D:FF:70:50:7A:77:26:5A:18:A0:35:B1:F5:7F:87:89:98:22:47:14:C7:2A:9C:00
a=setup:active
a=mid:audio
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=recvonly
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: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:1294797869 cname:aa880KztOFoZChlD
a=ssrc:1294797869 msid:GwLh7Qt9MYgfZioQs51UFtNJbMFnKn9T3KaV 3dafefb6-75c1-4f42-b2ea-5e6b8f02f1f8
a=ssrc:1294797869 mslabel:GwLh7Qt9MYgfZioQs51UFtNJbMFnKn9T3KaV
a=ssrc:1294797869 label:3dafefb6-75c1-4f42-b2ea-5e6b8f02f1f8
m=video 61218 UDP/TLS/RTP/SAVPF 100 116 117 96
c=IN IP4 216.207.245.1
a=rtcp:9 IN IP4 0.0.0.0
a=candidate:2218435994 1 udp 2122260223 192.168.99.1 49404 typ host generation 0
a=candidate:3089184991 1 udp 2122194687 10.24.16.137 65309 typ host generation 0
a=candidate:1180660037 1 udp 2122129151 10.24.66.119 51053 typ host generation 0
a=candidate:1311850763 1 udp 1685987071 216.207.245.1 61218 typ srflx raddr 10.24.16.137 rport 65309 generation 0
a=candidate:2957969553 1 udp 1685921535 216.207.245.1 61223 typ srflx raddr 10.24.66.119 rport 51053 generation 0
a=candidate:1311850763 1 udp 1685987071 216.207.245.1 65309 typ srflx raddr 10.24.16.137 rport 65309 generation 0
a=candidate:1311850763 1 udp 1685987071 216.207.245.1 61219 typ srflx raddr 10.24.16.137 rport 65309 generation 0
a=candidate:2957969553 1 udp 1685921535 216.207.245.1 61224 typ srflx raddr 10.24.66.119 rport 51053 generation 0
a=candidate:2957969553 1 udp 1685921535 216.207.245.1 51053 typ srflx raddr 10.24.66.119 rport 51053 generation 0
a=ice-ufrag:+mis/VZcM2Yf4Gsp
a=ice-pwd:rtpUoT2+kBc/D6+8VCjtaOA8
a=fingerprint:sha-256 1D:E1:1B:8D:EC:C0:E8:B4:0D:FF:70:50:7A:77:26:5A:18:A0:35:B1:F5:7F:87:89:98:22:47:14:C7:2A:9C:00
a=setup:active
a=mid:video
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:14 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 urn:3gpp:video-orientation
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=rtpmap:116 red/90000
a=rtpmap:117 ulpfec/90000
a=rtpmap:96 rtx/90000
a=fmtp:96 apt=100
a=ssrc-group:FID 1885486467 164410627
a=ssrc:1885486467 cname:aa880KztOFoZChlD
a=ssrc:1885486467 msid:GwLh7Qt9MYgfZioQs51UFtNJbMFnKn9T3KaV cd243c66-9bf9-400f-bab6-028edc74ffba
a=ssrc:1885486467 mslabel:GwLh7Qt9MYgfZioQs51UFtNJbMFnKn9T3KaV
a=ssrc:1885486467 label:cd243c66-9bf9-400f-bab6-028edc74ffba
a=ssrc:164410627 cname:aa880KztOFoZChlD
a=ssrc:164410627 msid:GwLh7Qt9MYgfZioQs51UFtNJbMFnKn9T3KaV cd243c66-9bf9-400f-bab6-028edc74ffba
a=ssrc:164410627 mslabel:GwLh7Qt9MYgfZioQs51UFtNJbMFnKn9T3KaV
a=ssrc:164410627 label:cd243c66-9bf9-400f-bab6-028edc74ffba
@chadxz
Copy link
Author

chadxz commented Nov 24, 2015

Participant A's remote streams, according to Chrome:
screen shot 2015-11-24 at 1 32 52 pm

Participant B's local streams:
screen shot 2015-11-24 at 1 33 34 pm

@chadxz
Copy link
Author

chadxz commented Nov 24, 2015

One thing stands out as peculiar: why does the audio track have a=sendonly from the offerer, when the pc used to create the offer no longer has an audio track in any of its streams?

@taylor-b
Copy link

The a=sendonly is caused by a bug I fixed here: https://codereview.webrtc.org/1406803004/
This bug also has the side-effect that the answerer can only respond with a=recvonly, which means it becomes unable to send: https://code.google.com/p/chromium/codesearch#chromium/src/third_party/libjingle/source/talk/session/media/channel.cc&sq=package:chromium&l=416&rcl=1448397233

Try using a Chome build from the Canary or Dev channel, and it should have this issue fixed.

@taylor-b
Copy link

Or, for a workaround, call createOffer with "offerToReceiveAudio:1", and you should get an "a=recvonly" line rather than "a=sendonly", which is what you want.

@chadxz
Copy link
Author

chadxz commented Nov 25, 2015

Hey @taylor-b, thanks for pointing out your fix. I did verify that in Chrome Canary 49.0.2574.0 canary (64-bit) (OS X) The issue is fixed and the renegotiation works as expected. I did try the workaround you suggested

pc.createOffer({
  mandatory: {
    offerToReceiveAudio: 1,
    offerToReceiveVideo: 1
  }
}).then(offer => { /* ... */ });

but it didn't make any difference for me. I also tried true instead of 1 for the values. I'm going to look and see if there's a simple way to munge the SDP.

@taylor-b
Copy link

Yeah, you could munge the sdp as well. Something as simple as offer.sdp = offer.sdp.replace('sendonly','recvonly'); might work, if there are no actual streams intended to be sendonly.

Also: I believe the issue with offerToReceiveAudio in your example is that you're using the constraints format of the dictionary. In that case, I think OfferToReceiveAudio should be capitalized. It's not capitalized in the RTCOfferOptions dictionary, however: http://www.w3.org/TR/webrtc/#offer-answer-options

@chadxz
Copy link
Author

chadxz commented Dec 16, 2015

Ah, thanks Taylor. didn't realize that mistake. Will try it again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment