着信通話にコールウィスパーを追加する
看板、テレビ広告、ウェブサイト、新聞など、広告のいたるところに電話番号が掲載されている。これらの番号はしばしば が同じコールセンターにリダイレクトされ、そこでエージェントが、なぜその人が電話しているのか、どこで広告を見たのかを問い合わせる必要がある。 広告を見たのかを問い合わせる必要がある。
コール・ウィスパーを使用すると、着信コールのコンテキストは、発信者に接続される前にコールセンターのオペレーターにアナウンスされる。 にアナウンスされる。このガイドでは、このアプローチを実装したアプリケーションを紹介する。ユーザーは、2つの番号のいずれかに電話をかける。 アプリケーションは通話に応答し、発信者は保留メッセージを聞く。一方、アプリケーションはコールセンターのオペレータに電話をかけ、保留メッセージを聞く。 どちらの番号にダイヤルされたかによって、異なるコールウィスパーを再生する。 オペレータを着信者との会議に接続する。
サンプルはnode.jsとexpressで書かれています。 GitHub.
このガイドでは
インバウンドコールにコールウィスパーを追加する方法を説明します:
- 仕組み - 誰が誰に電話をかけているのか、また、サンプルアプリケーション全体を通してどのようにプロセスが流れているのかの概要を説明します。
- 始める前に - このガイドに必要なアプリケーションと Numbers を設定します。
- コードで始める - リポジトリをクローンし、アプリケーションを実行する。
- コード・ウォークスルー - アプリケーションがどのように機能するのか、その細かいポイントに飛び込む。
- さらに読む - 役に立つと思われる他のリソースをチェックしてみてください。
仕組み
始める前に
コードを取得して実行する前に、まずやらなければならないことがいくつかある。
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
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 の代わりに使用する。 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 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.90 €0.00
Use vonage numbers buy to purchase.
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.90 €0.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 for €0.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
vonage numbers buy US 16127779311
✅ Searching for numbers
Are you sure you want to purchase the number 16127779311 for €0.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台は「コールセンターのオペレーター」)。 最初の電話をかけるには、友人を雇うか、スカイプを使う必要があるかもしれない。
- 購入した番号のいずれかに電話をかける。
- 発信者は挨拶メッセージを聞き、コールセンターのオペレーターの電話番号が鳴る。
- コールセンターのオペレーターが応答すると、「ウィスパー」メッセージを聞いてから、元の発信者につながる。 を聞く。
- もう一度、別の番号にかけて、別の「ささやき声」を聞いてみてください。
コード・ウォークスルー
デモは楽しいが、もしこれを自分で作ることに興味があるのなら、おそらく次のような重要なポイントがあるはずだ。 がある。このセクションでは、プロセスの各ステップにおけるコードの主要な部分を見ていきます。 を見つけることができ、このアプリケーションをあなたのニーズに合わせることができます。
着信に応答し、発信を開始する。
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
}
]);
});
ささやきをカスタマイズするのに役立つ多くの可能性がここにある。着信者の電話番号を
番号と url で on-answer で検索し、名前で挨拶したり、他の情報を提供したりすることができる。
情報を提供することができます。可能性は無限にありますが、このガイドが、あなたが構築し、カスタマイズできる実用的な例を示してくれることを願っています。
カスタマイズしてください。
さらに読む
- ギットハブ この のすべてのコードが含まれています。
- をご覧ください。 音声ガイド をご覧ください。
- について Voice API リファレンス には各エンドポイントの詳細なドキュメントがある。