Reporting MOS Triggered by WebRTC Client

You can configure the device to test voice quality (MOS) with WebRTC clients.

The test is typically triggered when the WebRTC client accesses the web page on which the WebRTC click-to-call widget button is displayed. If the device reports low MOS, you can, for example, have the click-to-call button deactivated (grayed out) so that the client can't use it to call.

Implementation of this feature requires configuration on the WebRTC platform by the Web Developer using AudioCodes WebRTC web browser client SDK API, and configuration on the device:

AudioCodes WebRTC Web Browser Client SDK API: The Developer needs to configure the WebRTC platform so that when the client opens the web page, the web browser automatically sends the device a SIP INVITE message containing the following:
Proprietary SIP header, 'X-AC-Action: test-voice-quality'. The device identifies this feature by the receipt of this header.
'duration=' parameter in the Request-URI. This parameter specifies the duration of the test call (see Using SIP INVITE to Specify Test Call Duration).
Device: You need to configure the device to route the incoming SIP INVITE message (containing the previously mentioned header and parameter) to its embedded Test Call endpoint. Once the call is established, the device plays a pre-recorded tone (PRT) to the client during the entire duration of the call. When the duration expires, the device terminates the call and sends a SIP BYE message containing the proprietary SIP header, 'X-VoiceQuality'. This header indicates the measured MOS (value and color), for example, 'X-VoiceQuality: 42 green'. If, for whatever reason, there is no MOS measurement, the device sends 'X-VoiceQuality: N/A gray'.

The following procedure describes how to configure this feature. It uses example configuration entity names and assumes that you have already configured the device with the usual WebRTC settings, as described in Configuring WebRTC.

The device can calculate MOS based on RTCP or RTCP-XR packets. As WebRTC clients typically don't send RTCP-XR reports, the device measures MOS for these clients based on RTCP.

To configure the test and report MOS to WebRTC clients feature:
1. Open the SIP Interfaces table (see Configuring SIP Interfaces), and then configure a SIP Interface for the device itself ("outgoing" loopback leg and Test Call endpoint listening interface):
'Name': SBC-SIPInterface
'Network Interface': <local network interface>
'Application Type': SBC
'UDP Port': <local port>
2. Open the Proxy Sets table (see Configuring Proxy Sets), and then configure a Proxy Set for the device itself ("outgoing" loopback leg and Test Call endpoint):
'Name': SBC-Proxy
'SBC IPv4 SIP Interface': SBC-SIPInterface
'Proxy Address': <IP address of device: same port as "SBC-SIP-Interface">
3. Open the IP Groups table (see Configuring IP Groups), and then configure an IP Group for the device itself (i.e., "outgoing" loopback leg):
'Name': SBC-Outgoing
'Type': Server
'Proxy Set': SBC-Proxy
'Classify By Proxy Set': Disable
4. Open the IP-to-IP Routing table (see Configuring SBC IP-to-IP Routing Rules), and then configure a routing rule that routes WebRTC calls to the device itself:
'Source IP Group': <normal IP Group configured for WebRTC clients>
'Request Type': INVITE
'Source Username Pattern': <special prefix determined by WebRTC SDK developer, e.g., "webrtctestcall">
'Destination Type': IP Group
'Destination IP Group': SBC-Outgoing
5. Open the Test Call Rules table (see Configuring Test Call Endpoints), and then configure a Test Call endpoint for the WebRTC call:
'Endpoint URI': <same URI as in SIP INVITE received from WebRTC client>
'Route By': Dest Address
'Destination Address': <IP address of device>
'SIP Interface': SBC-SIPInterface
'Application Type': SBC
'Call Party': Called
'Play': PRT
'Play Tone Index': <index in installed PRT file>