You are viewing the Spanish (Mexico) site, but your language preference is set to English. Switch to English site →

Menu

Expand
Calificar esta página:

Twilio Client: Tokens de capacidad

El SDK de Twilio Client para JavaScript ahora se llama SDK de Twilio Voice para JavaScript.

Estás viendo la versión 1.X del SDK de Voice para JavaScript (antes llamado Twilio Client). Haz clic aquí para obtener información sobre cómo migrar a la versión 2.X.

Los tokens de capacidad han quedado obsoletos. Utiliza Access Tokens (tokens de acceso) para todos los casos de uso futuros.

Twilio Client utiliza tokens de capacidad para firmar comunicaciones desde dispositivos a Twilio. Estos tokens son una forma segura de configurar tu dispositivo para acceder a varias funciones de Twilio. Los tokens de capacidad te permiten agregar capacidades de Twilio a aplicaciones web y móviles sin exponer tu AuthToken (Token de autenticación) en JavaScript o cualquier otro entorno del lado del cliente.

Puedes crear un token en el servidor y especificar las capacidades que deseas que tenga el dispositivo. Todos los tokens tienen una vida útil limitada para protegerte del mal uso. Su vida útil es configurable y puede alcanzar las 24 horas, pero debe ser lo más breve posible para tu aplicación.

Actualmente, el identificador de cliente solo puede contener caracteres alfanuméricos y guiones bajo.

Creación de tokens

Los tokens de capacidad de Twilio se basan en el estándar JSON Web Token . Sin embargo, si estás usando una de las bibliotecas auxiliares oficiales de Twilio, puedes usar su funcionalidad de generación de tokens para crear tokens fácilmente sin tener que conocer los detalles de cómo se construyen. Consulta la documentación de la biblioteca que estás utilizando para obtener más información.

En los siguientes ejemplos, se usa el módulo [twilio-python][python] para configurar y generar tokens de capacidad.

Permitir conexiones entrantes

Para permitir las conexiones entrantes en un dispositivo, debes asignar un nombre de cliente al dispositivo. Un intento de conexión con este nombre de cliente activará un evento entrante en tu entorno. En twilio.js, un intento de conexión entrante activa el controlador de eventos Twilio.Device.incoming.

from twilio.jwt.client import ClientCapabilityToken

account_sid = 'ACXXXXXXXXXXXXXXX'
auth_token = 'secret'

capability = ClientCapabilityToken(account_sid, auth_token)
capability.allow_client_incoming('tommy')
print(capability.to_jwt())

Un dispositivo configurado con este token recibirá conexiones entrantes cada vez que alguien intente conectarse a tommy, ya sea usando el sustantivo <Client> del verbo <Dial> o la API REST.

Si tienes varios dispositivos configurados para utilizar el mismo nombre de cliente, cada dispositivo recibirá la conexión entrante; sin embargo, solo un dispositivo puede aceptar la conexión. En un contact center u otra situación de llamadas entrantes, se recomienda utilizar un nombre de cliente único para cada dispositivo (agente). Para distribuir llamadas entre varios agentes, usa el sustantivo <Queue> del verbo <Dial> .

Twilio limita a diez el número de dispositivos simultáneos que se pueden crear con un único nombre de cliente; cuando se registra la instancia 11 con el mismo nombre de cliente, se descarta el registro más antiguo.

Permitir conexiones salientes

Para iniciar una conexión saliente desde un dispositivo, deberás configurar un token de capacidad con el SID de una aplicación Twilio de modo que Twilio sepa qué VoiceUrl usar para manejar la conexión. Una aplicación Twilio es solo una colección con nombre de direcciones URL responsables de devolver instrucciones TwiML para controlar las llamadas telefónicas y los SMS.

from twilio.jwt.client import ClientCapabilityToken

account_sid = 'ACXXXXXXXXXXXXXXX'
auth_token = 'secret'
application_sid = 'AP123123'

capability = ClientCapabilityToken(account_sid, auth_token)
capability.allow_client_outgoing(application_sid)
print(capability.to_jwt())

Un dispositivo con este token podrá iniciar conexiones salientes a la VoiceUrl de la aplicación Twilio identificada como AP123123.

Capacidades múltiples

Es perfectamente válido configurar un dispositivo con múltiples capacidades. Por ejemplo, si quieres configurar un cliente para recibir conexiones entrantes e iniciar conexiones salientes, debes crear un token con ambas capacidades e iniciar el dispositivo con él:

from twilio.jwt.client import ClientCapabilityToken

account_sid = 'ACXXXXXXXXXXXXXXX'
auth_token = 'secret'
application_sid = 'AP123123'

capability = ClientCapabilityToken(account_sid, auth_token)
capability.allow_client_incoming('tommy')
capability.allow_client_outgoing(application_sid)
print(capability.to_jwt())

Seguridad

La seguridad es muy importante para nosotros y nos hemos asegurado de que tú, como desarrollador, tengas el control. Tú decides qué derechos de acceso conceder a un dispositivo Twilio Client utilizando tokens de capacidad generados con una de nuestras bibliotecas auxiliares. Nos aseguramos de que se detecte cualquier alteración de los parámetros del token y de que se tomen las acciones adecuadas.

Caducidad de tokens

Por defecto, todos los tokens generados con las bibliotecas auxiliares de Twilio caducan después de una hora. Pero debes configurar esta caducidad para que sea lo más corta posible en tu aplicación. Por ejemplo, si tienes una aplicación solo de salida, podrías establecer la duración de un token para que sea lo suficientemente larga como para establecer cada conexión saliente (digamos 5 segundos) y generar un token nuevo cada vez que un usuario intente una nueva conexión.

Si el token caduca mientras el dispositivo tiene una conexión activa, la conexión no finalizará, pero el dispositivo deberá reinicializarse con un token válido antes de intentar o recibir otra conexión.

Aquí generamos un token que solo es válido durante diez minutos. El argumento de tiempo de vencimiento, ttl , recibe el tiempo en segundos.

capability = ClientCapabilityToken(account_sid, auth_token, ttl=600)
print(capability.to_jwt())
Calificar esta página:

¿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.

        
        
        

        Gracias por tus comentarios.

        Selecciona los motivos de tus comentarios. La información adicional que nos brindas nos ayuda a mejorar nuestra documentación:

        Enviando tus comentarios…
        🎉 Gracias por tus comentarios.
        Se produjo un error. Inténtalo de nuevo.

        Gracias por tus comentarios.

        thanks-feedback-gif