Realización de llamadas de voz con Java y Twilio
Tiempo de lectura: 3 minutos
La capacidad de realizar llamadas salientes desde el código tiene un historial largo en Twilio. Solo le tomará unos minutos configurar un proyecto Java para hacer eso y ver la magia por usted mismo. Para seguir esta publicación, necesitará:
- Una instalación Java 8 o más reciente, recomiendo SDKMAN! para instalar y administrar versiones de Java.
- Un IDE de Java (a mí me gusta IntelliJ IDEA, pero si tiene uno favorito también puede utilizarlo).
- Una cuenta Twilio (si aún no tiene una, regístrese aquí para obtener una cuenta gratuita y recibirá un crédito de $10 cuando realice la actualización)
- Un número de teléfono Twilio que puede enviar y recibir llamadas de voz. Puede comprar uno en su consola Twilio.
La forma más sencilla de llamar a la API de Twilio es con Java Helper Library. En este tutorial, voy a dar ejemplos con la herramienta de creación Apache Maven, que descargará y administrará la dependencia y empaquetará el proyecto. Puede ponerse al día con Maven en 5 minutos y otras herramientas, como Gradle, también funcionarán si eso es lo que prefiere.
Si desea saltar al final, revise el proyecto finalizado en GitHub.
Creación de un proyecto nuevo
Lo primero que debe hacer es crear un proyecto nuevo. Cree un nuevo directorio y abra su IDE.
Un proyecto nuevo de Maven
Puede crear un proyecto nuevo de Maven en IntelliJ IDEA usando estos ajustes:
También es posible crear la misma configuración desde la línea de comandos mediante la creación de un directorio para su código de origen con la estructura de directorio estándar con mkdir -p src/Main/java
y un archivo llamado pom.xml
con este contenido:
Para finalizar la configuración del proyecto, debemos indicar a Maven que descargue Twilio Helper Library para Java y utilice Java 8 (cualquier versión más reciente también será correcta). Actualice el archivo pom.xml
para asegurarse de que las siguientes propiedades y dependencias estén presentes:
En el código
En src/main/java
, cree una clase llamada TwilioMakeVoiceCall
con un paquete de org.example
. La estructura del directorio será:
Inicie la clase TwilioMakeVoiceCall
con un método main
:
En el método principal, debe hacer dos cosas:
- Autentique el cliente de Twilio con su SID de cuenta y Token de autenticación
- Llame a la API para hacerle sonar el teléfono a alguien
Veamos cómo se ve ese código.
Autenticar el cliente de Twilio
Necesitará su ACCOUNT_SID
y AUTH_TOKEN
de su consola Twilio. Debe mantener esto en secreto, de modo que siempre recomiendo leer esto de las variables del entorno en lugar de integrarlos. Uso Plugin EnvFile para IntelliJ IDEA y hay alternativas para otros IDE o puede configurarlos en su sistema operativo. Una vez que se establecen en el entorno, agregue este código en el cuerpo de la función principal ()
:
Realice su primera llamada
Después de autenticar su cliente de Twilio, utilice el siguiente código en su método main
para realizar una llamada telefónica:
[este código incluidas las importaciones en GitHub]
Reemplace las notas en las líneas 7 y 8 con números de teléfono reales, en formato E.164.
Este código hace tres cosas:
- Crea algunas instrucciones para lo que Twilio debe hacer durante la llamada
- Crea la llamada utilizando esas instrucciones y los números de teléfono “para” y “de”
- Imprime el SID de llamada
Veamos esto con más detalle.
Instrucciones para la llamada
Twilio toma instrucciones en un idioma que llamamos TwiML, significa Twilio Markup Language resumido. El TwiML generado por el código anterior es:
Este es el “Saludos, mundo” de TwiML y hay muchas posibilidades más. Puede decir mensajes, reproducir grabaciones ,grabar la llamada, reunir tonos de voz o DTMF, crear llamadas de conferencia, transmitir audio a otro servicio y mucho más.
Creación de la llamada
El método Call.creator(...)
anterior toma los números “para” y “de”, así como el código TwiML. En este caso, hemos proporcionado TwiML directamente como una cadena
. Otra opción es transmitir una dirección URL en lugar de TwiML. Twilio realizará una solicitud a esa URL, ingresando metadatos sobre la llamada y la respuesta debe contener el TwiML que se utilizará.
Existen algunas opciones para hospedar TwiML en Twilio:
- TwiML Bins: TwiML fijo, útil para una rápida creación de prototipos o servicios simples.
- Twilio Functions: una plataforma JavaScript sin servidores que puede tener lógica compleja o llamar a otros servicios en línea
Para obtener la máxima flexibilidad, puede alojar su propio servicio web utilizando cualquier pila que desee. Siempre y cuando devuelva una etiqueta TwiML válida con un tipo de contenido de application/xml
, estará bien.
SID de llamada
A cada llamada que Twilio realiza o recibe se le otorga un identificador de cadena (SID). Puede utilizar el SID para buscar los detalles de la llamada (estado, duración, costo) en la página Registros de llamadas en la consola de Twilio.
En conclusión
Ahora sabe cómo realizar llamadas con Java y Twilio. A continuación, puede aprender cómo manejar las llamadas entrantes. O quizás le gustaría aprender cómo enviar y recibir mensajes SMS.
Publicaciones relacionadas
Recursos relacionados
Twilio Docs
Desde API hasta SDK y aplicaciones de muestra
Documentación de referencia de API, SDK, bibliotecas auxiliares, inicios rápidos y tutoriales para su idioma y plataforma.
Centro de Recursos
Los últimos libros electrónicos, informes de la industria y seminarios web
Aprenda de los expertos en participación del cliente para mejorar su propia comunicación.
Ahoy
Centro de la comunidad de desarrolladores de Twilio
Mejores prácticas, ejemplos de códigos e inspiración para crear comunicaciones y experiencias de participación digital.