WebRTC: comunicação por texto, voz e vídeo.

O que é WebRTC?

WebRTC vem de Real Time Communications (RTC) e é um projeto OpenSource com alguns anos de existência (nasceu em maio de 2011). Seu objetivo é levar comunicações em tempo real para navegadores e aplicativos para dispositivos móveis. As comunicações em tempo real suportadas hoje são voz, texto e vídeo.
Já é uma tecnologia sólida e bem estabelecida, bastando dizer que é utilizada por ninguém menos que WhatsApp e Facebook Messenger.

Por que usar?

Ainda que existam diversas alternativas para comunicação em tempo real no mundo desktop e mobile, quando estamos falando de navegadores, não existe muita opção. Se quiser implementar alguma ferramenta de comunicação em tempo real pelo navegador usando recursos nativos deles, é o WebRTC que você busca.

Navegadores suportados

O projeto é suportado pelo Google (Chrome), Mozilla Firefox e Opera. WebRTC não é um plugin, seus componentes rodam no sandbox do navegador e não em um processo separado.

Mobile

O projeto possui mobile em mente, e até mesmo os navegadores móveis devem suportar.

http://iswebrtcreadyyet.com/

Peer-to-Peer ou cliente-servidor?

Depois que o processo de sinalização foi estabelecido, é possível fazer o streaming diretamente peer to peer, ou se isso falhar, através de um servidor de relay intermediário (servidor turn).

Consumo de banda do WebRTC

O consumo de banda está inteiramente ligado aos codecs opus (áudio) e vp8 (vídeo). Áudio em tempo real geralmente tem bitrate variando entre 40 e 200kbit/s. Vídeo começa nos 200kbit/s e chega facilmente em 500 kbit/s.

Em teoria, a banda mínima para o opus é 6kbit/s e para o vp8 100kbit/s, totalizando 106kbit/s, mas temos que falar ainda de overhead, então 200kbit/s é um valor mais próximo do consumo de um vídeo chat com áudio.

Para ligações telefônicas com a rede pública de telefonia, de nada adianta uma taxa alta de amostragem, se a rede pública de telefonia apresenta corte em 8khz. O tráfego de áudio sem compressão (g711) consome cerca de 80~90Kbps em ethernet e o G729 cerca de 30kbps.

Como primamos pela qualidade, o opus é convertido para g711 em nossos servidores e trafega assim daí em diante. Nos testes práticos de tráfego de áudio (medindo via wireshark) com a rede pública de telefonia, o consumo de banda ficou em cerca de 90kbps.

Sistema operacional

Tizen OS

Android

IOS

Telefonando do browser para sua casa

Fazer o seu navegador telefonar para sua casa não é algo que vai ocorrer de forma transparente e direta. WebRTC depende de codecs implementados nos navegadores (normalmente opus para áudio) e a rede de telefonia digital normalmente utiliza outro protocolo (SIP) e outros codecs (G711, G729, GSM…).

WebRTC e SIP são similares de mundos diferentes…. Nesse momento você já viu que o protocolo é diferente e os codecs também.

(No G729 for u, browser).

Em outros termos, para que possamos nos comunicar de um browser com um terminal SIP ou com a rede pública de telefonia, precisamos de uma tradução e são os gateways que irão fazer isso.
Existem alguns gateways diferentes que fazem esta tradução Webrtc/SIP, alguns free como o famoso asterisk – através de alguns módulos adicionais.

Segurança com WebRTC

Simplifiquemos assim: Criptografia é obrigatória. Isso significa https no browser.

Não apenas nos dados de mídia, mas em toda a sinalização, criptografia é obrigatória.

WebRTC usa protocolos seguros como o DTLS(http://en.wikipedia.org/wiki/Datagram_Transport_Layer_Security) e SRTP (http://en.wikipedia.org/wiki/Secure_Real-time_Transport_Protocol);

Câmera e o microfone precisam serem liberados explicitamente e a interface exibe isso claramente (a aba do navegador geralmente indica isso).

O jeito fácil de fazer WebRTC

Para acabar com toda essa complicação, a TotalVoice lançou seu próprio cliente WebRTC embutido dentro da plataforma. Isso significa que você pode implementar um cliente WebRCT em seu site apenas fazendo uma solicitação na API e pagando apenas pelas ligações que efetuar. O tutorial a seguir ensina como fazer isso.

Tutorial WebRTC

O objetivo deste tutorial de WebRTC é ensinar como integrar um discador telefônico ou de vídeo em seu website ou sistema utilizando a API de Totalvoice.

Como o custo é muito baixo e toda a estrutura está hospedada na amazon, já é altamente escalável. O custo para usar o Webrtc da Totalvoicehoje é zero, então é só começar.

1 – Primeiro faça um cadastro em www.totalvoice.com.br e acesse o painel para ter acesso ao seu access_token.

2 – Crie um ramal para ter um endpoint de origem/destino.  Um ramal é uma “linha” telefônica com um número interno, que pode ser chamada ou chamar outros números.

3 – Solicite a URl do webphone, que é a aplicação completa de telefonia para ser embutida em seu site.

4 – Vamos testar! Abra o webphone e faça uma ligação para seu celular. Ex.: 11 – 99876-2345

Referências

http://www.cisco.com/cisco/web/support/BR/8/82/82851_bwidth_consume.html

http://iswebrtcreadyyet.com/

https://webrtc.org/

DTLS http://en.wikipedia.org/wiki/Datagram_Transport_Layer_Security

SRTP http://en.wikipedia.org/wiki/Secure_Real-time_Transport_Protocol

Imagens: Creativeart/Freepik

 

Postagens relacionadas
A importância da gravação de chamadas no ambiente corporativo
TotalVoice no Slack
Como encantar seus clientes e vender mais com o poder do SMS e TTS
Click2Call 2.0 – Ligação do seu site para seu Callcenter
Voicemail ou Correio de Voz – O que é e como usar?

Pin It on Pinterest