SORACOM UG 信州 #6 2019/3/30

ハンズオンの内容

SORACOM LTE-M Button powered by AWS(通称:あのボタン)を使い、ボタンを押したらTwilio経由で電話が掛かってくる仕組みを作成します
(参考:SORACOM Buttonで会議脱出ボタンをつくる

SORACOM LTE-M Button for Enterprise(通称:しろボタン)を使う場合はこちらです

ハンズオンの構成

soracomug_shinshu6 / Twilio全体像

本日の貸し出し機材

お客様の持ち物

参加費用

無料(ただしAWSの利用料金、数円が発生します)

目次

  1. AWS アカウントの作成
  2. SORACOM LTE-M Button を AWS IoT 1-Click に登録する
  3. Twilio アカウントの作成
  4. Twilio セットアップ
  5. Twilio Studio Flowの作成
  6. AWS Lambda関数の設置
  7. AWS IoT 1-Clickのプロジェクト/プレイスメント設定
  8. 動作確認
  9. お片付け

プログラム

1. AWS アカウントの作成

(※既にアカウントをお持ちの方は読み飛ばして下さい)
AWS アカウント作成の流れ (AWS のページに飛びます) から進み作成してください。

アカウント作成時のポイント
電話音声による認証が必要となります 「非通知」からの着信となるため、必要ならば非通知着信が可能になるようにしてください

AWSサポートプランについて
理由がない限り「ベーシックプラン」を選択してください。それ以外のプランは費用がかかります

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

AWS IoT 1-Click ではボタンと Lambda 関数を結びつける概念として「プレイスメント」と「テンプレート」そして「プロジェクト」が存在します。これらを全て作成したうえで、それぞれボタンと Lambda 関数に結び付けていきます。

soracomug_shinshu6 / AWSIoT1Click概念図

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

soracomug_shinshu6 / 2-1 aws-console

soracomug_shinshu6 / 2-2 aws-console

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

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

soracomug_shinshu6 / 2-5 aws-iot-1-click

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

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

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

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

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

3. Twilio アカウントの作成

(※既にアカウントをお持ちの方は読み飛ばして下さい)

TwilioはAPIによってコントロールできる電話サービスです。
登録することで電話番号を取得でき、その電話番号での受発信がAPIでコントロールできます。今回は発信のコントロールを行います。

アカウントの取得
Twilioのページを開き、無料サインアップのアイコンをクリックします。
soracomug_shinshu6 / 3-1 Twilio-Top

利用規約に同意します。
soracomug_shinshu6 / 3-2 Twilio-signup1

氏名・メールアドレス・パスワードの情報を入力します。
パスワードは14桁以上必要となります。
soracomug_shinshu6 / 3-3 Twilio-signup2

身元検証用に携帯電話の電話番号の入力を行います。
携帯電話番号は最初のゼロを取り、80xxxxxxxx のように入力して下さい。
なお、トライアル(無料)アカウントではここで登録した電話番号のみに発信が可能であるため、今回のハンズオンで電話を着信したい携帯電話の番号を入力して下さい。
(有料アカウントにアップグレードすることで任意の番号に発信可能となります)
soracomug_shinshu6 / 3-4 Twilio-signup3

入力した携帯電話に対してSMSで検証コードが送信され認証が完了です。
soracomug_shinshu6 / 3-5 Twilio-Validate1

チュートリアル画面が出ます。今回は「Skip to dashboard」をクリックしてください。
soracomug_shinshu6 / 3-6 Twilio-Validate2

トップ画面が表示されます。
soracomug_shinshu6 / 3-7 Twilio-Validate3

4. Twilio セットアップ

電話番号の取得
Twilioで利用できる電話番号を取得します。
電話番号の取得画面にアクセスします。
soracomug_shinshu6 / 4-1 Twilio-GetNumber1

「最初のTwilio電話番号を取得」をクリックし電話番号を取得します。
気に入らない場合は選び直しが可能です。
なおトライアルアカウントで取得可能な電話番号は050のIP電話番号のみとなります。
soracomug_shinshu6 / 4-2 Twilio-GetNumber2

電話番号が取得できました。終了ボタンをクリックします。
作成した電話番号はメモ帳等にコピーしておきます。
soracomug_shinshu6 / 4-3 Twilio-GetNumber3

クレデンシャル情報の確認
AWS側からAPIで呼び出しできるよう、クレデンシャル情報を確認しておきます。
Twilioの設定画面にアクセスします。
soracomug_shinshu6 / 4-3 Twilio-Credential
ライブクレデンシャルの ACCOUNT SID と AUTH TOKENの内容をメモ帳等にコピーしておきます。この情報がLambda関数からの呼び出しに必要になります。

5. Twilio Studio Flowの作成

電話を受けた後、任意のメッセージを再生できるよう、Studio Flowの作成を行います。

Studio Dashboardにアクセスし、Create a flowをクリックします。
soracomug_shinshu6 / 5-1 Twilio-Studio

続けてフローの名称を入力します。
soracomug_shinshu6 / 5-2 Twilio-Studio

作成方法はStart from scratchとします。
soracomug_shinshu6 / 5-3 Twilio-Studio

下のようなフロー作成画面が開きます。
右側のWIDGET LIBRARYから、”Make Outgoing Call” と “Say/Play” のウィジェットをドラッグ、フローを繋げて以下のように設定します。
また、Say/Playのウィジェットでは読み上げるメッセージと言語(Japanese)を設定します。
soracomug_shinshu6 / 5-4 Twilio-Studio

作成できたら、右上にあるPublishボタンを押して完成です。
Studio Dashboardに戻りますので、作成したフローのSIDをメモ帳等にコピーしておきます。
soracomug_shinshu6 / 5-5 Twilio-Studio

6. AWS Lambda関数の設置

SORACOM LTE-M Buttonが押された際にTwilioを呼び出すプログラム(Lambda関数)を設置します。
(※今回はハンズオン時間の関係上、作成済の関数をアップロードして設置します) Lambda関数一式(zip)をダウンロードしてください。

AWS マネジメントコンソールを開きログインした後、リージョンをオレゴンに変更し、Lambdaのコンソールを開きます。
soracomug_shinshu6 / 6-1 Lambda1

関数の作成をクリックします。
soracomug_shinshu6 / 6-2 Lambda2

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

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

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

7. AWS IoT 1-Clickのプロジェクト・プレイスメント設定

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

プロジェクト名として任意の名前を入力します。
soracomug_shinshu6 / 7-2 projectName

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

「すべてのボタンタイプ」の箇所をクリックします。
soracomug_shinshu6 / 7-4 devicetemplate2

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

プレイスメントの属性
引き続き画面下の方にあるプレイスメントの属性に以下の情報を入力します。

属性の名前 デフォルト値
twilio_sid (TwilioのACCOUNT SID)
twilio_token (TwilioのAUTH TOKEN)
twilio_flowid (Twilio Studio FlowのSID)
twilio_number (Twilioで取得した電話番号 +8150xxxxxxxx の形式)
twilio_callto (電話の発信先:Twilioに登録したご自身の携帯電話番号 +81xxxxxxxxxx の形式)

ここまで入力が完了したら「プロジェクトの作成」をクリックします。
soracomug_shinshu6 / 7-6 placement

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

プレイスメント設定
続けてプレイスメントの設定を行います。
プレイスメントの設定で、登録したボタンのDSNコードと紐付けます。
soracomug_shinshu6 / 7-5 placement プロジェクトの新しいプレイスメントでは以下のように設定した後 [プレイスメントの作成] をクリックします。

以上で設定は完了です。

8. 動作確認

ここまでの作業で AWS IoT 1-Click を通じて Twilio経由で電話がかけられるようになりました。
ボタンを押すと、ご自身の携帯電話に電話が掛かってくるようになったでしょうか。
(※うまく動作しない方はスタッフまでお問い合わせ下さい)

9. お片付け

※ あのボタン貸出枠で参加の方は、ボタン返却のため以下の手順の実施をしてください。

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

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

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

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

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

mkmk-button / 1 unclaim

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

最後に

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