Twilio Autopilotをさわってみた

Twilio Autopilotをさわってみた:

Twilio AutopilotからAWS API Gatewayをコールしてみました。


やること

電話に話しかけるとTwilioがAPI Gateway経由でサーバの起動停止をするLambaを呼び出す仕組みをつくってみます。

注)認証的なものは入れてません。


必要なもの

  • twilioアカウント
  • AWSアカウント


手順概要

  1. [AWS] lambdaを作成する
  2. [AWS] apiを作成する
  3. [Twilio] virtual assistantを作成する
  4. [Twilio] taskを作成する
  5. [Twilio] sampleを作成して、modelをビルドする
  6. [Twilio] 電話番号にvirtual assistantを紐づける
  7. [Twilio] テストする


1. [AWS] lambdaを作成する

import boto3 
import json 
 
INSTANCE_ID = 'I-*****************' 
ec2 = boto3.client('ec2') 
 
 
def lambda_handler(event, context): 
    command = get_command(event) 
    reply = '' 
 
    if command == 'start': 
        res = ec2.start_instances( 
            InstanceIds=[INSTANCE_ID] 
        ) 
        reply = 'The server is starting.' 
    elif command == 'stop': 
        res = ec2.stop_instances( 
            InstanceIds=[INSTANCE_ID] 
        ) 
        reply = 'The server is stopping' 
    else: 
        reply = 'Please tell me start or stop.' 
 
    body = { 
            'actions': [ 
                { 
                    'say': reply 
                } 
            ] 
        } 
 
    return({ 
        'isBase64Encoded': False, 
        'statusCode': 200, 
        'headers': {}, 
        'body': json.dumps(body) 
    }) 
 
 
def get_command(event): 
    try: 
        command = event['pathParameters']['command'] 
    except KeyError as err: 
        command = 'other' 
    return command 


2. [AWS] apiを作成する

API Gatewayでapiを作成してデプロイします。

項目
メソッド POST
Lambdaプロキシ統合の使用 ON
ステージ名 prod


auto2_1_api.png



3. [Twilio] virtual assistantを作成する

twilioのコンソールから[Autopilot] - [Create a New Assistant]を選択して、virtual assistantを作成します。


auto3.png



4. [Twilio] taskを作成する

Taskを3個作成します。


auto4_1.png



initial

{ 
    "actions": [ 
        { 
            "say": "Do you want to strat a hoge server or stop a hoge server?" 
        }, 
        { 
            "listen": true 
        } 
    ] 
} 


start

{ 
    "actions": [ 
        { 
            "redirect": "https://**********.execute-api.us-east-1.amazonaws.com/prod/start" 
        } 
    ] 
} 


stop

{ 
    "actions": [ 
        { 
            "redirect": "https://**********.execute-api.us-east-1.amazonaws.com/prod/stop" 
        } 
    ] 
} 


5. [Twilio] sampleを作成して、modelをビルドする



auto5_1.png




auto5_2.png




auto5_3.png



6. [Twilio] 電話番号にvirtual assistantを紐づける

[Channels] - [Programmable Voice]のVOICE URLをコピーします。



auto6_1.png


下図の赤枠にペーストして、電話番号と紐づけます。



auto6_2.png



7. [Twilio] テストする

Twilioで購入した電話番号に電話して、「start」か「stop」を指示します。


雑感

その1

発音が悪いのか、stopの方しか認識してくれませんでした。早く日本語に対応しないかな。。

その2

最近のtwilioはSendGridを買収したりと電話の枠を超えてコミュニケーション分野全体に手を広げているように見えます。そのうちSlackやFacebookを飲み込んだりして。。。

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2020-12-01 09:41:49 RSSフィード2020-12-01 09:00 分まとめ(69件)