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:

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:

  1. Registrarte en Twilio y obtener tu primer número de teléfono de Twilio con voz habilitada
  2. Configurar tu entorno de desarrollo para realizar y recibir llamadas telefónicas
  3. Realizar una llamada telefónica saliente que reproduce MP3
  4. 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.

¡Muéstrame cómo se hace!

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.

¡No hay problema! Guíame a través de la configuració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).

Visual Studio New Console App

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
¡Todo listo! Hagamos una llamada telefónica.

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.

        
        
        

        Make an outgoing call using Twilio and C#

        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.

        ¡Hice una llamada! ¿Cómo las recibo?

        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]).

        Visual Studio New ASP.NET Web Application (.NET Framework)

        A continuación, elige la plantilla "MVC".

        Visual Studio New ASP.NET Web Application (.NET Framework) - 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.

              
              
              

              Receive an incoming call using Twilio, C#, and ASP.NET MVC

              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.

              Visual Studio New ASP.NET Web Application - Home page

              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.

              Configuremos mi app para que reciba 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í:

              How ngrok helps Twilio reach your local server

              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).

              Ngrok Extensions for Visual Studio

              Ngrok Extensions for Visual Studio - running

              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.

              1. Inicia sesión en twilio.com y ve a la página de números de la consola.
              2. Haz clic en el número de teléfono con voz habilitada.
              3. 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.]"
              4. 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 de VoiceController.

              Voice Webhook ngrok/voice

              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.

              ¡Funcionó! Todo listo. ¿Qué sigue?

              ¿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:

              ¡Nos emociona ver lo que construirás!

              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