Video and Audio Calls

Description
Configuration
Setup
Chat Setup
HTTPS Enabled Web Server
Availability for calls
Online User Dashboard Widget
Usage
Chat Requirement
Making the Video Calls
Audio Calls
Call Invitations
Other ways to start Video and Audio Calls
Connection

Description

The video and audio calls feature of the OTRS Business Solution™ provides real-time calls between two users right from the comfort of the OTRS frontend. The calls will be provided over a direct peer-to-peer connection established between two users, where possible. This feature depends heavily on the chat, which must be active for video and audio calls to be possible.

Note

Video and audio calls are based on a quite young technology called WebRTC. The implementation of WebRTC APIs in modern browsers is an ongoing effort. Currently, OTRS video and audio calls are supported only in the latest versions of Mozilla Firefox and Google Chrome (for Chrome a HTTPS Enabled Web Server is required).

Configuration

The following system configuration options are relevant for this feature.

ChatEngine::Active

Controls whether or not the video and audio calling feature is enabled. Please note that the same switch will control the chat feature too.

ChatEngine::PermissionGroup::VideoChatAgents

Defines the group for the video and audio calling features. Only agents with permission in this group will be able to make video and audio calls.

Setup

In order to be able to start video and audio calls, you need to setup certain things in your OTRS instance.

Chat Setup

You need a working chat setup in your system. Make sure to carefully read the Setup section of the chat feature.

HTTPS Enabled Web Server

Currently, Google Chrome will allow access to a user's media streams only to web applications served over the HTTPS protocol (SSL) with valid signed certificates. Make sure you have set the HttpType config option to https, too. Setting up a web server to be accessible via HTTPS is outside of the scope of this manual.

Availability for calls

To be available for video and audio calls, you have to make sure you are available for chats too. Please refer to the instructions in Agents: Set up Availability for more information.

Online User Dashboard Widget

For a convenient way to start the calls, please activate the Online widget on the Dashboard.

  1. Go to the Dashboard and expand the Settings widget.

  2. Check the Online widget and make sure to click Save settings.

    Figure 3.17. Setting up the Online widget on Dashboard

    Setting up the Online widget on Dashboard


Usage

Chat Requirement

Video and audio calls are tied to existing chats. As an agent, you will be able to initiate calls inside and outside of chats. Customer users will be able to initiate calls only from an active chat.

If a chat does not yet exist, it will be created when the call is initiated. In these "ad-hoc" chats, the chat parties are joined automatically. When a call is terminated, these chats will remain active until they are closed manually.

Making the Video Calls

To make a call inside of an active chat, simply click on the small video camera button in the chat header.

Figure 3.18. Making a call inside the chat

Making a call inside the chat


A popup window will open, and depending on your browser, you will be asked to share your video and audio streams. On systems with several cameras and microphones, you will be able to choose exactly the one you would like to use from the drop down list.

Figure 3.19. Media Permission Request

Media Permission Request


Once you confirm your choice, an invitation will be sent to the other party asking them to join. You will be notified of the progress via a message in the center of the screen.

Figure 3.20. Waiting for the other party

Waiting for the other party


Please just wait a little while until the connection is established. Then you will be able to see and hear the other party.

Figure 3.21. Established Connection

Established Connection


To control your streams, simply toggle the mute buttons on the left side.

Figure 3.22. Mute Buttons

Mute Buttons


To leave a call, simply click on the big red Close button. The other party will be notified.

Audio Calls

The only difference between video and audio calls is that audio calls will mute your video stream initially (which you will be able to turn on later in the call). The video stream will be muted for both parties by default, but they will be able to control it.

If the other party has muted their video stream, instead of the video you will see a large microphone icon in the center, along with their name. The icon will reflect the state of their audio stream, and if they mute it too, it will be crossed.

Figure 3.23. Audio Only

Audio Only


Call Invitations

If you have made yourself available for chats (either internal or external), video and audio call invitations are received automatically by one of the active tabs in the same user session. When you receive an invitation, a modal dialog will be displayed on your screen, allowing you to accept or decline the invitation.

