Skip to end of metadata
Go to start of metadata

Веб-хук (webhook) — это отправка запросов по событиям из onlinePBX. Запросы уведомляют сторонние сервисы об изменениях в АТС. Позволяют отслеживать звонки, их состояние и другие события onlinePBX — информация отправляется на указанный URL. Веб-хуки могут использоваться для интеграции.

Подключение

Для подключения веб-хуков вам необходимо указать адрес URL, куда будут отправляться POST-запросы. Для этого в панели управления перейдите в Профиль > Веб-хуки, в строке введите ваш URL и нажмите «Добавить».

После добавления вы можете выбрать, какие именно события хотите получать. На выбор есть четыре варианта. Не забудьте сохранить и подтвердить изменения.

Примеры запросов

Начался звонок

{
"domain":"onlinepbx.ru",
"event":"call_start",
"direction":"outbound",
"uuid":"d02d3dd1-36f9-41g8-9055-3139369h6h90",
"caller":"505",
"callee":"79111117960",
"from_domain":"onlinepbx.ru",
"to_domain":"",
"gateway":"74991111282",
"date":"1528886454"
}

 

 

Ответили на звонок

{
"domain":"onlinepbx.ru",
"event":"call_answered",
"direction":"outbound",
"uuid":"2c033c12-7310-4v4v-9b42-8bb207b17322",
"caller":"505",
"callee":"79111117799",
"to_domain":"",
"gateway":"74991111112",
"date":"1528888621"
}

Завершился звонок

{
"domain":"onlinepbx.ru",
"event":"call_end",
"direction":"outbound",
"uuid":"6q5qq87q-0w32-4e23-8570-3r6rr6rrrr2r",
"caller":"145",
"callee":"79502222919",
"from_domain":"onlinepbx.ru",
"to_domain":"onlinepbx.ru",
"gateway":"74991111282",
"date":"1528884937",
"call_duration":"149",
"dialog_duration":"135",
"hangup_cause":"NORMAL_CLEARING",
"hangup_by":"caller"
}

Пропущенный звонок

{

"domain":"onlinepbx.ru",
"event":"call_missed",
"uuid":"5329a333-ss32-4dd9-ff0f-gh84g32h5g22",
"caller":"79221111123",
"from_domain":"onlinepbx.ru",
"to_domain":"onlinepbx.ru",
"gateway":"73431111137",
"date":"1529406933"
}

Список переменных и описание

ПеременнаяПример значения переменнойОписание переменной
1domainexample.onpbx.ruДомен, в котором состоялось событие
2eventcall_end / call_answered / call_startТип события
3directioninbound / outboundТип звонка (входящий/исходящий)
4uuid5921a027-c22f-4351-b495-30a49f00e4e1Уникальный идентификатор сессии
5caller+79510057057 / 510@onlinepbx.ruЗвонящий
6callee79827347182 / 102Кому звонили
7from_domainexamplefrom.onpbx.ruДомен звонящего
8to_domainexampleto.onpbx.ruДомен того, кому звонили
9gateway74922296721Транк, на/с которого позвонили
10date1527578Дата в формате UNIX
11call_duration159Общая длительность звонка (сек.)
12dialog_duration145Длительность разговора (сек.)
13hangup_causeNORMAL_CLEARINGПричина завершения звонка
14hangup_bycaller / calleeКто инициировал завершение вызова

Формат запросов

Все HTTP-запросы отправляются в формате POST, тело запроса в формате application/x-www-form-urlencoded.

 

  • No labels

6 Comments

  1. Anonymous

    Есть ли инструмент что бы тестировать хуки? 

    1. Добрый день!

      Такого инструмента у нас нет. Если у вас есть вопросы по работе веб-хуков, вы можете их задать нашим инженерам, написав на почту: support@onlinepbx.ru.

      Благодарю вас за комментарий!

  2. Anonymous

    Добрый день! В хуке по завершению звонка, если были переводы между сотрудниками, то в caller/callee придет добавочный того, кто инициировал звонок или кто последний разговаривал?

    То есть, если если звонок начал 100, во время звонка перевел на 105, то кто придет в caller?

    1. Anonymous

      Добрый день!

      При таком сценарии в поле caller/callee придёт добавочный сотрудника, на которого был перевод звонка. В вашем примере это 105-й пользователь.

      Благодарю за ваш комментарий!

  3. Anonymous

    Добрый день!

    Делаю интеграцию на webhook'ах с МойСклад и столкнулся с тем, что нет возможности идентифицировать один звонок в рамках нескольких хуков. Нет глобального идентификатора для всего цикла. Я в начале полагал, что таким идентфикатором является поле uuid, но по факту это идентификатор канала, который меняется в процессе обработки звонка. К примеру, на входящий звонок может быть три хука: call_startcall_answered и call_end, при этом uuid для всех этих хуков одного звонка не будет идентичным. 
    Если у вас нет технической возможности предоставить некий глобальный идентификатор для такой сессии, то хотя бы передавать в хуке взаимосвязь между идентификаторами каналов. В таком случае можно будет выйти на самый первый id канала и идентифицировать звонок для которого получен очередной хук.
    Виталий, vensi.onpbx.ru
    1. Виталий, добрый день!

      Составил заявку в технический отдел. В ближайшее время инженеры дадут ответ на почту администратора аккаунта или позвонят по контактному номеру телефона.

      Благодарю вас за развёрнутый комментарий!

Write a comment…