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:

Início rápido do Programmable Voice para Node.js

Com apenas algumas linhas de código, seu aplicativo Node.js pode fazer e receber chamadas telefônicas com o Programmable Voice da Twilio.

Este início rápido do Node.js ensina como fazer isso usando nossa API REST e a biblioteca auxiliar Twilio Node.js para facilitar o desenvolvimento.

Neste início rápido, você aprende a:

  1. Inscrever‐se na Twilio e obter o primeiro número de telefone Twilio habilitado para voz
  2. Configurar o ambiente de desenvolvimento para fazer e receber chamadas telefônicas
  3. Fazer uma chamada telefônica de saída que reproduza um MP3
  4. Receber e responder a uma chamada telefônica de entrada que leia uma mensagem para o autor da chamada usando conversão de texto em voz

Prefere começar assistindo a um vídeo? Confira nosso vídeo sobre como enviar e receber chamadas telefônicas com o Node.js no YouTube.

Mostre‑me como se faz!

Inscreva‐se na Twilio e obtenha um número de telefone

Se já tiver uma conta e um número de telefone da Twilio habilitado para voz, tudo está em ordem! Faça login e fique à vontade para ir para a próxima etapa.

Antes de fazer uma chamada do Node.js, crie uma conta Twilio ou faça login em uma conta que já possui.

A próxima coisa que você precisa é um número de telefone da Twilio com capacidade de voz. Se você não possui atualmente um número de telefone da Twilio com funcionalidade de chamada de voz, precisará adquirir um. Após navegar até a página Comprar um número, marque a caixa "Voice" (Voz) e clique em "Search" (Pesquisar).

Search for voice capable numbers

Você verá uma lista de números de telefone disponíveis e seus recursos. Encontre um número que se adapte às suas necessidades e clique em "Buy" (Comprar) para adicioná‐lo à sua conta.

Com uma conta Twilio e um número de telefone programável, você tem as ferramentas básicas necessárias para fazer uma chamada telefônica.

Você pode usar a API HTTP da Twilio para fazer suas chamadas telefônicas, mas simplificaremos ainda mais simples usando o módulo Twilio para Node.js. Vamos instalar agora.

Leve‑me até a configuração!

Instale o Node.js e o módulo Twilio Node.js

Se você já passou por um de nossos guias de início rápido do Node.js e tem o Node.js e o módulo Twilio Node.js instalados, você pode pular esta etapa e ir direto para fazer a primeira chamada telefônica.

Você pode verificar se já tem o Node.js instalado em sua máquina abrindo um terminal e executando o seguinte comando:

$ node --version

Você deve ver algo como:

$ node --version
v8.9.1

Se estiver na versão 2.11 ou anterior, recomendamos que faça a atualização com a versão mais recente.

Se você não tiver o Node.js já instalado, você pode instalá‐lo com o homebrew, outro gerenciador de pacotes, entrando no seu terminal e digitando isso na linha de comando:

brew install node

Se você tiver uma máquina Windows, instale o nvm-windows para instalar tanto o Node.js quanto o npm, o gerenciador de pacotes Node.js. Os usuários do Windows podem seguir este excelente tutorial aqui.

Instalar o módulo Twilio Node.js

A maneira mais fácil de instalar a biblioteca é usando o npm, o gerenciador de pacotes Node.js que permite instalar as bibliotecas necessárias. Basta ativar um terminal ou uma interface de linha de comando em sua máquina que já tenha o Node e o npm instalados e executar o seguinte comando em um novo diretório.

npm install twilio
Tudo pronto! Vamos fazer uma chamada telefônica

Fazer uma chamada telefônica com o Node.js

Vamos fazer bom uso da biblioteca Twilio Node.js.

