[Amazon Connect] 「電話番号への転送」ブロックからDTMFを送って他システムと連携する

2019.02.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

1 はじめに

AIソリューション部の平内(SIN)です。

Amazon Connect(以下、Connect)の問い合わせフローには、電話番号への転送というブロックがあり、他の電話番号へ顧客を転送することができます。

このブロックは、2019年2月19日に新機能が追加され、転送した電話が切断後にフローに戻れるようになった事を、前回紹介させて頂きました。

今回は、もう一つの新機能である転送先電話へのDTMFの送信について確認してみました。

2 DTMFによる連携

「DTMFを送信できるようになると、何が良いのか?」というと、今まで一切できなかった、情報(データ)の伝達が可能になるということです。

たとえば、最初に着信したシステムでは、発信者の電話番号が分かります。しかし、この接続を、他のシステムへ電話発信で引き継ぐと、引き継ぎ先では、発信者番号が、前段システムのものになってしまうため、顧客の電話番号が分かりません。

また、前段のシステムのIVRで、いくつかの情報を顧客に入力させた後で引き継いだ場合、引き継ぎ先では、その情報が伝達されないため、最悪の場合、もう一度、同じ質問を顧客に求める事になってしまうかも知れません。

DTMFの送信が可能になると、この辺の問題が、一気に解決できます。

3 電話番号への転送

電話番号への転送ブロックで、DTMFを送信する設定は、以下のとおりです。

DTMFを送信するにチェックを入れて、DTMFで送る数値を設定するだけです。今回は、Lambdaで生成した文字列を使用しています。

4 やってみた

次のようなフローを作成して、DTMFによるデータ伝達を試してみました。

(1) 前段のシステム

前段システムのフローでの内容は、以下のとおりです。

  • 顧客から4桁の入力を取得する
  • 顧客入力をパラメータにしてLambdaを呼び出す
  • Lambdaで4桁の入力と、発信番号で後段のシステムに送るDMTF(数字列)を作成する
  • 後段のシステムを呼び出す

そして、Lambdaのコードは以下のとおりです。

exports.handler = async (event) => {
// パラメータ(inputData)の取得
const inputData = event.Details.Parameters["inputData"];
// 発信番号の取得
const phoneNumber = event.Details.ContactData.CustomerEndpoint.Address;

// 入力された4桁の数字と、発信者番号の最後の4桁でDTMFで送信する数字列を作る
const dtmf = inputData + phoneNumber.substr(-4, 4) + '#';
return {dtmf: dtmf};
};

(2) 後段のシステム

後段システムのフローでの内容は、以下のとおりです。

  • 顧客入力取得のブロックで、前段システムからのDTMF音を取得する
  • 入力をパラメータにしてLambdaを呼び出す
  • Lambdaでアナウンスするメッセージを生成する
  • メッセージを再生する

そして、Lambdaのコードは以下のようになります。

exports.handler = async (event) => {
// パラメータ(inputData)の取得
const inputData = event.Details.Parameters["inputData"];
// 前4文字は、前段システムのIVRで受け取ったデータ
const data = inputData.substr(0, 4);
// 後4文字は、前段システムで取得した発信番号の最後4桁
const phoneNumber = inputData.substr(-4, 4);
// 再生するメッセージを生成する
const message = "後段のシステムです。入力された番号は、" + data + "です。発信者の電話番号の最後の4桁は、" + phoneNumber + "です。";
return {message: message};
};

動作している様子です。タイムラグがあるのは、後段システムの顧客の入力を保存するブロックのタイムアウト値が長すぎるためです。最適な調整を行えば、もう少し、快適になると思います。

5 最後に

今回は、電話番号への転送ブロックに新しく追加されたDTMF送信について試してみました。

色々な組み合わせで、他のシステムと連携する必要も生じると思いますが、今回検証した要領で行えば、送る側も、受ける側もConnectで対応可能だと言えると思います。

なお、電話番号への転送は、試してみた結果、同一インスタンスや、同一リージョンのConnectには、接続できなかったので、検証は、シドニーに別のインスタンス上げて行ないました。

弊社ではAmazon Connectのキャンペーンを行なっております。

3月に「無料Amazon Connectハンズオンセミナー」を開催致します。導入を検討されておられる方は、是非、お申し込み下さい。

また音声を中心とした各種ソリューションの開発支援も行なっております。