SDK de Voice para JavaScript: Twilio en el navegador
Estás viendo la documentación de la versión 2.X del SDK de Voice para JavaScript. Consulta la Guía de migración para aprender a migrar de 1.X a 2.X o consulta la documentación específica de 1.x.
El SDK de Twilio Client para JavaScript ahora se llama SDK de Twilio Voice para JavaScript.
Descripción general
El SDK de Twilio Voice para JavaScript te permite realizar llamadas de voz desde y hacia un navegador web y una aplicación Twilio TwiML Voice. Esto significa que puedes establecer conexiones de audio entrantes y salientes con Twilio para desarrollar teléfonos basados en software, intercomunicadores, llamadas de conferencia, sistemas de clic para hablar y mucho más, todo desde el navegador.
¿Deseas comenzar de inmediato? Dirígete directamente a una de nuestras guías de Inicio rápido sobre el SDK de Voice para JavaScript.
Intending to write back-end JavaScript with Twilio in Node.js to support your front-end client? Check out the Twilio Node.js SDK.
Cómo funciona
Configura el dispositivo y establece una conexión con Twilio. El audio del micrófono del dispositivo se envía a Twilio, y Twilio envía el audio que se reproduce a través de los altavoces del dispositivo, como en una llamada telefónica normal. La diferencia clave es que con el SDK de Twilio Voice para JavaScript, tu "teléfono" es un Twilio.Device
, un "dispositivo de software" que proporciona conexiones con Twilio.
Cuando inicias una llamada con el objeto Twilio.Device
proporcionado por el SDK para JavaScript, no estás llamando a otro teléfono directamente. Más bien, estás conectándote con Twilio y pidiéndole que obtenga el TwiML de tu servidor para manejar la llamada. Esto es análogo a la forma en que Twilio maneja las llamadas entrantes desde un teléfono real.
El SDK para JavaScript utiliza los mismos verbos y sustantivos de TwiML que se utilizan para manejar las llamadas de Twilio Voice. También hemos agregado un sustantivo <Client>
nuevo para marcar a un "cliente" (otra instancia de un Twilio.Device
).
Aplicaciones TwiML
Como las llamadas realizadas con un Twilio.Device
no se realizan a un número de teléfono específico, Twilio confía en una aplicación TwiML dentro de tu cuenta para que determine cómo interactuar con tu servidor. Una aplicación TwiML no es más que una forma práctica de almacenar un conjunto de direcciones URL, como VoiceUrl
y SmsUrl
de un número de teléfono, pero sin asociarlas con un número de teléfono específico. Esto hace que las aplicaciones TwiML sean perfectas para manejar las conexiones desde tu Twilio.Device
, que es la razón por la que las creamos en primer lugar.
Cuando el Twilio.Device
inicia una llamada a Twilio, se hace una solicitud a la propiedad VoiceUrl
de una aplicación dentro de tu cuenta. Especifica la aplicación a la que te estás conectando con un Access Token (Token de acceso). Twilio utiliza la respuesta TwiML de tu solicitud a esa la VoiceUrl
de esa aplicación para dirigir lo que sucede con la llamada del Twilio.Device
.
Instalación
NPM
Te recomendamos utilizar npm
para agregar el SDK de Voice como dependencia.
npm install @twilio/voice-sdk --save
A través de este método, puedes usar la palabra clave import
para importar el SDK de Voice mediante la sintaxis de ES Module o TypeScript.
import { Device } from '@twilio/voice-sdk';
O mediante CommonJS:
const Device = require('@twilio/voice-sdk').Device;
CDN
A partir de la versión 2.0, el SDK de Twilio Voice ya no se aloja en una CDN.
GitHub
Aunque recomendamos usar npm
para agregar el SDK de Voice como una dependencia, también puedes obtener el código del SDK de Twilio Voice en GitHub e incluirlo directamente en tu proyecto. Para ello, dirígete a "Releases" (Versiones) y busca la versión más reciente o la versión concreta que deseas utilizar.
Las versiones con la etiqueta "-rc" son "Release Candidate" (Versiones candidatas) y siguen en la etapa de prueba. A menos que sepas específicamente que deseas utilizar una versión candidata, no debes utilizar una versión con la etiqueta "-rc" en el nombre.
Descarga el paquete zip
o tar.gz
y, a continuación, extrae los archivos. Por ejemplo, si descargaste el tarball de la versión 2.0.0
, podrías extraer los archivos con el siguiente comando tar
:
tar -xvzf twilio-voice.js-2.0.0.tar.gz
cd twilio-voice.js-2.0.0
Una vez que hayas extraído la carpeta, los archivos twilio.js
y twilio.min.js
que puedes incluir en el proyecto estarán en el directorio /dist
. twilio.min.js
es la versión minificada del código.
Puedes copiar el archivo twilio.js
o twilio.min.js
en el proyecto y, a continuación, proporcionar un enlace a él en el html. Por ejemplo:
<script type="text/javascript" src="twilio.min.js"></script>
Con este método, puedes acceder al SDK a través de la información global del navegador:
const Device = Twilio.Device;
Navegadores compatibles
En la siguiente tabla se indican los navegadores compatibles con el SDK de Twilio Voice para JavaScript. Admitimos las versiones más recientes (N) y las dos anteriores (N-2) de estos navegadores, a menos que se indique lo contrario.
Chrome | Firefox | Safari* | Edge** | |
---|---|---|---|---|
Android | ✓ | ✓ | ||
iOS | ✓ | ✓ | ✓ | |
Linux | ✓ | ✓ | ||
macOS | ✓ | ✓ | ✓ | |
Windows | ✓ | ✓ | ✓ |
* La compatibilidad de Safari con WebRTC comenzó en la versión 11 de dicho navegador.
** Solo es compatible con las versiones de Edge basadas en Chromium. No es compatible con versiones antiguas de Edge. Revisa este aviso para obtener más información.
Los navegadores móviles carecen de la capacidad de recibir o mantener la conectividad de llamadas mientras están en segundo plano y no permiten la gestión de interrupción de llamadas GSM. Esto provoca una mala experiencia de usuario. Para brindar la mejor experiencia de usuario, Twilio recomienda tener en cuenta estas limitaciones a la hora de crear aplicaciones móviles con Voice. Twilio también recomienda evaluar los SDK para iOS y Android a la hora de crear aplicaciones móviles con Voice.
Compatibilidad con Electron
El SDK de Twilio Voice para JavaScript también es compatible con la última versión de Electron
Seguridad
Canal | Tipo |
Señalización | TLS (Web Socket seguro) |
Medios | DTLS-SRTP (AES_CM_128_HMAC_SHA1_80) |
Versiones actuales
A partir de la versión 1.3, el SDK de Twilio Voice para JavaScript (antes conocido como SDK de Twilio Client para JS) ha seguido de forma estricta el control de versiones semántico: las actualizaciones de menor nivel solo contienen actualizaciones de características y son completamente compatibles con las versiones 1.3.0 y posteriores.
Versiones obsoletas
La compatibilidad con las versiones 1.1 y 1.2 de twilio.js
cesó el 14 de febrero del 2018. Si aún utilizas alguna de estas versiones, usa la Guía de migración para actualizar la versión a una más reciente.
¿Necesitas ayuda?
Todos la necesitamos a veces; la programación es difícil. Obtén ayuda ahora de nuestro equipo de soporte, o recurre a la sabiduría de la multitud visitando Stack Overflow Collective de Twilio o navegando por la etiqueta de Twilio en Stack Overflow.