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

Wie man eine Telefonkonferenz mit Java erstellt

Zuletzt aktualisiert am May 10, 2021

Lesedauer: 9 Minuten

In diesem Tutorial lernen Sie, wie Sie eine Telefonkonferenz einleiten, um mehrere Personen zu verbinden, die eine Nummer anrufen. Der Beispielcode ist auf GitHub.

Zuvor haben wir Ihnen gezeigt, wie Sie Telefonanrufe entgegennehmen und Weiterleiten eines Telefonanrufs Wenn Sie also mit diesen Concepts noch nicht vertraut sind, sollten Sie diese Beiträge zuerst lesen.

Voraussetzungen

Sie werden Folgendes verwenden Gradle verwenden, um Ihre Abhängigkeiten zu verwalten und Ihre Anwendung auszuführen. Außerdem müssen Sie sicherstellen, dass Sie eine Kopie des JDK installiert haben. Ich werde in diesem Tutorial JDK 11 verwenden, aber jedes JDK 8 und höher sollte funktionieren.

Schließlich benötigen Sie die Vonage CLI installiert sein. Damit erwerben Sie eine Telefonnummer und konfigurieren Ihr Vonage-Konto so, dass es auf Ihre neue Anwendung verweist.

Vonage API-Konto

Um dieses Tutorial durchzuführen, benötigen Sie ein Vonage API-Konto. Wenn Sie noch keines haben, können Sie sich noch heute anmelden und mit einem kostenlosen Guthaben beginnen. Sobald Sie ein Konto haben, finden Sie Ihren API-Schlüssel und Ihr API-Geheimnis oben auf dem Vonage-API-Dashboard.

In diesem Lernprogramm wird auch eine virtuelle Telefonnummer verwendet. Um eine zu erwerben, gehen Sie zu Rufnummern > Rufnummern kaufen und suchen Sie nach einer Nummer, die Ihren Anforderungen entspricht.

Erstellen einer Telefonkonferenz mit Java

In dieser Anleitung werden Sie durch die folgenden Schritte geführt:

  1. Gradle zum Einrichten eines neuen Java-Projekts verwenden.

  2. Die Verwendung des Spark Framework zur Steuerung des Aufrufs.

  3. Kauf einer Nummer und Konfiguration Ihres Vonage-Accounts zur Nutzung dieser Nummer mit Ihrer Anwendung.

Gradle zum Einrichten eines neuen Java-Projekts verwenden

Sie werden Gradle verwenden, um Ihre Abhängigkeiten zu verwalten und um Ihre Java-Anwendung zu erstellen und auszuführen.

Der Befehl gradle init --type=java-application erstellt alle Ordner, die Sie benötigen, sowie eine Beispielklasse, in der Sie Ihren Code schreiben werden.

Erstellen Sie von der Kommandozeile aus ein neues Java-Projekt mit den folgenden Befehlen und akzeptieren Sie eine der Standardaufforderungen von Gradle:

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

Gradle erstellt die App Klasse im Ordner src/main/java/conference/call Ordner.

Innerhalb dieser Klasse befindet sich ein getGreeting und main Methode. Sie brauchen die getGreeting Methode nicht benötigen, also können Sie sie entfernen.

Ihre App Klasse sollte wie folgt aussehen:

