Edited 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です