SORACOM UG 信州 #7 2019/8/31

ハンズオンの内容

SORACOM LTE-M Button for Enterprise(通称:しろボタン)を使い、ボタンを押したらTwilio経由で電話が掛かってくるようにする仕組みを作成します。

SORACOM LTE-M Button powered by AWS(通称:あのボタン)を使う場合はこちらです

ハンズオンの構成

soracomug_shinshu7 / Twilio全体像

本日の貸し出し機材

お客様の持ち物

参加費用

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

目次

  1. AWS アカウントの作成
  2. Twilio アカウントの作成
  3. Twilio セットアップ
  4. Twilio Studio Flowの作成
  5. AWS Lambda関数の設置
  6. AWS IAMの設定
  7. SORACOM Funkの設定
  8. 動作確認
  9. お片付け

プログラム

1. AWS アカウントの作成

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

AWS アカウント作成の流れ (AWS のページに飛びます) から進み作成してください。

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

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

2. Twilio アカウントの作成

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

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

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

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

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

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

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

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

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

3. Twilio セットアップ

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

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

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

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

4. Twilio Studio Flowの作成

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

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

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

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

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

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

5. AWS Lambda関数の設置

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

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

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

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

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

環境変数の設定
引き続き画面下の方にある環境変数のセクションで以下の情報を入力します。

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

最後に画面上方にある「保存」ボタンをクリックして下さい。 保存後、画面上にある ARNをコピーしメモしておきます。 以上で完了です。

6. AWS IAMの設定

SORACOM Funkからアクセスできるよう、IAMユーザを作成し権限を付与します。

ポリシーの作成
AWS マネジメントコンソールを開きログインした後、IAMのコンソールを開きます。 soracomug_shinshu7 / 6-1 IAM選択

左側のメニューからポリシーを選択し、上にある「ポリシーの作成」をクリックします。 JSONタブをクリックし、以下の内容を入力します。(Lambda関数作成時に表示されたARNを差し替えて下さい)

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowAuroraToExampleFunction",
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": "Lambda関数のARN"
        }
    ]
}

入力が終わったら「ポリシーの確認」ボタンをクリックします。 soracomug_shinshu7 / 6-2 IAMポリシー

続いてポリシー名を入力し、ポリシーの作成ボタンをクリックします。
soracomug_shinshu7 / 6-3 IAMポリシー名の入力

これで、作成したLambda関数を実行できる権限の定義が設定されました。

IAMユーザの作成
続けて、作成したポリシーを紐付けたユーザを作成します。 左側メニューのユーザを選択し、「ユーザを追加」ボタンをクリックします。

作成画面が開きますので、ユーザ名を入力、プログラムによるアクセスを選択し次のステップに進みます。 soracomug_shinshu7 / 6-4 IAMユーザの作成

アクセス許可の設定を行います。「既存のポリシーを直接アタッチ」を選択し、先程作成したポリシー名を選択し紐付けます。 soracomug_shinshu7 / 6-5 ポリシーのアタッチ

次のステップでのタグ付けは不要ですので、スキップしユーザの作成を行います。 ユーザの作成に成功すると、アクセスキーIDとシークレットアクセスキーが表示されますので、メモ帳等にコピーしておきます。 soracomug_shinshu7 / 6-6 ユーザの作成完了

7. SORACOM Funkの設定

SIMグループの作成
SORACOMユーザコンソールにログインし、SIM管理を開きます。 登録されているボタンデバイスを選択し、所属グループの変更を選択します。 soracomug_shinshu7 / 7-1 SIMグループの作成

続けて「新しいグループを作成」を選択します。 soracomug_shinshu7 / 7-2 新しいグループの作成

グループ名を入力しグループ作成のボタンをクリック、割り当てることで新しいグループの作成ができました。 soracomug_shinshu7 / 7-3 新しいグループの作成

SORACOM Funkの設定
作成したグループで以下の設定を行います。

SORACOM Air for Cellular設定では、バイナリーパーサーを有効化し、フォーマットは @button とします。 soracomug_shinshu7 / 7-4 バイナリーパーサー設定

SORACOM Funk設定では、認証情報とLambda関数のARNを入力します。 soracomug_shinshu7 / 7-5 Funk設定

認証情報では、新しい認証情報の作成を選択し、IAMユーザのアクセスキーIDとシークレットアクセスキーを入力します。 soracomug_shinshu7 / 7-6 認証情報

8. 動作確認

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

9. お片付け

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

SIMグループの削除
SORACOMユーザコンソールにログインし、SIMグループを開きます。 「高度な設定」タブから、「このグループを削除」を選択し、グループの削除を行います。

認証情報の削除
SORACOMユーザコンソールにログインし、右上のメールアドレスのボタンをクリックし「セキュリティ」を選択します。 左側「認証情報ストア」を選択し、作成した認証情報の「削除」ボタンをクリックし削除を行います。

こちらでハンズオンは終了です。お疲れ様でした。