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

Javaで電話会議を作成する方法

最終更新日 May 10, 2021

所要時間:6 分

このチュートリアルでは、1つの番号に電話をかけた複数の人をつなぐ電話会議の開始方法について学びます。サンプルコードは にあります。.

前回までに、以下の方法をご紹介しました。 電話を受ける電話を転送するをご紹介しましたので、これらの概念にまだ慣れていない方は、まずこれらの記事をお読みください。

前提条件

を使用します。 Gradleを使うことになるでしょう。さらに、JDKのコピーがインストールされていることを確認する必要があります。このチュートリアルではJDK 11を使いますが、JDK 8以上であれば何でも動くはずです。

最後に Vonage CLIをインストールする必要があります。これを使用して電話番号を購入し、新しいアプリケーションを指すようにVonageアカウントを設定します。

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.

Javaで電話会議を作成する

このチュートリアルでは、以下の手順を説明します:

  1. Gradleを使って新しいJavaプロジェクトをセットアップする。

  2. 使用方法 スパークフレームワークを使用する。

  3. 番号を購入し、その番号をアプリケーションで使用するようにVonageアカウントを設定します。

Gradleを使って新しいJavaプロジェクトをセットアップする

Gradleを使用して依存関係を管理し、Javaアプリケーションを作成して実行します。

この gradle init --type=java-applicationコマンドを実行すると、必要なすべてのフォルダと、コードを記述するサンプル・クラスが作成されます。

コマンドラインから、Gradleからのデフォルトのプロンプトのいずれかを受け入れながら、以下のコマンドで新しいJavaプロジェクトを作成する:

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

Gradleは Appクラスを src/main/java/conference/callフォルダに作成します。

このクラスの内部には getGreetingmainメソッドがあります。この getGreetingメソッドは必要ないので、自由に削除してください。

あなたの Appクラスはこのようになるはずだ:

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

スパークフレームワークを使用して呼び出しを制御する

Sparkフレームワークを使用して、あなたの電話番号に電話がかかってきたときにVonageが発信するHTTPコールを受信する。

依存関係の追加

以下を dependenciesブロックに以下を追加する。 build.gradleファイルのブロックに以下を追加する:

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

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

あなたの dependenciesブロックはこのようになるはずだ:

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

アンサー・ルートの定義

コールを受信すると、Vonageは事前に定義されたWebhook URLにリクエストを送信します。これは Vonage Call Control Object (NCCO)実行するアクションのリストを含む

アクションを使います。 talkアクションを使います。 conversationアクションを使います。

これが、アプリケーションが作成するNCCOである:

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

を使用します。 TalkActionConversationActionクラスを使用します。

以下のコードを mainメソッドに追加します:

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

NCCOを定義したので、NCCOにサービスを提供するようにSparkを設定する。アプリケーションはポート 3000でリッスンし、ルートは /webhooks/answer.

以下を mainメソッドに追加する:

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

メソッドは次のようになります。 mainメソッドは次のようになる:

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

背番号の購入

電話を受けるにはVonage番号が必要です。番号をお持ちでない場合は、Vonage CLIを使用して購入することができます:

vonage numbers:buy NUMBER COUNTRYCODE

注意 NUMBERは購入したいNumbersを表します。 COUNTRYCODEその番号の国番号を表します。もしまだその番号がわからない場合は、このように特定の国で利用可能な番号を検索することができます(ここではアメリカの番号を検索しています):

vonage numbers:search US

購入した番号を控えておいてください。この番号はアプリケーションのリンクやテストに必要です。

アプリケーションの公開

アプリケーションにHTTPリクエストを送信するために、Vonageはアプリケーションが実行されているURLを知る必要があります。

ローカルネットワークを設定したり、外部サービスでアプリケーションをホスティングする代わりに ngrokを使ってアプリケーションを安全にインターネットに公開できます。

ngrokをダウンロードし、以下のコマンドを実行する:

ngrok http 3000

アカウントを設定する際に必要になりますので、転送先アドレスを控えておいてください。次の図では、転送先アドレスは http://99cad2de.ngrok.io.

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

Vonageアカウントの設定

アプリケーションをお持ちでない場合は、Vonage CLI を使用して 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

このコマンドを実行すると、アプリケーションIDが表示されます。例えば notreal-1111-2222-3333-appid.電話番号をアプリケーションにリンクさせるには、このアプリケーションIDが必要です。

Vonage CLIを使用して電話番号とアプリケーションをリンクできます:

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

アプリケーションのテスト

アプリケーションを gradle runアプリケーションを conference-callディレクトリの中で

あなたのVonage番号に電話し、友人、同僚、または別の電話機を使用して同じことを行います。新しい発信者はすべて電話会議に参加します。

結論

数行のコードで、あなたは複数人との電話会議を作成できるアプリケーションを作成した。

のドキュメントをご覧ください。 Vonageデベロッパーコールフローまたは Vonageコールコントロールオブジェクト.

また 電話会議のコード・スニペットもご覧ください。

シェア:

https://a.storyblok.com/f/270183/150x150/a3d03a85fd/placeholder.svg
Steve Crowヴォネージの卒業生

スティーブは自称数学者で、悪口の王様。グレイハウンド、曲がりくねったパズル、ヨーロッパのボードゲームをこよなく愛する。 非数学系の人には数学を、非Java系の人にはJavaの話をしていないときは、コーヒーを飲みながらコードをハックしている。