]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-8293 [verto_communicator] Implemented speed test in verto communicator.
authorJaon EarlWolf <jamonsterr@gmail.com>
Fri, 30 Oct 2015 21:51:26 +0000 (18:51 -0300)
committerAnthony Minessale <anthm@freeswitch.org>
Fri, 6 Nov 2015 20:05:51 +0000 (14:05 -0600)
html5/verto/verto_communicator/src/partials/modal_settings.html
html5/verto/verto_communicator/src/storageService/services/splash_screen.js
html5/verto/verto_communicator/src/vertoControllers/controllers/MainController.js
html5/verto/verto_communicator/src/vertoControllers/controllers/ModalSettingsController.js
html5/verto/verto_communicator/src/vertoService/services/vertoService.js

index b6bc9cec053496ca4bcea40d70202143ceac4b82..42c91b4cf915fdc51853320c016be4cfbd5698a0 100644 (file)
@@ -88,6 +88,8 @@
     <select name="video_quality" id="video-quality" class="form-control"
             ng-model="mydata.vidQual"
             ng-options="item.id as item.label for item in verto.videoQuality"></select>
+
+    <a class="btn btn-primary" href="" ng-click="testSpeed()">Check Speed</a>
   </div>
 
   <input type="hidden" name="use_dedenc" ng-value="mydata.useDedenc" ng-model="mydata.useDedenc">
index da7a156f6353526494b101ae1bcc765048596f66..d9be180147ef28eecc223dc910492a3516e9050c 100644 (file)
@@ -4,7 +4,7 @@
     .module('storageService')
     .service('splashscreen', ['$rootScope', '$q', 'storage', 'config', 'verto',
       function($rootScope, $q, storage, config, verto) {
-        
+
         var checkBrowser = function() {
           return $q(function(resolve, reject) {
             var activity = 'browser-upgrade';
             if (!navigator.getUserMedia) {
               result['status'] = 'error';
               result['message'] = 'Error: browser doesn\'t support WebRTC.';
-              reject(result); 
+              reject(result);
             }
 
-            resolve(result); 
+            resolve(result);
 
           });
         };
@@ -48,7 +48,7 @@
                 reject(result);
               }
               verto.data.mediaPerm = true;
-              resolve(result); 
+              resolve(result);
             });
           });
         };
@@ -62,7 +62,7 @@
               'activity': activity,
               'message': 'Refresh Media Devices.'
             };
-            
+
             verto.refreshDevices(function(status) {
               verto.refreshDevicesCallback(function() {
                 resolve(result);
           });
         };
 
+        var checkConnectionSpeed = function() {
+          return $q(function(resolve, reject) {
+            var activity = 'check-connection-speed';
+            var result = {
+              'status': 'success',
+              'soft': true,
+              'activity': activity,
+              'message': 'Check Connection Speed.'
+            };
+
+            if(!verto.instance) {
+              resolve(result);
+              return;
+            }
+
+            verto.testSpeed(cb);
+
+            function cb(data) {
+
+              resolve(result);
+            }
+          });
+        };
+
         var provisionConfig = function() {
           return $q(function(resolve, reject) {
             var activity = 'provision-config';
               });
 
               result['promise'] = configPromise;
-              
+
               resolve(result);
           });
         };
                   verto.data.connecting = false;
                   resolve(result);
                 });
-              }; 
+              };
             };
 
             if(storage.data.ui_connected && storage.data.ws_connected) {
-              checkUserStored(); 
+              checkUserStored();
             } else {
-              resolve(result); 
+              resolve(result);
             };
           });
         };
           checkMediaPerm,
           refreshMediaDevices,
           provisionConfig,
-          checkLogin
+          checkLogin,
+          checkConnectionSpeed
         ];
 
         var progress_message = [
           'Checking media permissions',
           'Refresh Media Devices.',
           'Provisioning configuration.',
-          'Checking login.'
+          'Checking login.',
+          'Check Connection Speed.'
         ];
-        
+
         var getProgressMessage = function(current_progress) {
           if(progress_message[current_progress] != undefined) {
-            return progress_message[current_progress]; 
+            return progress_message[current_progress];
           } else {
             return 'Please wait...';
           }
 
         var calculateProgress = function(index) {
           var _progress;
-          
+
           _progress = index + 1;
           progress_percentage = (_progress / progress.length) * 100;
           return progress_percentage;
           var fn, fn_return, status, interrupt, activity, soft, message, promise;
           interrupt = false;
           current_progress++;
-          
+
           if(current_progress >= progress.length) {
             $rootScope.$emit('progress.complete', current_progress);
             return;
           }
-          
+
           fn = progress[current_progress];
           fn_return = fn();
 
               emitNextProgress(fn_return);
             }
           );
-          
+
         };
 
         return {
         };
 
       }]);
index 7bd5cb68190bfd977459b77d6b11341ad5fd8f17..4a00c021c0d246bde8c2b1d9fdd35637612e7842 100644 (file)
             storage.data.email = verto.data.email;
             storage.data.login = verto.data.login;
             storage.data.password = verto.data.password;
+            verto.testSpeed();
+
             if (redirect && storage.data.preview) {
               $location.path('/preview');
-            }
-            else if (redirect) {
+            } else if (redirect) {
               $location.path('/dialpad');
             }
           }
index 2b70948bbe6d69b14c4c8163a578f67ee93bb950..eb2cdc8c8f36e0aac19c45277e476234a96149ac 100644 (file)
           return verto.refreshDevices();
         };
 
+        $scope.rangeBandwidth = function(bandwidth) {
+          for(var i = 0; i < verto.videoQuality.length; i++) {
+
+          }
+        };
+
+        $scope.testSpeed = function() {
+          return verto.testSpeed(cb);
+
+          function cb(data) {
+
+            $scope.$apply();
+          }
+        };
+
         $scope.resetSettings = function() {
          if (confirm('Factory Reset Settings?')) {
             storage.factoryReset();
index 6f0366740bf06704ed47a58a9e17f0f2e9df8da1..62678396e2ca935124874c18d53cd6d4efd1c29f 100644 (file)
@@ -797,6 +797,30 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora
         }
       },
 
+      /**
+       * Do speed test.
+       *
+       * @param callback
+       */
+      testSpeed: function(cb) {
+
+        data.instance.rpcClient.speedTest(1024 * 256, function(e, data) {
+          var outBand = Math.ceil(data.upKPS * .75),
+              inBand = Math.ceil(data.downKPS * .75);
+
+          storage.data.vidQual = 'hd';
+
+          if (outBand < 1024) {
+            storage.data.vidQual = 'vga';
+          }
+          if (outBand < 512) {
+            storage.data.vidQual = 'qvga';
+          }
+
+          if(cb) cb(data);
+          // console.info("Up: " + data.upKPS, "Down: ", data.downKPS);
+        });
+      },
       /**
        * Mute the microphone for the current call.
        *