API PBX

Для использования API интеграции произвольной телефонии необходимо установить приложение Интеграция произвольной телефонии https://secure.wirecrm.com/marketplace/193, выполнить необходимые настройки, сгенерировать ссылку для уведомлений (Webhook), выбрать ответственного пользователя для новых звонков, настроить соответствие пользователей АТС и CRM.

Запросы необходимо присылать методом POST в формате multipart/form-data.

Список принимаемых CRM событий:


NOTIFY_START
NOTIFY_END
NOTIFY_OUT_START
NOTIFY_OUT_END
NOTIFY_INTERNAL
NOTIFY_RECORD

NOTIFY_START


Начало входящего звонка в АТС
Параметры, которые отправляются на ссылку для уведомлений:
event – событие (NOTIFY_START)
call_start – время начала звонка
pbx_call_id – постоянный ID звонка в АТС
caller_id – номер звонящего
called_did – номер, на который позвонили
Пример запроса:
[event] => NOTIFY_OUT_START
[call_start] => 2024-01-29 13:46:22
[pbx_call_id] => out_811eb5c055f9d2edd102338454dbaa24ccde158
[caller_id] => 0
[internal] => 100
[destination] => +79001010100

NOTIFY_END


Конец входящего звонка на внутренний номер АТС
Параметры, которые отправляются на ссылку для уведомлений:
event – событие (NOTIFY_END);
call_start – время начала звонка
pbx_call_id –постоянный ID звонка в АТС
caller_id – номер звонящего
called_did – номер, на который позвонили
internal – (опциональный) внутренний номер
duration – длительность в секундах
disposition – состояние звонка (answered – разговор,busy – занято,cancel - отменен,no answer - без ответа,failed - не удался)
Пример запроса:
[event] => NOTIFY_END
[call_start] => 2019-01-29 17:40:03
[pbx_call_id] => in_650cb316b6adab6df1b77bc34e973d20b9028da1
[caller_id] => 79197018357
[called_did] => 73422994393
[internal] => 100
[duration] => 2
[disposition] => answered

NOTIFY_OUT_START


Начало исходящего звонка с АТС
Параметры, которые отправляются на ссылку для уведомлений:
event – событие (NOTIFY_OUT_START);
call_start – время начала звонка
pbx_call_id – постоянный ID звонка в АТС
destination – номер, на который позвонили
caller_id – номер, настроенный на внутреннем номере АТС или установленный в правилах набора по направлениям. Если номер не установлен, то передается 0;
internal – (опциональный) внутренний номер.
Пример запроса:
[event] => NOTIFY_OUT_START
[call_start] => 2024-01-29 13:46:22
[pbx_call_id] => out_811eb5c055f9d2edd102338454dbaa24ccde1589
[caller_id] => 0
[internal] => 100
[destination] => +79001010100

NOTIFY_OUT_END


Конец исходящего звонка с АТС
Параметры, которые отправляются на ссылку для уведомлений:
event – событие (NOTIFY_OUT_END)
call_start – время начала звонка
pbx_call_id – постоянный ID звонка в АТС
caller_id – номер, настроенный на внутреннем номере АТС или установленный в правилах набора по направлениям. Если номер не установлен, то передается 0;
destination – номер, на который позвонили
internal – (опциональный) внутренний номер
duration – длительность в секундах
disposition – состояние звонка (answered – разговор,busy – занято,cancel - отменен,no answer - без ответа,failed - не удался)
Пример запроса:
[event] => NOTIFY_OUT_END
[call_start] => 2019-01-29 13:46:22
[pbx_call_id] => out_811eb5c055f9d2edd102338454dbaa24ccde1589
[caller_id] => 0
[internal] => 100
[destination] => +79191010100
[duration] => 3
[disposition] => answered

NOTIFY_INTERNAL


Начало входящего звонка на внутренний номер АТС
Параметры, которые отправляются на ссылку для уведомлений:
event – событие (NOTIFY_INTERNAL)
call_start – время начала звонка
pbx_call_id – постоянный ID звонка в АТС
caller_id – номер звонящего
called_did – номер, на который позвонили
internal – (опциональный) внутренний номер
Пример запроса:
[event] => NOTIFY_INTERNAL
[call_start] => 2022-05-24 12:13:58
[pbx_call_id] => in_dc6a51f29dba915c0777ee818726609b8c450728
[caller_id] => +79880000000
[called_did] => 79191010100
[internal] => 104

NOTIFY_RECORD


Запись звонка готова для скачивания
Параметры, которые отправляются на ссылку для уведомлений:
event – событие(NOTIFY_RECORD)
record_link – постоянная ссылка на запись разговора
pbx_call_id – постоянный ID звонка в АТС
Пример запроса:
[event] => NOTIFY_RECORD
[pbx_call_id] => out_3b9a2e42ffc9e6c1d3cfd85e3102ec7ecd6bf21e
[record_link] => https://pbx.ru/filed3cfd85e3102ec7.mp3

Всплывающая карточка


Всплывающая карточка будет показываться при отправке события NOTIFY_INTERNAL, пользователю CRM, за которым закреплен внутренний номер в уведомлении, на основании таблицы соответствия пользователей CRM и пользователей АТС.

Запись разговора


Запись разговора присылается в событии NOTIFY_RECORD, в этом событии вам нужно отправить pbx_call_id и record_link, где будет содержаться ссылка на запись разговора в формате mp3. Ссылка на запись разговора должна быть постоянной и доступна без авторизации, в ссылку включите уникальный хэш для защиты, чтобы ее нельзя было подобрать методом перебора.

Совершение звонка из CRM


Для реализации функции совершения звонка вам нужно в настройках произвольной телефонии в CRM указать URL, на который будут отправляться запросы и токен авторизации. При совершении звонка пользователем, CRM отправить POST запрос на указанный URL в формате application/x-www-form-urlencoded, где будут переданы параметры from (внутренний номер пользователя CRM) и to (номер телефона клиента). Для авторизации CRM в header передаст HTTP заголовок x-pbx-authentication, в котором будет содержаться токен авторизации, который вам нужно будет проверить на своей стороне.

При успешном вызове звонка в ответ нужно отправить HTTP код 200 и json вида {"status":"1"}. Так CRM система поймет, что звонок успешно инициирован. Вы можете в ответ отправить сообщение с ошибкой {"status":"0","error","Неверно заполнен номер телефона"}.

Функция совершения звонка должна представлять собой обратный звонок - это когда мы вызываем ваш URL, куда передаем внутренний номер, идет дозвон на внутренний номер, сотрудник поднимает трубку и идет вызов клиенту (так SIP и аппаратные телефоны можно подключить).

Переадресация и показ имени звонящего


Для запросов NOTIFY_START можно изменять сценарий работы по текущему звонку.
Для этого отправьте в ответ на вебхук один из следующих вариантов:
Задать имя входящего номера Вы можете задать имя звонящего номера (SIP поле CallerName) и оно отразится в приложении
Пример ответа:
{"caller_name":"Иванов Иван"}
Перевести звонок Вы можете перевести звонок на внутрений номер определенного сотрудника
Пример ответа:
{"redirect":"101"}
В WireCRM легко вести учет клиентов и продаж, работать с финансами и складом, создавать документы по шаблону. Первые 14 дней бесплатны для всех новых пользователей. Изучите возможности сервиса, ведите учет клиентов и пользуйтесь поддержкой наших специалистов!

Создать аккаунт