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:

Requisitos de conectividad de red de los SDK de Voice

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

En el siguiente artículo se describen los requisitos de conectividad de red de los SDK de Voice de Twilio. Se muestra una lista de los puertos y direcciones IP de los servidores de Twilio a los que los SDK deben poder conectarse y el ancho de banda requerido para obtener audio de calidad.

Lista de comprobación de conectividad

  1. Elige la edge (ubicación periférica) a la que te conectarás y habilita los servidores de medios y servidores de señalización.
  2. Si utilizas una ubicación periférica de baja latencia global, comprueba los requisitos.
  3. Si tienes acceso a ubicaciones periféricas de interconexión privada, deberás permitir estos destinos
  4. Asegúrate de cumplir los requisitos de ancho de banda.
  5. Revisa las sugerencias y las prácticas recomendadas.
  6. Prueba la conectividad con esta herramienta de comprobación de red.

Descripción general de la conectividad

Las aplicaciones que utilizan los SDK de Voice de Twilio deben conectarse a la infraestructura de Twilio para poder realizar y recibir llamadas. Como se muestra en el siguiente diagrama, se necesitan dos tipos de conexiones: de señalización y multimedia.

La conexión de señalización es una conexión TLS segura que se utiliza para enviar y recibir información de control a fin de configurar las llamadas.

La conexión multimedia es una conexión SRTP (Secure Real-Time Transport Protocol) segura que se utiliza para enviar y recibir audio.

Twilio Client Connectivity

La infraestructura de Programmable Voice de Twilio está implementada en edges (ubicaciones periféricas) de todo el mundo. De forma predeterminada, los SDK utilizan baja latencia global (GLL) a fin de determinar la ubicación periférica de Twilio que sea óptima para conectarse.

Twilio Client Voice SDK Edge Locations

Configuración del firewall

En la configuración de red típica de una organización, se utiliza un firewall para proteger los hosts de la red privada de Internet. Los firewalls están configurados con reglas para bloquear o permitir el tráfico hacia y desde los destinos de Internet según la dirección, el protocolo y la dirección IP.

Twilio Voice SDK Private Edge Locations

Para acceder a Twilio, tu firewall debería permitir el tráfico TCP y UDP saliente desde tus aplicaciones hacia la infraestructura de Twilio, así como permitir el tráfico de retorno como respuesta. Twilio nunca iniciará una conexión con las aplicaciones que utilizan el SDK. Por lo tanto, el firewall no debe permitir conexiones iniciadas externamente de vuelta en la red.

En las secciones de Requisitos de conectividad que aparecen a continuación, se muestra una lista de las direcciones IP y los puertos de destino necesarios. El firewall debe estar configurado para permitir la conectividad con los servidores multimedia y las puertas de enlace de señalización correspondientes al SDK que estás utilizando.

Requisitos de conectividad de los servidores multimedia de Voice

Your Intranet

Allowed destinations

Secure Media (ICE/STUN/SRTP) Edge Locations

Protocol

Source

IP

Source Port †

Destination

IP Ranges

Destination Port Range

sydney (au1)

UDP

ANY

ANY

54.252.254.64 - 54.252.254.127

and

3.104.90.0 - 3.104.90.255

10,000 - 20,000

sao-paulo (br1)

UDP

ANY

ANY

177.71.206.192 - 177.71.206.255

and

18.228.249.0 - 18.228.249.255

10,000 - 20,000

dublin (ie1)

UDP

ANY

ANY

54.171.127.192 - 54.171.127.255

and

52.215.127.0 - 52.215.127.255

10,000 - 20,000

frankfurt (de1)

UDP

ANY

ANY

35.156.191.128 - 35.156.191.255

and

3.122.181.0 - 3.122.181.255

10,000 - 20,000

tokyo (jp1)

UDP

ANY

ANY

54.65.63.192 - 54.65.63.255

and

3.112.80.0 - 3.112.80.255

10,000 - 20,000

singapore (sg1)

UDP

ANY

ANY

54.169.127.128 - 54.169.127.191

and

3.1.77.0 - 3.1.77.255

