https://a.storyblok.com/f/270183/95489/21ceb46dcb/videoapi_opensource_1200x600.png

Videoconferência de código aberto

Publicado em March 24, 2021

Tempo de leitura: 13 minutos

O que é o Vonage Video (anteriormente conhecido como OpenTok / TokBox)?

Vonage Video (anteriormente TokBox / OpenTok) é uma API que permite que as empresas criem uma experiência de vídeo personalizada em qualquer aplicativo móvel, web ou para desktop.

Essa API oferece suporte a todos os casos de uso de Video, como consultas por Video individuais, bate-papos em grupo por Video ou transmissões em grande escala para milhares de pessoas. Você pode gravar qualquer sessão, controlando como compor e enviar esses arquivos com segurança para o método de armazenamento de sua escolha. As análises permitem que você visualize resumos por projeto nos painéis ou veja análises específicas de cada sessão por meio da API de Insights Avançados. A Video API permite que você aproveite nossa criptografia padrão sempre ativa e nossos recursos de conformidade com o GDPR para oferecer uma ampla gama de opções avançadas de segurança, controle de firewall, isolamento regional e certificados de conformidade. Há muitos outros recursos e serviços disponíveis no serviço Vonage Video. Para obter mais informações sobre eles, acesse a página inicial.

O que é o WebRTC?

A Web Real-Time Communication (WebRTC) é um projeto gratuito e de código aberto que permite que navegadores da web e Applications móveis se comuniquem em tempo real por meio de APIs. O WebRTC permite que a comunicação de áudio e Video funcione diretamente no seu navegador, possibilitando que a comunicação ocorra diretamente entre dispositivos ponto a ponto, o que elimina a necessidade de instalar plug-ins ou baixar Applications nativos.

O que é o serviço de conferência e gravação de código aberto da Vonage?

O Vonage Open Source Conferencing and Recording é a sua solução privada de videoconferência baseada na web. Ele se baseia na Video API da Vonage (anteriormente conhecida como API OpenTok) e utiliza os SDKs e APIs de vídeo da Vonage. Você pode implantar o aplicativo em seus servidores para que ele funcione com WebRTC.

Se você quiser experimentar este serviço sem precisar hospedar seus próprios servidores, fique à vontade para acessar nossa página de demonstração. Essa página de demonstração está hospedada por uma versão padrão do pacote de conferência e gravação de código aberto, que pode ser encontrado em nosso repositório no GitHub.

Como posso hospedar meu próprio software de videoconferência?

Pré-requisitos

Instalação

Para executar este servidor, você precisará clonar o repositório e instalar todas as bibliotecas de terceiros necessárias. No terminal, execute os três comandos a seguir:

git clone git@github.com:opentok/opentok-rtc.git cd opentok-rtc npm install # Installs required packages

Configuração mínima

Depois de instalar todas as dependências necessárias, é preciso realizar algumas configurações. O mínimo que você precisa fazer é definir sua chave de API e seu segredo, que podem ser obtidos no Painel do Vonage Video.

Para começar, você precisará criar um config.json arquivo, e o comando abaixo copiará um config.json com todos os valores em branco para você. Portanto, execute o comando:

cp config/example.json config/config.json

Abra este arquivo e as primeiras linhas serão as que você vê no exemplo abaixo:

{
   "showTos": false,
   "meetingsRatePerMinute": 30,
   "OpenTok":{
      "apiKey": "<key>",
      "apiSecret": "<secret>",
      "publisherResolution": "640x480"
   },
   ...
}

Certifique-se de substituir <key> e <secret> pela sua chave da Video API e pelo segredo da Video API correspondente, que você obteve no Painel de Controle do Vonage Video.

Se você não quiser manter as credenciais no seu config.json arquivo, você pode usar variáveis de ambiente. Você pode definir as variáveis de ambiente usando os comandos abaixo, certificando-se, mais uma vez, de substituir <key> e <secret> pelos seus valores:

export TB_API_KEY= export TB_API_KEY=

Executando o servidor

Antes de executar o servidor RTC, você precisará verificar se o Redis está em execução; portanto, no terminal, digite o seguinte comando:

redis-server

O comando básico para executar o servidor no localhost com todas as configurações padrão, incluindo a porta padrão (8123), é o seguinte:

node start

No entanto, existem outras opções que você pode adicionar aos seus comandos para uma configuração mais personalizada. Veja alguns exemplos a seguir:

node server -p 8080 # To run the server on a different port to the default node server -d # To run the server as a daemon in the background

Se você desejar usar SSL, o servidor espera que o certificado SSL tenha o nome serverCert.pem e que o arquivo da chave privada SSL tenha o nome serverKey.pem. Você pode encontrar um par de certificados SSL autoassinados e pré-gerados no sampleCerts diretório.

