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.
Setting up webhooks in qualityRTC
- Navigate to Settings section
- Click the qualityRTC tab
- 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.
{
"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."
},
...
]
}