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

通話録音

   

通話の録音を行う場合は、recordメソッドを使用します。

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

post '/record.json' do
  
  t = Tropo::Generator.new
  
  t.record({ :name => 'recording',
             :url => 'http://example.com/recording.rb', 
             :choices => { :terminator => "#"}
             }) do
                  say :value => 'メッセージをお預かりします。'
              end
  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(null, null, "#");

    //function(attempts, bargein, beep, choices, format, maxSilence, maxTime, method, minConfidence, name, required, say, timeout, transcription, url, password, username)
    tropo.record(null, null, null, choices, null, null, null, null, null, "recording", null, say, null, null, "http://example.com/recording.js", null, null);
    
    response.end(TropoJSON(tropo));

}).listen(8000); 
<?php

require 'tropo.class';

$tropo = new Tropo();

$tropo->record(array(
  'say' => 'メッセージをお預かりします。',
  'url' => 'http://example.com/recording',
  'terminator' => '#'
  ));

$tropo->RenderJson();
?>
from itty import *
from tropo import Tropo

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

    t = Tropo()

    t.record(name = "recording", choices = {"terminator": "#"} , say = "メッセージをお預かりします。", url = "http://example.com/recording.py")
    
    return t.RenderJson()

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


{
   "tropo":[
      {
         "record":{
            "say":[{"value":"メッセージをお預かりします。"}],
            "name":"recording",
            "url":"http://example.com/recording.js",
            "choices":{"terminator":"#"}
         }
      }
   ]
}
 

いくつか任意で指定可能なオプションパラメータがあります。 次のサンプルでは、 timeout(音声を送信または再生した後、ユーザが応答を開始するまで、 Tropoが待機する時間を秒単位で設定するもの)をデフォルトの30秒間の代わりに10秒間と定義しています。

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

post '/record.json' do
  
  t = Tropo::Generator.new
  
  t.record({ :name => 'recording',
             :timeout => 10,
             :url => 'http://example.com/recording.rb', 
             :choices => { :terminator => "#"}
             }) do
                  say :value => 'メッセージをお預かりします。'
              end
  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(null, null, "#");

    //function(attempts, bargein, beep, choices, format, maxSilence, maxTime, method, minConfidence, name, required, say, timeout, transcription, url, password, username)
    tropo.record(null, null, null, choices, null, null, null, null, null, "recording", null, say, 10, null, "http://example.com/recording.js", null, null);
    
    response.end(TropoJSON(tropo));

}).listen(8000); 
<?php

require 'tropo.class';

$tropo = new Tropo();

$tropo->record(array(
    'say' => 'メッセージをお預かりします。',
    'url' => 'http://example.com/recording',
    'terminator' => '#',
    'timeout' => 10
  ));

$tropo->RenderJson();
?>
from itty import *
from tropo import Tropo

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

    t = Tropo()

    t.record(name = "recording", choices = {"terminator": "#"} , say = "メッセージをお預かりします。", url = "http://example.com/recording.py", timeout = 10)
    
    return t.RenderJson()

run_itty(server='wsgiref', host='0.0.0.0', port=8888)
{
   "tropo":[
      {
         "record":{
            "say":[{"value":"メッセージをお預かりします。"}],
            "name":"recording",
            "url":"http://example.com/recording.js",
            "timeout":10,
            "choices":{"terminator":"#"}
         }
      }
   ]
}
 

以上で着信通話の基本を押さえることができました。発信については、次の章をお読みください。