【ハンズオン】Amazon ConnectとSORACOMボタンで自動コールシステムをつくる

ハンズオンの内容

SORACOM LTE-M Button powered by AWSを利用し、ボタンを押すとAmazon Connectから電話が掛かってくる仕組みを作成します。

ハンズオンの構成

soracombutton-connect全体像

本日の貸し出し機材

参加者の持ち物

参加費用

無料

本ハンズオンの設定を残した場合に発生する費用

目次

  1. SORACOM LTE-M Button を AWS IoT 1-Click に登録する
  2. Amazon Connectのインスタンス作成
  3. Amazon Connectの電話番号取得
  4. Amazon Connectの問い合わせフロー作成
  5. AWS Lambda関数の設置
  6. AWS IoT 1-Clickのプロジェクト設定
  7. 動作確認
  8. チャレンジ:電話が掛かってきた際の問い合わせフロー作成
  9. お片付け

プログラム

1. SORACOM LTE-M Button を AWS IoT 1-Click に登録する

AWS IoT 1-Click へ LTE-M Button を登録する AWS マネジメントコンソールを開きログインした後、AWS IoT 1-Clickのコンソールを開きます。

soracombutton-connect/ 1-1 aws-console

AWS IoT 1-Click のコンソールから [デバイスの登録] をクリックします。 soracombutton-connect/ 1-2 aws-iot-1-click

LTE-M Button の電池カバーを開けて DSN を AWS IoT 1-Click に入力し [登録] をクリックします。 soracombutton-connect/ 1-3 dsn

soracombutton-connect/ 1-4 aws-iot-1-click

LTE-M Button からのボタン押下を待ち受ける状態になります。 このタイミングで LTE-M Button のボタンを1回押してください。 (LED が赤点灯(= データ送信失敗)となった場合は、再度ボタンを押して下さい)

登録済みになりましたら [完了] をクリックします。 soracombutton-connect/ 1-5 aws-iot-1-click

以下のようにデバイス一覧が表示されていれば登録成功です。 soracombutton-connect/ 1-6 aws-iot-1-click

一覧に表示されている意味は以下の通りです。

登録したボタンの右にある […] をクリックした後、[デバイスの有効化] をクリックします。 soracombutton-connect/ 1-7 aws-iot-1-click これでボタンが利用可能な状態になりました。

2. Amazon Connectインスタンスの作成

AWS マネジメントコンソールを開き、東京リージョンであることを確認後、Amazon Connectのコンソールを開きます。

初回アクセス時には以下のような画面が出ますので「今すぐ始める」をクリックします。 soracombutton-connect/Connect初回画面

「Amazon Connect内にユーザを保存」を指定し、Amazon ConnectのインスタンスURLを入力します。 このURLは次章以降で開くコンソールのログインURLとなりますので、任意の名前を指定します。 入力が終わったら「次のステップ」をクリックします。

soracombutton-connect/インスタンス作成1

管理者の名前を決めて入力します。 自身のお名前とユーザ名・パスワード・電子メールアドレスを入力し、「次のステップ」をクリックします。 パスワードは大文字・小文字・数字を含み8文字以上とする必要があります。

soracombutton-connect/インスタンス作成2

本インスタンスで電話の発信・着信処理を行うかどうかの選択を行います。 両方にチェックを入れ、「次のステップ」をクリックします。

soracombutton-connect/インスタンス作成3

データストレージを指定します。 問い合わせフローのログやデータの保存先はご自身のAWSアカウントに紐付くS3バケットとなります。 デフォルトで問題ありませんので、そのまま「次のステップ」をクリックします。

soracombutton-connect/インスタンス作成4

確認画面が表示されます。確認し「インスタンスの作成」を選択します。

soracombutton-connect/インスタンス作成5

インスタンスの作成には1~2分程度の時間が掛かります。

soracombutton-connect/インスタンス作成6

作成が完了したら、「今すぐ始める」をクリックし、次章に進んでください。

soracombutton-connect/インスタンスの作成7

3. Amazon Connect電話番号の取得

前章で指定したAmazon Connectインスタンスの開始画面に切り替わります。 「今すぐ始める」をクリックします。

soracombutton-connect/電話番号取得1

電話番号の取得を行います。 「国/地域」からJapan(+81)を選択、タイプとして「Direct Dial」を選択すると、電話番号の欄に電話番号の候補が表示されます。 お好みの電話番号を選択し「次へ」をクリックします。

soracombutton-connect/電話番号取得2

電話番号が取得できました。 発信のテスト画面が表示されますが、ここではスキップして問題ありません。

soracombutton-connect/電話番号取得3

4. Amazon Connect問い合わせフローの作成

電話をかけた後、任意のメッセージを再生できるよう、問い合わせフローの作成を行います。 左側のメニューから「ルーティング」⇒「問い合わせフロー」を選択します。

soracombutton-connect/フロー作成1

問い合わせフローの一覧画面が表示されます。 「問い合わせフローの作成」をクリックします。

