NAME
Switchvox::API - Perl interface to the Switchvox Extend API.
SYNOPSIS
This module provides a simple interface to interface with the Extend API on a Digium, Switchvox PBX. For more complete documentation on the entire Switchvox Extend API please visit http://developers.digium.com/switchvox. For more information on the Digium, Switchvox PBX product please visit the project home page at http://www.switchvox.com.
Note: The Switchvox::API
object is a subclass of LWP::UserAgent so you can use all functionality of LWP::UserAgent.
An example of requesting information about two accounts (1106,1107) from the Switchvox PBX.
my $api = new Switchvox::API(
hostname => '192.168.0.50',
username => 'admin',
password => 'your_admin_password'
);
my $response = $api->api_request(
method => 'switchvox.extensions.getInfo',
parameters =>
{
account_ids =>
[
{ 'account_id' => [1106,1107] }
],
}
);
if($response->{api_status} eq 'success')
{
my $extensions = $response->{api_result}{response}[0]{result}[0]{extensions}[0]{extension};
foreach my $extension (@$extensions)
{
print "Extension:$extension->{number}, Full Name:$extension->{first_name} $extension->{last_name}\n";
}
}
else
{
print "Encountered Errors:\n";
foreach my $error ( @{$response->{api_errors}} )
{
print "-Code:$error->{code},Message:$error->{message}\n";
}
}
AUTHOR
Written by David W. Podolsky <api at switchvox dot com>
Copyright (C) 2009 Digium, Inc
SEE ALSO
Switchvox::API::Request, Switchvox::API::Response, http://developers.digium.com/switchvox/
METHODS
- new( %args )
-
Returns a new
Switchvox::API
object.- hostname
-
The hostname or IP address of the Switchvox PBX.
- username
-
The admin name or the extension used for authentication with the Switchvox. If you use an extension you can only call user methods via the Extend API.
- password
-
The admin password or extension password used for authentication.
- api_request( %args )
-
Returns an
Switchvox::API::Response
object.- method
-
Name of the API method you want to call.
- parameters
-
List of parameters to pass to the API.