WebRTC Environment

One can use WebRTC with XiVO PBX and XiVO CC in the following environment:

  • LAN network (currently no support for WAN environment),
  • with the:
    • UC Assistant or CC Agent with Chrome browser version 57 or later
    • or Desktop Application

Requirements

The requirements are:

  • to have a microphone and headphones for your PC,
  • to configure your XiVO PBX:
  • have a SSL/TLS certificate signed by a certification authority installed on the nginx of XiVO CC (see: Signed SSL/TLS certificate for WebRTC),
  • and use https:
    • UC Assistant: you must connect to the UC Assistant via https protocol,
    • Desktop Application: you must check Protocol -> Secure in the application parameters.

Note

Currently you can not have a user configured for both WebRTC and a phone set at the same time.

WebRTC integration

The UC Assistant, CC Agent and Switchboard can be used by users with WebRTC configuration, without physical phone.

For configuration and requirements, see WebRTC Environment.

*55 (echo test)

To test your microphone and speaker, you may call the echo test application. After a welcome message, the application will echo everything what you speak.

  1. Dial the *55 number.
  2. You should hear the “Echo” announcement.
  3. After the announcement, you will hear back everything you say.
    If you hear what you are saying it means that your microphone and speakers are working.
  4. Press # or hangup to exit the echo test application.

Plantronics Devices Actions (Windows only)

Note

New feature of Freya. Works only with devices in the supported list on Windows 10.

This new feature allows plantronics devices among the supported list to answer or hangup calls with their associated button. Besides the plantronics device, it requires the plantronics hub to be installed and running on the user Windows 10 machine.

The plantronics service is loaded when logging in. To use it correctly be sure to have your device connected and to have the plantronics hub (referenced as plantronics software) running while logging in.

Depending of the case, pushing the button should start the followings actions :

  • if your webrtc is ringing, you will answer
  • if your webrtc is dialing, you will hangup
  • if you are in a call or a conference, you will hangup
  • if the only call or conference you have is on hold, you will retrieve it

Each of those actions can still be completed as usual, but the service offers you a new way to do them.

Ringing device and ringing tone

When receiving a call, your computer will play a ringing sound. However, you can choose to play this sound on a separate audio device than the default selected by your operating system. For example, on a configuration with a headset, this device may be your default device but you can override this selection to play the ringing sound on your computer instead.

You can also choose to change your ringtone sound, both those options are available in the respective menu of the UCAssistant, CCAgent, and Switchboard, on the top right corner.

../../_images/ringing-device-selection.png

This feature is only available when using a WebRTC line.

Mute your microphone

Being a webrtc user allows you to mute your microphone while being in a call with somebody. Clicking this button again will unmute the microphone. Clicking directly on the volume meter will have the same effect as clicking on the mute button. The little microphone icon in the volume meter will change according to your mute state.

On UC Assistant :

../../_images/ucassistant-call-mute.png

On CC Agent and Switchboard :

../../_images/ccagent-call-mute.png

Volume indication (UC Assistant)

../../_images/volume_meter.png

Two progress bars show the volume level of the speaker and the microphone. It certifies that the audio flow has been sent.

Experimental video call feature (UC Assistant)

Note

This experimental feature needs to be enabled in the configuration (see Experimental video call feature).

When logged in as a user with a WebRTC line you can initiate and receive an audio/video call. The video call is possible only from your favorite contacts or the directory search result through the video camera icon. When the called user doesn’t support video calls, call is established as audio only.

In the current implementation you can put the call on hold, go fullscreen, but for the moment you can have only one video call at a time and you can’t transfer the video call. Conference is not supported yet.

Limitations

Known limitation are :

  • Voice may not be able to hear if your computer have more than 4 network interfaces up at the same time (this can happen if you use virtualization)

Note

To check if you have more than 4 network interfaces you can type following command:
ls /sys/class/net
Then just use:
ifdown <ifname>
This will switch off network interface not required to make your call.

Additional chrome WebRTC-specific options

There are various additional settings used in the code. They are used to improve audio quality by enabling or disabling chrome WebRTC-specific flags.

Note

These options are not customisable. They are set in the code.

Chrome currently supports these audio quality options :

  • Automatic gain control : Adjust voice sound level to make it linear, lowering sound level when the user speaks too loudly.
  • Echo cancellation : Detect and delete echo coming from the playback of the user’s own voice.
  • Noise suppression : Cancel background noises coming from the user’s environment.
  • Highpass filter : Filters out low frequencies noises (like microphone background buzzing permanent sound).
  • Audio mirroring : Reflect sound coming from different directions into a focus point (similar to a parabola).
  • Typing noise detection : Detect and delete keypress sounds.

The current production code is set as follows :

  • googAutoGainControl is set to false
  • googAutoGainControl2 is set to false
  • googEchoCancellation is set to true
  • googEchoCancellation2 is set to true
  • googNoiseSuppression is set to false
  • googNoiseSuppression2 is set to false
  • googHighpassFilter is set to false
  • googAudioMirroring is set to false
  • googTypingNoiseDetection is set to true

Note

This flag used to be valid but is now deprecated :
- Ducking : Reduce an audio signal by the presence of another signal (multiple people talking at the same time).