クイックスタート|Tropo Web API

通話全体の録音

   

発信者のガイダンスに対する応答を録音したい時もあれば、ガイダンスと応答、あるいは発信者の複数の応答、 キー音、その他の事象に対して答えようとするなど、色々な場面を録音したい時もあるでしょう。 startCallRecordingstopCallRecordingが、それらを可能にし、インバウンドとアウトバウンドの通話で動作します。 次の例では、電話がかかるとすぐに録音が開始し、発信者に好みの色を3回まで尋ねます(無効回答がなされた場合のみ繰り返されます)。 その後、電話が切れ、指定されたURLに録音を送信します。

実際のコード例

 
require 'tropo-webapi-ruby'
require 'sinatra'

post '/index.json' do
  
  t = Tropo::Generator.new
  
  t.start_recording :url => "http://example.com/recording.rb"
        
  t.ask :name => 'color', 
        :attempts => 3, 
        :say => {:value => "好きな色は何ですか?レッド、ブルー、グリーンの中から選んでください"},
        :choices => {:value => "red, blue, green"}
        
  t.stop_recording
  
  t.response
  
end
var http = require('http');
var tropo_webapi = require('tropo-webapi');

var server = http.createServer(function (request, response) {

  var tropo = new TropoWebAPI();
    
  var say = new Say("好きな色は何ですか?レッド、ブルー、グリーンの中から選んでください");
  var choices = new Choices("red, blue, green");
  
  
  tropo.startRecording(null, null, "http://example.com/recording.js", null, null);
  
  
  tropo.ask(choices, 3, null, null, "color", null, null, say, null, null);
  
  tropo.stopRecording();
  
response.end(TropoJSON(tropo));

}).listen(8000); 

<?php

require 'tropo.class';

  $tropo = new Tropo();

  $tropo->startRecording(array("url" => "http://example.com/recording"));

  $options = array("choices" => "red, blue, green", "name" => "color", "attempts" => 3);
 
  $tropo->ask("好きな色は何ですか?レッド、ブルー、グリーンの中から選んでください", $options);
  
  $tropo->stopRecording();
  
  $tropo->RenderJson();

?>
from itty import *
from tropo import Tropo

@post('/index.json')
def index(request):

  t = Tropo()

  t.startRecording(url = "http://example.com/recording.py")
  
  t.ask(choices = "red, blue, green", timeout=60, name="color", say = "好きな色は何ですか?レッド、ブルー、グリーンの中から選んでください")	
  
  t.stopRecording()
  
  return t.RenderJson()

run_itty(server='wsgiref', host='0.0.0.0', port=8888)


{
   "tropo":[
      {
         "startRecording":{"url":"http://example.com/recording"}
      },
      {
         "ask": {
                "say":{"value": "好きな色は何ですか?レッド、ブルー、グリーンの中から選んでください"},
                "attempts":3,
                "name": "color",
                "choices": {"value": "red, blue, green"} 
            }
      },
      {
         "stopRecording":null
      }
   ]
}
 

最初に、call方式を含めるだけで、このアウトバウンドコールができます。 startCallRecordingの前に、これを挿入します。

  • call("09012345***");
  • Rubyでは
  • call "09012345***"

録音ショートカットの呼び出し アウトバウンドコールを録音するのに、もう少し速い方法があります。パラメータrecordURIをcallメソッドに追加することで、 自動的に電話が応答すると同時に録音が開始し、それから通話が終了すると、録音がパラメータで定義したURLに送信されます。

 
require 'tropo-webapi-ruby'
require 'sinatra'

post '/index.json' do
  
  t = Tropo::Generator.new
  
  t.call(:to => "090123*****",
        :recording => {:url => "http://example.com/recording.rb"})
   t.ask :say => {:value => "アカウント番号を入力してください。"},
        :choices => {:value => "[5 DIGITS]"}

  t.response
  
end
var http = require('http');
var tropo_webapi = require('tropo-webapi');

var server = http.createServer(function (request, response) {
  
  var tropo = new TropoWebAPI();
  
  //(format, method, url, username, password)
  var recording = new startRecording(null, null, "http://example.com/recording", null, null);

  //(to, answerOnMedia, channel, from, headers, name, network, recording, required, timeout)
  tropo.call("090123*****", null, null, null, null, null, null, recording, null, null);

  var say = new Say("アカウント番号を入力してください。");
  var choices = new Choices("[5 DIGITS]");

  // (choices, attempts, bargein, minConfidence, name, recognizer, required, say, timeout, voice)
  tropo.ask(choices, null, null, null, "digits", null, null, say, null, null);

  response.end(TropoJSON(tropo));

}).listen(8000); 

<?php

require 'tropo.class';

  $tropo = new Tropo();
  
  //$format, $method, $password, $url, $username)
  
  $rec = new StartRecording(null,null,null,"http://example.com/recording", null);
      
  $options = array("recording" => $rec);
  
  $tropo->call("090123*****", $options);  

  $tropo->ask("アカウント番号を入力してください。", array("choices" => "[5 DIGITS]"));

  $tropo->RenderJson();

?>
from itty import *
from tropo import Tropo

@post('/index.json')
def index(request):

  t = Tropo()
  
  t.call("090123*****", recording={"url":"http://example.com/recording"})
  t.ask(choices = "[5 DIGITS]", say = "アカウント番号を入力してください。")		
  
  return t.RenderJson()

run_itty(server='wsgiref', host='0.0.0.0', port=8888)


{"tropo":[
      {
         "call":{
            "to":"090123*****",
            "recording":{"url":"http://example.com/recording"}
         }
      },
      {
         "ask":{
            "say":{"value":"アカウント番号を入力してください。"},
            "choices":{"value":"[5 DIGITS]"}
         }
      }
   ]
}
 

次のページでは書き起こしについて説明します。