https://d226lax1qjow5r.cloudfront.net/blog/blogposts/create-a-conference-call-with-java-dr/conference-call-java-feature.png

Cómo crear una multiconferencia con Java

Publicado el May 10, 2021

Tiempo de lectura: 9 minutos

En este tutorial, aprenderá a iniciar una conferencia telefónica para conectar a varias personas que llaman a un número. El código de ejemplo está en GitHub.

Anteriormente, le hemos mostrado cómo Recibir una llamada telefónica y Desviar una Llamada Telefónica así que si aún no estás familiarizado con esos conceptos, lee esos posts primero.

Requisitos previos

Utilizará Gradle para gestionar tus dependencias y ejecutar tu aplicación. Adicionalmente, necesitarás asegurarte de que tienes una copia del JDK instalada. Yo usaré JDK 11 en este tutorial, pero cualquier JDK 8 y superior debería funcionar.

Por último, necesitarás la CLI de Vonage instalada. La usarás para comprar un número de teléfono y configurar tu cuenta de Vonage para que apunte a tu nueva aplicación.

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

This tutorial also uses a virtual phone number. To purchase one, go to Numbers > Buy Numbers and search for one that meets your needs.

Crear una multiconferencia con Java

Este tutorial le guiará a través de los siguientes pasos:

  1. Uso de Gradle para configurar un nuevo proyecto Java.

  2. Uso de la plataforma Spark para controlar la llamada.

  3. Comprar un número y configurar tu cuenta de Vonage para usar ese número con tu aplicación.

Uso de Gradle para crear un nuevo proyecto Java

Utilizarás Gradle para gestionar tus dependencias y para crear y ejecutar tu aplicación Java.

El comando gradle init --type=java-application creará todas las carpetas que necesites, así como una clase de ejemplo en la que escribirás tu código.

Desde la línea de comandos, crea un nuevo proyecto Java con los siguientes comandos, aceptando cualquiera de las indicaciones por defecto de Gradle:

mkdir conference-call cd conference-call gradle init --type=java-application

Gradle creará la clase App clase en la carpeta src/main/java/conference/call carpeta

Dentro de esta clase hay una clase getGreeting y main . No necesitarás el método getGreeting así que siéntete libre de eliminarlo.

Su clase App debe tener este aspecto:

/*
 * This Java source file was generated by the Gradle 'init' task.
 */
package conference.call;

public class App {
    public static void main(String[] args) {
        // Future Code Goes Here
    }
}

Uso del marco Spark para controlar la llamada

Utilizarás el framework Spark para recibir una llamada HTTP realizada por Vonage cuando tu número reciba una llamada.

Añadir las dependencias

Añada lo siguiente al bloque dependencies del archivo build.gradle archivo:

// Spark Framework
implementation "com.sparkjava:spark-core:2.8.0"

// Nexmo Java Client
implementation "com.nexmo:client:5.1.0"

El bloque dependencies debe tener este aspecto:

dependencies {
    implementation "com.sparkjava:spark-core:2.8.0"
    implementation "com.nexmo:client:5.1.0"
 
    // Use JUnit test framework
    testImplementation 'junit:junit:4.12'
}

Definir la ruta de respuesta

Cuando se recibe una llamada, Vonage enviará una solicitud a una URL de webhook predefinida. Espera recibir un objeto de control de llamadas de Vonage (NCCO) que contiene una lista de acciones a ejecutar.

Utilizará la acción talk para saludar a la persona que llama y la acción conversation para conectar las llamadas entrantes a una conferencia.

Esta es la OCN resultante que creará su aplicación:

[
  {
    "text": "You will now be added to the conference call.",
    "action": "talk"
  },
  {
    "name": "team-meeting",
    "action": "conversation"
  }
]

Utilizará las etiquetas TalkAction y ConversationAction del SDK del servidor Java de Vonage para crear la OCNC anterior.

Añada el siguiente código al método main método

TalkAction talk = TalkAction.builder("You will now be added to the conference call.")
        .build();