Com uma única solicitação de API, podemos fazer uma chamada outbound do número de telefone Twilio que acabamos de comprar. Abra um novo arquivo chamado "make_call.js" e digite ou cole no código a seguir.

        
        
        

        Faça uma chamada outbound

        Esse código inicia uma chamada telefônica entre os dois números de telefone que passamos como argumentos. O número "from" (de) é o nosso número Twilio, e o número "to" (para) é o número para o qual desejamos ligar.

        O argumento de URL aponta para alguns TwiML, que informam à Twilio o que fazer quando o destinatário atender o telefone. Este TwiML instrui o Twilio a ler uma mensagem usando conversão de voz e depois reproduzir um MP3.

        No entanto, antes que esse código funcione, precisamos editá‐lo um pouco para funcionar com sua conta Twilio.

        Substitua os valores de credencial do espaço reservado

        Troque os valores de espaço reservado para accountSid e authToken com suas credenciais pessoais do Twilio.

        Faça login em https://www.twilio.com/console. Nesta página, você encontrará seu Account SID (SID da conta) e o Auth Token (token de autenticação) exclusivos, que serão necessários sempre que enviar mensagens por meio do Twilio Client como essa. Você pode revelar seu Auth Token (token de autenticação) clicando no ícone de olho:

        Abra make_call.js e substitua os valores de accountSid e authToken por seus valores exclusivos.

        Observe: não há problema em codificar suas credenciais ao começar, mas você deve usar variáveis de ambiente para mantê‐las secretas antes de implantar na produção. Confira como definir variáveis de ambiente para obter mais informações.

        Substitua os números de telefone to (para) e from (de)

        Lembra daquele número de telefone habilitado para voz que você acabou de comprar? Use‐o para substituir o número from (de) existente, use a formatação E.164:

        [+][código do país][número de telefone incluindo código de área]

        Em seguida, substitua o número de telefone to (para) pelo seu número de telefone celular. Esse número pode ser para qualquer telefone que possa receber chamadas, mas é recomendável testar com seu telefone para ver a magia em ação! Como acima, você deve usar a formatação E.164 para esse valor.

        Salve as alterações e execute o código com o seguinte comando no terminal:

        node make_call.js

        É isso! Seu telefone deve tocar com uma chamada do seu número Twilio e você ouvirá uma breve mensagem nossa. 😉

        Se você estiver usando uma conta de avaliação da Twilio, as chamadas telefônicas de saída serão limitadas aos números de telefone verificados com o Twilio. Os números de telefone podem ser verificados por meio dos IDs de autor de chamada verificados do console Twilio. Para outras restrições e limitações da conta de avaliação, consulte nosso guia sobre como trabalhar com sua conta de avaliação gratuita da Twilio.

        Em seguida, aprenderemos a responder a uma chamada feita para o número de telefone Twilio. Primeiro, precisaremos colocar um servidor Express em funcionamento.

        Vamos lá!

        Receba e responda a chamadas de voz inbound com Node.js e Express

        Quando o número Twilio recebe uma chamada telefônica, ele envia uma solicitação HTTP para um servidor que você controla. Esse mecanismo de retorno de chamada é conhecido como webhook. Quando a Twilio envia uma solicitação ao seu aplicativo, ela espera uma resposta no formato TwiML XML que informa como responder à chamada.

        Para lidar com chamadas telefônicas recebidas, precisaremos de um aplicativo da Web leve para aceitar solicitações HTTP recebidas da Twilio. Embora você possa usar qualquer número de estruturas da Web para fazer e receber chamadas do aplicativo, usaremos Node.js com a estrutura Express neste início rápido.

        Na linha de comando, execute

        npm install express --save
        

        Agora vamos criar um arquivo chamado "server.js" e usar o código a seguir para criar um servidor que possa gerenciar as mensagens recebidas.

              
              
              

              Generate TwiML to Say a message

              Execute este servidor com o seguinte comando:

              node server.js

              Se você abrir a porta local em http://127.0.0.1:1337/, verá que o servidor em execução na porta 1337 retorna algum XML ao navegador com a mensagem que gostaríamos de ler para as chamadas recebidas.

              Agora, tudo o que precisamos fazer é expor esse endpoint à Twilio.

              Como a Twilio se comunica com meu aplicativo?

              Permitir que a Twilio se comunique com seu aplicativo

              Antes de instruir a Twilio sobre o que fazer em resposta a uma chamada recebida, primeiro é necessário expor o servidor ao público. Quando você executa seu servidor de desenvolvimento local, as chances são muito altas, ele só é acessível na rede local. Mas não se preocupe, mostraremos uma maneira fácil de testar o servidor.

              Muitos produtos e serviços da Twilio usam webhooks para se comunicar com seu aplicativo. Por exemplo, quando a Twilio recebe uma chamada, ela acessa um URL específico fornecido para pesquisar instruções sobre como lidar com a resposta.

              O pequeno código no server.js é um exemplo de uma instrução que você pode usar para "retornar" ao autor da chamada. Temos apenas de encontrar uma forma de expor este servidor ao público.

              Embora haja muitas maneiras de tornar esse código público (por exemplo, implantando‐o em um host), recomendamos uma ferramenta chamada ngrok. Ao iniciar o ngrok, ele fornece um URL exclusivo no domínio ngrok.io e encaminha as solicitações recebidas para seu ambiente de desenvolvimento local.

              A arquitetura fica assim:

              How ngrok helps Twilio reach your local server

              Se você ainda não usa o ngrok, acesse a página de download e pegue o binário apropriado para o seu sistema operacional. Após o download, descompacte o pacote.

              Se você estiver trabalhando em um Mac ou Linux, está tudo pronto. Se você estiver no Windows, siga nosso guia sobre como instalar e configurar o ngrok no Windows. Para obter mais informações sobre o ngrok, incluindo ótimas dicas e truques, confira esta postagem detalhada no blog.

              Exponha seu servidor local com o ngrok

              Após o download, tente executar o arquivo de servidor que criamos anteriormente:

              node server.js

              O aplicativo local deve ser executado localmente para que o ngrok cumpra seu papel.

              Em seguida, abra uma nova guia ou janela de terminal e inicie o ngrok com este comando:

              ngrok http 1337

              Se o seu servidor local for executado em uma porta diferente, substitua 1337 pelo número de porta correto.

              A saída deve ser semelhante a esta:

              ngrok-node-voice-1337port

              Copie o URL público desta saída e cole‐o no navegador. Você verá a mensagem "Hello from your pals at Twilio!" (Saudações de seus amigos da Twilio!) no aplicativo Express.

              Configurar o webhook da Twilio

              Agora, você deve pegar esse URL público e configurá‐lo como um webhook para um dos seus números de telefone no console. Volte para o console, selecione seu número de telefone, altere "A CALL COMES IN" (Uma chamada é recebida) para Webhook e insira a URL externa do seu serviço, como "https://069a61b7.ngrok.io/", como mostrado acima.

              where-to-put-ngrok-url-configure-number-nodejs-voice-qs

              Clique em "Save" (Salvar) e retorne ao terminal. Verifique se o ngrok ainda está em execução em uma guia e, em outra, execute o node server.js se ainda não estiver em execução.

              Faça uma chamada telefônica para o número de telefone Twilio. Em alguns instantes, você verá uma solicitação HTTP no console do ngrok e ouvirá uma mensagem curta assim que a chamada for conectada.

              Pronto. Você fez e recebeu uma chamada com o Node.js com sucesso.

              Funcionou! O que vem a seguir?

              Para onde ir em seguida?

              Agora você conhece o básico sobre como fazer e responder a chamadas telefônicas com o Node.js.

              Este aplicativo usou apenas o verbo <Say> TwiML para ler uma mensagem para o autor da chamada usando a conversão de voz. Com diferentes verbos TwiML, você pode criar outras construções poderosas e fluxos de chamada. Experimente alguns, como <Record>, <Gather> e <Conference>.

              Confira estas páginas para saber mais:

              Estamos ansiosos para ver o que você vai criar!

              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