10,000 - 20,000

ashburn (us1)

UDP

ANY

ANY

54.172.60.0 - 54.172.61.255

and

34.203.250.0 - 34.203.251.255

10,000 - 20,000

roaming (gll)

UDP

ANY

ANY

All IP addresses listed above

10,000 - 20,000

† The SDK will select any available port from the ephemeral range. On most machines, this means the port range 1,024 to 65,535.

Requisitos de conectividad de señalización

Los requisitos de señalización difieren entre el SDK de Voice para JavaScript y los SDK para dispositivos móviles. En la siguiente sección se proporcionan los requisitos de conectividad para cada uno de estos SDK.

Tu Intranet

Destinos permitidos

Protocolo

IP de origen

Puerto de origen †

Destino

Puerto de destino

SDK de Voice para JavaScript

Conexión TLS segura a la puerta de enlace de señalización de Twilio

TCP

CUALQUIERA

CUALQUIERA

chunderw-gll.twilio.com

443

Conexión TLS segura a la puerta de enlace de señalización de Twilio

TCP

CUALQUIERA

CUALQUIERA

chunderw-vpc-gll.twilio.com

443

Conexión TLS segura a las puertas de enlace de señalización regionales de Twilio

TCP

CUALQUIERA

CUALQUIERA

chunderw-vpc-gll-{region}.twilio.com

{La region es una de las siguientes opciones: au1, br1, de1, ie1, jp1, sg1, us1}

443

Conexión TLS segura a la puerta de enlace de registro de Insights

TCP

CUALQUIERA

CUALQUIERA

eventgw.twilio.com

443

SDK de Voice para dispositivos móviles

Conexión TLS segura a la puerta de enlace de señalización de GLL de Twilio

TCP

CUALQUIERA

CUALQUIERA

chunderm.gll.twilio.com §

443

(10194 §)

Conexión TLS segura a las puertas de enlace de señalización regionales de Twilio

TCP

CUALQUIERA

CUALQUIERA

chunderm.{region}.gll.twilio.com §

{La region es una de las siguientes opciones: au1, br1, de1, ie1, jp1, sg1, us1}

443

(10194 §)

Conexión TLS segura a la puerta de enlace de Insights

TCP

CUALQUIERA

CUALQUIERA

eventgw.twilio.com

443

Conexión TLS segura al servidor de registro

TCP

CUALQUIERA

CUALQUIERA

ers.twilio.com

443

† El cliente seleccionará cualquier puerto disponible del rango efímero. En la mayoría de los equipos, esto significa que el rango de puertos va desde 1024 hasta 65 535.

§ Las versiones de los SDK móviles anteriores a la 3.x requieren el puerto 10194, en lugar del 443. Si aún utilizas una versión anterior a la 3.x, te recomendamos que la actualices a la versión más reciente

Ubicaciones periféricas de interconexión privada

Si tienes acceso a las conexiones privadas de interconexión, también podrás utilizar uno de los siguientes valores:

Tu Intranet

Destinos permitidos

Protocolo

IP de origen

Puerto de origen †

Destino

Puerto de destino

us1-ix


TCP CUALQUIERA CUALQUIERA 208.78.112.64 - 208.78.112.127 443
UDP CUALQUIERA CUALQUIERA 208.78.112.64 - 208.78.112.127 10000-20000

us2-ix

TCP

CUALQUIERA

CUALQUIERA

67.213.136.64 - 67.213.136.127

443

UDP

CUALQUIERA

CUALQUIERA

67.213.136.64 - 67.213.136.127

10000-20000

ie1-ix

TCP

CUALQUIERA

CUALQUIERA

185.187.132.64 - 185.187.132.127

443

UDP CUALQUIERA

CUALQUIERA

185.187.132.64 - 185.187.132.127

10000-20000

de1-ix

TCP

CUALQUIERA

CUALQUIERA

185.194.136.64 - 185.194.136.127

443

UDP CUALQUIERA

CUALQUIERA

185.194.136.64 - 185.194.136.127

10000-20000

sg1-ix**

TCP

CUALQUIERA

CUALQUIERA

