====== 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,
"user_data":object
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **time**\\ string | Дата и время возникновения вызова в формате RFC3339. |
| **entire_id**\\ string | Глобальный идентификатор группы вызовов (в формате провайдера). Объединяет все вызовы, которые формируются в процессе переадресации звонка. |
| **call_id**\\ string | Глобальный идентификатор текущего вызова (в формате провайдера). |
| **state**\\ string | Текущие состояние вызова. Принимает следующие значения:\\ //Calling// - инициация вызова;\\ //Connected// - соединение двух абонентов;\\ //OnHold// - вызов на удержании;\\ //Finished// - вызов завершен. |
| **from**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные инициатора вызова. |
| **to**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные вызываемого. |
| **status**\\ string | Статус вызова (при наличии) по завершению звонка. Принимает следующие значения:\\ //ANSWER// - на вызов был ответ;\\ //BUSY// - получен сигнал "занято";\\ //NOANSWER// - на вызов не было ответа;\\ //CANCEL// - звонящий отменил вызов;\\ //CONGESTION// - произошла ошибка во время вызова;\\ //CHANUNAVAIL// - у вызываемого абонента отсутствует регистрация. |
| **record**\\ string | Идентификатор записи разговора. |
| **line_number**\\ string| Номер телефона (при наличии), предоставляемого провайдером, на который был совершен звонок. |
| **user_data**\\ object | Содержит набор пользовательских данных, указанных в команде [[uniphone:asterisk#request_providerv1cmdcallsdial|calls.dial]]. |
=== 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.cdr.detail ====
Содержит подробную информацию о завершенном вызове.
== JSON формат: ==
{
"call_id":string,
"started":string,
"answered":string,
"finished":string,
"status":string,
"from":object(Caller),
"to":object(Caller),
"call_flow":string,
"conversation":integer,
"duration":integer,
"record_file":string
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **call_id**\\ //string// | Глобальный идентификатор вызова (в формате провайдера). |
| **started**\\ //string// | Дата и время начала вызова в формате RFC3339. |
| **answered**\\ //string// | Дата и время ответа на вызов в формате RFC3339. |
| **finished**\\ //string// | Дата и время завершения вызова в формате RFC3339. |
| **status**\\ //string// | Статус завершения вызова (в формате провайдера). |
| **from**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные инициатора вызова. |
| **to**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные вызываемого. |
| **call_flow**\\ //string// | Идентификатор маршрута, по которому исполнялся вызов на момент завершения. |
| **conversation**\\ //integer// | Продолжительность разговора в секундах (время от начала разговора и до его завершения). Если вызов находился на удержании (hold), то время удержания будет вычтено. |
| **duration**\\ //integer// | Продолжительность вызова в секундах. |
| **record_file**\\ //string// | Идентификатор записи разговора. |
==== [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**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные инициатора вызова. |
| **to**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные вызываемого. |
| **spy**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные подключившегося абонента (супервизора). |
| **action**\\ string | Действие выполняемое абонентом. Принимает следующие значения:\\ //Joining// - в процессе подключения к вызову;\\ //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"
}
==== [subscribe] provider.v1.meetings ====
Сообщает о начале телеконференции или изменении состава ее участников.
== JSON формат: ==
{
"time":string,
"room":string,
"action":string,
"organizer":object(Caller),
"member":object(Caller),
"total_members":integer
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **time**\\ string | Дата и время возникновения события в формате RFC3339. |
| **room**\\ string | Номер комнаты. Используется для идентификации телеконференции. |
| **action**\\ string | Действие выполняемое в телеконференции. Принимает следующие значения:\\ //Started// - телеконференция началась;\\ //MemberInvite// - участник получил приглашение присоединиться к телеконференции;\\ //MemberJoined// - новый участник подключился к телеконференции;\\ //MemberLeave// - участник отключился от телеконференции;\\ //MemberTalking// - участник говорит в этот момент;\\ //MemberSilent// - участник перестал говорить;\\ //Ended// - телеконференция завершена. |
| **organizer**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные организатора телеконференции. |
| **member**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные участника телеконференции. |
| **total_members**\\ integer | Общее количество присоединившихся участников. |
== Пример: ==
{
"time":"2017-03-15T17:05:34",
"room":"2244",
"action":"MemberJoined",
"organizer":{
"extension":"SIP/34",
"number":"34"
},
"member":{
"extension":"SIP/40",
"number":"40"
},
"total_members":2
}
==== [subscribe] provider.v1.presence ====
Сообщает об изменении статус регистрации на АТС добавочного номера.
== JSON формат: ==
{
"time":string,
"extension":string,
"number":string,
"online":bool
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **time**\\ string | Дата и время возникновения события в формате RFC3339. |
| **extension**\\ string | Идентификатор внутреннего абонента. |
| **number**\\ string | Добавочный номер абонента. |
| **online**\\ bool | Статус регистрации добавочного номера. |
== Пример: ==
{
"time":"2017-03-15T17:05:34",
"extension":"SIP/34",
"number":"34",
"online":true
}
==== [subscribe] provider.v1.calls.intercept ====
Содержит информацию о вызове ожидающем ответа. Событие формируется при первом появлении информации о вызове и предназначено для перехвата на ответственного сотрудника. Информация об ответственных заполняется результатами выполнения запроса [[uniphone:crmapi#request_crmv1cmdwhois|whois]].
== JSON формат: ==
{
"time":string,
"entire_id":string,
"call_id":string,
"state":string,
"from":object(Caller),
"to":object(Caller),
"status":string,
"line_number":string,
"client":string,
"responsible":array[object(Employee)]
}
===== Команды=====
==== [request] provider.v1.cmd.calls.dial ====
Инициирует вызов. Система сперва выполняет вызов инициатора. После установления соединения с инициатором выполняется попытка дозвона по заданному номеру телефона.
== JSON формат: ==
{
"from":object(Caller),
"to_number":string,
"auto_answer":bool,
"user_data":object
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **from**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные инициатора вызова. Заполняется только поле "extension". |
| **to_number**\\ string | Номер вызываемого абонента (внутренний или внешний). |
| **auto_answer**\\ bool | (Не обязательный) Если параметр установлен, то добавляет в SIP заголовок команду автоподъема трубки. Не все телефоны могут поддерживать данную функцию. |
| **user_data**\\ object | (Не обязательный) Позволяет передать вместе со звонком набор пользовательских данных. Данные должны быть сформированы как json объект вида ключ-значения. Допускаются только строковые значения ключей. |
== Пример: ==
{
"from":{
"extension":"SIP/34"
},
"to_number":"40",
"auto_answer":true,
"user_data":{
"key1":"value1",
"key2":"value2"
}
}
=== Ответ ===
== JSON формат: ==
{
"result":string
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ string | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
==== [request] provider.v1.cmd.calls.answer ====
Программно отвечает на входящий звонок (снимает трубку). Выполнение возможно только в том случае, если телефон поддерживает функцию автоподъема.
== JSON формат: ==
{
"call_id":string
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **call_id**\\ string | Глобальный идентификатор вызова (в формате провайдера). |
== Пример: ==
{
"call_id":"askozia-1489583124.183"
}
=== Ответ ===
== JSON формат: ==
{
"result":string
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ string | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
==== [request] provider.v1.cmd.calls.hangup ====
Принудительно завершает вызов.
== JSON формат: ==
{
"call_id":string,
"whom":object(Caller)
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **call_id**\\ string | Глобальный идентификатор вызова (в формате провайдера). |
| **whom**\\ [[uniphone:asterisk#caller|object(Caller)]] | (Не обязательный) Данные абонента, со стороны которого нужно завершать вызов. Имеет особое значение при переводе вызова. |
== Пример: ==
{
"call_id":"askozia-1489583124.183"
}
=== Ответ ===
== JSON формат: ==
{
"result":string
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ string | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
==== [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**\\ [[uniphone:asterisk#caller|object(Caller)]] | (Не обязательный) Данные абонента, которого нужно перевести. Заполняется только поле "extension". По умолчанию переводиться инициатор вызова. |
== Пример: ==
{
"call_id":"askozia-1489583124.183",
"method":"blind",
"to_number":"28",
"whom":{
"extension":"SIP/34"
}
}
=== Ответ ===
== JSON формат: ==
{
"result":string
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ string | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
==== [request] provider.v1.cmd.calls.hold ====
Ставит вызов на удержание. При этом вызов перемещается на свободный слот парковки, а удерживаемый абонент (всегда внешний) слышит музыку. Телефон внутреннего абонента переходит в режим ожидания.
== JSON формат: ==
{
"call_id":string
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **call_id**\\ string | Глобальный идентификатор вызова (в формате провайдера). |
== Пример: ==
{
"call_id":"askozia-1489583124.183"
}
=== Ответ ===
== JSON формат: ==
{
"result":string
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ string | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
==== [request] provider.v1.cmd.calls.unhold ====
Возвращает вызов с удержание. При этом он возвращается к тому же внутреннему абоненту, который принимал вызов до удержания. Телефон внутреннего абонента будет звонить как при входящем звонке. Если телефон поддерживает функцию автоподъема, то вызов будет возобновлен моментально.
== JSON формат: ==
{
"call_id":string
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **call_id**\\ string | Глобальный идентификатор вызова (в формате провайдера). |
== Пример: ==
{
"call_id":"askozia-1489583124.183"
}
=== Ответ ===
== JSON формат: ==
{
"result":string
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ string | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
==== [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**\\ [[uniphone:asterisk#subscribe_providerv1calls|object(Call)]] | Информация о вызове. Подробное описание полей в разделе [[uniphone:asterisk#subscribe_providerv1calls|provider.v1.calls]] |
==== [request] provider.v1.cmd.calls.history ====
Возвращает список последних вызовов выполненных с указанного внутреннего номера телефона или принятых на него.
== JSON формат: ==
{
"number":string,
"limit":integer
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **number**\\ string | Номер телефона внутреннего абонента. |
| **limit**\\ integer | Максимальное количество возвращаемых записей. |
=== Ответ ===
== JSON формат: ==
{
"result":string,
"no":integer,
"total":integer,
"data":{
"call_id":string,
"started":string,
"finished":string,
"status":string,
"from":object(Сontact),
"to":object(Сontact),
"conversation":integer,
"duration":integer,
"record_file":string
}
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ //string// | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
| **no**\\ //integer// | Номер текущего сообщения отправленного в очередь. Каждое сообщение пронумеровано в интервале 1..[total]. |
| **total**\\ //integer// | Общее количество сообщений с записями истории звонков, которые будут отправлены. |
| data.**call_id**\\ //string// | Глобальный идентификатор вызова (в формате провайдера). |
| data.**started**\\ //string// | Дата и время начала вызова в формате RFC3339. |
| data.**finished**\\ //string// | Дата и время завершения вызова в формате RFC3339. |
| data.**status**\\ //string// | Статус завершения вызова (в формате провайдера). |
| data.**from**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные инициатора вызова. |
| data.**to**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные вызываемого. |
| data.**conversation**\\ //integer// | Продолжительность разговора в секундах (время от начала разговора и до его завершения). Если вызов находился на удержании (hold), то время удержания будет вычтено. |
| data.**duration**\\ //integer// | Продолжительность вызова в секундах. |
| data.**record_file**\\ //string// | Идентификатор записи разговора. |
==== [request] provider.v1.cmd.extensions.presence ====
Возвращает данные о состоянии регистрации добавочных номеров.
== Параметры: ==
//Не имеет параметров.//
=== Ответ ===
== JSON формат: ==
{
"result":string,
"no":integer,
"total":integer,
"data":{
"name":string,
"extension":string,
"number":string,
"online":bool
}
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ string | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
| **no**\\ integer | Номер текущего сообщения отправленного в очередь. Каждое сообщение пронумеровано в интервале 1..[total]. |
| **total**\\ //integer// | Общее количество сообщений с данными активных вызовов, которые будут отправлены. |
| data.**name**\\ string | Имя абонента по данным Caller ID. |
| 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**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные абонента, которого нужно подключить к разговору. Заполняется только поле "extension". |
== Пример: ==
{
"call_id":"askozia-1489583124.183",
"method":"listen",
"spy":{
"extension":"SIP/34"
}
}
=== Ответ ===
== JSON формат: ==
{
"result":string
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ string | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
==== [request] provider.v1.cmd.spy.stop ====
Отключает супервизора от звонка.
== JSON формат: ==
{
"call_id":string,
"spy":object(Caller)
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **call_id**\\ string | Глобальный идентификатор вызова (в формате провайдера). |
| **spy**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные абонента, которого нужно отключить. Заполняется только поле "extension". |
== Пример: ==
{
"call_id":"askozia-1489583124.183",
"spy":{
"extension":"SIP/34"
}
}
=== Ответ ===
== JSON формат: ==
{
"result":string
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ string | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
==== [request] provider.v1.cmd.records.listen ====
Воспроизводит запись разговора с помощью телефона абонента. Для абонента операция выглядит как входящий звонок.
== JSON формат: ==
{
"record":string,
"listener":object(Caller)
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **record**\\ string | Идентификатор записи разговора. |
| **listener**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные абонента, который будет прослушивать разговор. Заполняется только поле "extension". |
== Пример: ==
{
"record":"/storage/usbdisk1/askoziapbx/callrecordings/40/askozia-1501854278.119_28_40_2017-08-04-17-44-38.gsm",
"listener":{
"extension":"SIP/34"
}
}
=== Ответ ===
== JSON формат: ==
{
"result":string
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ string | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
==== [request] (устарел) provider.v1.cmd.records.access ====
Возвращает набор параметров для доступа к скачиванию записей разговора.
== Параметры: ==
//Не имеет параметров.//
=== Ответ ===
== JSON формат: ==
{
"result":string,
"data":map[string]string
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ string | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
| **data**\\ map[string]string | Параметры доступа к скачиванию записей разговора. Количество и содержание параметров определяется в файле ///historyd/config.json// секции "call_records". |
==== [request] provider.v1.cmd.records.get ====
Возвращает прямую ссылку к записи разговора. Время жизни ссылки может быть ограничено, поэтому сохранять прямые ссылки не рекомендуется.
== JSON формат: ==
{
"record":string
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **record**\\ string | Идентификатор записи разговора. |
== Пример: ==
{
"record":"/storage/usbdisk1/askoziapbx/callrecordings/40/askozia-1501854278.119_28_40_2017-08-04-17-44-38.gsm"
}
=== Ответ ===
== JSON формат: ==
{
"result":string
"data":{
"path":string
}
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ string | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
| data.**path**\\ string | Прямая ссылка к файлу записи разговора. |
==== [request] provider.v1.cmd.meetings.create ====
Создает новую телеконференцию. Телеконференции разделены между собой и имеет свой идентификатор - номер комнаты, возвращаемый командой в случае успеха.
== JSON формат: ==
{
"organizer":object(Caller),
"auto_answer":bool,
"members":array[object(F)]
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **organizer**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные организатора телеконференции. Организатор получит приглашение присоединиться к телеконференции или автоматически присоединиться к ней, если параметр "auto_answer" установлен в "true". |
| **auto_answer**\\ bool | (Не обязательный) Если параметр установлен, то добавляет в SIP заголовок команду автоподъема трубки. Не все телефоны могут поддерживать данную функцию. |
| **members**\\ [[uniphone:asterisk#caller|array[object(Caller)]]] | (Не обязательный) Список абонентов, которым нужно отправить приглашение присоединиться к телеконференции. Для внутренних абонентов заполняется поле "extension", для внешних - поле "number". |
== Пример: ==
{
"organizer":{
"extension":"SIP/34"
}
}
=== Ответ ===
== JSON формат: ==
{
"result":string
"data":{
"room":string
}
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ string | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
| data.**room**\\ string | Номер комнаты. Используется для идентификации телеконференции. |
==== [request] provider.v1.cmd.meetings.invite ====
Приглашает новых участников присоединиться к телеконференции.
== JSON формат: ==
{
"room":string,
"members":array[object(Caller)]
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **room**\\ string | Номер комнаты. Используется для идентификации телеконференции. |
| **members**\\ [[uniphone:asterisk#caller|array[object(Caller)]]] | Список абонентов, которым нужно отправить приглашение присоединиться к телеконференции. Для внутренних абонентов заполняется поле "extension", для внешних - поле "number". |
| **auto_answer**\\ bool | (Не обязательный) Если параметр установлен, то добавляет в SIP заголовок команду автоподъема трубки. Не все телефоны могут поддерживать данную функцию. Допускается использовать только для повторного приглашения организатора телеконференции, в остальных случаях игнорируется. |
== Пример: ==
{
"room":"2244",
"members":[{
"extension":"SIP/40"
},
{
"number":"74952293042"
}]
}
=== Ответ ===
== JSON формат: ==
{
"result":string
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ string | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
==== [request] provider.v1.cmd.meetings.kick ====
Исключает участника из телеконференции.
== JSON формат: ==
{
"room":string,
"member":object(Caller)
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **room**\\ string | Номер комнаты. Используется для идентификации телеконференции. |
| **member**\\ [[uniphone:asterisk#caller|object(Caller)]] | Участник, которого необходимо исключить из телеконференции. Необходимо заполнять оба поля "extension" и "number". |
== Пример: ==
{
"room":"2244",
"member":{
"extension":"SIP/40",
"number":"40"
}
}
=== Ответ ===
== JSON формат: ==
{
"result":string
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ string | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
==== [request] provider.v1.cmd.meetings.transform ====
Преобразует звонок в телеконференцию с двумя участниками. Организатору будет отправлено приглашение. Если его телефон поддерживает функцию автоподъема трубки, он присоединиться автоматически.
== JSON формат: ==
{
"call_id":string,
"organizer":object(Caller)
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **call_id**\\ string | Глобальный идентификатор текущего вызова (в формате провайдера). |
| **organizer**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные организатора телеконференции. |
== Пример: ==
{
"call_id":"askozia-1489583124.183",
"organizer":{
"extension":"SIP/34"
}
}
=== Ответ ===
== JSON формат: ==
{
"result":string,
"data":{
"room":string
}
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ string | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
| data.**room**\\ string | Номер комнаты. Используется для идентификации телеконференции. |
==== [request] provider.v1.cmd.meetings.active ====
Возвращает список текущих телеконференций.
== Параметры: ==
//Не имеет параметров.//
=== Ответ ===
== JSON формат: ==
{
"result":string,
"no":integer,
"total":integer,
"data":{
"room"
"organizer":object(Caller),
"members":array[object(Caller)]
"invites":array[object(Caller)]
}
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ string | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
| **no**\\ integer | Номер текущего сообщения отправленного в очередь. Каждое сообщение пронумеровано в интервале 1..[total]. |
| **total**\\ integer | Общее количество сообщений с данными активных телеконференций, которые будут отправлены. |
| data.**room**\\ string | Номер комнаты. Используется для идентификации телеконференции. |
| data.**organizer**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные организатора телеконференции. |
| data.**members**\\ [[uniphone:asterisk#caller|array[object(Caller)]]] | Список участников телеконференции. |
| data.**invites**\\ [[uniphone:asterisk#caller|array[object(Caller)]]] | Список участников, которым отправлено приглашение. |
==== [request] provider.v1.cmd.meetings.details ====
Возвращает информацию о телеконференции и ее участниках.
== JSON формат: ==
{
"room":string
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **room**\\ string | Номер комнаты. Используется для идентификации телеконференции. |
== Пример: ==
{
"room":"2244"
}
=== Ответ ===
== JSON формат: ==
{
"result":string
"data":{
"organizer":object(Caller),
"members":array[object(Caller)]
"invites":array[object(Caller)]
}
}
== Параметры: ==
^ Наименование поля ^ Описание ^
| **result**\\ string | Результат выполнения команды. Содержит "Success" в случае успеха и описание ошибки в ином случае. |
| data.**organizer**\\ [[uniphone:asterisk#caller|object(Caller)]] | Данные организатора телеконференции. |
| data.**members**\\ [[uniphone:asterisk#caller|array[object(Caller)]]] | Список участников телеконференции. |
| data.**invites**\\ [[uniphone:asterisk#caller|array[object(Caller)]]] | Список участников, которым отправлено приглашение. |