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

Menu

Expand
Classifique esta página:

Requisitos de conectividade de rede para SDKs de Voice

O SDK do Twilio Client JavaScript foi renomeado para SDK do Twilio Voice JavaScript.

O artigo a seguir descreve os requisitos dos SDKs de Voice da Twilio para conectividade de rede. Ele lista as portas e os endereços IP dos servidores Twilio que os SDKs devem conseguir alcançar e a largura de banda necessária para áudio de qualidade.

Lista de verificação de conectividade

  1. Escolha a edge (borda) à qual você se conectará e permita Servidores de mídia e Servidores de sinalização
  2. Se você estiver usando o edge (borda) de baixa latência global, verifique os requisitos
  3. Se você tiver acesso a edges (bordas) de Interconexão Privada, precisará dar permissão a esses destinos
  4. Certifique‐se de atender aos requisitos de largura de banda
  5. Verifique as recomendações e as melhores práticas
  6. Teste sua conectividade usando esta ferramenta de teste de rede

Visão geral da conectividade

Os aplicativos que usam SDKs de Voice da Twilio exigem conectividade com a infraestrutura da Twilio para poder efetuar e receber chamadas. Conforme mostrado no diagrama abaixo, dois tipos de conexões são necessários: Sinalização e mídia.

A conexão de sinalização é uma conexão TLS segura usada para enviar e receber informações de controle para configurar chamadas

A conexão de mídia é uma conexão SRTP (Secure Real-Time Transport Protocol) segura usada para enviar e receber áudio.

Twilio Client Connectivity

A infraestrutura de Programmable Voice da Twilio é implantada em edges (bordas) em todo o mundo. Por padrão, os SDKs usam GLL (Global Low Latency, baixa latência global) para determinar o edge (borda) ideal da Twilio ao qual se conectar.

Twilio Client Voice SDK Edge Locations

Configuração de firewall

Em uma configuração típica de rede da organização, um firewall é usado para proteger os hosts de rede privada da Internet. Os firewalls são configurados com regras para bloquear ou permitir o tráfego de e para destinos da Internet com base na direção, protocolo e endereço IP.

Twilio Voice SDK Private Edge Locations

Para acessar a Twilio, o firewall deve permitir o tráfego TCP e UDP de saída de seus aplicativos para a infraestrutura da Twilio e permitir o tráfego de retorno em resposta. A Twilio nunca iniciará uma conexão com os aplicativos SDK. Portanto, o firewall não deve permitir que conexões iniciadas externamente retornem à rede.

Nas seções de Requisitos de conectividade a seguir, os endereços IP e as portas de destino necessários são listados. Seu firewall deve ser configurado para permitir a conectividade com os Servidores de mídia e os Gateways de sinalização correspondentes ao SDK que você está usando.

Requisitos de conectividade dos servidores de mídia 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 conectividade de sinalização

Os requisitos de sinalização diferem entre o SDK de JavaScript do Voice e os SDKs para dispositivos móveis. A seção a seguir fornece os requisitos de conectividade para cada um desses SDKs.

Sua Intranet

Destinos permitidos

Protocolo

IP de origem

Porta de origem †

Destino

Porta de destino

SDK de JavaScript do Voice

Conexão TLS segura com o Gateway de sinalização da Twilio

TCP

QUALQUER

QUALQUER

chunderw-gll.twilio.com

443

Conexão TLS segura com o Gateway de sinalização da Twilio

TCP

QUALQUER

QUALQUER

chunderw-vpc-gll.twilio.com

443

Conexão TLS segura com Gateways de sinalização regional da Twilio

TCP

QUALQUER

QUALQUER

chunderw-vpc-gll-{região}.twilio.com

{Onde região é uma de: au1, br1, de1, ie1, jp1, sg1, us1}

443

TLS segura com Gateway de registro de Insights

TCP

QUALQUER

QUALQUER

eventgw.twilio.com

443

SDKs de Voice para dispositivos móveis

Conexão TLS segura com Gateway de sinalização GLL da Twilio

TCP

QUALQUER

QUALQUER

chunderm.gll.twilio.com §

443

(10194 §)

Conexão TLS segura com Gateways de sinalização regional da Twilio

TCP

QUALQUER

QUALQUER

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

{Onde região é uma de: au1, br1, de1, ie1, jp1, sg1, us1}

