Внимание!
Эта wiki об устаревших версиях
Документация к актуальной версии интеграции 1С и телефонии доступна по ссылке

Инструменты пользователя

Инструменты сайта


uniphone:asterisk

Это старая версия документа!


UniPhone Asterisk API

API реализуемое на стороне провайдера IP-телефонии.

События

[subscribe] provider.v1.calls

Содержит информацию об активном вызове. Событие формируется при первом появлении информации о вызове или смене его состояния.

JSON формат:
{
  "time":string,
  "entire_id":string,
  "call_id":string,
  "state":string,
  "from":object(Caller),
  "to":object(Caller),
  "status":string,
  "record":string,
  "line_number":string
}
Параметры:
Наименование поля Описание
time
string
Дата и время возникновения вызова в формате RFC3339.
entire_id
string
Глобальный идентификатор группы вызовов (в формате провайдера). Объединяет все вызовы, которые формируются в процессе переадресации звонка.
call_id
string
Глобальный идентификатор текущего вызова (в формате провайдера).
state
string
Текущие состояние вызова. Принимает следующие значения:
Calling - инициация вызова;
Connected - соединение двух абонентов;
OnHold - вызов на удержании;
Finished - вызов завершен.
from
object(Caller)
Данные инициатора вызова.
to
object(Caller)
Данные вызываемого.
status
string
Статус вызова (при наличии) по завершению звонка. Принимает следующие значения:
ANSWER - на вызов был ответ;
BUSY - получен сигнал «занято»;
NOANSWER - на вызов не было ответа;
CANCEL - звонящий отменил вызов;
CONGESTION - произошла ошибка во время вызова;
CHANUNAVAIL - у вызываемого абонента отсутствует регистрация.
record
string
Содержит ссылку на файл записи разговора.
line_number
string
Номер телефона (при наличии), предоставляемого провайдером, на который был совершен звонок.

Caller

Содержит информацию об абоненте. Абонентом может выступать внутренний номер или внешний (например, мобильный номер).

JSON формат:
{
  "number":string,
  "extension":string
}
Параметры:
Наименование поля Описание
number
string
Номер телефона абонента (внутренний или внешний).
extension
string
Идентификатор внутреннего абонента. Может использоваться в качестве аргумента при вызове методов удаленных процедур. Для внешнего абонента содержит пустую строку.
Пример:
{
  "time":"2017-03-15T17:05:34",
  "entire_id":"askozia-1489583124.183",
  "call_id":"askozia-1489583124.183",
  "state":"Finished",
  "from":{
    "extension":"SIP/34",
    "number":"34"
  },
  "to":{
    "extension":"SIP/40",
    "number":"40"
  },
  "status":"NOANSWER"
}

[subscribe] provider.v1.spying

Сообщает о подключении к вызову стороннего абонента. Абонент с правами супервизора может подключиться к произвольному звонку с целью подслушать или вмешаться в разговор.

JSON формат:
{
  "time":string,
  "entire_id":string,
  "call_id":string,
  "from":object(Caller),
  "to":object(Caller),
  "spy":object(Caller),
  "action":string
}
Параметры:
Наименование поля Описание
time
string
Дата и время возникновения вызова в формате RFC3339.
entire_id
string
Глобальный идентификатор группы вызовов (в формате провайдера). Объединяет все вызовы, которые формируются в процессе переадресации звонка.
call_id
string
Глобальный идентификатор текущего вызова (в формате провайдера).
from
object(Caller)
Данные инициатора вызова.
to
object(Caller)
Данные вызываемого.
spy
object(Caller)
Данные подключившегося абонента (супервизора).
action
string
Действие выполняемое абонентом. Принимает следующие значения:
Joined - подключился к вызову;
Leave - отключился.
Пример:
{
  "time":"2017-03-15T17:05:34",
  "entire_id":"askozia-1489583124.183",
  "call_id":"askozia-1489583124.183",
  "from":{
    "extension":"SIP/34",
    "number":"34"
  },
  "to":{
    "extension":"SIP/40",
    "number":"40"
  },
  "spy":{
    "extension":"SIP/51",
    "number":"51"
  },
  "action":"Joined"
}

Команды

[request] provider.v1.cmd.calls.dial

Инициирует вызов. Система сперва выполняет вызов инициатора. После установления соединения с инициатором выполняется попытка дозвона по заданному номеру телефона.

JSON формат:
{
  "from":object(Caller),
  "to_number":string
}
Параметры:
Наименование поля Описание
from
object(Caller)
Данные инициатора вызова. Заполняется только поле «extension».
to_number
string
Номер вызываемого абонента (внутренний или внешний).
Пример:
{
  "from":{
    "extension":"SIP/34"
  },
  "to_number":"40"
}

Ответ

JSON формат:
{
  "result":string
}
Параметры:
Наименование поля Описание
result
string
Результат выполнения команды. Содержит «Success» в случае успеха и описание ошибки в ином случае.

[request] provider.v1.cmd.calls.hangup

Принудительно завершает вызов.

