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.
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).
The following system configuration options are relevant for this feature.
Controls whether or not the video and audio calling feature is enabled. Please note that the same switch will control the chat feature too.
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.
In order to be able to start video and audio calls, you need to setup certain things in your OTRS instance.
You need a working chat setup in your system. Make sure to carefully read the Setup section of the chat feature.
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.
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.
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.
To make a call inside of an active chat, simply click on the small video camera button in the chat header.
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.
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.
Please just wait a little while until the connection is established. Then you will be able to see and hear the other party.
To control your streams, simply toggle the mute buttons on the left side.
To leave a call, simply click on the big red Close button. The other party will be notified.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.