Selaa lähdekoodia

bump colibri.js version

master
Philipp Hancke 11 vuotta sitten
vanhempi
commit
91c67c8a91
1 muutettua tiedostoa jossa 41 lisäystä ja 4 poistoa
  1. 41
    4
      libs/colibri.js

+ 41
- 4
libs/colibri.js Näytä tiedosto

@@ -211,15 +211,51 @@ ColibriFocus.prototype.createdConference = function (result) {
211 211
         }
212 212
     }
213 213
     console.log('remote channels', this.channels);
214
+    var localSDP = new SDP(this.peerconnection.localDescription.sdp);
215
+    localSDP.removeSessionLines('a=group:');
216
+    localSDP.removeSessionLines('a=msid-semantic:');
214 217
 
215 218
     // establish our channel with the bridge
216 219
     // static answer taken from chrome M31, should be replaced by a 
217 220
     // dynamic one that is based on our offer FIXME
218
-    var bridgeSDP = new SDP('v=0\r\no=- 5151055458874951233 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\nm=audio 1 RTP/SAVPF 111 103 104 0 8 106 105 13 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:1 IN IP4 0.0.0.0\r\na=mid:audio\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=sendrecv\r\na=rtpmap:111 opus/48000/2\r\na=fmtp:111 minptime=10\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:104 ISAC/32000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:106 CN/32000\r\na=rtpmap:105 CN/16000\r\na=rtpmap:13 CN/8000\r\na=rtpmap:126 telephone-event/8000\r\na=maxptime:60\r\nm=video 1 RTP/SAVPF 100 116 117\r\nc=IN IP4 0.0.0.0\r\na=rtcp:1 IN IP4 0.0.0.0\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=sendrecv\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 goog-remb\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\n');
221
+    var bridgeSDP = new SDP("");
222
+    // var bridgeSDP = new SDP('v=0\r\no=- 5151055458874951233 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\nm=audio 1 RTP/SAVPF 111 103 104 0 8 106 105 13 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:1 IN IP4 0.0.0.0\r\na=mid:audio\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=sendrecv\r\na=rtpmap:111 opus/48000/2\r\na=fmtp:111 minptime=10\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:104 ISAC/32000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:106 CN/32000\r\na=rtpmap:105 CN/16000\r\na=rtpmap:13 CN/8000\r\na=rtpmap:126 telephone-event/8000\r\na=maxptime:60\r\nm=video 1 RTP/SAVPF 100 116 117\r\nc=IN IP4 0.0.0.0\r\na=rtcp:1 IN IP4 0.0.0.0\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=sendrecv\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 goog-remb\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\n');
219 223
     // only do what's in the offer
220
-    bridgeSDP.media.length = this.mychannel.length;
224
+    bridgeSDP.session = localSDP.session;
225
+    bridgeSDP.media.length = localSDP.media.length;
226
+    var channel;
227
+    for (channel = 0; channel < bridgeSDP.media.length; channel++) {
228
+        bridgeSDP.media[channel] = '';
229
+        // unchanged lines
230
+        bridgeSDP.media[channel] += SDPUtil.find_line(localSDP.media[channel], 'm=') + '\r\n';
231
+        bridgeSDP.media[channel] += SDPUtil.find_line(localSDP.media[channel], 'c=') + '\r\n';
232
+        if (SDPUtil.find_line(localSDP.media[channel], 'a=rtcp:')) {
233
+            bridgeSDP.media[channel] += SDPUtil.find_line(localSDP.media[channel], 'a=rtcp:') + '\r\n';
234
+        }
235
+        if (SDPUtil.find_line(localSDP.media[channel], 'a=mid:')) {
236
+            bridgeSDP.media[channel] += SDPUtil.find_line(localSDP.media[channel], 'a=mid:') + '\r\n';
237
+        }
238
+        if (SDPUtil.find_line(localSDP.media[channel], 'a=sendrecv')) {
239
+            bridgeSDP.media[channel] += 'a=sendrecv\r\n';
240
+        }
241
+        if (SDPUtil.find_line(localSDP.media[channel], 'a=extmap:')) {
242
+            bridgeSDP.media[channel] += SDPUtil.find_lines(localSDP.media[channel], 'a=extmap:').join('\r\n') + '\r\n';
243
+        }
244
+
245
+        // FIXME: should look at m-line and group the ids together
246
+        if (SDPUtil.find_line(localSDP.media[channel], 'a=rtpmap:')) {
247
+            bridgeSDP.media[channel] += SDPUtil.find_lines(localSDP.media[channel], 'a=rtpmap:').join('\r\n') + '\r\n';
248
+        }
249
+        if (SDPUtil.find_line(localSDP.media[channel], 'a=fmtp:')) {
250
+            bridgeSDP.media[channel] += SDPUtil.find_lines(localSDP.media[channel], 'a=fmtp:').join('\r\n') + '\r\n';
251
+        }
252
+        if (SDPUtil.find_line(localSDP.media[channel], 'a=rtcp-fb:')) {
253
+            bridgeSDP.media[channel] += SDPUtil.find_lines(localSDP.media[channel], 'a=rtcp-fb:').join('\r\n') + '\r\n';
254
+        }
255
+        // FIXME: changed lines -- a=sendrecv direction, a=setup direction
256
+    }
221 257
     // get the mixed ssrc
222
-    for (var channel = 0; channel < bridgeSDP.media.length; channel++) {
258
+    for (channel = 0; channel < bridgeSDP.media.length; channel++) {
223 259
         tmp = $(this.mychannel[channel]).find('>source[xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"]');
224 260
         // FIXME: check rtp-level-relay-type
225 261
         if (tmp.length) {
@@ -229,6 +265,7 @@ ColibriFocus.prototype.createdConference = function (result) {
229 265
             bridgeSDP.media[channel] += 'a=ssrc:' + tmp.attr('ssrc') + ' ' + 'mslabel:mixedmslabela0' + '\r\n';
230 266
         } else {
231 267
             // make chrome happy... '3735928559' == 0xDEADBEEF
268
+            // FIXME: this currently appears as two streams, should be one
232 269
             bridgeSDP.media[channel] += 'a=ssrc:' + '3735928559' + ' ' + 'cname:mixed' + '\r\n';
233 270
             bridgeSDP.media[channel] += 'a=ssrc:' + '3735928559' + ' ' + 'label:mixedlabelv0' + '\r\n';
234 271
             bridgeSDP.media[channel] += 'a=ssrc:' + '3735928559' + ' ' + 'msid:mixedmslabelv0 mixedlabelv0' + '\r\n';
@@ -275,7 +312,7 @@ ColibriFocus.prototype.initiate = function (peer, isInitiator) {
275 312
     var participant = this.peers.indexOf(peer);
276 313
     console.log('tell', peer, participant);
277 314
     var sdp;
278
-    if (this.peerconnection != null && this.peerconnection.signalingState == 'stable') {
315
+    if (this.peerconnection !== null && this.peerconnection.signalingState == 'stable') {
279 316
         sdp = new SDP(this.peerconnection.remoteDescription.sdp);
280 317
         var localSDP = new SDP(this.peerconnection.localDescription.sdp);
281 318
         // throw away stuff we don't want

Loading…
Peruuta
Tallenna