https://a.storyblok.com/f/270183/1368x665/e245ed97e7/26jan_dev-blog_conference-call-python.jpg

Pythonで電話会議システムを構築する

最終更新日 February 5, 2026

所要時間:10 分

本日の記事では、Vonage Voice APIを使用して同じ通話に複数の相手を接続する方法をご紹介します。 Vonage Voice API を使用する方法を紹介します。.

以前の記事 インバウンドコールを受信する方法この例では、誰かがあなたのバーチャル番号に電話をかけてきたときに、VonageのAPIがリクエストできるWebhookエンドポイントを定義しています。先ほどと同じように、レスポンスは Nexmo Call Control Object (NCCO)である。

しかし今回は talk音声合成をするためのアクションに加えて conversation アクションを使います。最初にその番号に電話をかけた人が会議を開始します。それ以降の発信者は、他の参加者の声を聞いて話すことができます。

ソースコード 完全なソースコードはGitHubで入手できる。

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.

ステップ

  1. 依存関係をインストールする

  2. インバウンドコール用のウェブフックエンドポイントを定義する

  3. ウェブフックにアクセスできるようにする

  4. 番号を購入する

  5. Vonage Voice API アプリケーションの作成

  6. アプリケーションをVonage番号にリンクする

  7. 試してみる

依存関係のインストール

このチュートリアルはPython 3をベースにしているので、Python 3がインストールされている必要があります。また Node.jsも必要です。 CLI.

CLI(したがってNode.js)の使用はここでは任意である。番号を購入し、アプリケーションを管理するには Vonage Developer Dashboardを使ってアプリケーションを管理することができます。

また、ウェブフックのエンドポイントを定義し、インバウンドのリクエストを処理するメカニズムも必要です。ここでは フレームワークを使います。これをインストールするには pipパッケージマネージャーを使ってインストールしてください:

pip3 install flask

インバウンドコール用Webhookエンドポイントの定義

という名前のファイルを作成する。 confcall.pyという名前のファイルを作成する:

#!/usr/bin/env python3
from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route("/webhooks/answer")
def answer_call():
    ncco = [
        {
            "action": "talk",
            "text": "Please wait while we connect you to the conference"
        },
        {
            "action": "conversation",
            "name": "my-conf-call"
        }]
    return jsonify(ncco)


if __name__ == '__main__':
    app.run(port=3000)

このコードは /webhooks/answerエンドポイントを作成する。VonageのAPIからリクエストを受け取ると、NCCOを返す。NCCOには talkアクションが含まれている。 conversationアクションが含まれている。 "name": "my-conf-call").

ウェブフックにアクセスできるようにする

VonageのAPIは、あなたのWebhookにリクエストできるようにアクセスできなければなりません。そのため、エンドポイントURLは公衆インターネット経由でアクセスできなければなりません。

このようにローカルの開発環境を公開するための優れたツールは、次のとおりです。 ngrok.我々の チュートリアルをインストールして使う方法を紹介します。

起動 ngrokを起動する:

ngrok http 3000

作成された公開URLをメモしておく。 ngrokをメモしておいてください。これらは以下のようなものになります:

http://066d53c9.ngrok.io -> localhost:3000
https://066d53c9.ngrok.io -> localhost:3000

有料プランでない限り 有料プランでない限り、再起動するたびに ngrokURLは変更され、アプリケーションの設定を更新する必要があります。そのため、このチュートリアルの期間中は実行したままにしておいてください。

番号を購入する

電話を受けるにはVonageのバーチャル番号が必要です。すでにお持ちの場合は、このステップを飛ばして次のステップに進んでください。 Voiceアプリケーションの作成.

番号を購入するには 開発者ダッシュボードを使用して、コマンドラインからこのような管理タスクを実行した方が早いことがよくあります。 Vonage CLI.CLIはNodeアプリケーションなので ノードパッケージマネージャ, npm:

npm install -g @vonage/cli

