LoginSignup
6
2

More than 5 years have passed since last update.

LINE ClovaとAmazon Connectでリアルゾンビのまちを作ってみた

Posted at

VoiceAppLabさんがリリースしているゾンビのまちというのがあるのですが、
演出もリアルで今存在しているVUI向けゲームスキルでは群を抜く出来栄えです。

そのスキルはプレイヤーが知らない電話番号に電話をして、
偶然ケンタくんに繋がるところから物語がスタートします。

そのオープニングの演出を実際の携帯電話にかかってきたら怖さ倍増するんじゃないかと思い、
リアルゾンビのまちとして作ってみました。

サンプル動画

1. Amazon Connectのセットアップ

1-1. Amazon Connectの準備

AWSにログインしてサービスからAmazon Connectを選択します。
s100.png

今すぐ始めるをクリックしてください。
s101.png

東京リージョンになっていない方はアジアパシフィック(東京)を選択します。
アクセスURLは好きな名前を決めてください。
s102.png

名前を決めたら、他の選択肢はデフォルトのまま進めて、[インスタンスの作成]ボタンをクリックします。
s109.png

インスタンスが作成できたら、[今すぐ始める]をクリックします。
s110.png

1-2. 電話番号を取得する

Amazon Connect専用の電話番号を手に入れます。
別のタブでAmazon Connect用の画面が表示されるので、そこに表示されている[今すぐ始める]ボタンをクリックします。
s111.png

電話番号の取得で、国はJapan +81を選択します。
s112.png

次のタイプは2種類あります。お好きな方を選んでください。

タイプ 特徴
Direct Dial 050番号が取得できる。発信者が通話料負担する。
Toll Free 0800番号が取得できる。発信者の通話料無料(フリーダイヤル)開発者が負担する。

s113.png

最後にお好きな番号を選択して、[次へ]ボタンをクリックします。
s114.png

[Continue]ボタンをクリックします。
s115.png

1-3. 再生するファイルをアップロードする

左側メニューにあるルーティングカテゴリのプロンプトをクリックします。
s201.png

[プロンプトの新規作成]をクリックします。
s202.png

再生する音声ファイルをアップロードします。対応しているファイルは.wavファイルのみです。
s203.png

1-4. 問い合わせフローを作成する

左側メニューにあるルーティングカテゴリの問い合わせフローをクリックします。
s200.png

[問い合わせフローの作成]ボタンをクリックします。
s131.png

問い合わせフローの名前を最初に設定しておきます。今回は LINEBotCall としました。
s204.png

操作カテゴリにあるプロンプトの再生をドラッグアンドドロップして、そのブロックをクリックします。
s205.png

1-3でアップロードしたwavファイルを指定します。
s206.png

ブロックを線で繋ぎます。
スクリーンショット 2019-04-26 15.29.56.png

終了/転送カテゴリの切断/ハングアップをドラッグアンドドロップします。
s208.png

ブロックを線で繋いで、[保存して発行]ボタンをクリックします。
s209.png

追加のフロー情報の表示部分を展開して、
instanceのID(赤い線部分)とcontact-flowのID(青い線部分)をそれぞれメモしておきます。
s210.png

2. Lambda関数の作成

2-1. Lambda関数を作成しよう

Lambda関数を作成します。

項目
①関数名 ClovaConnect
②実行ロール AWSポリシーテンプレートから新しいロールを作成
③ロール名 ClovaConnect-Role
④ポリシーテンプレート 基本的なLambda@Edgeのアクセス権限

s211.png

関数ができたら、下にスクロールしてClovaConnect-Roleをクリックします。
s212.png

2-2. IAMの編集

IAMを編集してAmazon Connectに必要な権限を追加します。インラインポリシーの追加をクリックします。

s213.png

サービスからConnectを検索して、クリックします。
s214.png

アクションの書き込みにあるStartOutboundVoiceContactのチェックを入れます。
s215.png

リソースはすべてのリソースをクリックして、[ポリシーの確認]をクリックします。
s216.png

ポリシー名を入力して、[ポリシーの作成]ボタンをクリックします。
s217.png

2-3. Lambda関数の編集

Lambdaに戻り、index.jsを編集します。下記コードをコピペしてください。
具体的にはstartOutboundVoiceContactにAmazon ConnectのインスタンスIDとフローIDを指定するだけですね。

index.js
'use strict';

const AWS = require('aws-sdk');
var connect = new AWS.Connect();

exports.handler = function (event, context, callback) {
    var response = {
        statusCode: 200,
        headers: {},
        body: ""
    };

    var speechText = "";
    var requestJson = JSON.parse(event.body).request;

    if (requestJson.type === 'LaunchRequest') {
        // 起動時処理
        speechText = '知らない番号から電話がかかってきた!電話を取ってみよう。';

        var params = {
            ContactFlowId: process.env.CONTACTFLOWID,
            DestinationPhoneNumber: process.env.PHONENUMBER,
            InstanceId: process.env.INSTANCEID,
            SourcePhoneNumber: process.env.SOURCEPHONENUMBER
        };

        // 電話をかける
        connect.startOutboundVoiceContact(params, function(err, data) {
        if (err) {
          console.log("gaomar=" + err);
        } else {
          console.log("gaomar=" + data);
        }

        });

        // Clovaにレスポンスを返す
        responseCall(speechText, response, callback);

    } else if (requestJson.type === 'SessionEndedRequest') {
        speechText = 'さようなら、また遊びましょう。';
        responseCall(speechText, response, callback);

    }
};

// レスポンス処理
function responseCall(speechText, response, callback) {
    var responseJson = JSON.stringify({
        "version": "1.0",
        "response": {
            "outputSpeech": {
                "type": "SimpleSpeech",
                "values": {
                    "type":"PlainText",
                    "lang":"ja",
                    "value": speechText
                }
            },
            "card": {},
            "directives": [],
            "shouldEndSession": true
        }
    });

    response.body = responseJson;

    callback(null, response);

}

環境変数を追加します。

項目
INSTANCEID 1-3でメモしたinstanceのIDを貼り付ける
CONTACTFLOWID 1-3でメモしたcontack-flowのIDを貼り付ける
PHONENUMBER 鳴らしたい携帯電話等を入力する番号は+81をつける
SOURCEPHONENUMBER Amazon Connectで発行した番号を入力する

s218.png

2-4. API Gatewayを追加する

トリガーの追加からAPI Gatewayをクリックして追加します。

s219.png

下にスクロールして、各項目を選択して、[追加]ボタンをクリックします。

項目
API 新規APIの作成
セキュリティ オープン

s220.png

右上の[保存]ボタンをクリックすると、API GatewayのアクセスURLが発行されるので、メモしておきます。
s221.png

3. Clovaの設定をする

3-1. サーバー設定

Clovaのプロジェクトを作成して、サーバー設定にAPI GatewayのアクセスURLを貼り付けます。

s222.png

3-2. テストする

テストタブをクリックして、シナリオテストを有効にします。○○を起動してをクリックします。

s223.png

すると、指定した番号に電話がかかってきます。

まとめ

LIFF等と連携すると、かけたい電話番号を指定することが可能になるかもしれません。
Amazon Connectはただのコールセンターだけでなく、アイデア次第で面白いものが作れるかもしれませんね。

システム化のご検討やご相談は弊社までお問い合わせください。
https://i-enter.co.jp/contact/

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2