API

Инициирование вызова

Для совершения вызова с абонента Виртуальной АТС на определенный номер можно сделать 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, а затем переход в 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: '_Контакт центр' }

API получения инфо о состоявшихся звонках

! предварительная версия

Получение списка звонков

https://callinfo.services.mobilon.ru/api/call/journal/{token}/{date}?offset={offset}&limit={limit}&sort=time:{order}

информация со списком звонков за определенную дату

параметры

{token} - токен

{date} - дата

{offset} - сдвиг, необязательный

{limit} - количество строк данных, необязательный, по умолчанию 100, максимум 100

{order} - asc или desc - по возрастанию или убыванию времени, по умолчанию desc, необязательный

Например, https://callinfo.services.mobilon.ru/api/call/journal/55561a589d0041d96b8e3fd4825f2bd644/2018-04-19?offset=100&limit=100&sort=time:asc

Возвращаемые данные: json-массив с данными согласно структуры звонков

Получение данных о звонке

https://callinfo.services.mobilon.ru/api/call/info/{token}/{uuid}

информация об одном звонке по uuid

параметры

  {token} - токен

  {uuid} - uuid звонка

Например, https://callinfo.services.mobilon.ru/api/call/info/55561a589d0041d96b8e3fd4825f2bd644/a2a2a003-a4ea-49e9-c96c-c0929b806310

Возвращаемые данные: json-объект с данными согласно структуры звонка

Структура данных о звонке

данные звонка

  uuid - id звонка

  status - статус звонка, значения: "ANSWERED", "NOT_ANSWERED"

  has_record - признак наличия записи разговора

  record_url - ссылка на запись разговора

  duration - длительность звонка

  from - номер А

  to - номер Б

  direction - направление звонка

  time - время звонка

Мобилон Телеком