Kotlin

ウェブフック・サーバーの作成

インバウンドコールを受信すると、Vonageはお客様が選択した一般にアクセス可能なURLへのリクエストを行います。 answer_url.このリクエストを受信し、次のリクエストを返すことができるWebhookサーバーを作成する必要があります。 エヌシーシーオー を含む。 connect に電話を転送する。 PSTN電話番号.から宛先番号を抽出します。 to クエリ・パラメータを返します。

新プロジェクト

任意の保存先に新しいプロジェクト・ディレクトリを作成し、そこに移動する:

mkdir vonage-tutorial cd vonage-tutorial

フォルダ内で、以下のコマンドを実行して新しいNode.jsプロジェクトを初期化する:

npm init -y

依存関係の追加

次に、必要な依存関係をインストールする:

npm install express localtunnel --save

サーバーファイルの作成

プロジェクトフォルダー内に server.js 以下のコードを追加してください。 NUMBER をあなたのVonage番号( E.164 形式)だけでなく SUBDOMAIN に実際の値を指定します。使用された値は、次のステップでウェブフックとして設定するURLの一部になります。

'use strict';

const subdomain = 'SUBDOMAIN';
const vonageNumber = 'NUMBER';

const express = require('express');
const app = express();
app.use(express.json());

app.get('/voice/answer', (req, res) => {
  console.log('NCCO request:');
  console.log(`  - callee: ${req.query.to}`);
  console.log('---');
  res.json([ 
    { 
      "action": "talk", 
      "text": "Please wait while we connect you."
    },
    { 
      "action": "connect",
      "from": vonageNumber,
      "endpoint": [ 
        { "type": "phone", "number": req.query.to } 
      ]
    }
  ]);
});

app.all('/voice/event', (req, res) => {
  console.log('EVENT:');
  console.dir(req.body);
  console.log('---');
  res.sendStatus(200);
});

if(vonageNumber == "NUMBER") {
  console.log('\n\t🚨🚨🚨 Please change the NUMBER value');
  return false;
}

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)でランダムな文字列を入力します。 NUMBER にVonage番号を入力します。 E.164 形式(例:447700900000)。

上記のサーバーコードには2つの部分がある:

エクスプレス・サーバー

最初の部分は Express サーバーに接続し、ローカルでポート 3000.サーバーは2つのパスを公開する:

  1. /voice/answeranswer_url 前述したとおりである。それは JSON 応答には、呼のデスティネーション番号が含まれる。

    この点にも注目してほしい。 number から抽出される。 req.query.to パラメータを使用する。動的に構築されたNCCOは、次に connect アクションだ。

  2. 2つ目だ、 /voice/eventVonageは、通話中に発生するすべての出来事を通知するように宛先を設定します。 event_url.

について localtunnel 統合

上記のサーバーコードの2番目の部分は Express サーバーからアクセスできるようにします。

注: localtunnel はJavaScriptライブラリで、あなたのローカルホストを世界中に公開し、テストや共有を容易にします!DNSをいじったり、あなたの変更を他の人に試してもらうためにデプロイしたりする必要はありません。

サーバーの起動

ターミナルで以下のコマンドを実行すれば、サーバーを起動できる:

node server.js

サーバーが利用可能になったことを知らせる通知が表示されます:

App available at: https://SUBDOMAIN.loca.lt

次のステップでURLが必要になるので、ターミナル・ウィンドウを手元に置いておいてください。