NAME
Tropo - Use the TropoAPI via Perl
VERSION
version 0.16
SYNOPSIS
Ask the
my $tropo = Tropo->new;
$tropo->call(
to => $clients_phone_number,
);
$tropo->say( 'hello ' . $client_name );
$tropo->json;
Creates this JSON output:
{
"tropo":[
{
"call": {
"to":"+14155550100"
}
},
{
"say": [
{
"value":"Tag, you're it!"
}
]
}
]
}
You can also chain the method calls:
my $tropo = Tropo->new;
print $tropo->call( to => $phone )->say ( 'hello' )->json;
DESCRIPTION
HOW THE TROPO API WORKS
The Tropo server talks with your web application via json sent with HTTP POST requests.
When you'd like to initiate a call/text message, you have to start a session.
my $session = Tropo::RestAPI::Session->new(
url => 'https://tropo.developergarden.com/api/', # use developergarden.com api
);
my $data = $session->create(
token => $token,
call_session => $id,
) or print $session->err;
When you create a session you can pass any parameter you want. The only mandatory parameter is token. You'll find that token in your developergarden account in the application management.
The Tropo server then requests the URI that you added in the application management. It is an HTTP POST request that contains session data (the parameters that you passed, too). An example of the dumped request data can be found below.
Your application has to send JSON data back to the Tropo server. In that JSON data you can define (see command on) which URLs the Tropo server requests on specific events.
COMMANDS
This list show the commands currently implemented. This library is under heavy development, so that more commands will follow in the near future:
ask
call
on
say
wait
A detailed description of all commands and their attributes can be found at http://www.developergarden.com/fileadmin/microsites/ApiProject/Dokumente/Dokumentation/Api_Doc_5_0/telekom-tropo-2.1/html/method_summary.html|DeveloperGarden.
Only on
can't be found there.
EXAMPLES
All examples can be found in the examples directory of this distribution. Those examples might have extra dependencies that you might have to install when you want to run the code.
You also need an account e.g. for developergarden.com or tropo.com.
Two factor authentication
call_customer.psgi
You can find a small Mojolicious::Lite
application that calls a customer to tell him a code... On the start page a small form is shown where the customer sends his phone number. Then a new call is initiated and the Tropo provider calls the customer and tells him the secret.
Handle incoming calls
televote.psgi
You can publish a phonenumber that is connected to your application (e.g. in developergardens application management). The people call that number and are asked to "vote"...
MORE INFO
Here you can find some detailed info that might help to debug your code.
Session data sent from Tropo to your app
$VAR1 = {
'session' => {
'userType' => 'NONE',
'parameters' => {
'token' => 'your_api_token',
'action' => 'create',
'call_session' => 'zRlbp7UET5ecDcneDCnoB4'
},
'callId' => undef,
'initialText' => undef,
'timestamp' => '2013-09-06T18:53:20.168Z',
'accountId' => '9183',
'id' => '9884f64erb41e97948083c25980d63683'
}
};
ACKNOWLEDGEMENT
I'd like to thank Richard from Telekoms Developergarden. He has done a lot of debugging during the #startuphack (Hackathon at "Lange Nacht der Startups" 2013).
AUTHOR
Renee Baecker <module@renee-baecker.de>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2013 by Renee Baecker.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)