103.75.151.64 - 103.75.151.127

443

UDP CUALQUIERA

CUALQUIERA

103.75.151.64 - 103.75.151.127

10000-20000

jp1-ix**

TCP CUALQUIERA CUALQUIERA 103.144.142.68 - 103.144.142.69 - 103.144.142.70 443
UDP CUALQUIERA

CUALQUIERA

103.144.142.68 - 103.144.142.69 - 103.144.142.70

10000-20000

au1-ix**

TCP

CUALQUIERA

CUALQUIERA

103.144.214.68 - 103.144.214.69 - 103.144.214.70

443

UDP CUALQUIERA

CUALQUIERA

103.144.214.68 - 103.144.214.69 - 103.144.214.70

10000-20000

† El cliente seleccionará cualquier puerto disponible del rango efímero. En la mayoría de los equipos, esto significa que el rango de puertos va desde 1024 hasta 65 535.

** Requiere el SDK 1.9.5+ de Voice para JavaScript

Requisitos de ancho de banda de red

En la siguiente tabla se muestra una lista de los requisitos de red para ofrecer audio de una calidad razonable.

Ancho de banda (conexión de subida/conexión de bajada)

Opus*: 40 kbps/40 kbps

PCMU: 100 kbps/100 kbps

Latencia (RTT)

< 200 ms

Fluctuación

< 30 ms

Pérdida de paquetes

< 3 %

* El códec Opus está disponible en la versión 1.7 del SDK de Voice para JavasScript y en la versión 3.x de los SDK de Voice para dispositivos móviles

Ten en cuenta que los requisitos de ancho de banda de Opus mencionados anteriormente son los valores predeterminados de Opus. Para admitir el control de ancho de banda, el códec Opus te permite especificar cuánto ancho de banda debe usar. Consulta la sección Sugerencias y prácticas recomendadas que aparece a continuación para saber cómo configurar los requisitos de ancho de banda de Opus.

Requisitos de baja latencia global

GLL es una característica de AWS Route53 que resuelve un nombre de host en la ubicación periférica con menor latencia. De esta forma, se elimina la necesidad de que el desarrollador de la aplicación determine desde dónde se conecta el usuario final o elija manualmente a qué ubicación periférica conectarse.

Sin embargo, para que GLL proporcione resultados precisos, el DNS intermedio debe cumplir con esto:

  • Debe ser compatible con RFC 7871: Subred de client (cliente) en consultas de DNS.
  • Debe estar en la misma edge (ubicación periférica) que el punto final del SDK. Por ejemplo, un host en los EE. UU. configurado con una VPN en Europa o configurado con un servidor DNS que está en Europa se conectará a una ubicación periférica de Twilio en Europa.

Si el DNS intermedio no es compatible con RFC 7871 y la dirección IP del DNS ascendente es una dirección Anycast, por ejemplo, 8.8.8.8, no hay garantía de que Route53 determine con precisión la mejor ubicación periférica a la que conectarse.

Cómo determinar si GLL funcionará

Para determinar si tu DNS es compatible con GLL, utiliza los comandos dig o nslookup de la siguiente manera:

dig edns-client-sub.net TXT

O mediante nslookup

nslookup -type=txt edns-client-sub.net

Un servidor DNS compatible con esta RFC tendrá ecs establecido en True y contendrá un objeto ecs_payload:

;; ANSWER SECTION:

edns-client-sub.net. 30 IN TXT "{'ecs_payload':{'family':'1','optcode':'0x08','cc':'US','ip':'34.225.44.0','mask':'24','scope':'0'},'ecs':'True','ts':'1588973397.05','recursive':{'cc':'US','srcip':'208.69.32.67','sport':'11807'}}"

Un servidor que no sea compatible con esta RFC tendrá ecs establecido en False:

;; ANSWER SECTION:

edns-client-sub.net. 0 IN TXT "{'ecs':'False','ts':'1588973475.23','recursive':{'cc':'US','srcip':'76.96.15.65','sport':'54989'}}"

Sugerencias y prácticas recomendadas

Utiliza una ubicación periférica específica

