Code Monkey home page Code Monkey logo

kazoo-php-sdk's Introduction

PHP Kazoo API

A simple Object Oriented wrapper for Kazoo API, written with PHP5.

NOTICE: Master is no longer backward compatibile with version 1.x

The master brach of this repo represents a new approach to the SDK, which will become version 2.x.

If you are currently using the SDK the 1.x branches will be maintained until otherwise notified.

Features

  • Follows PSR-0 conventions and coding standard: autoload friendly
  • Light and fast thanks to lazy loading of API classes
  • Extensively tested and documented

Requirements

Dependencies for the SDK are managed using Composer. For your convience we have included the composer binary in the root directory of the project.

However, if you would like to install Composer to your local system you can run (optional):

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

Installing the SDK

NOTICE: These instructions are a work-in-progress. Do you have a better way? Let us know!

  • Browse to the GitHub repo for the Kazoo SDK and select the branch which represents the version you wish to use.
  • Click "Download ZIP"
  • Unzip the SDK into your project
  • The SDK follows the PSR-0 convention names for its classes, which means you should be able to easily integrate kazoo-php-sdk class loading in your own autoloader.

Installing the SDK (with Composer)

This assumes basic familiarization with composer. If you have not used Composer before you might read the getting started guide.

Add the following require line:

"2600hz/kazoo-php-sdk": "dev-master"

Using Composer update or install your project dependencies.

If your project is already including the auto-generated autloader, then you are done!

Example Usage

In this example we will find all admins of the account belonging to the authenticated user. It will then set "require_password_update" to true for each admin and save it back to the db.

<?php

/* Install the library via composer or download the .zip file to your project folder. */
/* This line loads the library */
require_once "vendor/autoload.php";

/* Setup your SDK options, most commonly the Kazoo URL. If not provided defaults to localhost */
$options = array('base_url' => 'http://kazoo-crossbar-url:8000');

/* Get an authentication token using ONE of the provided methods */
// $authToken = new \Kazoo\AuthToken\None(); /* must have IP auth enabled on Kazoo */
// $authToken = new \Kazoo\AuthToken\ApiKey('XXXXX');
$authToken = new \Kazoo\AuthToken\User('username', 'password', 'sip.realm');

$sdk = new \Kazoo\SDK($authToken, $options);

$filter = array('filter_priv_level' => 'admin');
$users = $sdk->Account()->Users($filter);
foreach ($users as $element) {
    $admin = $element->fetch();
    $admin->require_password_update = true;
    $admin->save();
}

This is a basic example, from $sdk object you can access the full power of Kazoo!

Check out the examples for more!

To see the lastest Unit testing and great examples of functions that were tested, see:

/kazoo-php-sdk/lib/hz2600/Kazoo/Tests/Functional

We need your help with version 2.x

  • Version 2.x of the SDK needs to have the Entity and Collection classes for each Kazoo API built, with unit tests
  • We need to create documentation
  • We need testers!

Interested? Heres how to get started!

  • Install your favorite webserver with PHP 5.3.2+
  • Clone the SDK from your fork to your webserver directory, in this example we will use:
$ cd /var/www/html/
$ git clone [email protected]:{YOUR_GITHUB_ORGANIZATION}/kazoo-php-sdk.git
  • Create a new branch for your changes
$ git branch -b MY-FEATURE-BRANCH
  • Make changes!
  • Commit the changes
$ git add .
$ git commit -m 'added the XXX API'
$ git push origin MY-FEATURE-BRANCH
  • Login to GitHub, and your should have a "Compare & pull request" button on fork. Follow the instructions provided by that tool!

Documentation

See the doc directory for more detailed documentation.

Credits

Contributors

Thanks to GitHub for the high quality API and documentation.

kazoo-php-sdk's People

Contributors

5ghz avatar bmac901 avatar bradfordben avatar bret-2600 avatar buniq-tech avatar chreds avatar crboyd avatar danielfinke avatar dschreiber avatar fogeytron avatar igorrg avatar jamesaimonetti avatar jamhed avatar jawaidbazyar avatar jeai2600hz avatar k-anderson avatar kevinlovesing avatar lazedo avatar mroux avatar neurosys-zero avatar pcandia avatar plau avatar powerpbx avatar sjobke avatar swysor avatar tickbw avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.