Bladeren bron

signal direction in issue #41

j8
Philipp Hancke 11 jaren geleden
bovenliggende
commit
cf1dbfbe66
2 gewijzigde bestanden met toevoegingen van 12 en 5 verwijderingen
  1. 6
    2
      app.js
  2. 6
    3
      muc.js

+ 6
- 2
app.js Bestand weergeven

360
     // put our ssrcs into presence so other clients can identify our stream
360
     // put our ssrcs into presence so other clients can identify our stream
361
     var sess = connection.jingle.sessions[sid];
361
     var sess = connection.jingle.sessions[sid];
362
     var newssrcs = {};
362
     var newssrcs = {};
363
+    var directions = {};
363
     var localSDP = new SDP(sess.peerconnection.localDescription.sdp);
364
     var localSDP = new SDP(sess.peerconnection.localDescription.sdp);
364
     localSDP.media.forEach(function (media) {
365
     localSDP.media.forEach(function (media) {
365
         var type = SDPUtil.parse_mline(media.split('\r\n')[0]).media;
366
         var type = SDPUtil.parse_mline(media.split('\r\n')[0]).media;
367
+
366
         if (SDPUtil.find_line(media, 'a=ssrc:')) {
368
         if (SDPUtil.find_line(media, 'a=ssrc:')) {
367
-            var ssrc = SDPUtil.find_line(media, 'a=ssrc:').substring(7).split(' ')[0];
368
             // assumes a single local ssrc
369
             // assumes a single local ssrc
370
+            var ssrc = SDPUtil.find_line(media, 'a=ssrc:').substring(7).split(' ')[0];
369
             newssrcs[type] = ssrc;
371
             newssrcs[type] = ssrc;
372
+
373
+            directions[type] = (SDPUtil.find_line(media, 'a=sendrecv') || SDPUtil.find_line(media, 'a=recvonly') || SDPUtil.find_line('a=sendonly') || SDPUtil.find_line('a=inactive') || 'a=sendrecv').substr(2);
370
         }
374
         }
371
     });
375
     });
372
     console.log('new ssrcs', newssrcs);
376
     console.log('new ssrcs', newssrcs);
374
     var i = 0;
378
     var i = 0;
375
     Object.keys(newssrcs).forEach(function (mtype) {
379
     Object.keys(newssrcs).forEach(function (mtype) {
376
         i++;
380
         i++;
377
-        connection.emuc.addMediaToPresence(i, mtype, newssrcs[mtype]);
381
+        connection.emuc.addMediaToPresence(i, mtype, newssrcs[mtype], directions[mtype]);
378
     });
382
     });
379
     if (i > 0) {
383
     if (i > 0) {
380
         connection.emuc.sendPresence();
384
         connection.emuc.sendPresence();

+ 6
- 3
muc.js Bestand weergeven

210
                 }
210
                 }
211
             });
211
             });
212
             if (sourceNumber > 0)
212
             if (sourceNumber > 0)
213
-                for (var i = 1; i <= sourceNumber/2; i ++) {
213
+                for (var i = 1; i <= sourceNumber/3; i ++) {
214
                     pres.c('source',
214
                     pres.c('source',
215
                            {type: this.presMap['source' + i + '_type'],
215
                            {type: this.presMap['source' + i + '_type'],
216
-                           ssrc: this.presMap['source' + i + '_ssrc']}).up();
216
+                           ssrc: this.presMap['source' + i + '_ssrc'],
217
+                           direction: this.presMap['source'+ i + '_direction'] || 'sendrecv' }
218
+                    ).up();
217
                 }
219
                 }
218
         }
220
         }
219
         pres.up();
221
         pres.up();
222
     addDisplayNameToPresence: function (displayName) {
224
     addDisplayNameToPresence: function (displayName) {
223
         this.presMap['displayName'] = displayName;
225
         this.presMap['displayName'] = displayName;
224
     },
226
     },
225
-    addMediaToPresence: function (sourceNumber, mtype, ssrcs) {
227
+    addMediaToPresence: function (sourceNumber, mtype, ssrcs, direction) {
226
         if (!this.presMap['medians'])
228
         if (!this.presMap['medians'])
227
             this.presMap['medians'] = 'http://estos.de/ns/mjs';
229
             this.presMap['medians'] = 'http://estos.de/ns/mjs';
228
 
230
 
229
         this.presMap['source' + sourceNumber + '_type'] = mtype;
231
         this.presMap['source' + sourceNumber + '_type'] = mtype;
230
         this.presMap['source' + sourceNumber + '_ssrc'] = ssrcs;
232
         this.presMap['source' + sourceNumber + '_ssrc'] = ssrcs;
233
+        this.presMap['source' + sourceNumber + '_direction'] = direction;
231
     },
234
     },
232
     addPreziToPresence: function (url, currentSlide) {
235
     addPreziToPresence: function (url, currentSlide) {
233
         this.presMap['prezins'] = 'http://jitsi.org/jitmeet/prezi';
236
         this.presMap['prezins'] = 'http://jitsi.org/jitmeet/prezi';

Laden…
Annuleren
Opslaan