ConversationAction conversation = ConversationAction.builder("team-meeting")
        .build();

Ncco ncco = new Ncco(talk, conversation);

Ahora que has definido la NCCO, configurarás Spark para servir la NCCO. Tu aplicación escuchará en el puerto 3000 y la ruta será /webhooks/answer.

Añade lo siguiente al método main método:

port(3000);
get("/webhooks/answer", (req, res) -> {
    res.type("application/json");
    return ncco.toJson();
});

El método main tendrá ahora este aspecto:

public static void main(String[] args) {
    TalkAction talk = TalkAction.builder("You will now be added to the conference call.")
        .build();
    ConversationAction conversation = ConversationAction.builder("team-meeting")
        .build();

    Ncco ncco = new Ncco(talk, conversation);

    port(3000);
    get("/webhooks/answer", (req, res) -> {
        res.type("application/json");
        return ncco.toJson();
    });
}

Comprar un Numbers

Necesitarás un número de Vonage para recibir llamadas telefónicas. Si no tienes un número, puedes usar la CLI de Vonage para comprar uno:

vonage numbers:buy NUMBER COUNTRYCODE

Nota: NUMBER aquí representa el número que desea comprar, y COUNTRYCODE el prefijo del país para ese número. Si aún no conoces el número, puedes buscar los números disponibles en un país concreto de esta forma (aquí estamos buscando números en EE.UU.):

vonage numbers:search US

Anote el número que ha adquirido. Necesitará este número para vincular su solicitud y para las pruebas.

Cómo exponer su aplicación

Para enviar una solicitud HTTP a tu aplicación, Vonage necesita conocer la URL en la que se ejecuta tu aplicación.

En lugar de configurar su red local o alojar su aplicación en un servicio externo, puede utilizar ngrok para exponer tu aplicación a Internet de forma segura.

Descargue ngrok y ejecute el siguiente comando:

ngrok http 3000

Tome nota de la dirección de reenvío, ya que la necesitará cuando configure su Account. En la siguiente imagen, la dirección de reenvío es http://99cad2de.ngrok.io.

Screenshot of ngrok running in a terminal with forwarding address http://99cad2de.ngrok.iongrok running in a terminal

Configura tu cuenta de Vonage

Si no tienes una aplicación, puedes usar la CLI de Vonage para crear una usando tu dirección de reenvío ngrok:

vonage apps:create "Conference Call Demo" --voice_answer_url=http://your-ngrok-forwarding-address/webhooks/answer --voice_event_url=http://your-ngrok-forwarding-address/webhooks/events

Tras ejecutar este comando, se le mostrará un identificador de aplicación. Por ejemplo: notreal-1111-2222-3333-appid. Necesitará este identificador de aplicación para vincular su número de teléfono a la aplicación.

Puedes usar la CLI de Vonage para vincular tu número de teléfono y aplicación:

vonage apps:link your-application-id --number=your-vonage-phone-number

Pruebe su aplicación

Inicie su aplicación con el comando gradle run dentro de su directorio conference-call directorio.

Llama a tu número de Vonage y pide a un amigo, colega u otro teléfono que haga lo mismo. Cada nueva persona que llame entrará en la conferencia telefónica.

Conclusión

En unas pocas líneas de código, has creado una aplicación que puede crear conferencias telefónicas con varias personas.

Consulta nuestra documentación en Vonage Developer donde podrás obtener más información sobre flujo de llamadas o Objetos de control de llamadas de Vonage.

También puede consultar la Conferencia telefónica para ver este ejemplo y muchos más.

Compartir:

https://a.storyblok.com/f/270183/150x150/a3d03a85fd/placeholder.svg
Steve CrowAntiguos alumnos de Vonage

Steve se autoproclama matemático y rey de la sátira. También le gustan los galgos, los rompecabezas enrevesados y los juegos de mesa europeos. Cuando no está hablando de matemáticas con gente que no es matemática o de Java con gente que no es de Java, se le puede encontrar tomando café y hackeando código.