====== 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)]]] | Список участников, которым отправлено приглашение. |