Upload
siplabs-communications
View
360
Download
8
Embed Size (px)
Citation preview
Кazoo API. Интеграция c KazooКazoo API. Интеграция c Kazoo
Першин Владимир
API
KAZOO – Restful APIHTTP/HTTPS
Структура API
Host:port Api Versionst CollectionEntity
Структура APIПример URI:
http://api.kazoohost.com:8000/v2/accounts/a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6/menus/a0b9
c8d7e6f5a0b9c8d7e6f5a0b9c8d7e6f5● http://api.kazoohost.com:8000 - base uri● v2 – версия API● accounts – имя коллекции ● a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6 – id аккаунта
● menus – имя коллекции ● a0b9c8d7e6f5a0b9c8d7e6f5a0b9c8d7e6f5 – id меню
Работа с API
Поддерживаемые методы:● PUT – создание● POST – обновление● DELETE – удаление● GET – получить данные● PATCH – обновление (не для всех API)
Работа с API
HTTP Header:X-Auth-Token:
Content-Type: Appliсation/JSON
Работа с API
Пример JSON:{"data": [ { "id":"db4f634652c1e6b8a1c9e01adc607f28", "name":"Test1", "mac_address":"", "enabled":true, "device_type":"sip_device" }, { "id":"d737611360d94c6ce5044bc7e90a42c5", "name":"Dev1", "mac_address":"", "enabled":true, "device_type":"sip_device" } ] }
Работа с API
Пример работы c API: Получение AuthToken PUT http://test:8000/v2/user_auth { "data": { "api_key" : "YOUR_API_KEY_HERE" } }
{ "data" : { "credentials" : "md5(username:password)", "realm" : "YOUR.REALM.COM" }, "verb" : "PUT" }
Работа с API
Пример JSON:JSON: { "data": { "name":"Menu1" }, "verb":"PUT" }
Работа с API
Ответ:HTTP/1.1 201 Createdconnection: keep-aliveserver: Cowboydate: Mon, 23 Nov 2015 09:37:13 GMTcontent-length: 321x-request-id: 8e0ddf753cb77d83f2f04fe766077b4acontent-language: encontent-type: application/jsonvary: accept-language, acceptLocation: /v2/accounts/99f518da26b77610de1e36472dbe2a68/menus/c877283ba83b0b4f91855eee045554e2
Работа с API
Ответ:{"data": { "name":"Menu2", "allow_record_from_offnet":false, "hunt":true, "max_extension_length":4, "media":{}, "retries":3, "id":"c877283ba83b0b4f91855eee045554e2" }, "revision":"1-00671bd3f8c68e3a31879abe1b797f25", "request_id":"8e0ddf753cb77d83f2f04fe766077b4a", "status":"success", "auth_token":"1e4ae787506a66cdce2be7f8a2caf617"}
Работа с API
Полезные иснструменты:
1) Postman https://www.getpostman.com/ 2) Swagger.io http://swagger.io/ 3) DHC https://chrome.google.com/webstore/detail/dhc-resthttp-api-client
SDK
Software Development Kits
SDK
1) PHP SDK https://github.com/2600hz/kazoo-php-sdk2) Python SDK https://github.com/2600hz/python-sdk3) Ruby SDK https://github.com/2600hz/kazoo-ruby-sdk
Pivot
1) XML (Twilio) 2) Kazoo JSON
Kazoo
HTTP Request
HTTP Response (TwiML, Kazoo JSON)
Запрос callflow по HTTP
Pivot
XML: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <Response>\n <Gather numDigits="5" timeout="20" action="/" method="POST"> </Gather> </Response>
Pivot
JSON: { "module": "play", "data": { "id": "prompt-id" }, "children": { "_": { "module": "callflow", "data": { "id": "b2d608e5e1aada5a3e0724b3370888de" } } }}
Pivot
Недостатки Pivot: Нужна инфраструктура Ограниченный список параметров:● CallerNumber● CallerName● Direction● ApiVersion● ToRealm● To● FromRealm● From● AccountSid● CallSid
Другие способы интеграции
● channel_create – создание канала ● channel_answer – канал был отвечен● channel_destroy – канал уничтожен
Другие способы интеграции
Поддерживаемые события:● CHANNEL_CREATE - создание канала● CHANNEL_ANSWER – канал был отвечен● CHANNEL_DESTROY – уничтожение канала● CHANNEL_BRIDGE – устоновление канала прошло успешно● conference.event – любое событие в конференции● fax.status – любое изменения fax
Пример приложения с BlackHole (https://github.com/2600hz/kazoo-popup)
Другие способы интеграции
СКОРО!!!! (Спасибо компании Voxter)
СПАСИБО ЗА ВНИМАНИЕ!
[email protected] :https://ru.linkedin.com/in/vladimir-pershin-368155107