Genesys Video Gateway consists of the following high-level components:
- Collaboration Application Server (AS)
- Collaboration Notification Server (NS)
- Flash Server (FS) - not released as a separate Component/IP
- Collaboration Multipoint Control Unit (MCU)
- MCU Helper processes
- Collaboration TURN Server (TURN) - required for ICE approach to NAT traversal (TURN Server acts as both STUN and TURN server)
- Database Server
Depending on your deployment needs, you can deploy AS or MCU on their own servers, or they can share the same server. You must, however, deploy NS as a common component in each server.
Typically, only one instance of the AS per deployment will be in High Availability mode. However, there can be multiple instances of the MCUs that operate as a farm rather than a cluster. Here farm indicates that that they are independent of one another and can be taken in and out of service in a pluggable, hot-swappable way.
You should deploy TURN in its own server. If you deploy TURN server in the same server as the AS, configuration changes are needed to avoid any port and monitoring conflict. You don't need to configure a TURN server cluster for load-balancing, but rather you can deploy a farm of TURN servers for scaling purpose. Both the browser client and the platform can interact with multiple STUN/TURN servers (based on configuration). However, it’s possible to setup a load-balancing configuration for the TURN server(s) as well (not described in this guide).
Collaboration Application Server
Written in pure Java and running in any J2EE container (Jetty by default), the AS takes care of authentication, serving web pages, business logic, and managing the distribution of clients across the available MCUs, which may or may not be on the same physical server.
Collaboration Notification Server
Written in pure Java and running in any J2EE container, the NS is the interface for all HTTP(S) clients interacting with the server. It will proxy signaling messages to the MCU as well as maintain connections and send notifications to the connected clients using either web-socket or Comet. It publishes the present state of connected clients to its parent Collaboration Application Server.
Flash Server can exchange voice and video with Adobe Flash clients over the various flash protocols (that is, RTMP) and including the RTMFP protocol that is a UDP low latency and secure protocol.
This is the Conferencing and Trans-coding engine. Written in C++ with a pluggable architecture for different codecs and protocols, MCU brings together disparate as well as similar endpoints from SIP, Flash, and WebRTC into voice and video conferences supporting P2P, compositing, and selective forwarding (SFU) modes where appropriate.
Collaboration TURN Server
The TURN Server is a VoIP media traffic NAT traversal server and gateway. The TURN server provided by Genesys is evolved from the rfc5766-turn-serverproject.
Overall, for NAT traversal for UDP-based multimedia sessions, the protocol used is called Interactive Connectivity Establishment (ICE).ICE makes use of the Session Traversal Utilities for NAT (STUN) protocol and its extension, Traversal Using Relay NAT (TURN). The TURN Server supports both STUN and TURN.
STUN is used by an endpoint to check with the STUN/TURN server to determine the IP address and port allocated to it by a NAT. It can also be used to check connectivity between two endpoints, and as a keep-alive protocol to maintain NAT bindings. STUN works with many existing NATs, and does not require any special behavior from them. For more information, see RFC 5389.
To describe TURN in brief: if a host is located behind a NAT, then in certain situations it can be impossible for that host to send/receive media to/from other hosts (peers) using STUN. In these situations, it is necessary for the host to use the services of an intermediate node (TURN server) that acts as a media relay. The TURN protocol allows the host to control the operation of the relay and to exchange packets with its peers using the relay. TURN differs from other relay control protocols in that it allows a client to communicate with multiple peers using a single relay address. For more information, see RFC 5766.
You can install the database on the same hardware as the AS. Currently MySQL is used as the database server and gets installed as part of the installation process. The AS creates and populates the database with configuration and run-tme information.