kazoo php sdk documentation - read the docs€¦ · •follows psr-0 conventions and coding...

21
Kazoo PHP SDK Documentation Release 0.1 2600hz Inc May 24, 2016

Upload: others

Post on 25-Jul-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

Kazoo PHP SDK DocumentationRelease 0.1

2600hz Inc

May 24, 2016

Page 2: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively
Page 3: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

Contents

1 Status 1

2 Quickstart 32.1 Create a Sub-Account . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Create a Sub-Sub-Account . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.3 Create a SIP Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.4 User / Device / Extension / VoiceMail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.5 Read Account CDRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.6 Generating Kazoo JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 Installation 73.1 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.3 Autoload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4 User Guide 94.1 REST API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

5 API Documentation 115.1 Kazoo Rest Entities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115.2 Kazoo Rest Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

6 Support and Development 136.1 Running the Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136.2 Making the Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

7 Indices and tables 15

i

Page 4: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

ii

Page 5: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

CHAPTER 1

Status

This documentation is for version 0.1 of kazoo-php-sdk.

1

Page 6: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

Kazoo PHP SDK Documentation, Release 0.1

2 Chapter 1. Status

Page 7: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

CHAPTER 2

Quickstart

2.1 Create a Sub-Account

The following code will create a new Account resource:

$client = new \Kazoo\Client($username, $password, $sipRealm, $options);

$newAccount = $client->accounts()->new();$newAccount->name = "New Test Account";$newAccount->realm = "sip".rand(0,10000).".testaccount.com";$newAccount->timezone = "America/Chicago";

$client->accounts()->create($newAccount);

echo "<pre>";echo $account;echo "</pre>";

2.2 Create a Sub-Sub-Account

The following code will create a new Account resource:

$client = new \Kazoo\Client($username, $password, $sipRealm, $options);

...

...$prevAccount = $client->accounts()->retrieve($account_id);......

$client->setAccountContext($prevAccount->id);

$newSubAccount = $client->accounts()->new();$newSubAccount->name = "New Sub Test Account";$newSubAccount->realm = "sip".rand(0,10000).".subtestaccount.com";$newSubAccount->timezone = "America/Chicago";

$client->accounts()->create($newSubAccount);

echo "<pre>";

3

Page 8: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

Kazoo PHP SDK Documentation, Release 0.1

echo $newSubAccount;echo "</pre>";

2.3 Create a SIP Device

The following code will create a new Device resource for the Account (or sub-account):

$shellDevice = $client->accounts()->devices()->new();$num = substr(number_format(time() * rand(),0,'',''),0,4);$shellDevice->name = "Test Device #" . $num;$shellDevice->sip->password = substr(number_format(time() * rand(),0,'',''),0,10);$shellDevice->sip->username = "testdevice".$num;$newDevice = $this->client->accounts()->devices()->create($shellDevice);

echo "<pre>";echo $newDevice;echo "</pre>";

2.4 User / Device / Extension / VoiceMail

The following code with create a User, a device for that User,

$start = strtotime('-30 Day') + \Kazoo\Client::GREGORIAN_OFFSET;$end = time() + \Kazoo\Client::GREGORIAN_OFFSET;$filters = array("created_from" => $start, "created_to" => $end);$cdrs = $client->accounts()->cdrs()->retrieve($filters);

echo "<pre>";echo print_r($cdrs);echo "</pre>";

2.5 Read Account CDRS

The following code will generate a list of CDRS

$start = strtotime('-30 Day') + \Kazoo\Client::GREGORIAN_OFFSET;$end = time() + \Kazoo\Client::GREGORIAN_OFFSET;$filters = array("created_from" => $start, "created_to" => $end);$cdrs = $client->accounts()->cdrs()->retrieve($filters);

echo "<pre>";echo print_r($cdrs);echo "</pre>";

2.6 Generating Kazoo JSON

Account JSON:

4 Chapter 2. Quickstart

Page 9: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

Kazoo PHP SDK Documentation, Release 0.1

$username = 'testuser';$password = 'pAssw0rd';$sipRealm = 'sip.realm.com';$options = array();$options["base_url"] = "http://127.0.0.1:8000";$client = new \Kazoo\Client($username, $password, $sipRealm, $options);

