Skip to main content

Webhook support in qualityRTC

When a user runs a network test in qualityRTC, that test gets collected by the testRTC backend. At that point in time, testRTC can also send the results via webhook to wherever you choose.

The webhook includes a JSON structure with all the metrics collected during the test. You can use this data to conduct your own analysis and to collect it in your company’s BI tool.

Note: Webhooks are offered as a premium feature of qualityRTC

Setting up webhooks in qualityRTC

  1. Navigate to Settings section
  2. Click the qualityRTC tab
  3. Insert your chosen webhook format


Format

The webhook’s data structure is JSON. It varies between one client to another based on the customizations done in your account and the type of network tests conducted.

The webhook can be invoked in several formats.

Future releases may expose more fields than shared in the example below.
{
  "testPageUrl": "http://networktest.your-website-here.com",
  "fingerprint": {
    "platform": "MacIntel",
    "effectiveConnectionType": "4g",
    "fingerprint": "<machine-fingerprint>",
    "cpuClass": "not available",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36",
    "timezone": {
      "title": "Europe/Kiev",
      "hours": 3
    }
  },
  "checkBrowser": {
    "browser": "chrome",
    "version": 84,
    "canRun": true
  },
  "networkInformation": {
    "effectiveType": "4g",
    "downlink": 10,
    "rtt": 50,
    "proxy": false
  },
  "throughput": {
    "averageBandwidth": 6162.7,
    "concurrentConnections": 123,
    "highestBandwidth": 8945.7,
    "lowestBandwidth": 1089.5,
    "maxThroughouts": 178,
    "minThroughouts": 21
  },
  "testCall": {
    "codec": "Opus",
    "avgJit": 0,
    "avgPl": 0,
    "avgRtt": 53.8,
    "mark": 4.4,
    "maxJit": 0,
    "maxPl": 0,
    "maxRtt": 54,
    "minJit": 0,
    "minPl": 0,
    "minRtt": 53,
    "remotePort": 11236,
    "remoteAddress": "3.122.181.196"
  },
  "turnTest": {
    "tcpConnectionTime": 615,
    "tcpGatheringTime": 320,
    "udpConnectionTime": 577,
    "udpGatheringTime": 319,
    "tlsConnectionTime": 660,
    "tlsGatheringTime": 311,
    "behindProxy": false
  },
  "videoBandwidthTest": {
    "bandwidthEstimate": 3702.1484375,
    "bitrate": null,
    "roundTripTime": 88.66666666666667,
    "fractionLoss": 0,
    "jitter": 0.011966666666666667
  },
  "videoQualityTest": {
    "bitrate": 1012,
    "fractionLoss": 0
  },
  "speedTest": {
    "best": {
      "download": 63.3,
      "jitter": 0,
      "upload": 26.59,
      "region": "EU (Frankfurt)"
    }
  },
  "pingTest": {
    "best": {
      "ping": 47,
      "region": "EU (Frankfurt)"
    },
    "all": [
      {
        "ping": 46,
        "region": "EU (Frankfurt)"
      },
      {
        "ping": 139,
        "region": "US East (N. Virginia)"
      },
      {
        "ping": 216,
        "region": "US West (Oregon)"
      }
    ]
  },
  "location": {
    "ip": "188.191.234.7",
    "city": "Chernivtsi",
    "country": "Ukraine",
    "organization": "Buknet LLC",
    "coordinates": {
      "latitude": 48.2932,
      "longitude": 25.9448
    }
  },
  "dnsLookup": {
    "totalConnections": 5,
    "successfulConnections": 5,
    "shortestConnectionTime": 248,
    "highestConnectionTime": 1705,
    "averageConnectionTime": 856
  },
  "videoPlayback": {
    "blocked": false
  },
  "getUserMedia": {
    "devices": [
      {
        "audioinput": "Default - drevm (Bluetooth) [default]"
      },
      {
        "audioinput": "drevm (Bluetooth) [92afc40f896970dfa5e16af34ac0490435d64961ab44c4dc75cd7ccf96331f84]"
      },
      ...
    ],
    "deviceName": {
      "audio": "Default - drevm (Bluetooth)"
    },
    "microphone": {
      "inputLevel": 1.4992127832691111,
      "inputVolume": -81.58799658881293,
      "inputNoise": "Background Noise"
    }
  },
  "dnsSetup": {},
  "videoP2P": {
    "bitrate": 1489.7,
    "bitrateOut": 2588.8,
    "fractionLoss": 0,
    "fractionLossOut": 0,
    "jitter": 0,
    "roundTripTime": 117.9
  },
  "testRunningSequence": {
    "initial": [
      "GetUserMedia",
      "CallQuality"
    ],
    "result": [
      {
        "index": 1,
        "name": "GetUserMedia",
        "timeActual": "2.19s",
        "timeEstimated": "0.3s"
      },
      {
        "index": 2,
        "name": "CallQuality",
        "timeActual": "27.33s",
        "timeEstimated": "50s"
      }
    ]
  },
  "score": {
    "finalScore": 0.37,
    "scaledScore": 1.84,
    "status": "poor"
  },
  "insights": [
    {
      "id": 30002,
      "type": "Fair",
      "message": "You are connected via WiFi. This may affect quality. We suggest you either shift to ethernet based connection or make sure you are close to the access point and use a 5 Ghz WiFi connection."
    },
    ...
  ]
}

Was this article helpful?

0 out of 0 found this helpful