API для сторонних АТС
1 Общие требования
API коллтрекинга позволяет проинтегрировать (связать) коллтрекинг и внешнюю сторонюю АТС. Данный API предоставляет возможность:
- передать в коллтрекинг данные о звонке, совершенном через стороннюю АТС;
- передать в коллтрекинг url-адрес записи разговора.
Не допускаются различия в поведении в зависимости от того, каким образом было инициировано выполнение той или иной операции. В частности, внешняя система не может претендовать на расширение или уменьшение прав на действия в коллтрекинге.
Чтобы взаимодействовать с API, внешняя система должна:
- поддерживать протокол
http(s), форматraw json; - использовать методы
POSTиPUTдля HTTPs-запросов; - передавать запросы в следующем формате:
https://widgets-api.mango-office.ru/<version>/<service>/<method>[.<ext>]?<params>
где:
<type>- http-методGET,POST,PUTилиDELETE;<version>- номер текущей версии API, например v1;<service>- название раздела API, в котором выполняется действие, например,calltracking;<method>- url-адрес ресурса, над которым выполняется действие;<ext>- необязательная часть запроса, задает формат результата, по умолчанию данные передаются в формате JSON;- <params> - обязательные и необязательные параметры запроса.
- для авторизации запроса передавать в нем
token, полученный в личном кабинете. Возможны два способа указатьtoken, либо в параметрах:
access_token=<token>
либо в http заголовках:
Authorization: Bearer <token>
1.1 Правила версионности API
- Изменения в рамках одной мажорной версии обладают обратной совместимостью, которая заключается в следующем:
- названия полей, их тип и порядок не меняются;
- новые колонки попадают в конец (особенно это касается формата CSV);
- перечисления (enums) могут расширяться, но не уменьшаться.
- Изменения между мажорными версиями не обязаны обладать обратной совместимостью.
2 Уведомление о звонке со сторонней АТС
POST /<version>/calltracking/externalCall
Уведомление содержит информацию о вызове и его параметрах.
Параметры уведомления:
- тело уведомления должно быть в формате
raw JSON (content type: application/json); - параметры уведомления перечислены в таблице:
| Название параметра | Наличие | Тип данных | Описание | Значение по умолчанию | Примечание |
|---|---|---|---|---|---|
| callId | required | string | ID звонка в системе пользователя. Для корректной работы должно быть уникально в пределах продукта коллтрекинга (но повторы допускаются) | - | |
| dateStart | required | YYYY-MM-DDTHH:MM:SSZ | Дата и время начала звонка | - | |
| dateEnd | required | YYYY-MM-DDTHH:MM:SSZ | Дата и время окончания звонка | - | |
| phoneTo | required | phone (E164) | Куда был звонок | - | |
| phoneFrom | optional | phone (E164) | Откуда был звонок | пустая строка | - |
| recordLink | optional | url | Ссылка на звонок | пустая строка | Вы можете передать url в коллтрекинг также при помощи запроса на обновление записи разговора |
Пример уведомления:
<type> https://widgets-api.mango-office.ru/v1/calltracking/externalCall<br></br> access_token=weghjui675432wertyui8675ter<br></br> widgetId=11078<br></br> Content-Type=application/json<br></br> {<br></br> "callId":"2",<br></br> "dateStart":"2020-08-19T08:16:10Z",<br></br> "dateEnd":"2020-08-19T08:16:20Z",<br></br> "phoneTo":"+74958784556",<br></br> "phoneFrom":"" ,<br></br> "recordLink": "http://adress.net"<br></br> } <br></br>
Результат:
В ответе на запрос приходит ID-номер запроса в коллтрекинге.
Параметры ответа:
- тело ответа в формате JSON;
- параметры ответа перечислены в таблице:
| Название | Наличие | Тип данных | Описание |
|---|---|---|---|
| status | required | string | ok или error |
| requestId | required | string | ИД запроса в системе |
| error | optional | json | При ошибке возвращает ее код и описание |
Пример ответа:
-
в результате успешной обработки уведомления:
{status: 'ok', requestId: [значение]} -
если обработка уведомления завершилась с ошибкой, то будет выдано следующее сообщение:
{status: 'error', requestId: [значение], error: {code: [код ошибки, 'message': [описание ошибки]]}}
3 Обновление записи разговора
PUT /<version>/calltracking/externalCall/<callId>
Команда предназначена для добавления url-адреса записи разговора к данным о звонке, ранее полученным по уведомлению. При помощи данной команды, вы можете передать в коллтрекинг url-адрес записи разговора, если этого не было сделано ранее.
В запросе следует указать <callId> - это ID звонка в системе пользователя, ранее переданный в коллтрекинг в уведомлении о звонке. Кроме этого, запрос содержит следующий параметр:
| Название | Наличие | Тип данных | Описание |
|---|---|---|---|
| recordLink | required | url | Ссылка на звонок |
Пример запроса:
<type> https://widgets-api.mango-office.ru/v1/calltracking/externalCall/call2<br></br> access_token=weghjui675432wertyui8675ter<br></br> widgetId=11078<br></br> Content-Type=application/json<br></br> {<br></br> "recordLink": "http://adress.net"<br></br> }
Результат.
В ответе на запрос приходит ID-номер запроса в коллтрекинге.
Параметры ответа:
- тело ответа в формате JSON;
- параметры ответа перечислены в таблице:
| Название | Наличие | Тип данных | Описание |
|---|---|---|---|
| status | required | string | ok или error |
| requestId | required | string | ИД запроса в системе |
| error | optional | json | При ошибке возвращает ее код и описание |
Пример ответа:
-
в результате успешной обработки уведомления:
{status: 'ok', requestId: [значение]} -
если обработка уведомления завершилась с ошибкой, то будет выдано следующее сообщение:
{status: 'error', requestId: [значение], error: {code: [код ошибки, 'message': [описание ошибки]]}}