Для совершения вызова с абонента Виртуальной АТС на определенный номер можно сделать http запрос. После запроса придет вызов на абонента, а после ответа абонента вызов пойдет на вызываемый номер.
https://callapi.services.mobilon.ru/call/{userkey}/{number}/{device}
{userkey} - это ключ абонента,
{number} - вызываемый номер,
{device} - маршрут абонента (необязательный), возможные варианты: mobile, base
Результат выполнения запроса приходит в формате JSON.
Успешное выполнение
{
"response": "Success",
"recordUrl": "https://records.services.mobilon.ru/record/wOq6ct:50122102-6feb-4928-a936-d359639bed00",
"uuid": "50122102-6feb-4928-a936-d359639bed00"
}
uuid - id вызова
recordUrl - url записи звонка, доступна в течение 2-5 секунд после завершения вызова
На указанный url будут отправляться post-запросы с json, которые будут содержать данные о событиях вызова.
Каждый вызов может быть в 3-х состояних: предответ, ответ и завершение. В событиях это параметр state.
Каждый вызов имеет uuid - уникальный id звонка.
Каждый вызов также содержит from, to, userkey, time и direction.
Параметр time - это временная метка события в формате unixtime.
В событии HANGUP также содержатся параметры callstatus (указано был ли ответ на вызов), recordUrl (ссылка на запись вызова), duration (продолжительность вызова).
Также имеются параметры baseid и subid, которые позволяют разделить события на групповых вызовах.
Например, исходящий вызов будет содержать три события. Здесь видно, что вызов был совершен от 110 на 2555575. Затем произошел ответ, а затем завершение вызова.
{ from: '110',
to: '2555575',
baseid: '1504778420.5542',
subid: '1504778420.5542',
state: 'PREANSWER',
direction: 'external',
uuid: '50122102-6feb-4928-a936-d359639bed00',
userkey: 'VB2pd*********',
time: 1504778354 }
{ from: '110',
to: '2555575',
baseid: '1504778420.5542',
subid: '1504778421.5546',
state: 'ANSWER',
direction: 'external',
userkey: 'VB2pd*********',
time: 1504778364 }
{ from: '110',
to: '2555575',
baseid: '1504778420.5542',
subid: '1504778420.5542',
recordUrl: 'https://records.services.mobilon.ru/record/wOq6ct:50122102-6feb-4928-a936-d359639bed00',
state: 'HANGUP',
callstatus: 'ANSWER',
direction: 'external',
duration: '13',
uuid: '50122102-6feb-4928-a936-d359639bed00',
userkey: 'VB2pd*********',
time: 1504778366 }
Здесь мы видим 4 события. Сначала вызов поступает на городской номер, затем переходит на внутренний номер абонента, затем абонент отвечает, а затем вызов завершается.
{ from: '89537852900',
to: '83912745071',
baseid: '1504778818.5562',
subid: '1504778818.5562',
state: 'START',
direction: 'incoming',
uuid: 'd94851b8-2d2c-4f0d-cf45-d359639bed00',
time: 1504778751 }
{ from: '89537852900',
to: '159',
baseid: '1504778818.5562',
subid: '1504778818.5562',
state: 'PREANSWER',
direction: 'incoming',
uuid: 'd94851b8-2d2c-4f0d-cf45-d359639bed00',
userkey: 'VB2pd*********',
time: 1504778751 }
{ from: '89537852900',
to: '159',
baseid: '1504778818.5562',
subid: '1504778819.5564',
state: 'ANSWER',
direction: 'incoming',
uuid: 'd94851b8-2d2c-4f0d-cf45-d359639bed00',
userkey: 'VB2pd*********',
time: 1504778756 }
{ from: '89537852900',
to: '83912745071',
baseid: '1504778818.5562',
subid: '1504778818.5562',
recordUrl: 'https://records.services.mobilon.ru/record/wOq6ct:d94851b8-2d2c-4f0d-cf45-d359639bed00',
state: 'HANGUP',
callstatus: 'ANSWER',
direction: 'incoming',
duration: '7',
uuid: 'd94851b8-2d2c-4f0d-cf45-d359639bed00',
userkey: 'VB2pd*********',
time: 1504778758 }
Сначала мы видим поступление вызова в IVR, а затем переход в IVR на набранный номер inputDigits. Название меню title указывается в конфигураторе.
{ from: '83912745243',
to: '83912745000',
baseid: '1527847088.7919',
subid: '1527847088.7919',
state: 'IVR',
direction: 'incoming',
uuid: 'fc8e14ff-39da-4f5c-cfdc-1dc6ecef442e',
time: 1527847067,
title: '_Контакт центр' }
{ from: '83912745243',
to: '83912745000',
baseid: '1527847088.7919',
subid: '1527847088.7919',
state: 'IVR',
direction: 'incoming',
uuid: 'fc8e14ff-39da-4f5c-cfdc-1dc6ecef442e',
time: 1527847079,
inputDigits: '195',
title: '_Контакт центр' }
информация со списком звонков за определенную дату
параметры
{token} - токен
{date} - дата
{offset} - сдвиг, необязательный
{limit} - количество строк данных, необязательный, по умолчанию 100, максимум 100
{order} - asc или desc - по возрастанию или убыванию времени, по умолчанию desc, необязательный
Возвращаемые данные: json-массив с данными согласно структуры звонков
https://callinfo.services.mobilon.ru/api/call/info/{token}/{uuid}
информация об одном звонке по uuid
параметры
{token} - токен
{uuid} - uuid звонка
Возвращаемые данные: json-объект с данными согласно структуры звонка
данные звонка
uuid - id звонка
status - статус звонка, значения: "ANSWERED", "NOT_ANSWERED"
has_record - признак наличия записи разговора
record_url - ссылка на запись разговора
duration - длительность звонка
from - номер А
to - номер Б
direction - направление звонка
time - время звонка