GT-MCU: MCU escalável e de baixo custo

O uso de videoconferência por MCU (Multipoint Control Unit), normalmente é implementado por equipamentos de hardware especialmente dedicados a esse fim, o que leva elevados custos de aquisição e manutenção. Além disso, traz limtações na tarefa de criação de salas, gravação e gerência de layouts, que somente pode ser feita pelo administrador do MCU, dificultando o controle local durante uma reunião.

O presente projeto propõe um serviço de videoconferência de baixo custo totalmente virtualizado, funcionando na nuvem de forma escalável. Na realidade, a plataforma proposta é mais que um MCU, funcionando como um framework universal de encaminhamento de mídias, permitindo a integração com outros serviços, como webconferência e VoIP. Finalmente, opera de forma Federada, facilitando o uso do serviço por usuários autorizados através da Federação.

O sistema citado é chamado de GT-MCU (Grupo de Trabalho em MCU). Foi desenvolvido em software livre, financiado pela RNP (Rede Nacional de Ensino e Pesquisa do Brasil) e pela empresa Mconf Tecnologia.

Introdução

A sociedade já percebe a importância de ferramentas de videocolaboração como Microsoft Skype for Business e WebEx [1]

Ferramentas de videoconferência são úteis em comunicações ponto a ponto, com dois interlocutores, e também em comunicações multiponto, com vários interlocutores [2]. Para comunicações multiponto, existe o modelo de MCU (Multipoint Control Unit), que gera um fluxo de saída composto pelas mídias de diversos equipamentos (também chamados de endpoints) [3].

Os endpoints podem ser compostos por sistemas de hardware ou de software. Exemplos de enpoints de hardware são a linha HDX da Polycom [4], o Multipoint Bridge da Lifesize [5], e a linha MX da Cisco [6], entre outros. Exemplos de endpoints de software são o Jitsi [7], o Ekiga [8] e o RealPresence da Polycom [9].

Para interconectar os diversos endpoints, um MCU age como elemento centralizador, recebendo todas as mídias, compondo todas em um mesmo vídeo, e enviando esse vídeo para todos endpoints, como mostra a Figura 1.

Figura 1. Funcionamento básico de um MCU.

A proposta deste projeto é apresentar um sistema em software que permite escalabilidade na nuvem, mantendo o custo de aquisição e manutenção baixo, permitindo um número muito grande de usuários.

Visão Geral

A Figura 2 mostra a ideia geral do sistema proposto, que é composto por um Gerenciador de Escalabilidade (GE) redundante e uma rede de Servidores de Mídia (SM) de MCUs em software todos redundantes para que o sistema possua alta disponibilidade. Os endpoints conectam com o GE, que é, basicamente, o ponto de entrada do MCU para os usuários. O GE escolhe um Servidor de Mídia disponível e direciona este usuário (endpoint) para ingresso na sala desejada. A partir dai toda transferência de mídia (vídeo e áudio) seja feita agora diretamente entre SM e endpoint (ver figura).

Figura 2. Visão geral do sistema MCU proposto em nuvem.

A proposta apresentada prevê que as VMs correspondentes aos servidores de mídia sejam dinâmicas, ou seja, o número de máquinas virtuais aumente ou diminua automaticamente conforme a necessidade.

Um importante recurso provido pelo sistema consiste em uma API (Application Program Interface) de ingresso no GE que suporta fluxos de MCU e SFU (Switching Forwarding Unit)” (relação 1xn).

Em termos de características gerais, o sistema tem os seguintes requisitos:

  1. Funcionamento em software, em máquina virtual, de forma distribuída em nuvem.
  2. Escalável através de um gerenciador de escalabilidade, permitindo diversas conferências simultâneas.
  3. Baixo custo de implantação e de manutenção.
  4. Funcionar como um Servidor de Mídia Universal na rede, permitindo receber demandas de envio de áudio e vídeo e encaminhar para o(s) destino(s) desejado(s).
  5. Uso dinâmico de VMs, ou seja, permite que Servidores de Mídia sejam criados e destruídos conforme a demanda.
  6. Tenha permissão de acesso de forma Federada para a criação e gerência de salas.
  7. Alta robustez e disponibilidade para uso contínuo, ou seja, o produto deve ter passado por baterias de testes de carga e funcionamento contínuo.

Arquitetura Interna do MCU

A Figura 5 exibe a arquitetura proposta para o MCU, mostrando os principais blocos do Gerenciador de Escalabilidade, resumidos a seguir:

Figura 4. Esquema geral da arquitetura proposta.

O padrão de sinalização proposto para o produto é o SIP (Session Initiation Protocol), permitindo a compatibilidade com os endpoints de mercado existentes.

Tecnologias

O sistema operacional utilizado na solução MCU é o Linux Ubuntu.

O principal componente do servidor de mídia é o software Kurento, que funciona através da licença LGPL v2.1.

Outro software integrado no âmbito da proposta é o sistema de monitoramento Zabbix (www.zabbix.com/).

O componente SIP utilizado para executar o padrão SIP é o SIP.js (https://sipjs.com/), uma biblioteca javascript também de código aberto.

Resultados

Em termos de resultados, o desenvolvimento efetuado está com sua primeira versão funcional.

A Figura 5 mostra uma videoconferência efetuada pelo grupo, mostrando o layout com 5 participantes. Foram feitos experimentos com participantes em Brasília e até mesmo na Espanha, com baixo atraso.

Figura 5. Videoconferência do grupo vista através do endpoint de software Jitsi.