MACRO

Интеграция с АТС Aterisk (описание API)

#Получение адреса для API запросов в CRM

Для приема звонков вам необходимо получить адрес для API запросов в CRM. Данный адрес содержит все необходимые данные для идентификации запроса. Адрес можно получить в разделе Компания -> Интеграции -> Asterisk

#Отправка запроса

Запросы отправляются с помощью метода HTTP GET на адрес, полученный в пункте выше. Запросы нужно передавать вместе с параметрами из пункта Параметры запроса.

#Параметры запроса

ПараметрОбязательныйОписание/ Значения
callidдаУникальный идентификатор звонка
phoneдаНомер телефона контакта
(того кто звонит — если звонок входящий, того кому звоним — если исходящий)
userнетУникальный идентификатор абонента АТС для сопоставления с менеджером в CRM. Как правило используется внутренний номер (extension)
cmdдаКоманда
event — оповещение о событие
contact — получение информации о контакте
responsible_ext — определение внутреннего номера ответственного менеджера
Значение по умолчанию: event
typeда для cmd=eventCONNECTING
Идет вызов (попытка соединения с одним или несколькими менеджерами, в т.ч. по очереди).
Можно дополнительно указывать user для сохранения в истории звонка, с кем была попытка соединить
OUTGOING
Исходящий отвеченный вызов (момент поднятия трубки)
INCOMING
Входящий отвеченный вызов
INTERNAL
Внутренний отвеченный вызов
COMPLETED
Вызов завершен
CANCELLED
Вызов пропущен
Значение по умолчанию: CANCELLED
directionда для cmd=eventНаправление вызова
in — входящий вызов
out — исходящий вызов
internal — внутренний вызов
Рекомендованные значения:
для type OUTGOING — out
для type INTERNAL — internal
во всех остальных случаях — in
diversionнетНомер телефона, на который клиент изначально совершал звонок, до соединения с менеджером. Публичный номер компании
recording_idнетПолный путь к файлу записи звонка
durationнетОбщая продолжительность звонка
duration_talkнетПродолжительность разговора

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

#Определить внутренний номер ответственного менеджера

GET https://api.macrocrm.ru/call/asterisk/<id>/<token>/?cmd=responsible_ext&callid=1234567&phone=75551234567

Ответ: 101

#Получить информацию о контакте

GET https://api.macrocrm.ru/call/asterisk/<id>/<token>/?cmd=contact&callid=1234567&phone=75551234567

Ответ: {"contact_name":"Иванов Иван", "responsible_ext":"101", "responsible_phone":"+7.5551234567"}

#Отправить событие принятого входящего звонка

GET https://api.macrocrm.ru/call/asterisk/<id>/<token>/?cmd=event&type=INCOMING&direction=in&callid=1234567&phone=75551234567&user=101

#Отправить событие принятого исходящего звонка

GET https://api.macrocrm.ru/call/asterisk/<id>/<token>/?cmd=event&type=OUTGOING&direction=out&callid=1234567&phone=75551234567&user=101

#Отправить событие успешного завершения входящего звонка

GET https://api.macrocrm.ru/call/asterisk/<id>/<token>/?cmd=event&type=COMPLETED&direction=in&callid=1234567&phone=75551234567&user=101&recording_id=http://192.168.1.1/call/1234567/

#Отправить событие успешного завершения исходящего звонка

GET https://api.macrocrm.ru/call/asterisk/<id>/<token>/?cmd=event&type=COMPLETED&direction=out&callid=1234567&phone=75551234567&user=101&recording_id=http://192.168.1.1/call/1234567/

#Отправить событие внутреннего звонка

GET https://api.macrocrm.ru/call/asterisk/<id>/<token>/?cmd=event&type=INTERNAL&direction=internal&callid=1234567&phone=75551234567&user=101

#Отправить событие пропущенного звонка

GET https://api.macrocrm.ru/call/asterisk/<id>/<token>/?cmd=event&type=CANCELLED&direction=in&callid=1234567&phone=75551234567&user=101

#Отправить событие неуспешного исходящего звонка

GET https://api.macrocrm.ru/call/asterisk/<id>/<token>/?cmd=event&type=CANCELLED&direction=out&callid=1234567&phone=75551234567&user=101

#Дополнения

#Ссылки на запись разговора

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

Ссылку можно передать в запросе с помощью параметра recording_id. Также в параметрах CRM можно указать шаблон для автоматической генерации ссылок. Если передан параметр recording_id, то шаблон будет игнорироваться.

#Поиск ответственного менеджера

cmd=contact, cmd=responsible_ext

В данных запросах, если ответственный менеджер для контакта не был найден, то будет возвращен id (внутренний номер) указанный в параметре user.

#Фиксирование внутренних вызовов

Для фиксирования внутренних вызовов в CRM менеджер должен быть создан как контакт. В параметре phone нужно передавать номер телефона этого контакта.

С примером реализации можно ознакомиться в этой статье.