443

(10194 §)

TLS segura para Gateway de Insights

TCP

QUALQUER

QUALQUER

eventgw.twilio.com

443

TLS segura para servidor de registro

TCP

QUALQUER

QUALQUER

ers.twilio.com

443

† O cliente selecionará qualquer porta disponível no intervalo efêmero. Na maioria dos computadores, isso significa o intervalo de portas de 1.024 a 65.535.

§ As versões de SDKs para dispositivos móveis anteriores à 3.x requerem a porta 10194 em vez da 443. Se ainda estiver usando a versão anterior à 3.x, recomendamos que você atualize para a versão mais recente

Edge locations (locais de borda) de interconexão privada

Se você tiver acesso a conexões de interconexão privada, também poderá usar um dos seguintes valores:

Sua Intranet

Destinos permitidos

Protocolo

IP de origem

Porta de origem †

Destino

Porta de destino

us1-ix


TCP QUALQUER QUALQUER 208.78.112.64 a 208.78.112.127 443
UDP QUALQUER QUALQUER 208.78.112.64 a 208.78.112.127 10000-20000

us2-ix

TCP

QUALQUER

QUALQUER

67.213.136.64 a 67.213.136.127

443

UDP

QUALQUER

QUALQUER

67.213.136.64 a 67.213.136.127

10000-20000

ie1-ix

TCP

QUALQUER

QUALQUER

185.187.132.64 - 185.187.132.127

443

UDP QUALQUER

QUALQUER

185.187.132.64 a 185.187.132.127

10000-20000

de1-ix

TCP

QUALQUER

QUALQUER

185.194.136.64 a 185.194.136.127

443

UDP QUALQUER

QUALQUER

185.194.136.64 a 185.194.136.127

10000-20000

sg1-ix**

TCP

QUALQUER

QUALQUER

103.75.151.64 a 103.75.151.127

443

UDP QUALQUER

QUALQUER

103.75.151.64 a 103.75.151.127

10000-20000

jp1-ix**

TCP QUALQUER QUALQUER 103.144.142.68 - 103.144.142.69 - 103.144.142.70 443
UDP QUALQUER

QUALQUER

103.144.142.68 - 103.144.142.69 - 103.144.142.70

10000-20000

au1-ix**

TCP

QUALQUER

QUALQUER

103.144.214.68 - 103.144.214.69 - 103.144.214.70

443

UDP QUALQUER

QUALQUER

103.144.214.68 - 103.144.214.69 - 103.144.214.70

10000-20000

† O cliente selecionará qualquer porta disponível no intervalo efêmero. Na maioria dos computadores, isso significa o intervalo de portas de 1.024 a 65.535.

** Requer Voice JavaScript SDK 1.9.5 ou superior

Requisitos de largura de banda de rede

A tabela a seguir lista os requisitos de rede para fornecer qualidade de áudio razoável.

Largura de banda (Uplink/downlink)

Opus*: 40kbps / 40kbps

PCMU: 100kbps / 100kbps

Latência (RTT)

< 200 ms

Jitter

< 30 ms

Perda de pacote

< 3%

* O codec Opus está disponível a partir do Voice JavaScript SDK versão 1.7 e Mobile Voice SDKs versão 3.x

Observe que os requisitos de largura de banda Opus listados acima são as configurações padrão para Opus. O codec Opus é compatível com o controle de largura de banda, permitindo que você especifique quanta largura de banda ele deve usar. Consulte a seção recomendações e melhores práticas abaixo para saber como configurar os requisitos de largura de banda de Opus.

Requisitos globais de baixa latência

GLL é um recurso AWS Route53 que resolve um nome de host para o edge location (local de borda) com a menor latência. Isso elimina a necessidade do desenvolvedor de aplicativos determinar de onde o usuário final está se conectando ou escolher manualmente a edge (borda) à qual se conectar.

No entanto, para que a GLL forneça resultados precisos, o DNS intermediário deve:

  • Ser compatível com RFC 7871 - Sub-rede do Client (cliente) em consultas DNS.
  • Estar na mesma edge (borda) do endpoint do SDK. Por exemplo, um host nos EUA configurado com uma VPN para a Europa ou configurado com um servidor DNS residente na Europa resultará na conexão desse host ao edge (borda) da Twilio na Europa

