[Twilio+Node.js] Twilio API を使用し電話をかけて音声を流す

[Twilio+Node.js] Twilio API を使用し電話をかけて音声を流す

Twilio API を使用して Node.js アプリケーションから電話をかけ音声を流す手順です。 自分で用意したサンプル音声を再生する例として今回は Amazon S3 を使用する方法を紹介します。
  • Twilio アカウントが作成済みで Account SID と Account Token がある想定です
  • 自動読み上げ音声を再生し、次に登録した mp3 を再生する例です

参考ページ: https://www.twilio.com/docs/voice/quickstart/node

作業環境

バージョン

node: 22.13.1
npm: 10.9.2
node_modules/twilio: 5.4.5

データの準備

音声データを用意します。今回は mp3 を Amazon S3 に配置して使用します。(URL でパブリックアクセスできるようになっていればどのような形でも問題ありません。)バケットを作成し、サンプル mp3 をアップロードします。この音声は、自動読み上げ音声のあとに再生する想定です。アップロードが完了したら、公開範囲を適切に設定し、 URL を取得します。

https://****.amazonaws.com/test.mp3

Node.js の Twilio モジュールをインストールする

ローカルに Node.js プロジェクトを作成し、 npm で twilio モジュール をインストールします。 twilio モジュール は Node.js での Twilio API 操作を簡略化できるモジュールです。

$ npm install twilio

Twilio API を使用し電話をかける

電話をかける Python スクリプトを作成します。 TwiML 形式で音声の内容を記述します。 <Say>****</Say> で自動読み上げ音声の内容を指定します。 <Play>****</Play> で再生する音声の URL を指定します。 TwiML について詳しくは こちら

twilio-call.js

const twilio = require('twilio');

const accountSid = "****"; // Account SID
const authToken = "****"; // Auth Token
const client = new twilio(accountSid, authToken);

client.calls.create({
    twiml: `<Response>
        <Say language="ja-JP">これは Twilio テスト音声です。</Say>
        <Play>https://****.amazonaws.com/test.mp3</Play>
    </Response>`,  // 音声の内容を TwiML 形式で記述
    to: "****",  // 発信先の電話番号
    from: "****"  // Twilio で購入した番号
}).then(call => console.log(call.sid))
  .catch(error => console.error(error));

作成したスクリプトを実行します。

$ node twilio-call.js

発信先の電話番号に電話がかかり、自動音声が流れ、その後サンプル音声が流れることを確認します。

おわりに

Twilio API を使用することで、簡単に音声発信を実装することができることが分かりました。

前回、 サーバー通知を SMS で自動配信する Web アプリケーションの作成については こちら

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.