![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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/2.jpg)
![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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042806/5f7076cebdaebc1c9d50c01d/html5/thumbnails/21.jpg)
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