Преглед изворни кода

Merge pull request #128 from jitsi/tracking

Tracking
j8
Philipp Hancke пре 11 година
родитељ
комит
e484e6e34f
3 измењених фајлова са 43 додато и 0 уклоњено
  1. 41
    0
      app.js
  2. 1
    0
      index.html
  3. 1
    0
      libs/colibri/colibri.focus.js

+ 41
- 0
app.js Прегледај датотеку

160
         ['audio', 'video'],
160
         ['audio', 'video'],
161
         function (avStream) {
161
         function (avStream) {
162
             callback(avStream);
162
             callback(avStream);
163
+            trackUsage('localMedia', {
164
+                audio: avStream.getAudioTracks().length,
165
+                video: avStream.getVideoTracks().length
166
+            });
163
         },
167
         },
164
         function (error) {
168
         function (error) {
165
             console.error('failed to obtain audio/video stream - stop', error);
169
             console.error('failed to obtain audio/video stream - stop', error);
170
+            trackUsage('localMediaError', {
171
+                media: error.media || 'video',
172
+                name : error.name
173
+            });
166
         },
174
         },
167
         config.resolution || '360');
175
         config.resolution || '360');
168
 }
176
 }
592
     }
600
     }
593
 });
601
 });
594
 
602
 
603
+$(document).bind('iceconnectionstatechange.jingle', function (event, sid, session) {
604
+    switch (session.peerconnection.iceConnectionState) {
605
+    case 'checking': 
606
+        session.timeChecking = (new Date()).getTime();
607
+        session.firstconnect = true;
608
+        break;
609
+    case 'completed': // on caller side
610
+    case 'connected':
611
+        if (session.firstconnect) {
612
+            session.firstconnect = false;
613
+            var metadata = {};
614
+            metadata.setupTime = (new Date()).getTime() - session.timeChecking;
615
+            session.peerconnection.getStats(function (res) {
616
+                res.result().forEach(function (report) {
617
+                    if (report.type == 'googCandidatePair' && report.stat('googActiveConnection') == 'true') {
618
+                        metadata.localCandidateType = report.stat('googLocalCandidateType');
619
+                        metadata.remoteCandidateType = report.stat('googRemoteCandidateType');
620
+
621
+                        // log pair as well so we can get nice pie charts 
622
+                        metadata.candidatePair = report.stat('googLocalCandidateType') + ';' + report.stat('googRemoteCandidateType');
623
+
624
+                        if (report.stat('googRemoteAddress').indexOf('[') === 0) {
625
+                            metadata.ipv6 = true;
626
+                        }
627
+                    }
628
+                });
629
+                trackUsage('iceConnected', metadata);
630
+            });
631
+        }
632
+        break;
633
+    }
634
+});
635
+
595
 $(document).bind('joined.muc', function (event, jid, info) {
636
 $(document).bind('joined.muc', function (event, jid, info) {
596
     updateRoomUrl(window.location.href);
637
     updateRoomUrl(window.location.href);
597
     document.getElementById('localNick').appendChild(
638
     document.getElementById('localNick').appendChild(

+ 1
- 0
index.html Прегледај датотеку

53
     <script src="bottom_toolbar.js?v=2"></script><!-- media stream -->
53
     <script src="bottom_toolbar.js?v=2"></script><!-- media stream -->
54
     <script src="roomname_generator.js?v=1"></script><!-- generator for random room names -->
54
     <script src="roomname_generator.js?v=1"></script><!-- generator for random room names -->
55
     <script src="keyboard_shortcut.js?v=1"></script>
55
     <script src="keyboard_shortcut.js?v=1"></script>
56
+    <script src="tracking.js?v=1"></script><!-- tracking -->
56
     <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
57
     <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
57
     <link rel="stylesheet" href="css/font.css?v=4"/>
58
     <link rel="stylesheet" href="css/font.css?v=4"/>
58
     <link rel="stylesheet" type="text/css" media="screen" href="css/main.css?v=23"/>
59
     <link rel="stylesheet" type="text/css" media="screen" href="css/main.css?v=23"/>

+ 1
- 0
libs/colibri/colibri.focus.js Прегледај датотеку

126
             window.setTimeout(function() { self.modifySources(); }, 1000);
126
             window.setTimeout(function() { self.modifySources(); }, 1000);
127
         }
127
         }
128
         */
128
         */
129
+        $(document).trigger('iceconnectionstatechange.jingle', [self.sid, self]);
129
     };
130
     };
130
     this.peerconnection.onsignalingstatechange = function (event) {
131
     this.peerconnection.onsignalingstatechange = function (event) {
131
         console.warn(self.peerconnection.signalingState);
132
         console.warn(self.peerconnection.signalingState);

Loading…
Откажи
Сачувај