O sinalizador -S indica ao servidor que ele precisa habilitar a inicialização de um servidor seguro, enquanto o sinalizador -C <dir> , juntamente com o nome do diretório, indica ao servidor onde encontrar os certificados. Para executar o servidor usando esses certificados, você deve digitar o seguinte:

node server -S -C sampleCerts

Para obter informações detalhadas sobre as opções disponíveis, execute node server -h.

Opções adicionais de configuração

Existem muitas outras opções de configuração disponíveis para atender às suas necessidades. Essas opções podem ser definidas no arquivo config.json ou como variáveis de ambiente. As chaves dessas opções são especificadas em primeiro lugar para cada opção nos exemplos abaixo:

  • appName (config.json) / APP_NAME (variável de ambiente) — O nome do aplicativo exibido em diversos momentos ao longo do ciclo de vida da videochamada. O valor padrão é “Vonage Video Conferencing”.

  • introText (config.json) / INTRO_TEXT (variável de ambiente) — O texto exibido abaixo do nome do aplicativo na primeira página que exibe o precall widget. O valor padrão é “Bem-vindo à videoconferência”.

  • showTos (config.json) / SHOW_TOS (variável de ambiente) — Determina se o aplicativo exibirá a caixa de diálogo dos termos de serviço e exigirá que o usuário concorde com os termos antes de entrar em uma sala. O valor padrão é false.

  • meetingsRatePerMinute (config.json) / MEETINGS_RATE_PER_MINUTE (variável de ambiente) — Determina o número máximo de novas reuniões que podem ser criadas por minuto. Os usuários poderão participar de uma reunião já existente. Caso contrário, aparecerá uma mensagem informando que o serviço não está disponível no momento. Se o valor for definido como qualquer número negativo, a limitação de taxa será desativada e todas as reuniões serão permitidas. Se esse valor for definido como 0, todas as novas reuniões serão rejeitadas. O valor padrão é -1.

  • minMeetingNameLength (config.json) / MIN_MEETING_NAME_LENGTH (variável de ambiente) — O comprimento mínimo dos nomes das reuniões criadas. O valor padrão, 0, indica que não há comprimento mínimo. (Você pode definir isso no arquivo de configuração usando a minMeetingNameLength configuração.) O valor padrão é 0.

  • maxUsersPerRoom (config.json) / MAX_USERS_PER_ROOM (variável de ambiente) — O número máximo de usuários permitidos em uma sala ao mesmo tempo. Defina esse valor como 0, o padrão, para permitir qualquer número de usuários. O valor padrão é 0.

  • enableRoomLocking (config.json) / ENABLE_ROOM_LOCKING (variável de ambiente) — Se o comando “Bloquear Reunião” deve ou não ser incluído no menu de opções dos usuários. Esse comando permite que os usuários impeçam que novos participantes entrem em uma reunião. O valor padrão é true.

  • autoGenerateRoomName (config.json) / AUTO_GENERATE_ROOM_NAME (variável de ambiente) — Se o nome da sala deve ou não ser gerado automaticamente em nome do usuário. Se essa configuração estiver ativada, usaremos o haikunator para gerar nomes para novas salas. Se desativada, os usuários serão solicitados a inserir um nome para a sala/reunião ao acessarem a página inicial e não poderão prosseguir até que o façam. O valor padrão é true.

  • enableEmoji (config.json) / ENABLE_EMOJI (variável de ambiente) — Se o suporte a emojis deve ou não ser ativado no widget de bate-papo de texto.

Personalização da interface do usuário

Para obter informações sobre como personalizar a interface do usuário do Vonage Open Source Conferencing and Recording, consulte PERSONALIZAÇÃO-DA-INTERFACE-DE-USUÁRIO.

Como está o funcionamento do meu serviço?

Existe um endpoint de verificação de integridade em /server/health. Você pode acessar essa URL para verificar se o aplicativo consegue se conectar a todos os serviços externos necessários. Se for bem-sucedido, esse endpoint de verificação de integridade envia uma resposta com o código de status HTTP definido como 200 e um JSON semelhante ao seguinte:

{
  "name": "opentok-rtc",
  "version": "4.1.1",
  "gitHash": "312903cd043d5267bc11639718c47a9b313c1663",
  "opentok": true,
  "googleAuth": true,
  "status": "pass"
}

Um exemplo de verificação de integridade com falha seria semelhante ao seguinte:

{
  "name": "opentok-rtc",
  "version": "4.1.1",
  "git_hash": "312903cd043d5267bc11639718c47a9b313c1663",
  "opentok": false,
  "error": "OpenTok API server timeout exceeded.",
  "status": "fail"
}

Leitura complementar

Compartilhar:

https://a.storyblok.com/f/270183/250x250/b052219541/greg-holmes.png
Greg HolmesEx-funcionários da Vonage

Ex-educador de desenvolvedores na @Vonage. Tenho formação em PHP, mas não me limito a uma única linguagem. Sou um jogador ávido e entusiasta do Raspberry Pi. Costumo praticar escalada em rocha em centros de escalada indoor.