There are a few protocol considerations that you should be aware of before you develop your custom solution. In order to support persistent connections, the metric report consumer must be a server that is compliant with HTTP 1.1.

Note:
To improve the security of your data and the privacy of your users, we recommend that HTTPS with mutual certificate authorization be configured.

This sample call flow illustrates how the metric report consumer accepts an A/V metric report for a single session. You will be responsible for the protocol implementation between the Monitoring Agent and the metrics report consumer.

Figure 1. Metric Report Consumer Acceptance of an A/V Metric Report

Protocol Requirements

The following protocol requirements should be taken into consideration when you develop your custom solution:

  • The metric report consumer must be able to handle multiple incoming HTTP connections and to simultaneously process requests that come in on these different connections. This will enable a single metric report consumer to communicate with multiple Monitoring Agents.

  • Multiple A/V metrics reports may exist in a single POST body, up to the maximum configured value for the WMI setting MaxPostBatchSize.

  • The A/V metrics reports will be sent in XML, UTF-8 encoded.

  • The XML payload will have a root element of VQReportEventList. The IDattribute of VQReportEventListwill be set to a unique value for the set of A/V metrics reports that it contains. If a transient network error or server error occurs or if the Monitoring Agent does not receive an HTTP response from your application, then the agent will repost the entire VQReportEventListdocument with the original ID. You can disable reposting when a transient network error or server error occurs by setting ErrorRetryEnabledto falsein WMI.

  • The QoE Agent performs only a basic level of validation against the A/V metrics report before it posts the report to the metric report consumer. None of the QoE Monitoring Server report aggregation logic is applied to the reports prior to the post.

  • The QoE Agent will not throttle requests; the metric report consumer is expected to keep up with the normal volume of A/V metric reports.

  • In order to handle A/V metric report bursts, such as might occur at the end of a large conference, the QoE Monitoring Server buffers A/V metrics reports, as needed, on behalf of the consumer. The buffer size itself is a configurable number of kilobytes. After the report bursts exceed the buffer size, the QoE Monitoring Server will drop the oldest reports. If the QoE Monitoring Server service or the computer is restarted, the contents of the buffer will not be retained.

  • Upon receiving metrics reports, the report consumer should return the HTTP response immediately. Performing any additional synchronous processing on the reports before returning will cause a drop in the report throughput rate to the report consumer.

HTTP Status Codes

Table 1 defines the status codes that are used in the HTTP protocol between the QoE Monitoring Server and the metric report consumer.

Note:
Only HTTP 2xx and 400 status codes are expected from the metric report consumer. All other status codes will be treated as a transient network error or server error and will cause the QoE Monitoring Server to retry the POST request.

Table 1. Supported HTTP status codes

HTTP Status Code Metric Consumer Usage QoE Monitoring Server Action

2xx

Metric consumer is expected to promptly return 202 Accepted to valid metric CDR post requests.

The post transaction will be marked as complete.

400 Bad Request

Metric consumer should return 400 Bad Request whenever basic validation of the A/V metric report post request fails.

The post transaction will be abandoned and not retried.

All other status codes

No other status codes are expected from the metric consumer.

The QoE Monitoring Server will treat all other status codes as transient errors and will retry the post request.