Início rápido do Programmable Voice para C#/.NET
Com apenas algumas linhas de código, o aplicativo .NET pode fazer e receber chamadas telefônicas com o Programmable Voice da Twilio.
Este início rápido ensina como fazer isso usando nossa API REST, a biblioteca auxiliar Twilio C#/.NET e a estrutura ASP.NET para facilitar o desenvolvimento.
Neste início rápido, você aprende a:
- Inscrever‐se na Twilio e obter o primeiro número de telefone Twilio habilitado para voz
- Configurar o ambiente de desenvolvimento para fazer e receber chamadas telefônicas
- Fazer uma chamada telefônica de saída que reproduza um MP3
- 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 no Youtube nosso vídeo sobre como fazer e receber chamadas telefônicas com C#.
Inscreva‐se e obtenha um número de telefone Twilio
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 telefônica em C#, você precisa de uma conta Twilio. Inscreva‐se aqui para obter sua conta de avaliação gratuita ou faça login em uma conta que você 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).
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 as coisas usando a biblioteca auxiliar C#/.NET oficial da Twilio. Vamos instalar em seguida.
Instale o .NET e o pacote Twilio .NET
Se você já passou por outro de nossos inícios rápidos C#/.NET e já tem o .NET e a biblioteca auxiliar da Twilio .NET instalada, você pode pular esta etapa e ir direto para fazer sua primeira chamada telefônica.
Para fazer sua primeira chamada telefônica, é necessário ter o .NET e o pacote Twilio .NET instalados.
Instale o Visual Studio ou o .NET Core
Se você tiver o Visual Studio instalado, já pode para começar. Se você espera usar o .NET Core com um editor que não seja o Visual Studio, pode verificar se você já tem o .NET Core instalado em sua máquina ao abrir um terminal e executar o seguinte comando:
dotnet --version
Você deve ver algo como:
$ dotnet --version
2.1.4
Se você ainda não tiver o .NET Core instalado e não for usar o Visual Studio, poderá baixar o .NET Core da Microsoft.
O pacote Twilio .NET oferece suporte ao .NET Framework 3.5 e superior, bem como a qualquer estrutura que ofereça suporte ao .NET Standard 1.4.
Instale o pacote Twilio .NET
A maneira mais fácil de instalar a biblioteca é com o NuGet, o gerenciador de pacotes .NET que permite instalar as bibliotecas necessárias.
Visual Studio
Se você estiver usando o Visual Studio, selecione o menu "File" (Arquivo) e escolha "New" (Novo), depois "Project..." (Projeto) e selecione "Console App" (Aplicativo de console) (o .NET Core ou o .NET Framework funcionarão).
Em seguida, selecione "Tools" (Ferramentas), "NuGet Package Manager" (Gerenciador de pacotes NuGet) e "Package Manager Console" (Console do gerenciador de pacotes) no menu principal do Visual Studio e digite este comando:
Install-Package Twilio
Linha de comando .NET Core
Se você estiver usando a ferramenta de linha de comando dotnet
, execute estes comandos para criar um novo projeto .NET:
mkdir twilio-test
cd twilio-test
dotnet new console
dotnet add package Twilio
Fazer uma chamada telefônica com C#
Agora que temos o .NET e a biblioteca do Twilio .NET instalados, podemos fazer uma chamada telefônica a partir do número de telefone do Twilio que acabamos de comprar com uma única solicitação de API. Abra o arquivo em seu novo projeto chamado Program.cs e digite ou cole neste exemplo de código, substituindo o código de modelo que já está lá.
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 "url" aponta para alguns TwiML (Twilio Markup Language), que informa ao Twilio o que fazer a seguir quando nosso destinatário atende o telefone. Este TwiML diz ao Twilio para ler uma mensagem usando conversão de texto em voz e depois reproduzir um MP3.
No entanto, antes que esse código funcione, precisamos editá‐lo um pouco para trabalhar com sua conta do 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. Você pode revelar seu Auth Token (token de autenticação) clicando no ícone de olho:
Edite Program.cs
e substitua os valores de accountSid
e authToken
por seus valores exclusivos.
Observação: não há problema em codificar suas credenciais ao começar, mas você deve usar a configuração para mantê‐las secretas antes de implantar na produção. Os aplicativos ASP.NET devem usar o sistema de configuração integrado para ASP.NET no .NET Framework ou ASP.NET Core. Outros tipos de aplicativos .NET podem usar variáveis de ambiente.
Substituir 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. Pode ser qualquer número de telefone que possa receber chamadas, mas é recomendável testar com o seu telefone para ver a magia em ação! Como acima, você deve usar a formatação E.164 para esse valor.
Salve suas alterações e execute este código no Visual Studio ou no seu terminal:
dotnet run
É 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 da 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.
Configure o ASP.NET MVC para receber chamadas
Quando o seu número Twilio recebe uma chamada, a Twilio envia uma solicitação HTTP para o seu servidor. 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 XML do TwiML informando como responder à mensagem. Vamos ver como criaríamos isso em C# usando ASP.NET MVC para .NET Framework 4.6.1. Se preferir usar o ASP.NET Core, confira este artigo. Se precisar usar a API da Web ASP.NET, também temos um artigo para isso.
Crie um novo projeto MVC ASP.NET no Visual Studio
No Visual Studio, selecione o menu "File" (Arquivo) e escolha "New" (Novo), depois "Project..." (Projeto) e selecione "ASP.NET Web Application (.NET Framework)." (Aplicativo Web ASP.NET [.NET Framework]).
Em seguida, escolha o modelo "MVC".
Instale o pacote Twilio.AspNet.Mvc
Selecione "Tools" (Ferramentas), "NuGet Package Manager" (Gerenciador de pacotes NuGet) e "Package Manager Console" (Console do gerenciador de pacotes) no menu principal do Visual Studio e digite o seguinte comando:
Install-Package Twilio.AspNet.Mvc -DependencyVersion HighestMinor
Criar um novo controlador
No diretório chamado Controllers
, crie um novo Controlador chamado VoiceController.cs
e use o código a seguir para criar um servidor que possa lidar com chamadas recebidas.
Executar o projeto no Visual Studio. Você deve ver a página inicial do ASP.NET MVC em execução no localhost
e um número de porta aleatório.
Você precisa tornar seu aplicativo acessível pela Internet. Mostraremos como configurar isso a seguir para que seu app possa receber chamadas.
Permita que a Twilio se comunique com seu aplicativo ASP.NET com o ngrok
Acabamos de criar um pequeno aplicativo ASP.NET MVC para aceitar chamadas telefônicas. Antes de funcionar, precisamos ter certeza de que a Twilio pode acessar nosso aplicativo.
A maioria dos serviços Twilio usa webhooks para se comunicar com seu aplicativo. Quando a Twilio recebe uma chamada telefônica, por exemplo, ela acessa uma URL em seu aplicativo para obter instruções sobre como lidar com a mensagem.
Quando você está trabalhando em seu aplicativo ASP.NET em seu ambiente de desenvolvimento, seu aplicativo só pode ser acessado por outros programas em seu computador, portanto, o Twilio não poderá se comunicar com ele. Precisamos resolver esse problema tornando seu aplicativo acessível pela Internet.
Embora haja muitas maneiras de fazer isso, como implantar seu aplicativo no Azure ou AWS, você provavelmente deseja uma maneira menos trabalhosa de testar seu aplicativo Twilio. Para uma maneira leve de disponibilizar seu aplicativo na Internet, recomendamos uma ferramenta chamada ngrok. O ngrok escuta na mesma porta em que seu servidor Web local está sendo executado e fornece um URL exclusivo no domínio ngrok.io, encaminhando as solicitações recebidas para seu ambiente de desenvolvimento o local. Funciona mais ou menos assim:
Se você ainda não fez isso, instale o Ngrok Extensions for Visual Studio. Para obter mais informações sobre o ngrok, incluindo ótimas dicas e truques, confira esta postagem detalhada no blog.
Depois de instalar o Extensions for Visual Studio, reinicie o Visual Studio e reabra o projeto. Inicie seu projeto novamente para abrir a página inicial. Em seguida, enquanto ele estiver em execução, selecione "Start ngrok Tunnel" (Iniciar túnel do ngrok) no menu "Tools" (Ferramentas).
Agora temos um novo URL externo.
Configurar o webhook do URL
Para que a Twilio saiba onde procurar, configure o número de telefone Twilio para chamar o URL do webhook sempre que receber uma chamada.
- Faça login em twilio.com e vá para a página Numbers (Números) no Console.
- Clique em seu número de telefone habilitado para voz.
- Localize a seção Voice & Fax (Voz e fax). Você precisa do padrão "CONFIGURE WITH" (Configure com): "Webhooks, TwiML Bins, [etc.]"
- Na seção "A CALL COMES IN" (Uma chamada é recebida), selecione "Webhook" e cole em sua URL: nesta etapa acima do início rápido, seria:
https://354f5b25.ngrok.io/voice
. Adicione/voice
no final, pois este é a rota para oVoiceController
da classe.
Salve suas alterações. Está tudo pronto!
Testar o aplicativo
Verifique se você está executando o projeto no Visual Studio e se o túnel ngrok está em execução. Se você reiniciou o ngrok, atualize o webhook no console para usar o URL correto.
Com ambos os servidores em execução, estamos prontos para a parte divertida: testar nosso novo aplicativo de voz ASP.NET!
Faça uma chamada telefônica do celular para o número de telefone Twilio. Você deve ver uma solicitação HTTP no console do ngrok. O aplicativo ASP.NET processará a solicitação recebida e responderá com o TwiML. Em seguida, você ouvirá sua mensagem assim que a chamada for conectada.
Para onde ir em seguida?
Agora você conhece o básico sobre como fazer e responder a chamadas telefônicas com C#.
Nosso aplicativo ASP.NET aqui usou apenas o verbo TwiML <Say> para ler uma mensagem para o autor da chamada usando conversão de voz, mas você pode fazer muito mais com diferentes verbos TwiML, como <Record>, <Gather> e <Conference>.
Confira estas páginas para saber mais:
- Reunir a entrada do usuário por meio do teclado (tons DTMF) no C#
- Saiba como gravar chamadas telefônicas de entrada e saída do Twilio Voice usando C#
- Criar chamadas de conferência no C#
- Consulte a documentação de referência da API Programmable Voice da Twilio
- Saiba como modificar chamadas em andamento com C#
- Deseja fazer uma chamada a partir do seu navegador ou aplicativo móvel? Use o Twilio Client para integrar chamadas VoIP de alta qualidade.
- Recupere informações sobre chamadas em andamento e concluídas de sua conta Twilio usando C#.
- Confira nosso tutorial completo do aplicativo sobre como transferir chamadas de um agente de suporte para outro com C# e ASP.NET MVC
Estamos ansiosos para ver o que você vai criar!
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.