[Amazon Connect]特定の国からの着信に対してアナウンスを流して切断する

特定の国からの迷惑電話をAmazon Connectで制御する方法です
2023.09.07

こんにちは、洲崎です。
コールセンターに限らずですが、ネットでのバズりや政治的な背景等により迷惑電話が発生すると、電話を受ける現場の混乱や負荷、また電話を取れないことによる機会損失等をもたらします。
そのような事態を対処するために、コールセンターシステムやキャリアサービス等で迷惑電話を防止する設定を急ぎ実施する必要があります。
Amazon Connectでは、特定の国からの着信を設定ブロック1つ(コンタクト属性を確認するブロック)でルーティング(例:アナウンスを流して切断)ができますので紹介します。
※Lambdaなどを使わず、Amazon Connectの基本機能のみで実装することができます。

設定方法

サンプルフロー図

サンプルフロー図はこちらです。

このフローではログ記録や通話録音を有効にしたのち、かかってきた電話番号を赤い矢印で指しているコンタクト属性を確認するブロックで認識・分岐をさせています。
今回はデモとして日本の電話番号(+81)からかかってきたら、プロンプトで「日本からの電話は受け付けておりません」と流して切断、それ以外の国番号からかかってきたらオペレーターに繋ぐようにしています。

「コンタクト属性を確認する」ブロック

コンタクト属性とは、問い合わせに関する一時的な情報を保存し、コンタクトフロー内で利用することができるキーと値のペアです。
コンタクト属性で利用できる情報(リファレンス)については下記ドキュメントをご参照ください。

このコンタクト属性を利用して、名前空間はシステム、キーは顧客の電話番号とすることで、かかってきた顧客の電話番号の情報をもとにフロー内で分岐することができます。
チェックする条件で条件を次で始まる:、値にはE.164(国際電話識別番号)で+81と入力することで、今回のケースでは日本の電話番号から着信してきた場合の条件を設定することができます。

かかってくる国の条件を変えたければ、国際電話番号を+81でなく、指定したい国番号で入力します。(例:+1はアメリカ、+86は中国です)
参考:国際電話番号の一覧 Wikipedia

あとは条件分岐のところで、「プロンプトの再生」ブロック→「切断」ブロックに矢印で繋いで設定完了です。

やってみる

例:日本の電話番号(アナウンスを流して切断)の場合

実際に電話番号に紐づけて日本の電話番号からかけてみます。
通話上では問題なく「日本からの電話は受け付けておりません」と流れて切断されました。
CloudWatch Logsでログを見てみると、コンタクト属性の確認ブロックのところでResultsはtrueParametersSecondValue+81の電話番号と認識されていました。

{
    "Results": "true",
    "ContactId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxx",
    "ContactFlowId": "arn:aws:connect:ap-northeast-1:xxxxxxxxxxxx:instance/xxxxxxxxxxxxxxxxxxxxxxx/contact-flow/xxxxxxxxxxxxxxxxxxxxxxx",
    "ContactFlowName": "Suzaki Window",
    "ContactFlowModuleType": "CheckAttribute",
    "Identifier": "japan call block",
    "Timestamp": "2023-09-07T03:01:18.362Z",
    "Parameters": {
        "Value": "+8150xxxxxxxx",
        "SecondValue": "+81",
        "ComparisonMethod": "StartsWith"
    }
}

その後、意図したルーティング(プロンプト:「日本からの電話は受け付けておりません。」)に進んでいる確認がとれました。

{
    "ContactId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxx",
    "ContactFlowId": "arn:aws:connect:ap-northeast-1:xxxxxxxxxxxx:instance/xxxxxxxxxxxxxxxxxxxxxxx/contact-flow/xxxxxxxxxxxxxxxxxxxxxxx",
    "ContactFlowName": "Suzaki Window",
    "ContactFlowModuleType": "PlayPrompt",
    "Identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxx",
    "Timestamp": "2023-09-07T03:01:18.365Z",
    "Parameters": {
        "TextToSpeechType": "text",
        "SpeakingStyle": "None",
        "Text": "日本からの電話は受け付けておりません。",
        "Voice": "Kazuha",
        "GlobalEngine": "Neural"
    }
}

例:アメリカの電話番号(オペレーターに繋ぐ)の場合

今度は、バージニアリージョンのAmazon Connectインスタンスでアメリカの電話番号を取得して、アメリカの電話番号(+1)からかけてみます。
※バージニアリージョンで作成したAmazon Connectインスタンスで日本の電話番号に発信する場合、事前に上限緩和申請が必要です。

通話は問題なくオペレーターにつながりました。
CloudWatch Logsでログを見てみると、コンタクト属性の確認ブロックでResultsはfalseParametersValue+1からの電話番号と認識されていました。

{
    "Results": "false",
    "ContactId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxx",
    "ContactFlowId": "arn:aws:connect:ap-northeast-1:xxxxxxxxxxxx:instance/xxxxxxxxxxxxxxxxxxxxxxx/contact-flow/xxxxxxxxxxxxxxxxxxxxxxx",
    "ContactFlowName": "Suzaki Window",
    "ContactFlowModuleType": "CheckAttribute",
    "Identifier": "japan call block",
    "Timestamp": "2023-09-07T09:09:59.527Z",
    "Parameters": {
        "Value": "+1xxxxxxxxxx",
        "SecondValue": "+81",
        "ComparisonMethod": "StartsWith"
    }
}

その後、オペレーターにつなぐためのキューの設定につながっている確認がとれました。

{
    "ContactId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxx",
    "ContactFlowId": "arn:aws:connect:ap-northeast-1:xxxxxxxxxxxx:instance/xxxxxxxxxxxxxxxxxxxxxxx/contact-flow/xxxxxxxxxxxxxxxxxxxxxxx",
    "ContactFlowName": "Suzaki Window",
    "ContactFlowModuleType": "SetQueue",
    "Identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxx",
    "Timestamp": "2023-09-07T09:09:59.530Z",
    "Parameters": {
        "Queue": "arn:aws:connect:ap-northeast-1:xxxxxxxxxxxx:instance/xxxxxxxxxxxxxxxxxxxxxxx/queue/xxxxxxxxxxxxxxxxxxxxxxx"
    }
}

最後に

Amazon Connectで特定の国から電話がかかってきた時の着信を制御してみました。
有事の際の対応はドタバタしがちだと思いますが、、Amazon Connectはブロックを一つ置くことで制御可能です。
特定の国からの迷惑電話に困っている方は、ぜひ本記事を参考にしてもらえると嬉しいです。

ではまた!コンサルティング部の洲崎でした。