Si tienes una red restrictiva y especificas GLL al momento de conectarte con Twilio, deben permitirse todas las direcciones IP del servidor multimedia en todas las ubicaciones periféricas. Si no estás operando en todas las ubicaciones periféricas, te recomendamos que especifiques la ubicación periférica más cercana a la implementación. Con este enfoque, solo tendrás que permitir las direcciones del servidor multimedia de la ubicación que especifiques.

Para seleccionar la ubicación periférica, utiliza el siguiente fragmento de código:

const device = new Twilio.Device(token, { edge: 'ashburn'});

//o

const device = new Twilio.Device(token);
device.updateOptions({ edge: 'ashburn' });

// En versiones anteriores a v2.0, device.setup(token, { edge: 'ashburn' })
// era lo que se usaba. A partir de v2.0, device.setup() está obsoleto.

// Antes de la versión v1.11 se utilizaba el parámetro region.
// Ahora region está obsoleto, utiliza edge
Twilio.Device.setup(token, { region: 'us1'});

// Configura la ubicación periférica 
Voice.setEdge("ashburn");

// Luego, puedes conectar o gestionar las notificaciones de llamadas entrantes


// Antes del SDK 5.3 para Android, se utilizaba region
// region ahora está obsoleto y se debe usar edge
Voice.setRegion("us1");

// Configura la ubicación periférica
TwilioVoice.edge = "ashburn"

// Luego, puedes conectar o gestionar las notificaciones de llamadas entrantes

// Antes del SDK 5.4 para iOS, se utilizaba region
// region ahora está obsoleto y se debe usar edge
TwilioVoice.region = "us1"

Consulta la documentación de la API para iOS a fin de obtener más información.

Utiliza el servicio de recorrido transversal de red (NTS) de Twilio cuando no se puedan permitir los puertos UDP

Para obtener la mejor calidad de audio, el firewall debe permitir a los hosts locales iniciar la conexión con Twilio y enviar tráfico UDP (DTLS/SRTP) a los servidores multimedia de Twilio.

Sin embargo, si tu política de red prohíbe la conectividad UDP, puedes utilizar el servicio de recorrido transversal de red (NTS) global de Twilio para establecer la conectividad multimedia a través de TCP o TLS. Consulta la documentación del NTS para obtener una lista de servidores y puertos TURN que también se deben permitir.

Ten en cuenta que el uso de TURN conlleva cargos adicionales según el precio del NTS. Consulta el servicio de recorrido transversal de red global para obtener más información.

Utiliza el códec Opus para controlar los requisitos de ancho de banda

El códec Opus tiene muchas ventajas en comparación con PCMU y tus aplicaciones deben utilizarlo. Opus es el códec predeterminado de los SDK móviles.

Para utilizar Opus en la aplicación web, utiliza el siguiente fragmento de código a la hora de crear una instancia de Twilio.Device o a la hora de actualizar las opciones de Twilio.Device con updateOptions(options).

const device = new Twilio.Device(token, { codecPreferences: ['opus', 'pcmu']});
//o
const device = new Twilio.Device(token);
device.updateOptions({ codecPreferences: ['opus', 'pcmu']});

Para establecer un ancho de banda personalizado (16 kbps), utiliza el siguiente fragmento de código:

const device = new Twilio.Device(token, { codecPreferences: ['opus', 'pcmu'], maxAverageBitrate: 16000} );
// o
const device = new Twilio.Device(token);
device.updateOptions({ codecPreferences: ['opus', 'pcmu'], maxAverageBitrate: 16000});

Utiliza la interconexión privada de Twilio para mejorar la seguridad y el control del ancho de banda

Twilio ofrece varias soluciones para la conectividad privada y segura con Twilio. Consulta https://www.twilio.com/interconnect para obtener más información.

Temas relacionados

¿Primeros pasos? Consulta todas nuestras guías introductorias.

Consulta más sobre nuestras prácticas recomendadas.

Lee más sobre las Edge Locations (ubicaciones periféricas) de Twilio.

Comprueba la conectividad con Twilio mediante esta herramienta de evaluación de red.

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