$account = $client->accounts()->new();echo "<pre>";echo $account;echo "</pre>";

Will result in the following json:

{"name": "","realm": "","timezone": "","caller_id": {"internal": {

"name": ""},"external": {"name": ""

},"default": {

"name": ""},"emergency": {

"name": ""}

},"caller_id_options": {"reformat": ""

},"notifications": {"voicemail_to_email": {

"email_text_template": "","email_html_template": "","email_subject_template": "","support_number": "","support_email": "","service_url": "","service_name": "","service_provider": "","send_from": ""

},"deregister": {"email_text_template": "","email_html_template": "","email_subject_template": "","support_number": "","support_email": "","service_url": "","service_name": "","service_provider": "","send_from": ""

},

2.6. Generating Kazoo JSON 5

Page 10: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

Kazoo PHP SDK Documentation, Release 0.1

"password_recovery": {"email_text_template": "","email_html_template": "","email_subject_template": "","support_number": "","support_email": "","service_url": "","service_name": "","service_provider": "","send_from": ""

},"first_occurrence": {"send_to": "","sent_initial_registration": false,"sent_initial_call": false,"email_text_template": "","email_html_template": "","email_subject_template": "","support_number": "","support_email": "","service_url": "","service_name": "","service_provider": "","send_from": ""

}},"media": {"bypass_media": "","audio": {

"codecs": []},"video": {"codecs": []

},"fax": {

"option": ""}

},"music_on_hold": {"media_id": ""

}}

View more examples of JSON generation here: usage-json

6 Chapter 2. Quickstart

Page 11: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

CHAPTER 3

Installation

3.1 Features

• Follows PSR-0 conventions and coding standard: autoload friendly

• Light and fast thanks to lazy loading of API classes

• Extensively tested and documented

3.2 Requirements

• PHP >= 5.3.2 with cURL extension

• Guzzle library

• Monolog library

• (optional) PHPUnit to run tests.

3.3 Autoload

The new version of kazoo-php-sdk using Composer. The first step to use kazoo-php-sdk is to download composer:

$ curl -s http://getcomposer.org/installer | php

Then we have to install our dependencies using:

$ php composer.phar install

Now we can use autoloader from Composer by:

{"require": {

"2600hz/kazoo-php-sdk": "*"},"minimum-stability": "dev"

}

kazoo-php-sdk follows the PSR-0 convention names for its classes, which means you can easily integrate kazoo-php-sdk classes loading in your own autoloader.

7

Page 12: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

Kazoo PHP SDK Documentation, Release 0.1

8 Chapter 3. Installation

Page 13: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

CHAPTER 4

User Guide

4.1 REST API

4.1.1 Using the Kazoo REST API

Creating a REST Client

Before querying the API, you’ll need to create a KazooClient instance. The constructor takes your Kazoo user-name, password, and sip realm of your root Account.

$username = 'testuser';$password = 'pAssw0rd';$sipRealm = 'sip.realm.com';$options = array();$options["base_url"] = "http://127.0.0.1:8000";$client = new \Kazoo\Client($username, $password, $sipRealm, $options);

4.1.2 Accounts

Creating a Subaccount

$client = new \Kazoo\Client($username, $password, $sipRealm, $options);

$newAccount = $client->accounts()->new();$newAccount->name = "New Test Account";$newAccount->realm = "sip".rand(0,10000).".testaccount.com";$newAccount->timezone = "America/Chicago";

$client->accounts()->create($newAccount);

Get a list of sub accounts

$client = new \Kazoo\Client($username, $password, $sipRealm, $options);$accounts = $this->client->accounts()->retrieve();

9

Page 14: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

Kazoo PHP SDK Documentation, Release 0.1

Get an empty Account

$client = new \Kazoo\Client($username, $password, $sipRealm, $options);$account = $this->client->accounts()->new();

4.1.3 Devices

Creating a new Device

$client = new \Kazoo\Client($username, $password, $sipRealm, $options);