次に、API キーとシークレットを使用して Vonage CLI を設定します。 開発者ダッシュボード:

vonage config:set --apiKey=XXXXXX --apiSecret=XXXXXX

購入可能なNumbersを確認するには、次のコマンドを実行します。 vonage numbers:searchを実行し、2文字の国コードを渡す。例えば GBイギリスなら USはアメリカです。購入した番号が音声通話を受信できることを確認してください:

vonage numbers:search [COUNTRYCODE]

リストから番号を選び、次のコマンドで購入する:

vonage numbers:buy [NUMBER] [COUNTRYCODE]

購入を確認し、購入した番号をメモする。

Vonage Voice API アプリケーションの作成

ここで、Vonage Voice API Applicationを作成する必要があります。ここでいうアプリケーションとは、今コードを書いたアプリケーションのことではありません。代わりに、Voice APIを使用するために必要な設定やセキュリティ情報を格納するコンテナです。

ここでもVonage CLIを使います。以下の情報を指定する必要があります:

  • アプリケーションの名前

  • あなたの /webhooks/answerエンドポイント (例 https://066d53c9.ngrok.io/webhooks/answer)

  • あなたの /webhooks/eventsエンドポイント (例 https://066d53c9.ngrok.io/webhooks/events)

  • セキュリティ認証情報を格納するファイルの名前と場所

と同じディレクトリで confcall.pyと同じディレクトリで、以下のコマンドを実行し、最初のパラメータとしてアプリケーションの名前を、2番目のパラメータとして着信コールWebhookのURLを指定します。3番目のパラメータは、Vonageがコール関連のイベントデータを送信できる別のWebhookを定義します。この例ではイベントデータをキャプチャしないので、ここに任意のURLを指定できます。実行 vonage apps:createを実行し、プロンプトに従ってください。

vonage apps:create

このコマンドを実行すると、Voice API アプリケーションが Webhook を使って設定され、セキュリティ認証情報が次のファイルにダウンロードされます。 private.key.また、一意のアプリケーションIDも返します。次のステップで必要になるので、メモしておいてください。

アプリケーションをVonage番号にリンクする

ここで、Voice APIアプリケーションをVonage番号にリンクさせ、あなたの番号が電話を受けたときに、Vonageがその特定の設定を使用することを認識できるようにする必要があります。

以下のコマンドを実行する。 APPLICATION_IDを独自のアプリケーションIDに置き換えてください:

vonage apps:link [APPLICATION_ID] --number=number

Numbersとアプリケーションがリンクされていることを確認するには、次のコマンドを実行します。 vonage apps:showコマンドを実行するか アプリケーションにナビゲートすることで、番号とアプリケーションがリンクされていることを確認してください。.

vonage apps:show

この情報は 開発者ダッシュボード.

試してみる

ポート3000で ngrokがポート3000で実行されていることを確認する。新しいターミナルウィンドウでPythonアプリケーションを起動します:

python3 confcall.py

これを試すには、使える携帯電話を3台以上持っているか、友人を説得して協力してもらう必要がある。

すべての関係者があなたのVonage番号に電話をかけてください。すべてがうまくいっていれば、全員が同じ通話になり、お互いにチャットできるはずです。

会議通話を開始するために必要なことはこれだけですが、Voice APIには、司会付き会議の作成、通話開始前の保留音楽の再生、特定の参加者のミュートなど、通話を管理するための多くのオプションが用意されています。詳しくは以下のドキュメントへのリンクをご覧ください。

さらに読む

シェア:

https://a.storyblok.com/f/270183/400x400/2c4345217d/liz-acosta.jpeg
Liz Acostaデベロッパー・アドボケイト

Liz AcostaはVonageのDeveloper Advocateです。映画学生からマーケター、エンジニア、デベロッパー・アドボケイトという彼女のキャリア・パスは型破りに見えるかもしれないが、デベロッパー・リレーションズにとってはごく一般的なものだ!ピザ、植物、パグ、Pythonが大好き。