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

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

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


uniphone:asterisk

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
uniphone:asterisk [2017/08/24 13:18]
mcvet Добавлено action:Joining в cmd.spy
uniphone:asterisk [2021/03/29 12:33] (текущий)
mcvet
Строка 17: Строка 17:
   "​status":​string,​   "​status":​string,​
   "​record":​string,​   "​record":​string,​
-  "​line_number":​string+  "​line_number":​string
 +  "​user_data":​object
 }</​code>​ }</​code>​
  
Строка 29: Строка 30:
 | **to**\\ [[uniphone:​asterisk#​caller|object(Caller)]] | Данные вызываемого. ​       | | **to**\\ [[uniphone:​asterisk#​caller|object(Caller)]] | Данные вызываемого. ​       |
 | **status**\\ string ​    | Статус вызова (при наличии) по завершению звонка. Принимает следующие значения:​\\ //ANSWER// - на вызов был ответ;​\\ //BUSY// - получен сигнал "​занято";​\\ //​NOANSWER//​ - на вызов не было ответа;​\\ //CANCEL// - звонящий отменил вызов;​\\ //​CONGESTION//​ - произошла ошибка во время вызова;​\\ //​CHANUNAVAIL//​ - у вызываемого абонента отсутствует регистрация. | | **status**\\ string ​    | Статус вызова (при наличии) по завершению звонка. Принимает следующие значения:​\\ //ANSWER// - на вызов был ответ;​\\ //BUSY// - получен сигнал "​занято";​\\ //​NOANSWER//​ - на вызов не было ответа;​\\ //CANCEL// - звонящий отменил вызов;​\\ //​CONGESTION//​ - произошла ошибка во время вызова;​\\ //​CHANUNAVAIL//​ - у вызываемого абонента отсутствует регистрация. |
-| **record**\\ string ​    ​| ​Содержит ссылку на файл ​записи разговора. | +| **record**\\ string ​    ​| ​Идентификатор ​записи разговора. | 
-| **line_number**\\ string | Номер телефона (при наличии),​ предоставляемого провайдером,​ на который был совершен звонок. |+| **line_number**\\ string| Номер телефона (при наличии),​ предоставляемого провайдером,​ на который был совершен звонок. | 
 +| **user_data**\\ object ​ | Содержит набор пользовательских данных,​ указанных в команде [[uniphone:​asterisk#​request_providerv1cmdcallsdial|calls.dial]]. |
  
 === Caller === === Caller ===
Строка 94: Строка 96:
 | **conversation**\\ //integer// | Продолжительность разговора в секундах (время от начала разговора и до его завершения). Если вызов находился на удержании (hold), то время удержания будет вычтено. | | **conversation**\\ //integer// | Продолжительность разговора в секундах (время от начала разговора и до его завершения). Если вызов находился на удержании (hold), то время удержания будет вычтено. |
 | **duration**\\ //​integer// ​    | Продолжительность вызова в секундах. | | **duration**\\ //​integer// ​    | Продолжительность вызова в секундах. |
-| **record_file**\\ //​string// ​  ​| ​Ссылка ​на файл записи разговора. |+| **record_file**\\ //​string// ​  ​| ​Идентификатор ​записи разговора. |
  
  
Строка 139: Строка 141:
   },   },
   "​action":"​Joined"​   "​action":"​Joined"​
 +}</​code>​
 +
 +
 +==== [subscribe] provider.v1.meetings ====
 +Сообщает о начале телеконференции или изменении состава ее участников.
 +
 +== JSON формат:​ ==
 +<​code>​{
 +  "​time":​string,​
 +  "​room":​string,​
 +  "​action":​string,​
 +  "​organizer":​object(Caller),​
 +  "​member":​object(Caller),​
 +  "​total_members":​integer
 +}</​code>​
 +
 +== Параметры:​ ==
 +^ Наименование поля ​      ^ Описание ^
 +| **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 | Общее количество присоединившихся участников. |
 +
 +
 +== Пример:​ ==
 +<​code>​{
 +  "​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
 }</​code>​ }</​code>​
  