JSON формат:
{
  "call_id":string
}
Параметры:
Наименование поля Описание
call_id
string
Глобальный идентификатор вызова (в формате провайдера).

Ответ

JSON формат:
{
  "result":string
}
Параметры:
Наименование поля Описание
result
string
Результат выполнения команды. Содержит «Success» в случае успеха и описание ошибки в ином случае.
Пример:
{
  "call_id":"askozia-1489583124.183"
}

[request] provider.v1.cmd.calls.redirect

Завершает разговор между текущими абонентами и переводит вызов на другой внутренний номер.

JSON формат:
{
  "call_id":string,
  "method":string,
  "to_number":string,
  "whom":object(Caller)
}
Параметры:
Наименование поля Описание
call_id
string
Глобальный идентификатор вызова (в формате провайдера).
method
string
Метод перевода звонка:
blind - без консультативный («слепой») перевод вызова;
attended - консультативный (с удержанием) перевод звонка.
to_number
string
Номер вызываемого абонента (внутренний).
whom
object(Caller)
(Не обязательный) Данные абонента, которого нужно перевести. Заполняется только поле «extension». По умолчанию переводиться инициатор вызова.

Ответ

JSON формат:
{
  "result":string
}
Параметры:
Наименование поля Описание
result
string
Результат выполнения команды. Содержит «Success» в случае успеха и описание ошибки в ином случае.
Пример:
{
  "call_id":"askozia-1489583124.183",
  "method":"blind",
  "to_number":"28",
  "whom":{
    "extension":"SIP/34"
  }
}

[request] provider.v1.cmd.calls.active

Возвращает список активных вызовов.

Параметры:

Не имеет параметров.

Ответ

JSON формат:
{
  "result":string,
  "no":integer,
  "total":integer,
  "data":{
    "time":string,
    "entire_id":string,
    "call_id":string,
    "state":string,
    "from":object(Caller),
    "to":object(Caller),
    "line_number":string
  }
}
Параметры:
Наименование поля Описание
result
string
Результат выполнения команды. Содержит «Success» в случае успеха и описание ошибки в ином случае.
no
integer
Номер текущего сообщения отправленного в очередь. Каждое сообщение пронумеровано в интервале 1..[total].
total
integer
Общее количество сообщений с данными активных вызовов, которые будут отправлены.
data
array[object(Call)]
Информация о вызове. Подробное описание полей в разделе provider.v1.calls

[request] provider.v1.cmd.extensions.presence

Возвращает данные о состоянии регистрации добавочных номеров.

Параметры:

Не имеет параметров.

Ответ

JSON формат:
{
  "result":string,
  "no":integer,
  "total":integer,
  "data":{
    "extension":string,
    "number":string,
    "online":bool
  }
}
Параметры:
Наименование поля Описание
result
string
Результат выполнения команды. Содержит «Success» в случае успеха и описание ошибки в ином случае.
no
integer
Номер текущего сообщения отправленного в очередь. Каждое сообщение пронумеровано в интервале 1..[total].
total
integer
Общее количество сообщений с данными активных вызовов, которые будут отправлены.
data.extension
string
Идентификатор внутреннего абонента.
data.number
string
Добавочный номер абонента.
data.online
bool
Статус регистрации добавочного номера.

[request] provider.v1.cmd.spy

Присоединяет супервизора к звонку в режиме разговора или подслушивания.

JSON формат:
{
  "call_id":string,
  "method":string,
  "spy":object(Caller)
}
Параметры:
Наименование поля Описание
call_id
string
Глобальный идентификатор вызова (в формате провайдера).
method
string
Метод присоединения к звонку:
listen - подслушивание разговора;
whisper - режим шепота коллеге (подключаемого слышит только внутренний абонент);
interfere - вмешаться в разговор (слышат оба абонента).
spy
object(Caller)
Данные абонента, которого нужно подключить к разговору. Заполняется только поле «extension».

Ответ

JSON формат:
{
  "result":string
}
Параметры:
Наименование поля Описание
result
string
Результат выполнения команды. Содержит «Success» в случае успеха и описание ошибки в ином случае.
Пример:
{
  "call_id":"askozia-1489583124.183",
  "method":"listen",
  "spy":{
    "extension":"SIP/34"
  }
}

[request] provider.v1.cmd.spy.stop

Отключает супервизора от звонка.

JSON формат:
{
  "call_id":string,
  "spy":object(Caller)
}
Параметры:
Наименование поля Описание
call_id
string
Глобальный идентификатор вызова (в формате провайдера).
spy
object(Caller)
Данные абонента, которого нужно отключить. Заполняется только поле «extension».

Ответ

JSON формат:
{
  "result":string
}
Параметры:
Наименование поля Описание
result
string
Результат выполнения команды. Содержит «Success» в случае успеха и описание ошибки в ином случае.
Пример:
{
  "call_id":"askozia-1489583124.183",
  "spy":{
    "extension":"SIP/34"
  }
}
uniphone/asterisk.1498460270.txt.gz · Последние изменения: 2017/06/26 06:57 — mcvet