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.
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
DTLS http://en.wikipedia.org/wiki/Datagram_Transport_Layer_Security
SRTP http://en.wikipedia.org/wiki/Secure_Real-time_Transport_Protocol
Imagens: Creativeart/Freepik