Строка 166: Строка 208:
   "​number":"​34",​   "​number":"​34",​
   "​online":​true   "​online":​true
 +}</​code>​
 +
 +
 +==== [subscribe] provider.v1.calls.intercept ====
 +Содержит информацию о вызове ожидающем ответа. Событие формируется при первом появлении информации о вызове и предназначено для перехвата на ответственного сотрудника. Информация об ответственных заполняется результатами выполнения запроса [[uniphone:​crmapi#​request_crmv1cmdwhois|whois]].
 +
 +== JSON формат:​ ==
 +<​code>​{
 +  "​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)]
 }</​code>​ }</​code>​
  
Строка 177: Строка 237:
 <​code>​{ <​code>​{
   "​from":​object(Caller),​   "​from":​object(Caller),​
-  "​to_number":​string+  "​to_number":​string
 +  "​auto_answer":​bool,​ 
 +  "​user_data":​object
 }</​code>​ }</​code>​
  
Строка 183: Строка 245:
 ^ Наименование поля ​      ^ Описание ^ ^ Наименование поля ​      ^ Описание ^
 | **from**\\ [[uniphone:​asterisk#​caller|object(Caller)]] | Данные инициатора вызова. Заполняется только поле "​extension"​. | | **from**\\ [[uniphone:​asterisk#​caller|object(Caller)]] | Данные инициатора вызова. Заполняется только поле "​extension"​. |
-| **to_number**\\ string ​ | Номер вызываемого абонента (внутренний или внешний). ​ |+| **to_number**\\ string ​ | Номер вызываемого абонента (внутренний или внешний). ​
 +| **auto_answer**\\ bool  | (Не обязательный) Если параметр установлен,​ то добавляет в SIP заголовок команду автоподъема трубки. Не все телефоны могут поддерживать данную функцию. | 
 +| **user_data**\\ object ​ | (Не обязательный) Позволяет передать вместе со звонком набор пользовательских данных. Данные должны быть сформированы как json объект вида ключ-значения. Допускаются только строковые значения ключей. ​|
  
 == Пример:​ == == Пример:​ ==
Строка 190: Строка 254:
     "​extension":"​SIP/​34"​     "​extension":"​SIP/​34"​
   },   },
-  "​to_number":"​40"​+  "​to_number":"​40"​
 +  "​auto_answer":​true,​ 
 +  "​user_data":​{ 
 +    "​key1":"​value1",​ 
 +    "​key2":"​value2"​ 
 +  }
 }</​code>​ }</​code>​
  
Строка 205: Строка 274:
  
  
-==== [request] provider.v1.cmd.calls.hangup ​==== +==== [request] provider.v1.cmd.calls.answer ​==== 
-Принудительно завершает вызов.+Программно отвечает на входящий звонок (снимает трубку). Выполнение возможно только ​в том случае,​ если телефон поддерживает ​функцию автоподъема.
  
 == JSON формат:​ == == JSON формат:​ ==
Строка 216: Строка 285:
 ^ Наименование поля ​      ^ Описание ^ ^ Наименование поля ​      ^ Описание ^
 | **call_id**\\ string ​   | Глобальный идентификатор вызова (в формате провайдера). | | **call_id**\\ string ​   | Глобальный идентификатор вызова (в формате провайдера). |
 +
 +== Пример:​ ==
 +<​code>​{
 +  "​call_id":"​askozia-1489583124.183"​
 +}</​code>​
  
 === Ответ === === Ответ ===
Строка 227: Строка 301:
 ^ Наименование поля ​      ^ Описание ^ ^ Наименование поля ​      ^ Описание ^
 | **result**\\ string ​    | Результат выполнения команды. Содержит "​Success"​ в случае успеха и описание ошибки в ином случае. | | **result**\\ string ​    | Результат выполнения команды. Содержит "​Success"​ в случае успеха и описание ошибки в ином случае. |
 +
 +
 +==== [request] provider.v1.cmd.calls.hangup ====
 +Принудительно завершает вызов.
 +
 +== JSON формат:​ ==
 +<​code>​{
 +  "​call_id":​string,​
 +  "​whom":​object(Caller)
 +}</​code>​
 +
 +== Параметры:​ ==
 +^ Наименование поля ​      ^ Описание ^
 +| **call_id**\\ string ​   | Глобальный идентификатор вызова (в формате провайдера). |
 +| **whom**\\ [[uniphone:​asterisk#​caller|object(Caller)]] | (Не обязательный) Данные абонента,​ со стороны которого нужно завершать вызов. Имеет особое значение при переводе вызова. |
  
 == Пример:​ == == Пример:​ ==
Строка 232: Строка 321:
   "​call_id":"​askozia-1489583124.183"​   "​call_id":"​askozia-1489583124.183"​
 }</​code>​ }</​code>​
 +
 +=== Ответ ===
 +
 +== JSON формат:​ ==
 +<​code>​{
 +  "​result":​string
 +}</​code>​
 +
 +== Параметры:​ ==
 +^ Наименование поля ​      ^ Описание ^
 +| **result**\\ string ​    | Результат выполнения команды. Содержит "​Success"​ в случае успеха и описание ошибки в ином случае. |
  
  
 ==== [request] provider.v1.cmd.calls.redirect ==== ==== [request] provider.v1.cmd.calls.redirect ====
