Testing bandwidth

Since users can be operating under a wide variety of network conditions, it can be very helpful to perform a test to determine their bandwidth capacity.

Fortunately, Verto makes this easy with a built-in bandwidth testing method.

The test can be performed any time after the user has logged into the server.

var bandwidthTestData;
var testBandwidth = function() {
  // Translates to 256KB.
  var bytesToSendAndReceive = 1024 * 256;
  vertoHandle.rpcClient.speedTest(bytesToSendAndReceive, function(event, data) {
    // These values are in kilobits/sec.
    var upBand = Math.ceil(data.upKPS);
    var downBand = Math.ceil(data.downKPS);
    console.log('[BANDWIDTH TEST] Up: ' + upBand + ', Down: ' + downBand);
    // Store the results for later.
    bandwidthTestData = data;
  });
}

Data returned from a bandwidth test can be used to set specific values for the incomingBandwidth and outgoingBandwidth call parameters, which will be used to calculate the best strategy for sending and receiving video within these bandwidth limits. For example:

function makeCall() {
  currentCall = vertoHandle.newCall({
    outgoingBandwidth: bandwidthTestData.upKPS,
    incomingBandwidth: bandwidthTestData.downKPS,
    // Other params...
  });
};

You also may wish to use the tested upload speed to assist in calculating the video resolution to send to the server (as set in vertoHandle.videoParams).

Documentation for Freeswitch Verto: WebRTC софтфон

  • freeswitch/verto/013-testing-bandwidth.txt
  • Последние изменения: 2018/10/25