着信通話にコールウィスパーを追加する

看板、テレビ広告、ウェブサイト、新聞など、広告のいたるところに電話番号が掲載されている。これらの番号はしばしば が同じコールセンターにリダイレクトされ、そこでエージェントが、なぜその人が電話しているのか、どこで広告を見たのかを問い合わせる必要がある。 広告を見たのかを問い合わせる必要がある。

コール・ウィスパーを使用すると、着信コールのコンテキストは、発信者に接続される前にコールセンターのオペレーターにアナウンスされる。 にアナウンスされる。このガイドでは、このアプローチを実装したアプリケーションを紹介する。ユーザーは、2つの番号のいずれかに電話をかける。 アプリケーションは通話に応答し、発信者は保留メッセージを聞く。一方、アプリケーションはコールセンターのオペレータに電話をかけ、保留メッセージを聞く。 どちらの番号にダイヤルされたかによって、異なるコールウィスパーを再生する。 オペレータを着信者との会議に接続する。

サンプルはnode.jsとexpressで書かれています。 GitHub.

このガイドでは

インバウンドコールにコールウィスパーを追加する方法を説明します:

  • 仕組み - 誰が誰に電話をかけているのか、また、サンプルアプリケーション全体を通してどのようにプロセスが流れているのかの概要を説明します。
  • 始める前に - このガイドに必要なアプリケーションと Numbers を設定します。
  • コードで始める - リポジトリをクローンし、アプリケーションを実行する。
  • コード・ウォークスルー - アプリケーションがどのように機能するのか、その細かいポイントに飛び込む。
  • さらに読む - 役に立つと思われる他のリソースをチェックしてみてください。

仕組み

OperativeApplicationVonage numberUserOperativeApplicationVonage numberUserWhen operativeanswersCallers are connectedUser calls either ofthe numbers linked to this Application/answerConnects to operative's number/answer_outboundAnnounces key informationabout original caller

始める前に

コードを取得して実行する前に、まずやらなければならないことがいくつかある。

Vonageに登録する

Vonage APIアカウントにサインアップする まだ持っていないなら

CLIのセットアップ

このガイドでは Vonageコマンドラインツール先に進む前にインストールされていることを確認してください。

音声アプリケーションの作成

CLIを使ってVoice APIアプリケーションを作成します。 ウェブフック Vonage番号( あなたのVonage番号にかかってきた電話に応答します。/webhooks/voice/answer) とコール・イベントのログ (/webhooks/voice/event)をそれぞれ示している。

これらのウェブフックはVonageのサーバーからアクセスできる必要があるので、このガイドでは ngrok ローカル 開発環境を公共のインターネットに公開する。 この記事 をインストールする方法を説明する。 そして ngrok をクリックし、リクエストを送信するようにVonageを設定します。

アプリケーションをお持ちでない場合は、CLIを使用してアプリケーションを作成することができます。

vonage apps create 'Your application'

✅ Creating Application
Saving private key ... Done!
Application created

Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set

Capabilities:
  None Enabled

このコマンドは、アプリケーションID(メモしておくとよい)と秘密鍵情報(このガイドでは無視してもよい)を返す。 このガイドの目的では無視しても構わない)。

走る ngrok 以下のコマンドを使用する:

ngrok http 3000

の一時的なホスト名をメモしておいてください。 ngrok の代わりに使用する。 example.com 次の コマンドを使用する:

