Browse Source

bump colibri.js version

master
Philipp Hancke 11 years ago
parent
commit
91c67c8a91
1 changed files with 41 additions and 4 deletions
  1. 41
    4
      libs/colibri.js

+ 41
- 4
libs/colibri.js View File

211
         }
211
         }
212
     }
212
     }
213
     console.log('remote channels', this.channels);
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
     // establish our channel with the bridge
218
     // establish our channel with the bridge
216
     // static answer taken from chrome M31, should be replaced by a 
219
     // static answer taken from chrome M31, should be replaced by a 
217
     // dynamic one that is based on our offer FIXME
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
     // only do what's in the offer
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
     // get the mixed ssrc
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
         tmp = $(this.mychannel[channel]).find('>source[xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"]');
259
         tmp = $(this.mychannel[channel]).find('>source[xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"]');
224
         // FIXME: check rtp-level-relay-type
260
         // FIXME: check rtp-level-relay-type
225
         if (tmp.length) {
261
         if (tmp.length) {
229
             bridgeSDP.media[channel] += 'a=ssrc:' + tmp.attr('ssrc') + ' ' + 'mslabel:mixedmslabela0' + '\r\n';
265
             bridgeSDP.media[channel] += 'a=ssrc:' + tmp.attr('ssrc') + ' ' + 'mslabel:mixedmslabela0' + '\r\n';
230
         } else {
266
         } else {
231
             // make chrome happy... '3735928559' == 0xDEADBEEF
267
             // make chrome happy... '3735928559' == 0xDEADBEEF
268
+            // FIXME: this currently appears as two streams, should be one
232
             bridgeSDP.media[channel] += 'a=ssrc:' + '3735928559' + ' ' + 'cname:mixed' + '\r\n';
269
             bridgeSDP.media[channel] += 'a=ssrc:' + '3735928559' + ' ' + 'cname:mixed' + '\r\n';
233
             bridgeSDP.media[channel] += 'a=ssrc:' + '3735928559' + ' ' + 'label:mixedlabelv0' + '\r\n';
270
             bridgeSDP.media[channel] += 'a=ssrc:' + '3735928559' + ' ' + 'label:mixedlabelv0' + '\r\n';
234
             bridgeSDP.media[channel] += 'a=ssrc:' + '3735928559' + ' ' + 'msid:mixedmslabelv0 mixedlabelv0' + '\r\n';
271
             bridgeSDP.media[channel] += 'a=ssrc:' + '3735928559' + ' ' + 'msid:mixedmslabelv0 mixedlabelv0' + '\r\n';
275
     var participant = this.peers.indexOf(peer);
312
     var participant = this.peers.indexOf(peer);
276
     console.log('tell', peer, participant);
313
     console.log('tell', peer, participant);
277
     var sdp;
314
     var sdp;
278
-    if (this.peerconnection != null && this.peerconnection.signalingState == 'stable') {
315
+    if (this.peerconnection !== null && this.peerconnection.signalingState == 'stable') {
279
         sdp = new SDP(this.peerconnection.remoteDescription.sdp);
316
         sdp = new SDP(this.peerconnection.remoteDescription.sdp);
280
         var localSDP = new SDP(this.peerconnection.localDescription.sdp);
317
         var localSDP = new SDP(this.peerconnection.localDescription.sdp);
281
         // throw away stuff we don't want
318
         // throw away stuff we don't want

Loading…
Cancel
Save