SDK de JavaScript do Voice: Twilio no navegador
Você está visualizando a documentação da versão 2.X do Voice JavaScript SDK. Consulte o Guia de migração para saber como migrar do 1.X para o 2.X ou veja a documentação específica do 1.x.
O SDK do Twilio Client JavaScript foi renomeado para SDK do Twilio Voice JavaScript.
Visão geral
O SDK de JavaScript do Twilio Voice permite fazer chamadas de voz de e para um navegador da Web e um aplicativo da Twilio TwiML Voice. Isso significa que você pode abrir conexões de áudio de entrada e saída para o Twilio para a criação de softphones, walkie-talkies, chamadas em conferência, sistemas de clique para falar e muito mais, tudo a partir do navegador.
Quer começar agora mesmo? Acesse direto um de nossos Inícios rápidos do SDK de JavaScript do Voice.
Pretende escrever JavaScript de back-end com a Twilio em Node.js para dar suporte ao seu client (cliente) de front-end? Confira o SDK do Twilio Node.js.
Como funciona
Você configura seu dispositivo e estabelece uma conexão com a Twilio. O áudio do microfone do dispositivo é enviado para a Twilio, e a Twilio envia o áudio reproduzido pelos alto‐falantes do dispositivo, como em uma chamada telefônica normal. A principal diferença é que, com o SDK de JavaScript do Twilio Voice, seu "telefone" é um Twilio.Device
, um "dispositivo de software" que fornece conexões a Twilio.
Ao iniciar uma chamada usando o objeto Twilio.Device
fornecido pelo SDK de JavaScript, você não está chamando outro telefone diretamente. Em vez disso, você está se conectando ao Twilio e instruindo o Twilio a buscar o TwiML do seu servidor para lidar com a chamada. Isso é análogo à maneira como a Twilio lida com chamadas recebidas de um telefone real.
O SDK de JavaScript usa os mesmos verbos e substantivos TwiML usados para lidar com chamadas do Twilio Voice. Também adicionamos um novo substantivo <Client>
para discagem a um "cliente" (outra instância de um Twilio.Device
).
Aplicativos TwiML
Como as chamadas realizadas com um Twilio.Device
não são feitas para um número de telefone específico, a Twilio conta com um aplicativo TwiML em sua conta para determinar como interagir com o servidor. Um aplicativo TwiML é apenas uma maneira conveniente de armazenar um conjunto de URLs, como VoiceUrl
e SmsUrl
em um número de telefone, mas sem bloqueá‐los para um número de telefone específico. Isso torna os aplicativos TwiML perfeitos para lidar com conexões do seu Twilio.Device
, e é por isso que os criamos em primeiro lugar.
Assim, quando o Twilio.Device
inicia uma chamada para a Twilio, uma solicitação é feita para a propriedade VoiceUrl
de um aplicativo em sua conta. Você especifica o aplicativo ao qual está se conectando com um Access Token (Token de acesso). A Twilio usa a resposta do TwiML de sua solicitação para que o aplicativo VoiceUrl
direcione o que acontece com a chamada do Twilio.Device
.
Instalação
NPM
Recomendamos o uso do npm
para adicionar o SDK do Voice como uma dependência.
npm install @twilio/voice-sdk --save
Usando esse método, você pode import
o SDK do Voice usando o Módulo ES ou a sintaxe TypeScript:
import { Device } from '@twilio/voice-sdk';
Ou usando CommonJS:
const Device = require('@twilio/voice-sdk').Device;
CDN
A partir da 2.0, o SDK do Voice da Twilio não será mais hospedado via CDN.
GitHub
Embora seja recomendável usar npm
para adicionar o SDK do Voice como uma dependência, você também pode obter o código do SDK do Voice da Twilio no GitHub e incluí‐lo diretamente em seu projeto. Para fazer isso, navegue até "Releases" (Versões) e encontre a versão mais recente ou a versão de versão específica que você gostaria de usar.
As versões marcadas com "-rc" são versões "Release Candidate" (Candidatas a liberação) e ainda estão sendo testadas. A menos que você saiba especificamente que deseja usar uma versão candidata à liberação, não deve usar uma versão com "-rc" no nome.
Faça download do zip
ou do tar.gz
e extraia os arquivos. Por exemplo, se você fez o download do tarball para a versão 2.0.0
, poderá extrair os arquivos com o comando tar
:
tar -xvzf twilio-voice.js-2.0.0.tar.gz
cd twilio-voice.js-2.0.0
Depois de extrair a pasta, os arquivos twilio.js
e twilio.min.js
que você pode incluir em seu projeto estarão no diretório /dist
. twilio.min.js
é a versão reduzida do código.
Você pode copiar o arquivo twilio.js
ou o twilio.min.js
em seu projeto e, em seguida, fornecer um link para ele em seu html. Por exemplo:
<script type="text/javascript" src="twilio.min.js"></script>
Usando esse método, você pode acessar o SDK por meio do navegador global:
const Device = Twilio.Device;
Navegadores compatíveis
A tabela a seguir indica os navegadores compatíveis pelo SDK de JavaScript do Twilio Voice. Oferecemos suporte às versões mais recentes (N) e às duas versões anteriores (N-2) desses navegadores, a menos que indicado de outra forma.
Chrome | Firefox | Safari* | Edge** | |
---|---|---|---|---|
Android | ✓ | ✓ | ||
iOS | ✓ | ✓ | ✓ | |
Linux | ✓ | ✓ | ||
macOS | ✓ | ✓ | ✓ | |
Windows | ✓ | ✓ | ✓ |
* O suporte WebRTC no Safari foi iniciado com o Safari versão 11.
** Oferecemos suporte apenas ao Edge baseado em Chromium. Edge legado não é compatível. Consulte este informe para obter mais detalhes.
Os navegadores para dispositivos móveis não têm a capacidade de receber ou manter a conectividade de chamadas enquanto estão em segundo plano e não permitem o tratamento da interrupção de chamadas GSM. Isso leva a uma experiência do usuário insatisfatória. Para criar a melhor experiência de usuário, a Twilio recomenda entender essas limitações ao criar aplicativos do Voice para dispositivos móveis. A Twilio também recomenda avaliar os SDKs de iOS e Android para criar aplicativos do Voice para dispositivos móveis.
Suporte a Electron
O SDK de JavaScript do Twilio Voice também é compatível na versão mais recente do Electron
Segurança
Canal | Tipo |
Sinalização | TLS (WebSocket seguro) |
Mídia | DTLS-SRTP (AES_CM_128_HMAC_SHA1_80) |
Versões atuais
A partir da versão 1.3, o SDK de JavaScript do Twilio Voice (anteriormente conhecido como SDK do JS do Twilio Client) segue estritamente o controle de versão semântica: atualizações de nível secundário contêm apenas atualizações de recursos e são totalmente compatíveis com versões anteriores do 1.3.0 e mais recentes.
Versões descontinuadas
O suporte para twilio.js
1.1 e 1.2 foi encerrado em 14 de fevereiro de 2018. Se você ainda estiver usando uma dessas versões, use o Guia de migração para atualizar para a versão mais recente.
Precisa de ajuda?
Às vezes, todos nós precisamos; a programação é difícil. Receba ajuda agora da nossa equipe de suporte, ou confie na sabedoria da multidão navegando pelo Stack Overflow Collective da Twilio ou buscando a tag Twilio no Stack Overflow.