Figure 3.24. Call Invitation

Call Invitation


Your browser may also present you a notification with sound. This heavily depends on the used browser and operating system settings, and if permission has been granted to OTRS to trigger such notifications. A permission request will be displayed the first time you change your chat availability.

Figure 3.25. Notification Permission Request

Notification Permission Request


Other ways to start Video and Audio Calls

  • Agent to Agent

    To start a video or audio call with another agent, with whom you do not have an active chat, you can use the Online widget on the dashboard.

    Figure 3.26. Online widget on the Dashboard

    Online widget on the Dashboard


    Agents who are able to receive calls will have a video camera and microphone icon next to their name which you can click on. Once clicked, a popup window will open, asking you to share your media streams. The connection will be established afterwards.

    Calling other agents is possible also via Owner and Responsible fields in ticket zoom. In this case, check will also be done to make sure the other agent is available, before allowing the call to be initiated.

    Figure 3.27. Calling other agents from Ticket Zoom

    Calling other agents from Ticket Zoom


  • Agent to Customer

    To start a video or audio call with a customer, with whom you do not have an active chat, you can use the customer user widget in the Customer Information Center when viewing a certain customer. Available customers will have call icons next to their name which you can click on. Once clicked, a popup window will open asking you to share your media streams. The connection will be established afterwards.

    Figure 3.28. Making a call from Customer Information Center

    Making a call from Customer Information Center


    Another possibility is to make a call directly from the ticket zoom. If the customer user who is assigned to this ticket is currently online, you'll be able to use call buttons next to their username in customer information box in right sidebar.

    Figure 3.29. Making a call from Ticket Zoom

    Making a call from Ticket Zoom


  • Customer to Agent

    Customer users will be able to initiate calls from an active chat only. To do this, customers can use the video and audio call links in the header of an active chat to initiate calls.

    Figure 3.30. Starting a Video Call from Customer interface

    Starting a Video Call from Customer interface


    When customers click on a link, they will be asked for permission to their media streams, similar to agents. An invitation will be sent and the connection will be established if the agent on the other side accepts the request.

    The difference between video and audio calls in the customer interface compared to the agent interface is minimal. Customers will see their calls inside the same window as the chat. Only one additional button is provided: Fullscreen. It will resize the video to the extent of the browser window. Other than that, everything as in the agent interface applies.

  • Public to Agent

    Users of the public interface are not able to make audio and video calls.

Connection

In the best case scenario, video and audio calls will be streamed over a direct peer-to-peer connection between users' browsers. The requirement is that the user's network allows connection over a high port that WebRTC uses, and can advertise this to the other party. To this end, there are several mechanisms in place to aid in connecting.

  • STUN (Session Traversal Utilities for NAT)

    STUN is a standardized set of methods and a network protocol to allow an end host to discover its public IP address if it is located behind a NAT. OTRS provides a cloud service with STUN to all users of the OTRS Business Solution™, and this data is shared with the other party to allow the connection to be established.

    In case of a connection via STUN, only the connection data is stored on the OTRS servers, the connection itself is still directly between two users.

  • TURN (Traversal Using Relays around NAT) over UDP

    TURN is a protocol that assists in traversal of network address translators or firewalls for multimedia applications. OTRS also provides TURN cloud service which can help clients on networks masqueraded by symmetric NAT devices and it supports the connection of a user behind a NAT.

    In case of a connection established via TURN server, media streams will be routed through the server (like a proxy). In this situation, all packets are securely transmitted to the other side. The access to the TURN server is encrypted and secured by often changed credentials, which are provided automatically.

  • TURN over TCP

    In case all UDP traffic is blocked between two users, the TURN server over TCP is a last resort for a successful connection. While TCP is not an ideal protocol for transmitting media packets, it's a last resort in an effort to connect two users and share their streams.

    Same as with TURN over UDP, media streams will be routed through the server and sent to the other side. The infrastructure for all STUN and TURN services is highly scalable based on demand and can even be provided for different geographic locations, in order to provide the best possible throughput.