soracombutton-connect/フロー作成2

問い合わせフローの編集画面が表示されます。 今回は以下のようなフローを作成します。

soracombutton-connect/フロー作成3

説明

まず、左側の一覧から「設定」⇒「音声の設定」を右側にドラッグし、開始エントリと線でつなぎます。 「音声の設定」をクリックし、日本語を選択、音声をMizuki/Takumiのどちらからか選びます。

soracombutton-connect/フロー作成4

続けて「操作」⇒「プロンプトの再生」をドラッグし、「音声の設定」と線でつなぎます。 「プロンプトの再生」を開き、テキスト読み上げ機能(アドホック)⇒「動的に入力する」を選択し、以下のように入力します。

soracombutton-connect/フロー作成5

さらに「終了」⇒「切断/ハングアップ」をドラッグし、「プロンプトの再生」と線でつなぎます。 最後にフロー名を入力し、「公開」ボタンをクリックします。

soracombutton-connect/フロー作成6

公開して良いかどうか表示されます。「公開」をクリックします。

soracombutton-connect/フロー作成7

公開済みになったことを確認します。 左側にある「追加のフロー情報の表示」をクリックし、表示される以下の情報をコピーしておきます。

soracombutton-connect/フロー作成7

5. AWS Lambda関数の設置

SORACOM LTE-M Buttonが押された際にAmazon Connectを呼び出すプログラム(Lambda関数)を設置します。 Lambda関数を実行させる際、電話の発信元(Amazon Connectの電話番号)や電話の発信先(自身の携帯電話)の番号が必要ですが、それらの値は環境変数に与えます。 また、LambdaからAmazon Connectのインスタンスを呼び出せるよう、実行権限を付与します。

AWS マネジメントコンソールを開きログインした後、Lambdaのコンソールを開きます。 soracombutton-connect/Lambda1

関数の作成をクリックします。

soracombutton-connect/Lambda2

関数の作成画面が開きます。以下の情報を入力します。

soracombutton-connect/Lambda3

続いて関数の編集画面が開きます。以下の設定を行います

引き続き同画面で、環境変数値を入力します。電話の発信元や電話の発信先の番号などの入力になります。

引き続きLambdaにAmazon Connect実行権限を付与します。 同画面で以下操作をしてください。 soracombutton-connect/Lambda5

IAMのページが別タブで開くので、ポリシーをアタッチしますをクリック。 soracombutton-connect/Lambda6(IAM)

検索欄に「connect」と入力し、「AmazonConnectFullAccess」を選択し、ポリシーのアタッチをクリック。 soracombutton-connect/Lambda7(IAM)

ロールにConnectのポリシー(権限)を付与しました。 soracombutton-connect/Lambda8(IAM)

Lambdaの画面に戻ります。 Lambdaの画面から動作を確認しましょう。関数への実行時パラメータとなるテストイベントを作成します。 画面右上、テストイベントの設定をクリック soracombutton-connect/Lambda9(IAM)

開いた画面で以下入力します。

{
  "deviceInfo": {
    "deviceId": "XXXXXXXXXXXXXX",
    "type": "button",
    "etc1": "無関係イベントの値は省略しています。"
  },
  "deviceEvent": {
    "buttonClicked": {
      "clickType": "SINGLE",
      "reportedTime": "2018-11-09T16:29:40.474Z"
    }
  },
  "placementInfo": {
    "etc1": "無関係イベントの値は省略しています。"
  }
}

入力したら作成をクリック。 soracombutton-connect/Lambda10(IAM)

画面右上の保存をクリックすると準備は完了です。

これでLambdaが動作すると電話がかかる、という形になります。

「テスト」をクリックすると、テストイベントを元に関数が実行されます。 設定がうまく行けば電話がかかってきます。 うまく行かない場合はエラーログが出力されています。

テストイベントを編集し、SINGLEとなっているclickTypeをDOUBLEなどに変えてテストを再度実行すると、電話口のメッセージが変わります。 余裕があれば試してみてください。

最後に画面上方にある「保存」ボタンをクリックして下さい。 以上で完了です。

6. AWS IoT 1-Clickのプロジェクト設定

AWS IoT 1-Clickプロジェクト設定

AWS IoT 1-Click コンソールから [管理] > [プロジェクト] を開いた後 [プロジェクトの作成] をクリックします。

soracombutton-connect/iot1click1

プロジェクト名として任意の名前を入力します。

soracombutton-connect/iot1click2

プレイスメントのテンプレート

プロジェクトのプレイスメントのテンプレートの定義画面に移ります。 デバイステンプレートの定義の箇所をクリックします。

soracombutton-connect/iot1click3

「すべてのボタンタイプ」の箇所をクリックします。

soracombutton-connect/iot1click4

続けて先程作成したLambda関数と紐付けます。以下の情報を入力します。  

soracombutton-connect/iot1click5

