×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Twilio 入門 NSEG #40 2013.06.08 @thinkAmi
Slide 2
Slide 2 text
自己紹介 • @thinkAmi • hatenaID: thinkAmi • C#, Python, Ruby • 自社インフラ管理 • NSEG, GDG信州 • あとで資料&ソースコードは公開します
Slide 3
Slide 3 text
Twilio http://www.twilio.com/company/logos
Slide 4
Slide 4 text
Twilioとは • プログラムからAPI経由で電話を操作 – 電話への発信 – 電話からの着信 – 通話の録音 – SMSの送受信 など、いろいろ
Slide 5
Slide 5 text
日本では • KDDIウェブコミュニケーションズと提携 • 4/17、日本版提供のプレスリリース http://www.kddi-webcommunications.co.jp/news/press/20130417.html • 最近はいろいろなイベントを見かけます • クラスメソッドさんのBlogに連載あり – 実装の参考に。ありがとうございます。 http://dev.classmethod.jp/series/クラウド電話api-twilio/
Slide 6
Slide 6 text
事例 • アメリカ – Uber:配車コール – Airbnb・Hulu:ユーザーサポート • 日本 – ヤフー:サーバーの監視 – イプロス: B2B向けビジネスマッチングサイトのコールトラッキング http://jp.startup-dating.com/2013/04/twilio-launched-in-japan-what-kind-of-business-can-work-well http://ascii.jp/elem/000/000/781/781134/
Slide 7
Slide 7 text
身近な例 • CTIとかの構築をしたいけれど、コスト... – プログラムを組んで対応できるかも • 出張時に独自のモーニングコールが... – プログラムを組んで、Cronでコールすれば! • インフラ障害時に (ry
Slide 8
Slide 8 text
対応プログラム言語 • 公式ライブラリはいろいろとあり – PHP, Ruby, Python, .NET, Java, Salesforce/Force.com, Node.js • その他言語は、以下を参照 – http://www.twilio.com/docs/libraries
Slide 9
Slide 9 text
Twilioアカウント • 今回は、米TwilioのTrialアカウント – 以前GDG信州でやったものをリサイクル • KDDIのTwilioアカウントでは試せず – 米Twilioのアカウントでは KDDIのTwilioにログインできなかった • 日本の電話番号ではSMSの送受信できず http://www.twilio.com/help/faq/phone-numbers/which-countries-does-twilio-have-phone-numbers- in-and-what-are-their-capabilities
Slide 10
Slide 10 text
TwilioのTrialアカウント • いくつか制限がある – アカウントで認証した電話番号のみ、 Twilioへの発信や着信が可能 – 他にもいくつかある (How does Twilio’s Free Trial work?) http://www.twilio.com/help/faq/twilio-basics/how-does-twilios-free-trial-work
Slide 11
Slide 11 text
Trialアカウントの不明点 • Twilioへの費用は発生しないものの、 電話の着信・発信時の通話料は必要? • まだ明細確認してなかった...
Slide 12
Slide 12 text
プログラムからTwilioを使う
Slide 13
Slide 13 text
Twilioの設定 • Twilioの電話番号とTwiMLのURLを設定 Trialアカウントの場合は、手元の電話番号も認証しておく – TwiML: Twilioの動作を記載したXML
Slide 14
Slide 14 text
TwiML • 静的TwiMLを公開する – XMLを作るのが、めんどうくさい – あんまり自由ではない • プログラムでTwiMLを生成する – ライブラリを使えば、めんどくさくない • 例: Rubyであれば、twilio-ruby とか
Slide 15
Slide 15 text
TwiMLの例
Slide 16
Slide 16 text
英語テキストの読み上げ • デフォルトは男性の声、女性の声もあり Twilio::TwiML::Response.new do |r| r.Say('Hello World', voice: 'man') end.text
Slide 17
Slide 17 text
英語テキストの読み上げ • デフォルトは男性の声、女性の声もあり Hello World
Slide 18
Slide 18 text
日本語テキストの読み上げ • 今のところ、女性の声でしか再生できず Twilio::TwiML::Response.new do |r| r.Say('ようこそ、松本へ', language: 'ja-jp') end.text
Slide 19
Slide 19 text
日本語テキストの読み上げ • 今のところ、女性の声でしか再生できず ようこそ、松本へ
Slide 20
Slide 20 text
メニューの選択 Twilio::TwiML::Response.new do |r| r.Gather(action: '/hoge', method: 'GET', numDigits: 1 ) do |g| g.Say('再生は1、録音は2', language: 'ja-jp') end end.text
Slide 21
Slide 21 text
メニューの選択 再生は1を、録音は2を押してください TwiMLはもう省略してもいいですよね...
Slide 22
Slide 22 text
音声の録音 Twilio::TwiML::Response.new do |r| r.Record(action: '/fuga', method: 'GET', maxLength: 10 finishOnKey: '#') end.text
Slide 23
Slide 23 text
録音内容の再生 Twilio::TwiML::Response.new do |r| r.Play(<録音したデータのURL>) end.text
Slide 24
Slide 24 text
指定番号宛への電話発信 client = Twilio::REST::Client.new , client.account.calls.create( from: <発信番号(Twilioの電話番号を指定)>, to: <着信番号(Trialの場合は、認証した電話番号)>, url: <着信時に再生するTwiMLのURL> )
Slide 25
Slide 25 text
基本的な流れ • 携帯からTwilioへ電話をかける • Webから携帯へ電話をかける 携帯 Twilio TwiMLの ホスティング先 兼 Webの ホスティング先
Slide 26
Slide 26 text
基本的な流れ • 携帯からTwilioへ電話をかける ①Twilio番号へ発信 ②TwiMLを確認 ③TwiMLを返却 ④TwiMLに従い動作
Slide 27
Slide 27 text
基本的な流れ • Webから携帯へ電話をかける ②TwiMLを確認 ③TwiMLを返却 ④TwiMLに従い動作 ①Twilioへアクセス
Slide 28
Slide 28 text
デモ
Slide 29
Slide 29 text
デモ環境 • 米TwilioのTrialアカウント • Ruby + twilio-ruby • Heroku • Redis To Go (Herokuのアドオン版) – テキストデータの保存先として利用
Slide 30
Slide 30 text
デモ:テキストの読み上げ1 • Redis To Goへテキストを保存 • Webから携帯へ発信 • テキストの読み上げを確認
Slide 31
Slide 31 text
デモ:テキストの読み上げ2 • Redis To Goへテキストを保存 • 携帯からTwilioへ発信 • メニューから、テキスト再生を選択 • テキストの読み上げを確認
Slide 32
Slide 32 text
デモ:音声の記録と再生 • 携帯からTwilioへ発信 • メニューから、録音を選択 • 声を録音 • 直後に、内容を再生・確認
Slide 33
Slide 33 text
デモ:ブラウザから録音を再生 • 指定した録音内容を再生
Slide 34
Slide 34 text
デモ:ブラウザから録音を削除 • 指定した録音内容を削除
Slide 35
Slide 35 text
デモ:wavファイルの再生 • web上にあるwavファイルを再生する • どうせなので、話題のCeVIOと聴き比べ – CeVIO • http://cevio.jp/ • 参考 – 業務改善提案「さとうささらで弁当の注文忘れ防止」 – http://sho.tdiary.net/20130605.html#p01
Slide 36
Slide 36 text
やってみて • テキストをもとにTwilioが話す内容は、 意外と聞き取りやすい • 句読点で一呼吸置いてくれる • アルファベットはもちろん、ひらがな・ カタカナ・漢字も読み上げる – ただし、漢字の読み方は微妙なので、 ひらがなで設定したほうが確実
Slide 37
Slide 37 text
やってみて • 通話料のところが不明だけれど、 Trialアカウントでもいろいろと試せそう • URLへGET/POSTで発着信できるので、 いたずらとかアタックに気をつける – 実際、作成中に食らって電話が鳴り続いた...
Slide 38
Slide 38 text
参考文献 • Twilio http://www.twilio.com/ • KDDIウェブコミュニケーションズ http://kddi-web.twilio.jp/ http://blog.twilio.kddi-web.com/ • クラスメソッドBlog – Twilioシリーズ (中村 修太 さん) http://dev.classmethod.jp/series/クラウド電話api-twilio/ • koeだめ - 「ぼくもTwilioで爆速な電話ツールをつくりたい」->通知ツールつくった \(^o^)/ http://d.hatena.ne.jp/bash0C7/20130420/1366443003