Inicio rápido de voz programable para C# y .NET
Con solo unas pocas líneas de código, la aplicación de .NET puede realizar y recibir llamadas telefónicas con voz programable de Twilio.
Este inicio rápido te enseñará a hacerlo con el uso de nuestra API REST, la biblioteca auxiliar de Twilio para C# y .NET, y el marco de ASP.NET a fin de facilitar el desarrollo.
En este inicio rápido, aprenderás lo siguiente:
- Registrarte en Twilio y obtener tu primer número de teléfono de Twilio con voz habilitada
- Configurar tu entorno de desarrollo para realizar y recibir llamadas telefónicas
- Realizar una llamada telefónica saliente que reproduce MP3
- Recibir y responder una llamada telefónica entrante que lee un mensaje para el agente de llamada mediante la conversión de texto a voz
¿Prefieres ver un video para comenzar? Mira nuestro video sobre cómo realizar y recibir llamadas telefónicas con C# en YouTube.
Regístrate en Twilio y obtén un número de teléfono de Twilio
Si ya tienes una cuenta de Twilio y un número de teléfono de Twilio con voz habilitada, ¡ya tienes todo listo! Inicia sesión y, a continuación, no dudes en ir al paso siguiente.
Antes de poder hacer una llamada desde C#, necesitarás una cuenta de Twilio. Regístrate aquí para obtener una cuenta de prueba gratuita o inicia sesión en una cuenta que ya tengas.
Lo siguiente que necesitarás es un número de teléfono de Twilio con capacidad de voz. Si actualmente no posees un número de teléfono de Twilio con la funcionalidad de llamada por voz, deberás comprar uno. Después de ir a la página Buy a Number (Comprar un número), marca la casilla "Voice" (Voz) y haz clic en "Search" (Buscar).
A continuación, verás una lista de los números de teléfono disponibles y sus capacidades. Busca el número que más te guste y haz clic en "Buy" (Comprar) para añadirlo a tu cuenta.
Ahora que tienes una cuenta de Twilio y un número de teléfono programable, dispones de las herramientas básicas que necesitas para hacer una llamada telefónica.
Podrías usar la API HTTP de Twilio para hacer tus llamadas telefónicas, pero facilitaremos aún más las cosas mediante la biblioteca auxiliar oficial de Twilio para C# y .NET. Instalémosla a continuación.
Instala .NET y el paquete .NET de Twilio
Si ya has visto uno de nuestros otros inicios rápidos de C# y .NET, y tienes .NET y la biblioteca auxiliar de Twilio para .NET instalados, puedes saltarte este paso e ir directamente a hacer tu primera llamada telefónica.
Para hacer tu primera llamada telefónica, necesitarás tener .NET y el paquete .NET de Twilio instalados.
Instala Visual Studio o .NET Core
Si tienes Visual Studio instalado, ya tienes todo listo para empezar. Si pretendes utilizar .NET Core con un editor que no sea Visual Studio, puedes verificar si ya lo tienes instalado en el equipo. Para ello, abre un terminal y ejecuta el siguiente comando:
dotnet --version
Deberías ver algo así:
$ dotnet --version
2.1.4
Si no aún tienes .NET Core instalado y no vas a utilizar Visual Studio, puedes descargar .NET Core desde Microsoft.
El paquete .NET de Twilio es compatible con .NET Framework 3.5 y versiones posteriores, así como con cualquier marco compatible con .NET Standard 1.4.
Instala el paquete .NET de Twilio
La forma más fácil de instalar la biblioteca es usando NuGet, el administrador de paquetes de .NET que te permite instalar las bibliotecas que necesitas.
Visual Studio
Si utilizas Visual Studio, selecciona el menú "File" (Archivo), elige "New" (Nuevo) y, luego, "Project..." (Proyecto), y selecciona "Console App" (Aplicación de consola) (tanto .NET Core como .NET Framework funcionarán).
A continuación, selecciona "Tools" (Herramientas), "NuGet Package Manager" (Administrador de paquetes NuGet) y "Package Manager Console" (Consola del administrador de paquetes) en el menú principal de Visual Studio, y escribe este comando:
Install-Package Twilio
Línea de comandos de .NET Core
Si utilizas la herramienta de línea de comandos dotnet
, ejecuta estos comandos para crear un nuevo proyecto de .NET:
mkdir twilio-test
cd twilio-test
dotnet new console
dotnet add package Twilio
Realiza una llamada telefónica saliente con C#
Ahora que tenemos .NET y la biblioteca de Twilio para .NET instalados, podemos hacer una llamada telefónica saliente desde el número de teléfono de Twilio que acabamos de comprar mediante una sola solicitud de API. Abre el archivo en el nuevo proyecto denominado Program.cs y escribe o pega este ejemplo de código para reemplazar la plantilla de código que ya existe.
Este código inicia una llamada telefónica entre los dos números de teléfono que pasamos como argumentos. El número "from" (de) es nuestro número de Twilio, y el número “to” (a) es a quien queremos llamar.
El argumento "url" se dirige a elementos en TwiML (Twilio Markup Language), que le indica a Twilio qué hacer a continuación cuando nuestro destinatario contesta el teléfono. Este TwiML le indica a Twilio que lea un mensaje usando la conversión de texto a voz y que, luego, reproduzca MP3.
Sin embargo, antes de que este código funcione, necesitamos editarlo un poco para que sirva con tu cuenta de Twilio.
Reemplaza los valores de los marcadores de posición de credenciales
Cambia los valores de los marcadores de posición accountSid
y authToken
por tus credenciales personales de Twilio. Ve a https://www.twilio.com/console e inicia sesión. En esta página, encontrarás tu Account SID (SID de cuenta) y Auth Token (Token de autenticación) únicos, que necesitarás cada vez que envíes mensajes a través de Twilio Client de esta forma. Para revelar tu token de autenticación, puedes hacer clic en el ícono de globo ocular:
Edita Program.cs
y reemplaza los valores de accountSid
y authToken
con tus valores únicos.
Nota: Está bien codificar de forma fija tus credenciales cuando comiences, pero debes utilizar la configuración para mantenerlas en secreto antes de implementarlas en producción. Las aplicaciones de ASP.NET deben utilizar el sistema de configuración integrado para ASP.NET en .NET Framework o ASP.NET Core. Otros tipos de aplicaciones de .NET podrían utilizar variables de entorno.
Sustituir los números de teléfono to y from
¿Recuerdas el número de teléfono con voz habilitada que compraste hace solo unos minutos? Sustituye el número from
(de) existente por ese número, y asegúrate de utilizar el formato E.164:
[+][código de país][número de teléfono con el código de área]
A continuación, reemplaza el número de teléfono "to" (a) por tu número de teléfono celular. Podría ser cualquier número de teléfono que pueda recibir llamadas, pero es buena idea probar con tu teléfono para que veas cómo funciona el proceso. Como se indicó anteriormente, debes utilizar el formato E.164 en este valor.
Guarda los cambios y ejecuta este código en Visual Studio o desde el terminal:
dotnet run
¡Eso es todo! Tu teléfono debería sonar con una llamada de tu número de Twilio, y escucharás nuestro breve mensaje para ti. 😉
Si utilizas una cuenta de prueba de Twilio, las llamadas telefónicas salientes se limitarán a los números de teléfono que hayas verificado con Twilio. Los números de teléfono se pueden comprobar a través de los ID de agente de llamada verificados de la consola de Twilio. Para conocer las demás restricciones y limitaciones de la cuenta de prueba, consulta nuestra guía sobre cómo trabajar con tu cuenta de prueba gratuita de Twilio.
Configura ASP.NET MVC para recibir llamadas
Cuando tu número de Twilio reciba una llamada entrante, Twilio enviará una solicitud de HTTP a un servidor que controles. Este mecanismo de devolución de llamada se conoce como webhook. Cuando Twilio envía una solicitud a tu aplicación, espera una respuesta en el formato XML en TwiML que le indica cómo responder al mensaje. Veamos cómo generaríamos esto en C# mediante ASP.NET MVC para .NET Framework 4.6.1. Si prefieres utilizar ASP.NET Core, consulta este artículo. Si necesitas usar la API web de ASP.NET, tenemos un artículo para ello también.
Crea un nuevo proyecto de ASP.NET MVC en Visual Studio
En Visual Studio, selecciona el menú "File" (Archivo), elige "New" (Nuevo) y, luego, "Project..." (Proyecto), y selecciona "ASP.NET Web Application (.NET Framework)" (Aplicación web de ASP.NET [.NET Framework]).
A continuación, elige la plantilla "MVC".
Instala el paquete Twilio.AspNet.Mvc
Selecciona "Tools" (Herramientas), "NuGet Package Manager" (Administrador de paquetes NuGet) y "Package Manager Console" (Consola del administrador de paquetes) en el menú principal de Visual Studio, y escribe el siguiente comando:
Install-Package Twilio.AspNet.Mvc -DependencyVersion HighestMinor
Crea un nuevo controlador
En el directorio denominado Controllers
, crea un nuevo controlador llamado VoiceController.cs
y utiliza el siguiente código para crear un servidor que pueda gestionar las llamadas entrantes.
Ejecuta el proyecto desde Visual Studio. Deberías ver la página inicial de ASP.NET MVC ejecutándose en localhost
y un número de puerto aleatorio.
Tendrás que hacer que tu aplicación sea accesible a través de Internet. A continuación, te mostraremos cómo configurarla para que tu app pueda recibir llamadas.
Permite que Twilio hable con tu aplicación de ASP.NET mediante ngrok
Acabamos de crear una pequeña aplicación de ASP.NET MVC para aceptar llamadas telefónicas entrantes. Antes de que funcione, necesitamos asegurarnos de que Twilio pueda llegar a nuestra aplicación.
La mayoría de los servicios de Twilio utilizan webhooks para comunicarse con ella. Cuando Twilio recibe una llamada telefónica, por ejemplo, llega a una URL en tu aplicación para obtener instrucciones sobre cómo gestionar el mensaje.
Cuando trabajas en tu aplicación de ASP.NET en el entorno de desarrollo, la app solo es accesible a través de otros programas de tu computadora, por lo que Twilio no podrá hablar con ella. Para resolver este problema, debemos hacer que la aplicación sea accesible a través de Internet.
Aunque hay muchas maneras de hacerlo, como implementar la aplicación en Azure o AWS, probablemente querrás una forma menos laboriosa de probar tu aplicación de Twilio. Para hacer que la app esté disponible en Internet de manera ligera, te recomendamos una herramienta llamada ngrok. ngrok escucha en el mismo puerto en el que se ejecuta tu servidor web local y proporciona una URL única en el dominio ngrok.io, lo que reenvía las solicitudes entrantes al entorno de desarrollo local. Funciona así:
Si aún no lo has hecho, instala las extensiones de ngrok para Visual Studio. Para obtener más información sobre ngrok, incluidos algunos consejos y trucos excelentes, revisa esta publicación detallada del blog.
Después de instalar la extensión de Visual Studio, deberás reiniciar Visual Studio y volver a abrir el proyecto. Vuelve a iniciar el proyecto para abrir la página de inicio. A continuación, mientras se está ejecutando, selecciona "Start ngrok Tunnel" (Iniciar túnel ngrok) en el menú "Tools" (Herramientas).
Ahora tenemos una nueva URL externa.
Configura la URL de tu webhook
A fin de que Twilio sepa dónde buscar, necesitas configurar tu número de teléfono de Twilio para llamar a la URL de tu webhook siempre que ingrese una llamada.
- Inicia sesión en twilio.com y ve a la página de números de la consola.
- Haz clic en el número de teléfono con voz habilitada.
- Busca la sección Voice & Fax (Voz y fax). Lo que necesitas es la opción predeterminada "CONFIGURE WITH" (Configurar con): "Webhooks, TwiML Bins, [etc.]"
- En la sección "A CALL COMES IN" (Entra una llamada), selecciona "Webhook" y pégalo en la URL. En este paso de inicio rápido anterior, sería así:
https://354f5b25.ngrok.io/voice
; asegúrate de añadir/voice
al final, ya que esta es la ruta a tu clase deVoiceController
.
Guarda los cambios. ¡Ya tienes todo listo!
Prueba tu aplicación
Asegúrate de ejecutar el proyecto en Visual Studio y de que el túnel ngrok esté activo. Si reiniciaste ngrok, tendrás que actualizar el webhook en la consola para utilizar la URL correcta.
Con ambos servidores en ejecución, estamos listos para la parte divertida: probar nuestra nueva aplicación de voz de ASP.NET.
Realiza una llamada desde tu teléfono celular a tu número de teléfono de Twilio. Deberías ver una solicitud de HTTP en la consola de ngrok. Tu app de ASP.NET procesará la solicitud entrante y responderá con tu TwiML. A continuación, oirás el mensaje una vez que se conecte la llamada.
¿Dónde ir a continuación?
Ahora ya conoces los conceptos básicos de realizar y responder llamadas telefónicas con C#.
Nuestra app de ASP.NET aquí solo utilizó el verbo <Say> (Decir) en TwiML para leer un mensaje al agente de llamada mediante la conversión de texto a voz, pero puedes hacer mucho más con diferentes términos en TwiML, como <Record> (Grabar), <Gather> (Recopilar) y <Conference> (Conferencia).
Consulta estas páginas para obtener más información:
- Recopila las entradas del usuario a través del teclado (tonos DTMF) en C#
- Obten información sobre cómo grabar llamadas telefónicas entrantes y salientes de Twilio Voice mediante C#
- Crea llamadas de conferencia en C#
- Consulta la documentación de referencia de la API sobre voz programable de Twilio
- Obten información sobre cómo modificar llamadas en curso con C#
- ¿Deseas realizar una llamada desde el navegador o la aplicación? Utiliza Twilio Client para integrar llamadas VoIP de alta calidad.
- Recupera información sobre llamadas en curso y finalizadas desde tu cuenta de Twilio con el uso de C#.
- Consulta nuestro tutorial de aplicación de muestra completa sobre cómo transferir llamadas de un agente de soporte a otro con C# y ASP.NET MVC.
¡Nos emociona ver lo que construirás!
¿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.