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

#Отправка запроса
Запросы отправляются с помощью метода HTTP GET на адрес, полученный в пункте выше. Запросы нужно передавать вместе с параметрами из пункта Параметры запроса.
#Параметры запроса
| Параметр | Обязательный | Описание/ Значения |
|---|---|---|
| callid | да | Уникальный идентификатор звонка |
| phone | да | Номер телефона контакта (того кто звонит — если звонок входящий, того кому звоним — если исходящий) |
| user | нет | Уникальный идентификатор абонента АТС для сопоставления с менеджером в CRM. Как правило используется внутренний номер (extension) |
| cmd | да | Команда event — оповещение о событие contact — получение информации о контакте responsible_ext — определение внутреннего номера ответственного менеджера Значение по умолчанию: event |
| type | да для cmd=event | CONNECTING Идет вызов (попытка соединения с одним или несколькими менеджерами, в т.ч. по очереди). Можно дополнительно указывать 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 нужно передавать номер телефона этого контакта.
С примером реализации можно ознакомиться в этой статье.