Se o DNS intermediário não for compatível com RFC 7871 e o endereço IP DNS upstream for um endereço Anycast, por exemplo, 8.8.8.8, não haverá garantia de que o Route53 determinará com precisão o melhor edge (borda) a ser conectado.

Como determinar se GLL funcionará

Para determinar se seu DNS é compatível com GLL, use os comandos dig ou nslookup da seguinte forma:

dig edns-client-sub.net TXT

Ou use o nslookup

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

Um servidor DNS compatível com esta RFC terá o ecs definido como True (verdadeiro) e contém um 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'}}"

Um servidor que não é compatível com esta RFC terá o ecs definido como False (Falso):

;; ANSWER SECTION:

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

Recomendações e melhores práticas

Use um edge location (local de borda) específico

Se você tiver uma rede restritiva e especificar GLL ao se conectar a Twilio, todos os endereços IP do servidor de mídia em todos os edge locations (locais de borda) deverão ser permitidos. Se você não estiver operando em todos os edges (bordas), recomendamos que você especifique o edge (borda) mais próximo da sua implantação. Com essa abordagem, você só precisará permitir os endereços do servidor de mídia para o edge (borda) especificado.

Para selecionar o edge (borda), use o seguinte trecho:

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

//or

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

// Prior to v2.0, device.setup(token, { edge: 'ashburn' })
// was used. A partir da v2.0, device.setup() fica obsoleto.

// Antes da v1.11, o parâmetro region era usado.//
region agora está obsoleto, use
edgeTwilio.Device.setup(token, { region: 'us1'});

// Defina a borda
Voice.setEdge("ashburn");

// Em seguida, você pode conectar ou lidar com a notificação de chamada recebida


// Antes do Android SDK 5.3, a região era usada
// a região está obsoleta, use borda em vez disso
Voice.setRegion("us1");

s// Defina a borda
TwilioVoice.edge = "ashburn"

// Em seguida, você pode conectar ou lidar com a notificação de chamada recebida

// Antes do ios SDK 5.4, a região era usada
// região está obsoleta, use borda
TwilioVoice.region = "us1\”

Consulte a documentação da API do iOS para obter mais informações

Use o Serviço transversal de rede (NTS) da Twilio quando as portas UDP não forem permitidas

Para obter a melhor qualidade de áudio, o firewall deve permitir que os hosts locais iniciem a conexão com a Twilio e enviem tráfego UDP (DTLS/SRTP) para os servidores de mídia Twilio.

No entanto, se a sua diretiva de rede proibir a conectividade UDP, você poderá utilizar o Serviço transversal de rede Global (NTS) da Twilio para estabelecer a conectividade de mídia por TCP ou TLS. Consulte a documentação do NTS para obter uma lista de servidores e portas TURN que também precisarão ser permitidos.

Observe que o uso de TURN incorre em taxas extras de acordo com o preço do NTS. Consulte Serviço transversal de rede global para obter mais informações.

Usar o codec Opus para controlar os requisitos de largura de banda

O codec Opus tem muitas vantagens em relação à PCMU e deve ser usado por seus aplicativos. Opus é o codec padrão para SDKs para dispositivos móveis.

Para usar o Opus em seu aplicativo da Web, use o trecho a seguir ao instanciar oTwilio.Device ou atualize as opções do Twilio.Device com o updateOptions(options):

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

Para definir uma largura de banda personalizada (16 kbps), use o seguinte trecho:

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

Use a Interconexão privada da Twilio para segurança aprimorada e Controle de largura de banda

A Twilio oferece várias soluções para conectividade privada e segura com a Twilio. Consulte https://www.twilio.com/interconnect para obter mais detalhes.

Tópicos relacionados

Vamos começar? Veja todos os nossos Guias de introdução

Confira mais algumas de nossas Melhores práticas

Leia mais sobre Edge Locations (Locais de borda) da Twilio

Verifique a conectividade com a Twilio usando esta ferramenta de teste de rede

Classifique esta página:

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.

        
        
        

        Obrigado pelo seu feedback!

        Selecione o(s) motivo(s) para seu feedback. As informações adicionais que você fornece nos ajudam a melhorar nossa documentação:

        Enviando seu feedback...
        🎉 Obrigado pelo seu feedback!
        Algo deu errado. Tente novamente.

        Obrigado pelo seu feedback!

        thanks-feedback-gif