-Завершает разговор между текущими абонентами и переводит вызов на другой внутренний номер.+Завершает разговор между текущими абонентами и переводит вызов на другой внутренний номер. В качестве номера для перевода может быть указан номер комнаты телеконференции.
  
 == JSON формат:​ == == JSON формат:​ ==
Строка 249: Строка 349:
 | **call_id**\\ string ​   | Глобальный идентификатор вызова (в формате провайдера). | | **call_id**\\ string ​   | Глобальный идентификатор вызова (в формате провайдера). |
 | **method**\\ string ​    | Метод перевода звонка:​\\ //blind// - без консультативный ("​слепой"​) перевод вызова;​\\ //​attended//​ - консультативный (с удержанием) перевод звонка.\\ | | **method**\\ string ​    | Метод перевода звонка:​\\ //blind// - без консультативный ("​слепой"​) перевод вызова;​\\ //​attended//​ - консультативный (с удержанием) перевод звонка.\\ |
-| **to_number**\\ string ​ | Номер вызываемого абонента (внутренний). |+| **to_number**\\ string ​ | Номер вызываемого абонента (внутренний) ​или номер комнаты телеконференции. |
 | **whom**\\ [[uniphone:​asterisk#​caller|object(Caller)]] | (Не обязательный) Данные абонента,​ которого нужно перевести. Заполняется только поле "​extension"​. По умолчанию переводиться инициатор вызова. | | **whom**\\ [[uniphone:​asterisk#​caller|object(Caller)]] | (Не обязательный) Данные абонента,​ которого нужно перевести. Заполняется только поле "​extension"​. По умолчанию переводиться инициатор вызова. |
 +
 +== Пример:​ ==
 +<​code>​{
 +  "​call_id":"​askozia-1489583124.183",​
 +  "​method":"​blind",​
 +  "​to_number":"​28",​
 +  "​whom":​{
 +    "​extension":"​SIP/​34"​
 +  }
 +}</​code>​
  
 === Ответ === === Ответ ===
Строка 262: Строка 372:
 ^ Наименование поля ​      ^ Описание ^ ^ Наименование поля ​      ^ Описание ^
 | **result**\\ string ​    | Результат выполнения команды. Содержит "​Success"​ в случае успеха и описание ошибки в ином случае. | | **result**\\ string ​    | Результат выполнения команды. Содержит "​Success"​ в случае успеха и описание ошибки в ином случае. |
 +
 +
 +==== [request] provider.v1.cmd.calls.hold ====
 +Ставит вызов на удержание. При этом вызов перемещается на свободный слот парковки,​ а удерживаемый абонент (всегда внешний) слышит музыку. Телефон внутреннего абонента переходит в режим ожидания.
 +
 +== JSON формат:​ ==
 +<​code>​{
 +  "​call_id":​string
 +}</​code>​
 +
 +== Параметры:​ ==
 +^ Наименование поля ​      ^ Описание ^
 +| **call_id**\\ string ​   | Глобальный идентификатор вызова (в формате провайдера). |
  
 == Пример:​ == == Пример:​ ==
 <​code>​{ <​code>​{
-  "​call_id":"​askozia-1489583124.183"​+  "​call_id":"​askozia-1489583124.183"​
-  "​method":"​blind",​ +
-  "​to_number":"​28",​ +
-  "​whom":​{ +
-    "​extension":"​SIP/​34"​ +
-  }+
 }</​code>​ }</​code>​
 +
 +=== Ответ ===
 +
 +== JSON формат:​ ==
 +<​code>​{
 +  "​result":​string
 +}</​code>​
 +
 +== Параметры:​ ==
 +^ Наименование поля ​      ^ Описание ^
 +| **result**\\ string ​    | Результат выполнения команды. Содержит "​Success"​ в случае успеха и описание ошибки в ином случае. |
 +
 +
 +==== [request] provider.v1.cmd.calls.unhold ====
 +Возвращает вызов с удержание. При этом он возвращается к тому же внутреннему абоненту,​ который принимал вызов до удержания. Телефон внутреннего абонента будет звонить как при входящем звонке. Если телефон поддерживает функцию автоподъема,​ то вызов будет возобновлен моментально.
 +
 +== JSON формат:​ ==
 +<​code>​{
 +  "​call_id":​string
 +}</​code>​
 +
 +== Параметры:​ ==
 +^ Наименование поля ​      ^ Описание ^
 +| **call_id**\\ string ​   | Глобальный идентификатор вызова (в формате провайдера). |
 +
 +== Пример:​ ==
 +<​code>​{
 +  "​call_id":"​askozia-1489583124.183"​
 +}</​code>​
 +
 +=== Ответ ===
 +
 +== JSON формат:​ ==
 +<​code>​{
 +  "​result":​string
 +}</​code>​
 +
 +== Параметры:​ ==
 +^ Наименование поля ​      ^ Описание ^
 +| **result**\\ string ​    | Результат выполнения команды. Содержит "​Success"​ в случае успеха и описание ошибки в ином случае. |
  
  
Строка 303: Строка 461:
 | **no**\\ integer ​       | Номер текущего сообщения отправленного в очередь. Каждое сообщение пронумеровано в интервале 1..[total]. | | **no**\\ integer ​       | Номер текущего сообщения отправленного в очередь. Каждое сообщение пронумеровано в интервале 1..[total]. |
 | **total**\\ integer ​    | Общее количество сообщений с данными активных вызовов,​ которые будут отправлены. | | **total**\\ integer ​    | Общее количество сообщений с данными активных вызовов,​ которые будут отправлены. |
-| **data**\\ [[uniphone:​asterisk#​subscribe_providerv1calls|array[object(Call)]]] | Информация о вызове. Подробное описание полей в разделе [[uniphone:​asterisk#​subscribe_providerv1calls|provider.v1.calls]] |+| **data**\\ [[uniphone:​asterisk#​subscribe_providerv1calls|object(Call)]] | Информация о вызове. Подробное описание полей в разделе [[uniphone:​asterisk#​subscribe_providerv1calls|provider.v1.calls]] ​
 + 
 + 
 +==== [request] provider.v1.cmd.calls.history ==== 
 +Возвращает список последних вызовов выполненных с указанного внутреннего номера телефона или принятых на него. 
 + 
 +== JSON формат:​ == 
 +<​code>​{ 
 +  "​number":​string,​ 
 +  "​limit":​integer 
 +}</​code>​ 
 + 
 +== Параметры:​ == 
 +^ Наименование поля ​      ^ Описание ^ 
 +| **number**\\ string ​    | Номер телефона внутреннего абонента. | 
 +| **limit**\\ integer ​    | Максимальное количество возвращаемых записей. | 
 + 
 +=== Ответ === 
 + 
 +== JSON формат:​ == 
 +<​code>​{ 
 +  "​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 
 +  } 
 +}</​code>​ 
 + 
 +== Параметры:​ == 
 +^ Наименование поля ​                  ^ Описание ^ 
 +| **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// ​  | Идентификатор записи разговора. ​|
  
  
Строка 320: Строка 528:
   "​total":​integer,​   "​total":​integer,​
   "​data":​{   "​data":​{
 +    "​name":​string,​
     "​extension":​string,​     "​extension":​string,​
     "​number":​string,​     "​number":​string,​
Строка 331: Строка 540:
 | **no**\\ integer ​       | Номер текущего сообщения отправленного в очередь. Каждое сообщение пронумеровано в интервале 1..[total]. | | **no**\\ integer ​       | Номер текущего сообщения отправленного в очередь. Каждое сообщение пронумеровано в интервале 1..[total]. |
 | **total**\\ //​integer// ​    | Общее количество сообщений с данными активных вызовов,​ которые будут отправлены. | | **total**\\ //​integer// ​    | Общее количество сообщений с данными активных вызовов,​ которые будут отправлены. |
 +| data.**name**\\ string ​     | Имя абонента по данным Caller ID. |
 | data.**extension**\\ string | Идентификатор внутреннего абонента. | | data.**extension**\\ string | Идентификатор внутреннего абонента. |
 | data.**number**\\ string ​   | Добавочный номер абонента. | | data.**number**\\ string ​   | Добавочный номер абонента. |
Строка 351: Строка 561:
 | **method**\\ string ​    | Метод присоединения к звонку:​\\ //listen// - подслушивание разговора;​\\ //whisper// - режим шепота коллеге (подключаемого слышит только внутренний абонент);​\\ //​interfere//​ - вмешаться в разговор (слышат оба абонента). | | **method**\\ string ​    | Метод присоединения к звонку:​\\ //listen// - подслушивание разговора;​\\ //whisper// - режим шепота коллеге (подключаемого слышит только внутренний абонент);​\\ //​interfere//​ - вмешаться в разговор (слышат оба абонента). |
 | **spy**\\ [[uniphone:​asterisk#​caller|object(Caller)]] | Данные абонента,​ которого нужно подключить к разговору. Заполняется только поле "​extension"​. | | **spy**\\ [[uniphone:​asterisk#​caller|object(Caller)]] | Данные абонента,​ которого нужно подключить к разговору. Заполняется только поле "​extension"​. |
 +
 +== Пример:​ ==
 +<​code>​{
 +  "​call_id":"​askozia-1489583124.183",​
 +  "​method":"​listen",​
 +  "​spy":​{
 +    "​extension":"​SIP/​34"​
 +  }
 +}</​code>​
  
 === Ответ === === Ответ ===
Строка 362: Строка 581:
 ^ Наименование поля ​      ^ Описание ^ ^ Наименование поля ​      ^ Описание ^
 | **result**\\ string ​    | Результат выполнения команды. Содержит "​Success"​ в случае успеха и описание ошибки в ином случае. | | **result**\\ string ​    | Результат выполнения команды. Содержит "​Success"​ в случае успеха и описание ошибки в ином случае. |
 +
 +
 +==== [request] provider.v1.cmd.spy.stop ====
 +Отключает супервизора от звонка.
 +
 +== JSON формат:​ ==
 +<​code>​{
 +  "​call_id":​string,​
 +  "​spy":​object(Caller)
 +}</​code>​
 +
 +== Параметры:​ ==
 +^ Наименование поля ​      ^ Описание ^
 +| **call_id**\\ string ​   | Глобальный идентификатор вызова (в формате провайдера). |
 +| **spy**\\ [[uniphone:​asterisk#​caller|object(Caller)]] | Данные абонента,​ которого нужно отключить. Заполняется только поле "​extension"​. |
  
 == Пример:​ == == Пример:​ ==
 <​code>​{ <​code>​{
   "​call_id":"​askozia-1489583124.183",​   "​call_id":"​askozia-1489583124.183",​
-  "​method":"​listen",​ 
   "​spy":​{   "​spy":​{
     "​extension":"​SIP/​34"​     "​extension":"​SIP/​34"​
Строка 372: Строка 605:
 }</​code>​ }</​code>​
  
 +=== Ответ ===
  
-==== [request] provider.v1.cmd.spy.stop ==== +== JSON формат:​ == 
-Отключает ​супервизора от звонка.+<​code>​{ 
 +  "​result":​string 
 +}</​code>​ 
 + 
 +== Параметры:​ == 
 +^ Наименование поля ​      ^ Описание ^ 
 +| **result**\\ string ​    | Результат выполнения команды. Содержит "​Success"​ в случае успеха и описание ошибки в ином случае. | 
 + 
 + 
 +==== [request] provider.v1.cmd.records.listen ​==== 
 +Воспроизводит запись разговора с помощью телефона абонента. Для абонента операция ​выглядит как входящий ​звонок.
  
 == JSON формат:​ == == JSON формат:​ ==
 <​code>​{ <​code>​{
-  "call_id":​string,​ +  "record":​string,​ 
-  "spy":​object(Caller)+  "listener":​object(Caller)
 }</​code>​ }</​code>​
  
 == Параметры:​ == == Параметры:​ ==
 ^ Наименование поля ​      ^ Описание ^ ^ Наименование поля ​      ^ Описание ^
-| **call_id**\\ string ​   | Глобальный идентификатор ​вызова (в формате ​провайдера). | +| **record**\\ string ​   | Идентификатор записи ​разговора. | 
-| **spy**\\ [[uniphone:​asterisk#​caller|object(Caller)]] | Данные абонента,​ которого нужно отключить. Заполняется только поле "​extension"​. |+| **listener**\\ [[uniphone:​asterisk#​caller|object(Caller)]] | Данные абонента,​ который будет прослушивать разговор. Заполняется только поле "​extension"​. | 
 + 
 +== Пример:​ == 
 +<​code>​{ 
 +  "​record":"/​storage/​usbdisk1/​askoziapbx/​callrecordings/​40/​askozia-1501854278.119_28_40_2017-08-04-17-44-38.gsm",​ 
 +  "​listener":​{ 
 +    "​extension":"​SIP/​34"​ 
 +  } 
 +}</​code>​
  
 === Ответ === === Ответ ===
Строка 397: Строка 649:
 ^ Наименование поля ​      ^ Описание ^ ^ Наименование поля ​      ^ Описание ^
 | **result**\\ string ​    | Результат выполнения команды. Содержит "​Success"​ в случае успеха и описание ошибки в ином случае. | | **result**\\ string ​    | Результат выполнения команды. Содержит "​Success"​ в случае успеха и описание ошибки в ином случае. |
 +
 +
 +==== [request] (устарел) provider.v1.cmd.records.access ====
 +Возвращает набор параметров для доступа к скачиванию записей разговора.
 +
 +== Параметры:​ ==
 +//Не имеет параметров.//​
 +
 +=== Ответ ===
 +
 +== JSON формат:​ ==
 +<​code>​{
 +  "​result":​string,​
 +  "​data":​map[string]string
 +}</​code>​
 +
 +== Параметры:​ ==
 +^ Наименование поля ​      ^ Описание ^
 +| **result**\\ string ​    | Результат выполнения команды. Содержит "​Success"​ в случае успеха и описание ошибки в ином случае. |
 +| **data**\\ map[string]string | Параметры доступа к скачиванию записей разговора. Количество и содержание параметров определяется в файле ///​historyd/​config.json//​ секции "​call_records"​. |
 +
 +
 +==== [request] provider.v1.cmd.records.get ====
 +Возвращает прямую ссылку к записи разговора. Время жизни ссылки может быть ограничено,​ поэтому сохранять прямые ссылки не рекомендуется.
 +
 +== JSON формат:​ ==
 +<​code>​{
 +  "​record":​string
 +}</​code>​
 +
 +== Параметры:​ ==
 +^ Наименование поля ​      ^ Описание ^
 +| **record**\\ string ​   | Идентификатор записи разговора. |
  
 == Пример:​ == == Пример:​ ==
 <​code>​{ <​code>​{
-  "call_id":"​askozia-1489583124.183", +  "record":"​/​storage/​usbdisk1/​askoziapbx/​callrecordings/​40/​askozia-1501854278.119_28_40_2017-08-04-17-44-38.gsm" 
-  "spy":{+}</​code>​ 
 + 
 +=== Ответ === 
 + 
 +== JSON формат:​ == 
 +<​code>​{ 
 +  "​result":​string 
 +  "​data":​{ 
 +    "​path":​string 
 +  } 
 +}</​code>​ 
 + 
 +== Параметры:​ == 
 +^ Наименование поля ​      ^ Описание ^ 
 +| **result**\\ string ​    | Результат выполнения команды. Содержит "​Success"​ в случае успеха и описание ошибки в ином случае. | 
 +| data.**path**\\ string ​ | Прямая ссылка к файлу записи разговора. | 
 + 
 + 
 +==== [request] provider.v1.cmd.meetings.create ==== 
 +Создает новую телеконференцию. Телеконференции разделены между собой и имеет свой идентификатор - номер комнатывозвращаемый командой в случае успеха. 
 + 
 +== JSON формат:​ == 
 +<​code>​{ 
 +  "​organizer":​object(Caller),​ 
 +  "​auto_answer":​bool,​ 
 +  "​members":​array[object(F)] 
 +}</​code>​ 
 + 
 +== Параметры:​ == 
 +^ Наименование поля ​      ^ Описание ^ 
 +| **organizer**\\ [[uniphone:​asterisk#​caller|object(Caller)]] | Данные организатора телеконференции. Организатор получит приглашение присоединиться к телеконференции или автоматически присоединиться к ней, если параметр "​auto_answer"​ установлен в "​true"​. | 
 +| **auto_answer**\\ bool  | (Не обязательный) Если параметр установлен,​ то добавляет в SIP заголовок команду автоподъема трубки. Не все телефоны могут поддерживать данную функцию. | 
 +| **members**\\ [[uniphone:​asterisk#​caller|array[object(Caller)]]] | (Не обязательный) Список абонентов,​ которым нужно отправить приглашение присоединиться к телеконференции. Для внутренних абонентов заполняется поле "​extension",​ для внешних - поле "​number"​. | 
 + 
 +== Пример:​ == 
 +<​code>​{ 
 +  "organizer":{
     "​extension":"​SIP/​34"​     "​extension":"​SIP/​34"​
   }   }
 }</​code>​ }</​code>​
  
 +=== Ответ ===
  
-==== [request] provider.v1.cmd.records.listen ​==== +== JSON формат: ​== 
-Воспроизводит ​запись разговора с помощью телефона ​абонента. Для абонента операция выглядит как входящий звонок.+<​code>​{ 
 +  "​result":​string 
 +  "​data":​{ 
 +    "​room":​string 
 +  } 
 +}</​code>​ 
 + 
 +== Параметры: ​== 
 +^ Наименование ​поля       ^ Описание ^ 
 +| **result**\\ string ​    | Результат ​выполнения команды. Содержит "​Success"​ в случае успеха и описание ​ошибки ​в ином случае. | 
 +| data.**room**\\ string ​ | Номер комнаты. Используется для идентификации телеконференции. | 
 + 
 + 
 +==== [request] provider.v1.cmd.meetings.invite ==== 
 +Приглашает новых участников присоединиться ​к телеконференции.
  
 == JSON формат:​ == == JSON формат:​ ==
 <​code>​{ <​code>​{
-  "record":​string,​ +  "room":​string,​ 
-  "listener":​object(Caller)+  "members":array[object(Caller)]
 }</​code>​ }</​code>​
  
 == Параметры:​ == == Параметры:​ ==
 ^ Наименование поля ​      ^ Описание ^ ^ Наименование поля ​      ^ Описание ^
-| **record**\\ string ​   Cсылка на файл записи разговора. | +| **room**\\ string ​      ​Номер ​комнаты. Используется для ​идентификации телеконференции. | 
-| **listener**\\ [[uniphone:​asterisk#​caller|object(Caller)]] | Данные ​абонента, который будет прослушивать разговор. Заполняется только поле "​extension"​. |+| **members**\\ [[uniphone:​asterisk#​caller|array[object(Caller)]]] | Список ​абонентов, которым нужно отправить приглашение присоединиться к телеконференции. Для внутренних абонентов заполняется поле "​extension",​ для внешних - поле "​number"​. | 
 +| **auto_answer**\\ bool  | (Не обязательный) Если параметр установлен,​ то добавляет в SIP заголовок команду автоподъема трубки. Не все телефоны могут поддерживать данную функцию. Допускается ​использовать ​только ​для ​повторного приглашения организатора телеконференции,​ в остальных случаях игнорируется. | 
 + 
 +== Пример:​ == 
 +<​code>​{ 
 +  "​room":"​2244",​ 
 +  "​members":​[{ 
 +    ​"​extension"​:"​SIP/​40"​ 
 +  }, 
 +  { 
 +    "​number":"​74952293042"​ 
 +  }] 
 +}</​code>​
  
 === Ответ === === Ответ ===
Строка 431: Строка 779:
 ^ Наименование поля ​      ^ Описание ^ ^ Наименование поля ​      ^ Описание ^
 | **result**\\ string ​    | Результат выполнения команды. Содержит "​Success"​ в случае успеха и описание ошибки в ином случае. | | **result**\\ string ​    | Результат выполнения команды. Содержит "​Success"​ в случае успеха и описание ошибки в ином случае. |
 +
 +
 +==== [request] provider.v1.cmd.meetings.kick ====
 +Исключает участника из телеконференции.
 +
 +== JSON формат:​ ==
 +<​code>​{
 +  "​room":​string,​
 +  "​member":​object(Caller)
 +}</​code>​
 +
 +== Параметры:​ ==
 +^ Наименование поля ​      ^ Описание ^
 +| **room**\\ string ​      | Номер комнаты. Используется для идентификации телеконференции. |
 +| **member**\\ [[uniphone:​asterisk#​caller|object(Caller)]] | Участник,​ которого необходимо исключить из телеконференции. Необходимо заполнять оба поля "​extension"​ и "​number"​. |
  
 == Пример:​ == == Пример:​ ==
 <​code>​{ <​code>​{
-  "record":"/​storage/usbdisk1/askoziapbx/callrecordings/​40/​askozia-1501854278.119_28_40_2017-08-04-17-44-38.gsm", +  "room":"​2244",​ 
-  "listener":{+  "​member":​{ 
 +    "​extension":"​SIP/40", 
 +    "​number":"​40"​ 
 +  } 
 +}</code> 
 + 
 +=== Ответ === 
 + 
 +== JSON формат:​ == 
 +<​code>​{ 
 +  "​result":​string 
 +}</code> 
 + 
 +== Параметры:​ == 
 +^ Наименование поля ​      ^ Описание ^ 
 +| **result**\\ string ​    | Результат выполнения команды. Содержит "​Success"​ в случае успеха и описание ошибки в ином случае. | 
 + 
 + 
 +==== [request] provider.v1.cmd.meetings.transform ==== 
 +Преобразует звонок в телеконференцию с двумя участниками. Организатору будет отправлено приглашение. Если его телефон поддерживает функцию автоподъема трубки,​ он присоединиться автоматически. 
 + 
 +== JSON формат:​ == 
 +<​code>​{ 
 +  "​call_id":​string,​ 
 +  "​organizer":​object(Caller) 
 +}</code> 
 + 
 +== Параметры:​ == 
 +^ Наименование поля ​      ^ Описание ^ 
 +| **call_id**\\ string ​   | Глобальный идентификатор текущего вызова (в формате провайдера)
 +| **organizer**\\ [[uniphone:​asterisk#​caller|object(Caller)]] | Данные организатора телеконференции. | 
 + 
 +== Пример:​ == 
 +<​code>​{ 
 +  "​call_id":"​askozia-1489583124.183", 
 +  "organizer":{
     "​extension":"​SIP/​34"​     "​extension":"​SIP/​34"​
   }   }
 }</​code>​ }</​code>​
 +
 +=== Ответ ===
 +
 +== JSON формат:​ ==
 +<​code>​{
 +  "​result":​string,​
 +  "​data":​{
 +    "​room":​string
 +  }
 +}</​code>​
 +
 +== Параметры:​ ==
 +^ Наименование поля ​      ^ Описание ^
 +| **result**\\ string ​    | Результат выполнения команды. Содержит "​Success"​ в случае успеха и описание ошибки в ином случае. |
 +| data.**room**\\ string ​ | Номер комнаты. Используется для идентификации телеконференции. |
 +
 +
 +==== [request] provider.v1.cmd.meetings.active ====
 +Возвращает список текущих телеконференций.
 +
 +== Параметры:​ ==
 +//Не имеет параметров.//​
 +
 +=== Ответ ===
 +
 +== JSON формат:​ ==
 +<​code>​{
 +  "​result":​string,​
 +  "​no":​integer,​
 +  "​total":​integer,​
 +  "​data":​{
 +    "​room"​
 +    "​organizer":​object(Caller),​
 +    "​members":​array[object(Caller)]
 +    "​invites":​array[object(Caller)]
 +  }
 +}</​code>​
 +
 +== Параметры:​ ==
 +^ Наименование поля ​      ^ Описание ^
 +| **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 формат:​ ==
 +<​code>​{
 +  "​room":​string
 +}</​code>​
 +
 +== Параметры:​ ==
 +^ Наименование поля ​      ^ Описание ^
 +| **room**\\ string ​      | Номер комнаты. Используется для идентификации телеконференции. |
 +
 +== Пример:​ ==
 +<​code>​{
 +  "​room":"​2244"​
 +}</​code>​
 +
 +=== Ответ ===
 +
 +== JSON формат:​ ==
 +<​code>​{
 +  "​result":​string
 +  "​data":​{
 +    "​organizer":​object(Caller),​
 +    "​members":​array[object(Caller)]
 +    "​invites":​array[object(Caller)]
 +  }
 +}</​code>​
 +
 +== Параметры:​ ==
 +^ Наименование поля ​      ^ Описание ^
 +| **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)]]] | Список участников,​ которым отправлено приглашение. |
  
uniphone/asterisk.1503580694.txt.gz · Последние изменения: 2017/08/24 13:18 — mcvet