ウェブフック・サーバーの作成
インバウンドコールを受信すると、Vonageはお客様が選択した一般にアクセス可能なURLへのリクエストを行います。 answer_url.このリクエストを受信し、次のリクエストを返すことができるWebhookサーバーを作成する必要があります。 エヌシーシーオー を含む。 connect に電話を転送する。 ユーザーの アプリを使います。このチュートリアルでは、宛先ユーザはAliceにハードコードされています。
新プロジェクト
任意の保存先に新しいプロジェクト・ディレクトリを作成し、そこに移動する:
フォルダ内で、以下のコマンドを実行して新しいNode.jsプロジェクトを初期化する:
依存関係の追加
次に、必要な依存関係をインストールする:
サーバーファイルの作成
プロジェクトフォルダー内に server.js 以下のコードを追加してください。 SUBDOMAIN に実際の値を指定します。使用された値は、次のステップでウェブフックとして設定するURLの一部になります。
'use strict';
const subdomain = 'SUBDOMAIN';
const express = require('express')
const app = express();
app.use(express.json());
app.get('/voice/answer', (req, res) => {
console.log('NCCO request:');
console.log(` - caller: ${req.query.from}`);
console.log('---');
res.json([
{
"action": "talk",
"text": "Please wait while we connect you."
},
{
"action": "connect",
"from": req.query.from,
"endpoint": [
{ "type": "app", "user": "Alice" }
]
}
]);
});
app.all('/voice/event', (req, res) => {
console.log('EVENT:');
console.dir(req.body);
console.log('---');
res.sendStatus(200);
});
if(subdomain == "SUBDOMAIN") {
console.log('\n\t🚨🚨🚨 Please change the SUBDOMAIN value');
return false;
}
app.listen(3000);
const localtunnel = require('localtunnel');
(async () => {
const tunnel = await localtunnel({
subdomain: subdomain,
port: 3000
});
console.log(`App available at: ${tunnel.url}`);
})();
注: 忘れずに交換してください。 SUBDOMAIN に、4~20文字の英数字(アンダースコアやダッシュは使用せず、小文字のアルファベットとNumbers)でランダムな文字列を入力します。
上記のサーバーコードには2つの部分がある:
エクスプレス・サーバー
最初の部分は Express サーバーに接続し、ローカルでポート 3000.サーバーは2つのパスを公開する:
/voice/answerはanswer_url前述したとおりである。としてNCCOを送り返す。JSONレスポンスには、アプリケーション・ユーザーに接続するための情報が含まれています。2つ目だ、
/voice/eventVonageが通話中に発生するすべての出来事を通知するように、通話先を設定します。event_url.
について localtunnel 統合
上記のサーバーコードの2番目の部分は Express サーバーからアクセスできるようにします。
注: localtunnel はJavaScriptライブラリで、あなたのローカルホストを世界中に公開し、テストや共有を容易にします!DNSをいじったり、あなたの変更を他の人に試してもらうためにデプロイしたりする必要はありません。
サーバーの起動
ターミナルで以下のコマンドを実行すれば、サーバーを起動できる:
サーバーが利用可能になったことを知らせる通知が表示されます:
App available at: https://SUBDOMAIN.loca.lt
次のステップでURLが必要になるので、ターミナル・ウィンドウを手元に置いておいてください。