$shellDevice = $client->accounts()->devices()->new();$num = substr(number_format(time() * rand(),0,'',''),0,4);$shellDevice->name = "Test Device #" . $num;$shellDevice->sip->password = substr(number_format(time() * rand(),0,'',''),0,10);$shellDevice->sip->username = "testdevice".$num;$newDevice = $this->client->accounts()->devices()->create($shellDevice);

Get a list of sub accounts

$client = new \Kazoo\Client($username, $password, $sipRealm, $options);$devices = $this->client->accounts()->devices()->retrieve();

Get a list of sub accounts

$client = new \Kazoo\Client($username, $password, $sipRealm, $options);$accounts = $this->client->accounts()->retrieve();

Get an empty Device

$client = new \Kazoo\Client($username, $password, $sipRealm, $options);$device = $this->client->accounts()->devices()->new()

10 Chapter 4. User Guide

Page 15: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

CHAPTER 5

API Documentation

5.1 Kazoo Rest Entities

5.1.1 AbstractEntity

class AbstractEntityEntity abstraction

__construct(KazooClient $client, $uri, $data = null)@param KazooClient $client @param string $uri

updateFromResult(stdClass $result)@param stdClass $result @return KazooApiDataAbstractEntity

partialUpdateFromResult(stdClass $result)@param stdClass $result @return KazooApiDataAbstractEntity

__get($prop)@param type $prop @return type

__set($prop, $value)@param type $prop @param type $value

__toString()@return type

getData()@return type

toJSON()@return json

__call($name, $arguments)@param string $name @param null|array $arguments @return KazooApiDataAbstractEntity

5.1.2 Account

class AccountAccount Entity maps to a REST resource.

__call($name, $arguments)@param string $name @param null|array $arguments @return KazooApiDataAbstractEntity

11

Page 16: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

Kazoo PHP SDK Documentation, Release 0.1

5.1.3 Agent

class Agent

5.1.4 Callflow

class CallflowCallflow Entity maps to a REST resource.

5.2 Kazoo Rest Collections

5.2.1 AccountCollection

class AccountCollection

5.2.2 AgentCollection

class AgentCollection

5.2.3 CallflowCollection

class CallflowCollection

5.2.4 CarrierResourceCollection

class CarrierResourceCollection

5.2.5 ClickToCallCollection

class ClickToCallCollection

5.2.6 ConferenceCollection

class ConferenceCollection

12 Chapter 5. API Documentation

Page 17: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

CHAPTER 6

Support and Development

All development occurs on Github. To check out the source, run

git clone [email protected]:2600hz/kazoo-php-sdk.git

Report bugs using the Github issue tracker.

6.1 Running the Tests

To run the unit tests

phpunit

6.2 Making the Documentation

Our documentation is written using Sphinx. You’ll need to install Sphinx and the Sphinx PHP domain before you canbuild the docs.

make docs-install

Once you have those installed, making the docs is easy.

make docs

13

Page 18: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

Kazoo PHP SDK Documentation, Release 0.1

14 Chapter 6. Support and Development

Page 19: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

CHAPTER 7

Indices and tables

• genindex

• search

15

Page 20: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

Kazoo PHP SDK Documentation, Release 0.1

16 Chapter 7. Indices and tables

Page 21: Kazoo PHP SDK Documentation - Read the Docs€¦ · •Follows PSR-0 conventions and coding standard: autoload friendly •Light and fast thanks to lazy loading of API classes •Extensively

Index

Symbols__call() (AbstractEntity method), 11__call() (Account method), 11__construct() (AbstractEntity method), 11__get() (AbstractEntity method), 11__set() (AbstractEntity method), 11__toString() (AbstractEntity method), 11

AAbstractEntity (class), 11Account (class), 11AccountCollection (class), 12Agent (class), 12AgentCollection (class), 12

CCallflow (class), 12CallflowCollection (class), 12CarrierResourceCollection (class), 12ClickToCallCollection (class), 12ConferenceCollection (class), 12

GgetData() (AbstractEntity method), 11

PpartialUpdateFromResult() (AbstractEntity method), 11

TtoJSON() (AbstractEntity method), 11

UupdateFromResult() (AbstractEntity method), 11

17