kazoomeetup moscow 2015. Владимир Першин. kazoo api, Интеграция с kazoo

22
Кazoo API. Интеграция c Kazoo Кazoo API. Интеграция c Kazoo Першин Владимир

Upload: siplabs-communications

Post on 18-Feb-2017

363 views

Category:

Internet


8 download

TRANSCRIPT

Page 1: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

Кazoo API. Интеграция c KazooКazoo API. Интеграция c Kazoo

Першин Владимир

Page 2: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

API

KAZOO – Restful APIHTTP/HTTPS

Page 3: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

Структура API

Host:port Api Versionst CollectionEntity

Page 4: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

Структура 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 меню

Page 5: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

Работа с API

Поддерживаемые методы:● PUT – создание● POST – обновление● DELETE – удаление● GET – получить данные● PATCH – обновление (не для всех API)

Page 6: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

Работа с API

HTTP Header:X-Auth-Token:

Content-Type: Appliсation/JSON

Page 7: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

Работа с 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" } ] }

Page 8: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

Работа с 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" }

Page 9: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

Работа с API

Пример JSON:JSON: { "data": { "name":"Menu1" }, "verb":"PUT" }

Page 10: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

Работа с 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

Page 11: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

Работа с 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"}

Page 12: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

Работа с 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

Page 13: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

SDK

Software Development Kits

Page 14: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

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

Page 15: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

Pivot

1) XML (Twilio) 2) Kazoo JSON

Kazoo

HTTP Request

HTTP Response (TwiML, Kazoo JSON)

Запрос callflow по HTTP

Page 16: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

Pivot

XML: <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <Response>\n <Gather numDigits="5" timeout="20" action="/" method="POST"> </Gather> </Response>

Page 17: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

Pivot

JSON: { "module": "play", "data": { "id": "prompt-id" }, "children": { "_": { "module": "callflow", "data": { "id": "b2d608e5e1aada5a3e0724b3370888de" } } }}

Page 18: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

Pivot

Недостатки Pivot: Нужна инфраструктура Ограниченный список параметров:● CallerNumber● CallerName● Direction● ApiVersion● ToRealm● To● FromRealm● From● AccountSid● CallSid

Page 19: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

Другие способы интеграции

● channel_create – создание канала ● channel_answer – канал был отвечен● channel_destroy – канал уничтожен

Page 20: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

Другие способы интеграции

Поддерживаемые события:● CHANNEL_CREATE - создание канала● CHANNEL_ANSWER – канал был отвечен● CHANNEL_DESTROY – уничтожение канала● CHANNEL_BRIDGE – устоновление канала прошло успешно● conference.event – любое событие в конференции● fax.status – любое изменения fax

Пример приложения с BlackHole (https://github.com/2600hz/kazoo-popup)

Page 21: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

Другие способы интеграции

СКОРО!!!! (Спасибо компании Voxter)

Page 22: KAZOOMEETUP MOSCOW 2015. Владимир Першин. KAZOO API, Интеграция с  KAZOO

СПАСИБО ЗА ВНИМАНИЕ!

[email protected] :https://ru.linkedin.com/in/vladimir-pershin-368155107