ここまで入力が完了したら、画面下方にある「プロジェクトの作成」をクリックします。

プロジェクトが作成されました。[プレイスメントの作成] をクリックします。

soracombutton-connect/iot1click6

プレイスメント設定

続けてプレイスメントの設定を行います。 プレイスメントの設定で、登録したボタンのDSNコードと紐付けます。

soracombutton-connect/iot1click7

プロジェクトの新しいプレイスメントでは以下のように設定した後 [プレイスメントの作成] をクリックします。

以上で設定は完了です。

7. 動作確認

ここまでの作業で AWS IoT 1-Click を通じて Amazon Connect経由で電話がかけられるようになりました。

ボタンを押すと、ご自身の携帯電話に電話が掛かってくるようになったでしょうか。

シングルクリック、ダブルクリック、長押しでメッセージが変わることを確認してください。

(※うまく動作しない方はスタッフまでお問い合わせ下さい) soracombutton-connect/check1

8. チャレンジ:電話が掛かってきた際の問い合わせフロー作成

※時間に余裕がある方は以下の課題にもチャレンジしてみて下さい。

6章までの手順ではボタンを押すことで電話をかける、アウトバウンドコールの問い合わせフローを作成してみました。 逆に、Amazon Connectの電話番号に電話を受電した際の問い合わせフローを作成することができます。

以下のユニットなどを利用して、受電した際の問い合わせフローを作成してみましょう。

設定サンプル

作成した問い合わせフローは、ルーティング⇒電話番号から電話番号を選択し、「問い合わせフロー/IVR」の欄で設定することで呼び出されます。 soracombutton-connect/advanced1

9. お片付け

最後にAWSの設定上の後片付けを行います。 全員が実施する部分と、ボタン貸出枠参加者のみ実施する部分がありますのでご注意ください。

Amazon Connect電話番号の削除

※ 参加者全員、この手順を実施してください。

手順において、Amazon Connectで電話番号を取得しました。 ただし、番号を取得したままにすると少額ですが毎日コストがかかることになります。 ここでは取得したAmazon Connectの電話番号を解放(リリース)します。

Amazon Connectダッシュボードにおいて、画面左から「キュー」を開きます。

soracombutton-connect/ putaway06

今回作成したキューである、「Basic Queue」を選択します。

soracombutton-connect/ putaway07

アウトバウンド発信者 ID 番号 に今回設定した番号が与えられているので、番号横の x ボタンを押して、番号の紐付け設定を解除します。保存します。

soracombutton-connect/ putaway08

Amazon Connectダッシュボードにおいて、画面左から「電話番号」を開きます。

soracombutton-connect/ putaway09

今回使用した電話番号にチェックをし、「リリース」をクリックします。

soracombutton-connect/ putaway10

問題ありません。「削除」します。

soracombutton-connect/ putaway11

番号一覧から今回使用した電話番号が削除されました。

soracombutton-connect/ putaway12

これで電話番号が解放されました。次の手順に進んでください。 なお、電話番号がちゃんと解放されているか確認する場合は、Lambdaをテスト実行してみると良いでしょう。 電話番号が解放された後にLambdaを実行すると、以下のようなメッセージが出力されます。 No Resource Found. つまり電話をかけるためのリソースがありませんよ、というメッセージが出力されます。 このため、誤ってLambdaを実行しても電話はかかってきません。

soracombutton-connect/ putaway13

AWS IoT 1-Click ボタンの設定解除

※ ボタン貸出枠で参加の方のみ、以下の手順を実施してください。

ボタン貸出枠の方は、貸与されたボタンとAWS IoT 1-Clickとの紐付けを解除する必要があります。 デバイスの登録解除をAWS IoT 1-Clickの画面から行います。

AWS IoT 1-Click のコンソールを開きます。リージョンがオレゴンになっていることを確認してください。 [管理] > [プロジェクト] とクリックした後、解除を行いたいデバイスが所属しているプロジェクトをクリックします。 1 unassing placement

[プレイスメント] から解除したいデバイスの […] をクリックした後に表示される [プレイスメントの編集] をクリックします。 2 unassing placement

デバイスが表示されている部分の [クリア] をクリックした後、[プレイスメントの更新] をクリックします。 3 unassing placement

これでデバイスとプレイスメントの割り当てが無くなりました。 [管理] > [デバイス] とクリックした後、解除を行いたいデバイスの […] をクリックした後に表示される [デバイスの登録解除] をクリックします。 最後に確認ダイアログの [登録解除] で解除が完了します。

※プレイスメントに割り当てられているデバイスは解除できませんので、プレイスメントから外してから行ってください。

mkmk-button / 1 unclaim

一覧から対象デバイスが無くなれば解除完了です。 こちらでハンズオンは終了です。お疲れ様でした。

最後に

最後に貸し出ししたSORACOM LTE-M Buttonをスタッフに手渡してください。 お渡し頂くタイミングで、プレイスメントの割り当てが無くなっているかを確認させていただきます。