vonage apps capabilities update 00000000-0000-0000-0000-000000000000 voice `
  --voice-answer-url='https://example.com/webhooks/voice/answer' `
  --voice-event-url='https://example.com/webhooks/voice/event' `
  --voice-fallback-url='https://example.com/webhooks/voice/fallback'
  
✅ Fetching Application
✅ Adding voice capability to application 00000000-0000-0000-0000-000000000000

Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set

Capabilities:
 VOICE:
    Uses Signed callbacks: On
    Conversation TTL: 41 hours
    Leg Persistence Time: 6 days
    Event URL: [POST] https://example.com/webhooks/voice/event
    Answer URL: [POST] https://example.com/webhooks/voice/answer
    Fallback URL: [POST] https://example.com/webhooks/voice/fallback

電話番号の購入

アプリケーションへのインバウンドコールを処理するには、Vonageの番号が必要です。すでに使用する番号がある場合は、次のセクションに進んで既存の番号をアプリケーションに関連付けます。 次のセクションにジャンプして、既存の番号をアプリケーションに関連付けます。

を使用することができます。 Vonage CLI 電話番号を購入する:

Numbersの検索

Vonage CLIを使用して番号を購入できます。次のコマンドは、購入する番号を検索します。 別の2文字の国コード を購入する。 他国で番号を購入する場合)。

vonage numbers search US

✅ Searching for numbers

There is 1 number available for purchase in United States

Number       Type    Features         Monthly Cost  Setup Cost
-----------  ------  ---------------  ------------  ----------
16127779311  Mobile  MMS, SMS, VOICE  €0.900.00

Use vonage numbers buy to purchase.

Numbersを購入する

納得のいく番号が見つかったら、その番号を vonage numbers buy コマンドを使用している:

vonage numbers buy US 16127779311 
✅ Searching for numbers
Are you sure you want to purchase the number 16127779311 for0.90? [y/n] y

✅ Purchasing number
Number 16127779311 purchased

Number: 16127779311 
Country: 🇺🇸 United States
Type: Mobile
Features: MMS, SMS, VOICE
Monthly Cost: €0.90
Setup Cost: €0.00
Linked Application ID: Not linked to any application
Voice Callback: Not Set
Voice Callback Value: Not Set
Voice Status Callback: Not Set

このガイドでは、2つの番号が必要です。

コードで始める

このプロジェクトのコードは ギットハブ.これは これは、Expressを使用したnode.jsプロジェクトで構成されており、作業例を提供することを目的としています。 を提供することを目的としています。

リポジトリをクローンする

リポジトリをローカルマシンの新しいディレクトリにクローンするか、ダウンロードします。

設定を行う

アプリケーションは、実行する前にあなたとあなたのアプリケーションについてもっと知る必要があります。アプリケーションの .env-example ファイル に .env この新しいファイルを編集して、使用したい設定を反映させます:

  • CALL_CENTER_NUMBER:コールセンターのオペレーターに連絡するための電話番号(携帯番号など
  • INBOUND_NUMBER_1:購入したNumbersの1つ
  • INBOUND_NUMBER_2:購入したもう一方の番号
  • DOMAIN:アプリを実行する場所のドメイン名: ff7b398a.ngrok.io

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

コードをダウンロードしたディレクトリで、以下を実行する。 npm install.このプロジェクトに必要なExpressとその他の依存関係を このプロジェクトに必要な

サーバーの起動

設定が完了し、依存関係が整えば、アプリケーションの準備は完了です!で実行します:

npm start

デフォルトでは、アプリケーションはポート3000で実行されます。もし ngrok今すぐトンネルを掘ることができる。

ngrokトンネル名が変わったら、アプリケーションのURLを vonage apps capabilities update コマンドを使用している。

試してみる

デモをやってみよう。これには電話が2台必要です(1台は「発信者」、もう1台は「コールセンターのオペレーター」)。 最初の電話をかけるには、友人を雇うか、スカイプを使う必要があるかもしれない。

  1. 購入した番号のいずれかに電話をかける。
  2. 発信者は挨拶メッセージを聞き、コールセンターのオペレーターの電話番号が鳴る。
  3. コールセンターのオペレーターが応答すると、「ウィスパー」メッセージを聞いてから、元の発信者につながる。 を聞く。
  4. もう一度、別の番号にかけて、別の「ささやき声」を聞いてみてください。

コード・ウォークスルー

デモは楽しいが、もしこれを自分で作ることに興味があるのなら、おそらく次のような重要なポイントがあるはずだ。 がある。このセクションでは、プロセスの各ステップにおけるコードの主要な部分を見ていきます。 を見つけることができ、このアプリケーションをあなたのニーズに合わせることができます。

着信に応答し、発信を開始する。

VonageアプリケーションにリンクされているNumbersに誰かが電話をかけると、Vonageは着信を受け取ります。 を受信します。Vonageはその着信をWebアプリケーションに通知します。これは ウェブフック・リクエスト をウェブアプリケーションの answer_url エンドポイント - この場合 この場合 /answer.電話に出ると、アプリケーションはその発信者をコールセンターのオペレーターにつなぐ。

lib/routes.js

app.get('/webhooks/voice/answer', (req, res) => {
  const  answer_url = 'http://'+process.env['DOMAIN']+'/on-answer'
  console.log(answer_url);

  res.json([
    {
      "action": "talk",
      "text": "Thanks for calling. Please wait while we connect you"
    },
    {
      "action": "connect",
      "from": req.query.to,
      "endpoint": [{
        "type": "phone",
        "number": process.env['CALL_CENTER_NUMBER'],
        "onAnswer": {"url": answer_url}
      }]
    }
  ]);
});

:をご覧ください。 Voice API リファレンス 詳細はこちら。

返されるレスポンスは NCCO (Nexmo Call Control Objects)である。最初の は、発信者が聞く話し言葉のメッセージである。 を指定します。

ウィスパーを再生して通話をつなぐ

コールセンターのオペレーターが電話に出ると onAnswer URLは、我々のアプリケーションでは /on-answer エンドポイント。これは、どの番号にダイヤルされたかを調べ、どのようなアナウンスをすべきかを計算するコードである。

lib/routes.js

// Define the topics for the inbound numbers
const topics = {}
topics[process.env['INBOUND_NUMBER_1']] = 'the summer offer';
topics[process.env['INBOUND_NUMBER_2']] = 'the winter offer';

通話が接続されたら、以下の方法でエージェントにコールウィスパーを再生してください。 talk NCCOのアクションで、どの広告キャンペーンに関する電話かを知らせる。 会議室で待っている発信者につなぐ前に、その通話がどの広告キャンペーンに関するものかを知らせる。

lib/routes.js

app.get('/on-answer', function(req, res) {
  // we determine the topic of the call based on the inbound call number
  const topic = topics[req.query.from]
  res.json([
    // We first play back a little message telling the call center operator what
    // the call relates to. This "whisper" can only be heard by the call center operator
    {
      "action": "talk",
      "text": "Incoming call regarding "+topic
    }
  ]);
});

ささやきをカスタマイズするのに役立つ多くの可能性がここにある。着信者の電話番号を 番号と urlon-answer で検索し、名前で挨拶したり、他の情報を提供したりすることができる。 情報を提供することができます。可能性は無限にありますが、このガイドが、あなたが構築し、カスタマイズできる実用的な例を示してくれることを願っています。 カスタマイズしてください。

さらに読む