/*
 * 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
    }
}

Verwendung des Spark-Frameworks zur Steuerung des Aufrufs

Sie werden das Spark-Framework verwenden, um einen HTTP-Anruf von Vonage zu empfangen, wenn Ihre Nummer einen Anruf erhält.

Hinzufügen der Abhängigkeiten

Fügen Sie den folgenden Text zum dependencies Block in Ihrer build.gradle Datei hinzu:

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

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

Ihr dependencies Block sollte wie folgt aussehen:

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'
}

Definieren Sie die Antwortroute

Wenn ein Anruf eingeht, sendet Vonage eine Anfrage an eine vordefinierte Webhook-URL. Es erwartet den Empfang eines Vonage Anrufsteuerungsobjekt (NCCO) mit einer Liste von Aktionen, die ausgeführt werden sollen.

Sie werden die Aktion talk Aktion zur Begrüßung des eingehenden Anrufers und die conversation Aktion, um eingehende Anrufe mit einer Konferenz zu verbinden.

Dies ist die resultierende NCCO, die Ihre Anwendung erstellen wird:

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

Sie verwenden die TalkAction und ConversationAction Klassen aus dem Vonage Java Server SDK für die Erstellung des obigen NCCO.

Fügen Sie den folgenden Code in die main Methode hinzu:

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

Nachdem Sie nun das NCCO definiert haben, konfigurieren Sie Spark, um das NCCO zu bedienen. Ihre Anwendung wird auf Port 3000 und die Route lautet /webhooks/answer.

Fügen Sie Folgendes zur main Methode hinzu:

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

Die main Methode sieht nun wie folgt aus:

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();
    });
}

Kauf einer Nummer

Um Anrufe entgegenzunehmen, benötigen Sie eine Vonage-Nummer. Wenn Sie noch keine Nummer haben, können Sie über die Vonage CLI eine Nummer erwerben:

vonage numbers:buy NUMBER COUNTRYCODE

Anmerkung: NUMBER steht hier für die Nummer, die Sie kaufen möchten, und COUNTRYCODE die Landesvorwahl für diese Nummer. Wenn Sie die Nummer noch nicht kennen, können Sie so nach verfügbaren Numbers in einem bestimmten Land suchen (hier suchen wir nach Numbers in den USA):

vonage numbers:search US

Notieren Sie sich die Nummer, die Sie erworben haben. Sie benötigen diese Nummer für die Verknüpfung Ihrer Anwendung und für Tests.

Ihre Anwendung offenlegen

Um eine HTTP-Anfrage an Ihre Anwendung zu senden, muss Vonage die URL kennen, unter der Ihre Anwendung läuft.

Anstatt Ihr lokales Netzwerk zu konfigurieren oder Ihre Anwendung bei einem externen Dienst zu hosten, können Sie mit ngrok verwenden, um Ihre Anwendung auf sichere Weise dem Internet auszusetzen.

Laden Sie ngrok herunter und führen Sie den folgenden Befehl aus:

ngrok http 3000

Notieren Sie sich die Weiterleitungsadresse, da Sie diese bei der Konfiguration Ihres Accounts benötigen. In der folgenden Abbildung lautet die Weiterleitungsadresse http://99cad2de.ngrok.io.

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

Konfigurieren Sie Ihren Vonage Account

Wenn Sie noch keine Anwendung haben, können Sie mit der Vonage CLI eine Anwendung mit Ihrer ngrok-Weiterleitungsadresse erstellen:

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

Nachdem Sie diesen Befehl ausgeführt haben, wird Ihnen eine Anwendungs-ID angezeigt. Zum Beispiel: notreal-1111-2222-3333-appid. Sie benötigen diese Anwendungs-ID, um Ihre Rufnummer mit der Anwendung zu verknüpfen.

Sie können die Vonage CLI verwenden, um Ihre Telefonnummer und Anwendung zu verknüpfen:

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

Testen Sie Ihre Anwendung

Starten Sie Ihre Anwendung mit dem gradle run Befehl innerhalb Ihres conference-call Verzeichnis.

Rufen Sie Ihre Vonage-Nummer an und nehmen Sie einen Freund, Kollegen oder ein anderes Telefon, um das Gleiche zu tun. Jeder neue Anrufer wird in die Telefonkonferenz aufgenommen.

Schlussfolgerung

Mit ein paar Zeilen Code haben Sie eine Anwendung erstellt, die Telefonkonferenzen mit mehreren Personen durchführen kann.

Sehen Sie sich unsere Dokumentation auf Vonage Entwickler wo Sie mehr erfahren können über Anruffluss oder Vonage Anrufsteuerungsobjekte.

Sie können auch einen Blick auf die Telefonkonferenz Code-Snippet für dieses Beispiel und mehr.

Teilen Sie:

https://a.storyblok.com/f/270183/150x150/a3d03a85fd/placeholder.svg
Steve CrowVonage Ehemalige

Steve ist ein selbsternannter Mathlet und König des Scharfsinns. Außerdem ist er ein Liebhaber von Windhunden, kniffligen Puzzles und europäischen Brettspielen. Wenn er nicht gerade mit Nicht-Mathematikern über Mathe und mit Nicht-Javaleuten über Java spricht, kann man ihn beim Kaffeetrinken und beim Hacken von Code antreffen.