1
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

クリスマスの夜に愛の言葉を届けよう

この記事はハンズラボ Advent Calendar 2018 15日目の記事です。

こんにちは、クリスマスまであと10日ですね。
クリスマスを200%楽しむべく、Amazon Connectで遊んでみたいと思います。

Amazon Connectが最近、東京リージョンに来たので早速試してみましたが
シドニーリージョンと比べて遅延が全然気にならず、快適でした。
普通の電話として使えますね。最高です。

やりたいこと: サンタさんから電話をかけてもらいたい

子供がクリスマスの朝にプレゼントを見つけたら、
サンタさんから電話がかかってきた!

ということをやりたいと思います。

手順1 サンタさんにメッセージを書いてもらう

サンタさんからメッセージをもらいましょう。
SNSでサンタさんを探して、メッセージを送りましょう。
サンタさんはSNSやってるのかな?
ちなみにフィンランド語でありがとうは「キートス!」です。

手順2 サンタさんにもらったメッセージを翻訳する

サンタさんに書いてもらったメッセージを翻訳すると

「メリークリスマス!
いい子にしてたからプレゼント置いておいたよ。
来年も楽しみにしててね。」

のような感じになると思います。

手順3 Amazon Connectのコンタクトセンターを立てる。

AWSのコンソール画面からAmazon Connectのインスタンスを立ち上げます。
東京リージョンから使うことができます。

スクリーンショット 2018-12-13 18.23.39.png

画面に従って順番に進めていけばOKです。

そのまま電話番号を取得して進めます。

手順4 音声を録音する

4番のプロンプトの作成をクリック

スクリーンショット 2018-12-13 18.35.02.png

プロンプトの新規作成をクリック

スクリーンショット 2018-12-13 18.35.20.png

サンタさんの声を録音します。
wav形式のファイルを作ってアップロードすることもできます。

スクリーンショット 2018-12-13 18.38.17.png

名前はsantaにしました。

手順5 問い合わせフローを作成する

次に問い合わせフローを作成します。
問い合わせフローの作成をクリック

スクリーンショット 2018-12-13 18.41.44.png

左メニューの「操作」から「プロンプトの再生」ドラッグアンドドロップし、
「エントリポイント」と繋ぎます(「開始」の横のまるいところからドラッグして繋ぎます)

スクリーンショット 2018-12-13 18.43.25.png

プロンプトの再生をクリックし、
santaを選択します。

スクリーンショット 2018-12-13 18.45.24.png

左メニューの「終了 / 転送」から「切断/ハングアップ」をドラッグアンドドロップし、
「プロンプトの再生」と繋ぎます。

flowに名前をつけます「santaflow」

スクリーンショット 2018-12-13 18.49.04.png

「保存して発行」を押して、フロー作成は終了です。

スクリーンショット 2018-12-13 18.49.57.png

手順6 電話番号とフローを紐づける

ダッシュボードに戻り、電話番号を表示をクリック

スクリーンショット 2018-12-13 18.51.17.png

取得した電話番号を選択し、フローを紐づけます。
スクリーンショット 2018-12-13 18.52.05.png

この状態で、Amazon Connectの電話番号に電話をかけると、録音が再生されます。

手順7 lambdaでOutbound Callingの設定

lambdaファイル
python3.6です

ContactFlowIdなどの各種設定情報は
管理画面でお問い合わせフローを開いた時のurlから取得することができます。


import json
import boto3


client = boto3.client('connect')


def respond(code, res):
    return {
        'statusCode': code,
        'body': json.dumps(res),
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        }
    }


def lambda_handler(event, context):

    response = client.start_outbound_voice_contact(
        DestinationPhoneNumber='電話番号 +81をつけて頭の0をとる',
        ContactFlowId='問い合わせフローのID',
        InstanceId='Amazon ConnectのインスタンスのID',
        SourcePhoneNumber='取得した電話番号 +8150xxxxxx',
    )

    return respond(200, response)

lambdaに紐づける Roleでは OutboundCallingを許可します。


{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "connect:StartOutboundVoiceContact",
            "Resource": "*"
        }
    ]
}

手順8 ApiGatewayでlambdaをたたけるように設定

API Gatewayを作成し、
メソッド: Get
統合タイプ: Lambda関数
Lambdaプロキシ統合の使用にチェック
先ほど作ったLambda関数を紐付けましょう

アクションからAPIをデプロイしたら準備は完了です。

クリスマス当日!! タイミング頃合いを見計らって、APIGatewayのurlを叩く

いい感じのタイミングで手順8で作ったURLを叩きましょう!
クリスマス楽しみですね!
楽しいクリスマスをお過ごしくださいー

クリスマスの夜に愛の言葉を届けようってタイトルにしたけど、
めちゃくちゃ朝っぽい話でしたね
以上です。

ハンズラボ Advent Calendar 2018 明日16日目は、@watarukuraです

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
1
Help us understand the problem. What are the problem?