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

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

***

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

![](https://help.macrodigital.ru/upload/pages/manual/macrocatalog/integracii/aterisk_0.png)

2. Отправка запроса

***

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

3. Параметры запроса

***

Параметр

Обяза тельный

Описание/ Значения

**callid**

да

Уникальный идентификатор звонка

**phone**

да

Номер телефона контакта (того кто звонит если звонок входящий, того кому звоним если исходящий)

**user**

нет

Уникальный идентификатор абонента АТС для сопоставления с менеджером в crm. Как правило используется внутренний номер (extension)

**cmd**

нет

Команда

**event** - Оповещение о событие

**contact** - Получение информации о контакте

**responsible\_ext** - Определение внутреннего номера ответственного менеджера

*Значение по умолчанию: event*

**type**

нет

Состояние вызова

**CONNECTING -** Идет вызов (попытка соединения с одним или несколькими менеджерами, в т.ч. по очереди). Можно дополнительно указывать **user** для сохранения в истории звонка, с кем была попытка соединить

**OUTGOING** - Исходящий отвеченный вызов (момент поднятия трубки)

**INCOMING** - Входящий отвеченный вызов

**INTERNAL** - Внутренний отвеченный вызов

**COMPLETED** - Вызов завершен

**CANCELLED** - Вызов пропущен

*Значение по умолчанию: CANCELLED*

**direction**

нет

Направление вызова

**in** - входящий вызов

**out** - исходящий вызов

**internal** - внутренний вызов

*Значение по умолчанию:*

*для type OUTGOING - out*

*для type INTERNAL - internal*

*во всех остальных случаях - in*

**diversion**

нет

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

**recording\_id**

нет

Полный путь к файлу записи звонка

**duration**

нет

Общая продолжительность звонка

**duration\_talk**

нет

Продолжительность разговора

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

***

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

`GET https://api.macrocrm.ru/call/asterisk/<id>/<token>/<br></br>?cmd=responsible_ext&callid=1234567&phone=75551234567` *Ответ*: 101

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

`GET https://api.macrocrm.ru/call/asterisk/<id>/<token>/<br></br>?cmd=contact&callid=1234567&phone=75551234567`*Ответ*: {"contact\_name":"Иванов Иван", "responsible\_ext":"101", "responsible\_phone":"+7.5551234567"}

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

`GET https://api.macrocrm.ru/call/asterisk/<id>/<token>/<br></br>?cmd=event&type=INCOMING&callid=1234567&phone=75551234567&user=101`### **Отправить событие принятого исходящего звонка**

`GET https://api.macrocrm.ru/call/asterisk/<id>/<token>/<br></br>?cmd=event&type=OUTGOING&callid=1234567&phone=75551234567&user=101`### **Отправить событие успешного завершения звонка**

`GET https://api.macrocrm.ru/call/asterisk/<id>/<token>/<br></br>?cmd=event&type=COMPLETED&callid=1234567<br></br>&phone=75551234567&user=101&recording_id=http://192.168.1.1/call/1234567/`### **Отправить событие внутреннего звонка**

`GET https://api.macrocrm.ru/call/asterisk/<id>/<token>/<br></br>?cmd=event&type=<em>INTERNAL</em>&callid=1234567<br></br>&phone=75551234567&user=101`### **Отправить событие пропущенного звонка**

### `GET https://api.macrocrm.ru/call/asterisk/<id>/<token>/<br></br>?cmd=event&type=CANCELLED&callid=1234567&phone=75551234567&user=101` 5. Дополнения

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

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

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

#### \*\*cmd=contact, cmd=\*\***responsible\_ext**

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

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

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

**С примером реализации можно ознакомиться в** [**этой статье**](https://github.com/abssoft/docsmacrohelp/blob/main/manual/integracii/telefonija/integracija_s_ats_aterisk_primer_realizacii.md)**.**
