Controlling architecture and services

Controlling architecture and services

Controlling architecture and services

One mailbox serves as the host for a Carbonio Chats meeting and also stores the meeting’s status. That mailbox has a communication duty with a videoserver instance to initiate and manage meetings.

As a result, every mailbox has an own connection pool that can be managed using the Carbonio CLI. Simple commands may be used to manage the service:

  • beginning the connection pool
zextras$ carbonio chats doStartService chats-video-server-connection-pool
  • Put an end to the connection pool.
zextras$ carbonio chats doStopService chats-video-server-connection-pool
  • Verify the state of a connection pool. This command provides details about the node that it is running on.
zextras$ carbonio chats clusterstatus

     isFullySynced                                       true
     servers
      <ip_server>
          online                                          true
          min_api_version                                 1
          max_api_version                                 22
     meeting_servers
         <ip_videoserver>:8188
             id                                           123
             hostname                                     <ip_videoserver>:8188
             status                                       online
             servlet_port                                 8090
             last_failure
             local_meetings_hosted                        2

This data is included in the output of this command:

  • The status will read “offline” rather than “online” if the distant Carbonio VideoServer is unavailable or otherwise inaccessible.
  • The minimum API versions (min_api_version and min_api_version) that the server supports
  • If the most recent attempt to connect to the video server was unsuccessful, last failure  displays an error message (such as Unauthorised request (wrong or missing secret/token) or a generic Runtime Exception). When the connection is made, the message is removed.
  • The number of meetings held on the current mailbox is reported by the local_meetings_hosted  function.
Scaling using Carbonio VideoServer

The same infrastructure may be used to run several Carbonio VideoServers.

Run the Carbonio VideoServer installer on a new server and follow the instructions to add a new Carbonio VideoServer to the configuration. Once the packages are installed, the installer will provide the necessary commandscarbonio chats video-server add  with the correct parameters) to add the server to the infrastructure.

Use the carbonio chats video-server remove command from any mailbox server to remove a Carbonio VideoServer from the setup. This will remove the relevant items from the Zextras Config (manual package removal on the video server is necessary).

Warning

When using multiple video servers, meetings are instanced on any of the available instances.

CLI Commands

The CLI command to manage Carbonio VideoServer installations is :command`carbonio team` with the sub-command video-server and the parameters add and remove.

Quick reference:

zextras$ carbonio chats video-server add *videoserver.example.com* [param VALUE[,VALUE]]

zextras$ carbonio chats video-server remove *videoserver.example.com* [param VALUE[,VALUE]]
Bandwidth and Codecs
Video Bandwidth

The administrator can set the webcam stream quality and the screenshare stream quality specifing the relative bitrate in Kbps. The values must be at least 100 Kbps and can be increased as desired.

Higher values mean more quality but more used bandwidth.

  • carbonio config global set attribute teamChatWebcamBitrateCap value 200: is the command for the webcam stream quality/bandwidth

  • carbonio config global set attribute teamChatScreenBitrateCap value 200: is the command for the screenshare stream qualitybandwidth

Tip

By default both the webcam bandwidth and the screen sharing bandwidth are set to 200 Kbps.

Video Codecs

By default, the VP8 video codec is used. This is to ensure the best compatibility, as this codec is available in all supported browsers, but other codecs can be enabled:

  • AV1: carbonio config global set attribute teamChatVideoCodecAV1 value true

  • H264: carbonio config global set attribute teamChatVideoCodecH264 value true

  • H265: carbonio config global set attribute teamChatVideoCodecH265 value true

  • VP8: carbonio config global set attribute teamChatVideoCodecVP8 value true

  • VP9: carbonio config global set attribute teamChatVideoCodecVP9 value true

Only one codec can be enabled at the time, so before enabling a new codec remember to disable the previous one using the same command as the one in the list above but substituting value true with value false.

E.g. to enable the H264 codec run:

carbonio config global set attribute teamChatVideoCodecVP8 value false

carbonio config global set attribute teamChatVideoCodecH264 value true

Audio Codec

The audio codec used by the Carbonio VideoServer is Opus. No other codecs are supported, as Opus is currently the only reliable one available across all supported browsers.