Серверный HTTP интерфейс — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
(Новая страница: «Наверх Серверная служба осуществляет прослушивание порта 4055 (может быть...»)
 
Строка 6: Строка 6:
 
Запросы могут поступать с использованием как метода GET, так и POST.  
 
Запросы могут поступать с использованием как метода GET, так и POST.  
  
При необходимости может быть задействована проверка пароля при получении запроса. Для этого в конфигурационном файле серверной службы необходимо указать непустое значение параметру [[Параметры файлов конфигурации#Параметры файла конфигурации серверного приложения|QueryWebServerPassword]]. Все поступающие запросы при этом должны содержать среди параметров <span style="color:green;">password=abc</span>, в противном случае сервер будет отвечать «403 Forbidden».
+
При необходимости может быть задействована авторизация или проверка пароля при получении запроса в разделе [[Настройки веб-сервера]] общих настроек Oktell. На все запросы, не прошедшие авторизацию, http веб-сервер будет отвечать «403 Forbidden».
 +
Поддерживаются режимы без авторизации, авторизации по паролю в параметрах, Basic авторизации, Digest авторизации. В качестве логина/пароля выступают значения, установленные в общих настройках, а также логин-пароль любого пользователя для Basic авторизации и логин-md5(пароля) для Digest авторизации. Среди приведенных способов авторизации Digest самый надежный.
 +
 
 +
Как GET, так и POST запрос позволяет перечислять параметры в URL.
 +
 
  
  
Строка 13: Строка 17:
  
  
 +
-------------------------------
  
 
<div id="execsvcscript"></div>
 
<div id="execsvcscript"></div>
Строка 53: Строка 58:
 
</pre>
 
</pre>
  
 +
 +
-------------------------------
  
 
'''execsvcscriptplain'''. Аналогично методу <span style="gray;">execsvcscript</span> осуществляет запуск произвольного служебного сценария на сервере (код запуска 27) с такими же параметрами. Отличие состоит в том, что ответ сценария, сохраненный в переменную «Выходное значение» без искажений размещается в контенте ответа на запрос, в то время как базовый метод обрамляет ответ в XML формат.
 
'''execsvcscriptplain'''. Аналогично методу <span style="gray;">execsvcscript</span> осуществляет запуск произвольного служебного сценария на сервере (код запуска 27) с такими же параметрами. Отличие состоит в том, что ответ сценария, сохраненный в переменную «Выходное значение» без искажений размещается в контенте ответа на запрос, в то время как базовый метод обрамляет ответ в XML формат.
  
 +
 +
-------------------------------
  
 
'''tst_getintnumberreadyusers'''. Для указанного внутреннего стандартного номера возвращает количество свободных и занятых пользователей, а также список свободных пользователей, указанных в виде прямых внутренних стандартных номеров, по которым их можно вызвать.
 
'''tst_getintnumberreadyusers'''. Для указанного внутреннего стандартного номера возвращает количество свободных и занятых пользователей, а также список свободных пользователей, указанных в виде прямых внутренних стандартных номеров, по которым их можно вызвать.
Строка 79: Строка 88:
 
</pre>
 
</pre>
  
 +
 +
-------------------------------
  
 
'''tst_getuserstate'''. Возвращает XML-структуру, содержащую текущее состояние указанного в запросе пользователя.
 
'''tst_getuserstate'''. Возвращает XML-структуру, содержащую текущее состояние указанного в запросе пользователя.
Строка 110: Строка 121:
 
</pre>
 
</pre>
  
 +
 +
-------------------------------
  
 
'''getlicensefulltext'''. Возвращает полный текст информации о лицензии на текущем установленном на сервере языке, аналогичный отображаемому в разделе [[Информация о лицензиях|Администрирование. Общие настройки. Информация о лицензии]].
 
'''getlicensefulltext'''. Возвращает полный текст информации о лицензии на текущем установленном на сервере языке, аналогичный отображаемому в разделе [[Информация о лицензиях|Администрирование. Общие настройки. Информация о лицензии]].
Строка 120: Строка 133:
 
http://192.168.0.1:4055/getlicensefullxml
 
http://192.168.0.1:4055/getlicensefullxml
  
 +
 +
-------------------------------
  
 
'''getlicenseinfo'''. Возвращает значение указанного параметра лицензионного сертификата.
 
'''getlicenseinfo'''. Возвращает значение указанного параметра лицензионного сертификата.
Строка 134: Строка 149:
 
http://192.168.0.1:4055/getlicensefullxml?detail=regserial
 
http://192.168.0.1:4055/getlicensefullxml?detail=regserial
  
 +
 +
-------------------------------
  
 
'''download'''. Позволяет скачать файл с сервера.
 
'''download'''. Позволяет скачать файл с сервера.
  
::* download/rec/ABC, download/fax/ABC - предоставляет файлы записей разговоров и файлы полученных факсимильных сообщений. Правильная ссылка предоставляется через web-socket подключение.
+
::* download/rec/ABC, download/fax/ABC - предоставляет файлы записей разговоров и файлы полученных факсимильных сообщений. Правильная ссылка предоставляется через web-socket подключение. В качестве дополнительного может использоваться параметр ''attachment''.
  
::* download/byscript - предоставляет доступ к произвольному файлу, путь к которому определяется служебным сценарием, запускаемым этим запросом. Все параметры для [[#execsvcscript|execsvcscript]]. Считается что сценарий вернет путь к файлу, который и будет возвращен.
+
::* download/byscript - предоставляет доступ к произвольному файлу, путь к которому определяется служебным сценарием, запускаемым этим запросом. Используются все параметры для метода [[#execsvcscript|execsvcscript]], а также дополнительный параметр ''attachment''. Считается что сценарий вернет путь к файлу, который и будет возвращен.
 +
 
 +
::* download/files - предоставляет доступ к произвольному файлу по прямой ссылке, определяемой параметром path. Путь может быть абсолютным или относительным (относительно рабочего каталога службы сервера Oktell или относительно хранилища файлов). Дополнительно может использоваться параметр ''attachment''. Следует иметь в виду, что в соответствии со значением ключа [[Параметры файлов конфигурации#AllowDownloadFilesDirectlyOnlyFromTemp]] в конфигурационном файле по умолчанию, разрешенная зона для произвольного скачивания ограничена временной папкой и [[Настройки веб-сервера#LocalStoragePath|папкой хранилища]].
 +
 
 +
Параметры:
 +
 
 +
* <span style="color:green;">attachment</span> - «1» указывает на скачивание в виде вложения, «0» - на скачивания в виде медиа (по расширению файла). По умолчанию 1.
  
 
http://192.168.0.1:4055/download/byscript?name=SvcScript1&startparam1=123&startparam2=234&async=0&timeout=10
 
http://192.168.0.1:4055/download/byscript?name=SvcScript1&startparam1=123&startparam2=234&async=0&timeout=10
  
 +
 +
-------------------------------
 +
 +
'''getsharedfile'''. Позволяет скачать файл из открытой папки локального хранилища (\LocalStorage\Shared) по прямой ссылке без прохождения авторизации при подключении к HTTP серверу. В качестве указания файла может быть передан абсолютный путь на сервере, путь относительно рабочего каталога службы Oktell, путь относительно локального хранилища, а также путь относительно открытой папки локального хранилища. Чуть что не так - возвращает ''404 Not Found''.
 +
 +
Для скачивания файлов, размещенных вне открытой папки локального хранилища, требуется авторизация (если иное не установлено в [[Настройки веб-сервера|настройках HTTP сервера]]) и использование метода '''download/files'''.
 +
 +
Параметры:
 +
 +
* <span style="color:green;">path</span> - Путь относительный или абсолютный к файлу, расположенному в открытом разделе хранилища.
 +
 +
* <span style="color:green;">attachment</span> - «1» указывает на скачивание в виде вложения, «0» - на скачивания в виде медиа (по расширению файла). По умолчанию 1.
 +
 +
http://192.168.0.1:4055/getsharedfile?path=123.jpg
 +
 +
 +
-------------------------------
  
 
'''downloadrecordbylink'''. Позволяет скачать файл записи разговора с сервера, код которого упакован и передан через web-socket подключение.
 
'''downloadrecordbylink'''. Позволяет скачать файл записи разговора с сервера, код которого упакован и передан через web-socket подключение.
Строка 153: Строка 193:
  
  
'''upload'''. Позволяет закачать файл на сервер. Веб-сервер понимает <span style="color:gray;">Content-Type</span> multipart/form-data и application/octet-stream. В запросе должны также присутствовать поля <span style="color:gray;">Content-Transfer-Encoding</span> , <span style="color:gray;">Content-Disposition</span>. В одном запросе с помощью MIME могут быть переданы несколько файлов. Размещение их осуществляется в каталоге <span style="color:gray;">\OktellWorkDirectory\Temp\UploadData</span>. Для формирования неслучайных имен, исходные имена должны быть указаны в качестве параметра суб-заголовка <span style="color:gray;">Content-Disposition</span>.
+
-------------------------------
 +
 
 +
'''upload'''. Позволяет закачать файл на сервер. Веб-сервер понимает <span style="color:gray;">Content-Type</span> ''multipart/form-data'' и ''application/octet-stream''. В запросе должны также присутствовать поля <span style="color:gray;">Content-Transfer-Encoding</span>, <span style="color:gray;">Content-Disposition</span>. В одном запросе с помощью MIME могут быть переданы несколько файлов. Размещение их осуществляется в каталоге <span style="color:gray;">\OktellWorkDirectory\Temp\UploadData</span>. Для формирования неслучайных имен, исходные имена должны быть указаны в качестве параметра суб-заголовка <span style="color:gray;">Content-Disposition</span>.
 +
 
 +
Параметры могут быть переданы в URL:
 +
 
 +
* <span style="color:green;">storagemode</span> - Место размещения файла. Варианты значений:
 +
:* ''storage'' - в специально отведенном файловом хранилище, доступном извне только после авторизации, по временному паролю или в случае если авторизация HTTP веб-сервера не используется.
 +
:* ''storageshared'' - в специально отведенном файловом хранилище, открытом для доступа извне без авторизации (если внешний пользователь знает прямую ссылку) с помощью метода '''getsharedfile'''.
 +
:* ''temp'' (по умолчанию) - во временной папке. Гарантировано очищается при перезапуске службы. Файлы доступны для скачивания извне без авторизации по прямой ссылке с помощью метода '''getsharedfile'''.
 +
:* ''script'' - размещается во временной папке, а затем запускается указанный в дополнительных параметрах служебный сценарий, в который в качестве пятого параметра передается результат сохранения файлов с указанием полных путей (xml). Ожидается, что сценарий самостоятельно разместит эти файлы (перенесет в другое место из временной папки). На выход в этом случае возвращается результат, аналогичный результату метода '''execsvcscript'''. Дополнительные параметры также соответствуют параметрам метода '''execsvcscript'''.
 +
:* ''scriptplain'' - размещается во временной папке, а затем запускается указанный в дополнительных параметрах служебный сценарий, в который в качестве пятого параметра передается результат сохранения файлов с указанием полных путей (xml). Ожидается, что сценарий самостоятельно разместит эти файлы (перенесет в другое место из временной папки). На выход в этом случае возвращается результат, аналогичный результату метода '''execsvcscriptplain'''. Дополнительные параметры также соответствуют параметрам метода '''execsvcscriptplain'''.
 +
 
 +
* <span style="color:green;">pathmode</span> - Определяет, абсолютный или относительный путь к сохраненным файлам возвращать в ответе (или передавать в сценарий). Варианты значений: ''absolute'' и ''relative'' соответственно, по умолчанию возвращается относительный путь.
 +
 
 +
При размещении файлов необходимо предусмотреть, каким образом и для чего они будут использоваться, кем и при каких условиях скачиваться, надолго или не надолго попадать в хранилище. Обратите внимание на настройку конфигурационного файла [[Параметры файлов конфигурации#AllowDownloadFilesDirectlyOnlyFromTemp]], а также на параметр [[Настройки веб-сервера#LocalStoragePath|Путь к хранилищу файлов]] в общих настройках.
  
 
Для примера запроса можно обратиться к сценарию закачки файла на сервер Oktell ([[Файл:uploadfile.oscr]]), присутствующему также в шаблонных сценариях дистрибутива версии начиная с 25.03.2012.  
 
Для примера запроса можно обратиться к сценарию закачки файла на сервер Oktell ([[Файл:uploadfile.oscr]]), присутствующему также в шаблонных сценариях дистрибутива версии начиная с 25.03.2012.  
Строка 176: Строка 231:
  
  
 +
-------------------------------
  
 
Несколько следующих команд предоставляют доступ к функционалу управления звонками, аналогичному доступным для клиентских приложений. Все эти запросы выполняются от имени указанной линии (параметр line), указанного пользователя (параметр user) или указанного рабочего места (параметр wp). Достаточно указания только одного из вышеприведенных параметров. В качестве значения может использоваться guid-идентификатор, название, имя пользователя, логин, номер линии и т.д. По указанному значению однозначно определяется внутренняя линия, от имени которой и исполняется команда.
 
Несколько следующих команд предоставляют доступ к функционалу управления звонками, аналогичному доступным для клиентских приложений. Все эти запросы выполняются от имени указанной линии (параметр line), указанного пользователя (параметр user) или указанного рабочего места (параметр wp). Достаточно указания только одного из вышеприведенных параметров. В качестве значения может использоваться guid-идентификатор, название, имя пользователя, логин, номер линии и т.д. По указанному значению однозначно определяется внутренняя линия, от имени которой и исполняется команда.
Строка 245: Строка 301:
 
}
 
}
 
</pre>
 
</pre>
 +
 +
 +
-------------------------------
  
 
'''wp_getabonentinfo'''. Возвращает информацию о противоположном абоненте в коммутации, в которой участвует линия. Результат представляет собой JSON-структуру
 
'''wp_getabonentinfo'''. Возвращает информацию о противоположном абоненте в коммутации, в которой участвует линия. Результат представляет собой JSON-структуру
Строка 280: Строка 339:
 
</pre>
 
</pre>
  
 +
 +
-------------------------------
  
 
'''wp_autocallstart'''. Запускает автодозвон или разовый звонок на указанный номер.
 
'''wp_autocallstart'''. Запускает автодозвон или разовый звонок на указанный номер.
Строка 301: Строка 362:
 
http://192.168.0.1:4055/wp_autocallstart?line=16038&number=538&direction=pbx
 
http://192.168.0.1:4055/wp_autocallstart?line=16038&number=538&direction=pbx
  
 +
 +
-------------------------------
  
 
'''wp_switchcall'''. Производит flash-переключение текущего звонка на указанный номер. Если линия неактивна, то запускает автодозвон. Все параметры аналогичны [[#wp_autocallstart|wp_autocallstart]].
 
'''wp_switchcall'''. Производит flash-переключение текущего звонка на указанный номер. Если линия неактивна, то запускает автодозвон. Все параметры аналогичны [[#wp_autocallstart|wp_autocallstart]].
  
 +
 +
-------------------------------
  
 
'''wp_autocallstop'''. Останавливает активную сессию автодозвона.
 
'''wp_autocallstop'''. Останавливает активную сессию автодозвона.
Строка 309: Строка 374:
 
http://192.168.0.1:4055/wp_autocallstop?line=16038
 
http://192.168.0.1:4055/wp_autocallstop?line=16038
  
 +
 +
-------------------------------
  
 
'''wp_flash'''. Генерирует flash от имени линии.
 
'''wp_flash'''. Генерирует flash от имени линии.
Строка 314: Строка 381:
 
http://192.168.0.1:4055/wp_flash?user=ivan
 
http://192.168.0.1:4055/wp_flash?user=ivan
  
 +
 +
-------------------------------
  
 
'''wp_declinecall'''. Отклоняет входящий вызов.
 
'''wp_declinecall'''. Отклоняет входящий вызов.
Строка 319: Строка 388:
 
http://192.168.0.1:4055/wp_declinecall?wp=OPERATOR1
 
http://192.168.0.1:4055/wp_declinecall?wp=OPERATOR1
  
 +
 +
-------------------------------
  
 
'''wp_setuserstate'''. Изменяет текущее состояние пользователя и/или перемещает его из одного режима в другой. В любом случае, если пользователь определен, возвращается ответ 200 OK без дополнительных параметров. Оповещение о смене режимов и состояний протекает в обычном режиме путем событийного оповещения клиентского рабочего места.
 
'''wp_setuserstate'''. Изменяет текущее состояние пользователя и/или перемещает его из одного режима в другой. В любом случае, если пользователь определен, возвращается ответ 200 OK без дополнительных параметров. Оповещение о смене режимов и состояний протекает в обычном режиме путем событийного оповещения клиентского рабочего места.
Строка 343: Строка 414:
  
 
http://192.168.0.1:4055/wp_setuserstate?user=ivanov&onlunch=1&lunchreasonid=1001
 
http://192.168.0.1:4055/wp_setuserstate?user=ivanov&onlunch=1&lunchreasonid=1001
 +
 +
 +
-------------------------------

Версия 13:09, 18 сентября 2012

Наверх


Серверная служба осуществляет прослушивание порта 4055 (может быть изменен в конфигурационном файле) и способна исполнять некоторые поступающие на него по протоколу HTTP запросы. Серверная служба осуществляет прослушивание всех сетевых интерфейсов.

Запросы могут поступать с использованием как метода GET, так и POST.

При необходимости может быть задействована авторизация или проверка пароля при получении запроса в разделе Настройки веб-сервера общих настроек Oktell. На все запросы, не прошедшие авторизацию, http веб-сервер будет отвечать «403 Forbidden». Поддерживаются режимы без авторизации, авторизации по паролю в параметрах, Basic авторизации, Digest авторизации. В качестве логина/пароля выступают значения, установленные в общих настройках, а также логин-пароль любого пользователя для Basic авторизации и логин-md5(пароля) для Digest авторизации. Среди приведенных способов авторизации Digest самый надежный.

Как GET, так и POST запрос позволяет перечислять параметры в URL.



Команды серверного веб-интерфейса


execsvcscript. Осуществляет запуск произвольного служебного сценария на сервере (код запуска 27). Запуск служебного сценария может осуществляться синхронно и асинхронно. В синхронном режиме возвращаемое сценарием значение (присвоенное служебной переменной Возвращаемое значение 1) передается в качестве ответа на запрос.

Параметры:

  • name - название служебного сценария, подлежащего запуску, существующего и размещенного на сервере в каталоге общих сценариев.
  • startparam1, startparam2, startparam3, startparam4, startparam5 - значения стартовых параметров, передаваемых в сценарий и доступных в качестве соответствующих функций.
  • async - режим запуска служебного сценария. 0 - синхронно с ожиданием завершения и возвратом значения, 1 - асинхронно.
  • timeout - в случае запуска в синхронном режиме устанавливает максимально допустимое время ожидания завершения сценария в секундах. При превышении обрывает ожидание и возвращает ответ на веб-запрос без результата работы сценария.

http://192.168.0.1:4055/execsvcscript?name=SvcScript1&startparam1=123&startparam2=234&async=0&timeout=10

Пример структуры возвращаемого значения:

<?xml version="1.0" encoding="utf-16"?>

 <oktellxmlmapper version="80710">

   <data name="result" count="1">

     <property_set name="execsvcscript">

       <property_simple key="started" value="1" name="success" />

       <property_simple key="startresult" value="0" name="success" />

       <property_simple key="returnvalue" name="abcdef" />

     </property_set>

   </data>

 </oktellxmlmapper>



execsvcscriptplain. Аналогично методу execsvcscript осуществляет запуск произвольного служебного сценария на сервере (код запуска 27) с такими же параметрами. Отличие состоит в том, что ответ сценария, сохраненный в переменную «Выходное значение» без искажений размещается в контенте ответа на запрос, в то время как базовый метод обрамляет ответ в XML формат.



tst_getintnumberreadyusers. Для указанного внутреннего стандартного номера возвращает количество свободных и занятых пользователей, а также список свободных пользователей, указанных в виде прямых внутренних стандартных номеров, по которым их можно вызвать.

Параметры:

  • number - номер, состояние объектов которого необходимо определить.

http://192.168.0.1:4055/tst_getintnumberreadyusers?number=120

Пример структуры возвращаемого значения:

 
<?xml version="1.0" encoding="utf-8"?>

  <group name="120" ready="2" busy="3">

    <element name="223"/>

    <element name="227"/>

  </group>



tst_getuserstate. Возвращает XML-структуру, содержащую текущее состояние указанного в запросе пользователя.

Параметры:

  • number - номер, состояние объектов которого необходимо определить.

http://localhost:4055/tst_getuserstate?iduser=DA803F01-EA77-40FA-BC9D-E2EFB36FD5A8

Пример структуры возвращаемого значения:

 <?xml version="1.0" encoding="utf-16"?>

 <oktellxmlmapper version="80710">

   <data name="userstate" count="1">

     <property_set name="user" id="da803f01-ea77-40fa-bc9d-e2efb36fd5a8">

       <property_simple key="id" value="da803f01-ea77-40fa-bc9d-e2efb36fd5a8" />

       <property_simple key="state" value="1" name="usReady" />

     </property_set>

   </data>

 </oktellxmlmapper>



getlicensefulltext. Возвращает полный текст информации о лицензии на текущем установленном на сервере языке, аналогичный отображаемому в разделе Администрирование. Общие настройки. Информация о лицензии.

http://192.168.0.1:4055/getlicensefulltext


getlicensefullxml. Возвращает xml-структуру лицензионного сертификата.

http://192.168.0.1:4055/getlicensefullxml



getlicenseinfo. Возвращает значение указанного параметра лицензионного сертификата.

Параметры:

  • detail - требуемый параметр.
regserial - 7-значный номер регистрации,
confirmdate - дата следующего подтверждения сертификата в формате dd.MM.yyyy,
updatelimitdate - конечная дата поддерживаемых версий согласно лицензии на обновления в формате dd.MM.yyyy.

http://192.168.0.1:4055/getlicensefullxml?detail=regserial



download. Позволяет скачать файл с сервера.

  • download/rec/ABC, download/fax/ABC - предоставляет файлы записей разговоров и файлы полученных факсимильных сообщений. Правильная ссылка предоставляется через web-socket подключение. В качестве дополнительного может использоваться параметр attachment.
  • download/byscript - предоставляет доступ к произвольному файлу, путь к которому определяется служебным сценарием, запускаемым этим запросом. Используются все параметры для метода execsvcscript, а также дополнительный параметр attachment. Считается что сценарий вернет путь к файлу, который и будет возвращен.
  • download/files - предоставляет доступ к произвольному файлу по прямой ссылке, определяемой параметром path. Путь может быть абсолютным или относительным (относительно рабочего каталога службы сервера Oktell или относительно хранилища файлов). Дополнительно может использоваться параметр attachment. Следует иметь в виду, что в соответствии со значением ключа Параметры файлов конфигурации#AllowDownloadFilesDirectlyOnlyFromTemp в конфигурационном файле по умолчанию, разрешенная зона для произвольного скачивания ограничена временной папкой и папкой хранилища.

Параметры:

  • attachment - «1» указывает на скачивание в виде вложения, «0» - на скачивания в виде медиа (по расширению файла). По умолчанию 1.

http://192.168.0.1:4055/download/byscript?name=SvcScript1&startparam1=123&startparam2=234&async=0&timeout=10



getsharedfile. Позволяет скачать файл из открытой папки локального хранилища (\LocalStorage\Shared) по прямой ссылке без прохождения авторизации при подключении к HTTP серверу. В качестве указания файла может быть передан абсолютный путь на сервере, путь относительно рабочего каталога службы Oktell, путь относительно локального хранилища, а также путь относительно открытой папки локального хранилища. Чуть что не так - возвращает 404 Not Found.

Для скачивания файлов, размещенных вне открытой папки локального хранилища, требуется авторизация (если иное не установлено в настройках HTTP сервера) и использование метода download/files.

Параметры:

  • path - Путь относительный или абсолютный к файлу, расположенному в открытом разделе хранилища.
  • attachment - «1» указывает на скачивание в виде вложения, «0» - на скачивания в виде медиа (по расширению файла). По умолчанию 1.

http://192.168.0.1:4055/getsharedfile?path=123.jpg



downloadrecordbylink. Позволяет скачать файл записи разговора с сервера, код которого упакован и передан через web-socket подключение.

Параметры:

  • recordlink - требуемый параметр.

http://192.168.0.1:4055/downloadrecordbylink?recordlink=ABCDEFGH



upload. Позволяет закачать файл на сервер. Веб-сервер понимает Content-Type multipart/form-data и application/octet-stream. В запросе должны также присутствовать поля Content-Transfer-Encoding, Content-Disposition. В одном запросе с помощью MIME могут быть переданы несколько файлов. Размещение их осуществляется в каталоге \OktellWorkDirectory\Temp\UploadData. Для формирования неслучайных имен, исходные имена должны быть указаны в качестве параметра суб-заголовка Content-Disposition.

Параметры могут быть переданы в URL:

  • storagemode - Место размещения файла. Варианты значений:
  • storage - в специально отведенном файловом хранилище, доступном извне только после авторизации, по временному паролю или в случае если авторизация HTTP веб-сервера не используется.
  • storageshared - в специально отведенном файловом хранилище, открытом для доступа извне без авторизации (если внешний пользователь знает прямую ссылку) с помощью метода getsharedfile.
  • temp (по умолчанию) - во временной папке. Гарантировано очищается при перезапуске службы. Файлы доступны для скачивания извне без авторизации по прямой ссылке с помощью метода getsharedfile.
  • script - размещается во временной папке, а затем запускается указанный в дополнительных параметрах служебный сценарий, в который в качестве пятого параметра передается результат сохранения файлов с указанием полных путей (xml). Ожидается, что сценарий самостоятельно разместит эти файлы (перенесет в другое место из временной папки). На выход в этом случае возвращается результат, аналогичный результату метода execsvcscript. Дополнительные параметры также соответствуют параметрам метода execsvcscript.
  • scriptplain - размещается во временной папке, а затем запускается указанный в дополнительных параметрах служебный сценарий, в который в качестве пятого параметра передается результат сохранения файлов с указанием полных путей (xml). Ожидается, что сценарий самостоятельно разместит эти файлы (перенесет в другое место из временной папки). На выход в этом случае возвращается результат, аналогичный результату метода execsvcscriptplain. Дополнительные параметры также соответствуют параметрам метода execsvcscriptplain.
  • pathmode - Определяет, абсолютный или относительный путь к сохраненным файлам возвращать в ответе (или передавать в сценарий). Варианты значений: absolute и relative соответственно, по умолчанию возвращается относительный путь.

При размещении файлов необходимо предусмотреть, каким образом и для чего они будут использоваться, кем и при каких условиях скачиваться, надолго или не надолго попадать в хранилище. Обратите внимание на настройку конфигурационного файла Параметры файлов конфигурации#AllowDownloadFilesDirectlyOnlyFromTemp, а также на параметр Путь к хранилищу файлов в общих настройках.

Для примера запроса можно обратиться к сценарию закачки файла на сервер Oktell (Файл:Uploadfile.oscr), присутствующему также в шаблонных сценариях дистрибутива версии начиная с 25.03.2012.

В качестве ответа возвращается XML-структура с описанием всех сохраненных файлов и путей к ним.

Пример возвращаемого значения:

 <?xml version="1.0" encoding="utf-16"?>

 <uploadfilesresult count="3">

   <file name="1.jpg" saved="1" size="13277" path="C:\Oktell\Temp\UploadData\1.jpg"/>

   <file name="note.txt" saved="1" size="938" path="C:\Oktell\Temp\UploadData\note.txt"/>

   <file name="noteerror.txt" saved="0"/>

 </uploadfilesresult>



Несколько следующих команд предоставляют доступ к функционалу управления звонками, аналогичному доступным для клиентских приложений. Все эти запросы выполняются от имени указанной линии (параметр line), указанного пользователя (параметр user) или указанного рабочего места (параметр wp). Достаточно указания только одного из вышеприведенных параметров. В качестве значения может использоваться guid-идентификатор, название, имя пользователя, логин, номер линии и т.д. По указанному значению однозначно определяется внутренняя линия, от имени которой и исполняется команда.


wp_getchaincontent. Возвращает текущий контент цепочки, в которой участвует линия. Результат представляет собой JSON-структуру.

http://192.168.0.1:4055/wp_getchaincontent?user=DA803F01-EA77-40FA-BC9D-E2EFB36FD5A8

Пример структуры возвращаемого значения:

{
	"createtime": "2011-07-27 14:41:28",
	"trace": [
		{
			"userlogin": "Dima",
			"isuser": true,
			"queuepriority": 10,
			"managedlineid": "e76c86ea-a28a-4519-b4ff-8879a92c62b7",
			"contentelementtype": "call",
			"srclinenumber": "17002",
			"userid": "2a594b51-bb89-4da6-a69f-f48761baf0d9",
			"calledid": "183",
			"istask": false,
			"pbxdirection": "internal",
			"queuesourcestr": "qsLineLogic",
			"srclineid": "e76c86ea-a28a-4519-b4ff-8879a92c62b7",
			"objecttypestr": "qotQueueLogic",
			"managedlinenumber": "17002",
			"objecttype": 0,
			"callerid": "#999",
			"queuesource": 1,
			"department": "Программисты",
			"startqueuetime": "2011-07-27 14:41:29",
			"objectid": "63d38304-3bff-4e8e-8c42-8f2f11b57c73",
			"username": "Дмитрий Евгеньевич",
			"srcelementid": "e76c86ea-a28a-4519-b4ff-8879a92c62b7"
		},
		{
			"contentelementtype": "commutation",
			"connectiontype": 3,
			"btext": "Виктор Викторыч",
			"aisuser": true,
			"atext": "Дмитрий Евгеньевич",
			"connectiontypestr": "ctInnerInner",
			"buserid": "7cf84c23-2736-4fc8-9bf7-bfbb4778fb01",
			"ausername": "Дмитрий Евгеньевич",
			"aoutnumber": "#999",
			"blineid": "070aafb0-f47c-4df5-a01f-7bb08ceee269",
			"auserlogin": "Dima",
			"bisuser": true,
			"buserlogin": "VIKTIRICH",
			"auserid": "2a594b51-bb89-4da6-a69f-f48761baf0d9",
			"busername": "Виктор Викторыч",
			"timeanswer": "2011-07-27 14:41:31",
			"isrecorded": true,
			"commutationid": "8fc371f2-ae36-4744-ae7f-bee8c79385a8",
			"bnumberdialed": "",
			"timestart": "2011-07-27 14:41:29",
			"boutnumber": "183",
			"anumberdialed": "183",
			"alinenumber": "17002",
			"blinenumber": "17001",
			"alineid": "e76c86ea-a28a-4519-b4ff-8879a92c62b7"
		}
	],
	"customfield": "",
	"chainid": "c7b333a5-93b3-4277-8c60-9844d63a4732"
}



wp_getabonentinfo. Возвращает информацию о противоположном абоненте в коммутации, в которой участвует линия. Результат представляет собой JSON-структуру

http://192.168.0.1:4055/wp_getchaincontent?user=ivan

Пример структуры возвращаемого значения:

{
	"abonentinfo": {
		"cansendfiles": false,
		"isconference": false,
		"callerlineid": "070aafb0-f47c-4df5-a01f-7bb08ceee269",
		"callercomment": "",
		"isuser": true,
		"callername": "Виктор Викторыч",
		"canswitchtoconf": false,
		"callerusername": "Виктор Викторыч",
		"commutationid": "21164dde-0c43-46cf-b00f-77bd51cbe284",
		"calleruserlogin": "VIKTIRICH",
		"callerdescription": "",
		"callerlinenum": "17001",
		"isivr": false,
		"callerid": "183",
		"callersimple": "Виктор Викторыч",
		"calleruserid": "7cf84c23-2736-4fc8-9bf7-bfbb4778fb01",
		"canfax": true,
		"canvideo": false,
		"chainid": "b8b552d1-7cb9-4469-a45d-451f27516af1",
		"isextline": false
	},
	"currentlinestatestr": "lsCommutated",
	"currentlinestate": 32
}



wp_autocallstart. Запускает автодозвон или разовый звонок на указанный номер.

Дополнительные параметры:

  • number - обязательный параметр.
  • direction - необязательный параметр. По умолчанию используется автоопределение (если указанный номер найден среди внутренних номеров, осуществляется звонок вовнутрь, в противном случае осуществляется звонок наружу.
pbx - звонок внутрь,
city - звонок вовне
  • sequence - необязательный параметр. По умолчанию стандартный прямой вызов (direct)
direct - сначала вызывается абонент, после ответа производится обратный вызов линии.
back - сначала осуществляется вызов самой линии, а затем вызов от ее имени указанного номера.

http://192.168.0.1:4055/wp_autocallstart?line=16038&number=538&direction=pbx



wp_switchcall. Производит flash-переключение текущего звонка на указанный номер. Если линия неактивна, то запускает автодозвон. Все параметры аналогичны wp_autocallstart.



wp_autocallstop. Останавливает активную сессию автодозвона.

http://192.168.0.1:4055/wp_autocallstop?line=16038



wp_flash. Генерирует flash от имени линии.

http://192.168.0.1:4055/wp_flash?user=ivan



wp_declinecall. Отклоняет входящий вызов.

http://192.168.0.1:4055/wp_declinecall?wp=OPERATOR1



wp_setuserstate. Изменяет текущее состояние пользователя и/или перемещает его из одного режима в другой. В любом случае, если пользователь определен, возвращается ответ 200 OK без дополнительных параметров. Оповещение о смене режимов и состояний протекает в обычном режиме путем событийного оповещения клиентского рабочего места.

Дополнительные параметры:

  • userstateid - определяет новое состояние пользователя. Не все переходы между состояниями возможны, так например, невозможно сделать пользователя свободным, если он занят разговором по телефону, невозможно ввести пользователя в перерыв, если он не находится в режиме call-центра и т.д. Также невозможен перевод пользователя в служебные состояния (отключен, без телефона, зарезервирован и т.д.). Значение параметра указывается в виде числа из набора:
1 - свободен,
2 - перерыв,
3 - нет на месте,
5 - занят в разговоре или в обработчике задачи.
  • onredirect - 0 или 1, определяет активность режима переадресации. Доступно только при выключенном режиме call-центра. Может выставляться как отдельно, так и одновременно с определением других режимов состояния.
  • oncallcenter - 0 или 1, определяет активность режима call-центра. Производит дополнительно смену состояний, если текущее состояние противоречит выбранному режиму (вывод из перерыва при выходе, вывод из переадресации при входе в call-центр).
  • onlunch - 0 или 1, определяет активность режима перерыва. Доступно только при включенном режиме call-центра. Может выставляться как отдельно, так и одновременно с определением других режимов состояния. При активном режиме перерыва пользователь переводится в состояние перерыва вместо готовности всякий раз, как только освобождается. Вместе с переводом в режим перерыва возможно указание причины и кода причины перерыва (параметры lunchreasonid и lunchreasonmsg) - для регламентированных причин, содержащихся в БД указывается только код, для индивидуальных причин указывается только текст.
  • lunchreasonid - числовой код регламентной причины перерыва (определены в разделе общих настроек).
  • lunchreasonmsg - описание индивидуальной причины перерыва.

http://192.168.0.1:4055/wp_setuserstate?user=ivanov&userstateid=5

http://192.168.0.1:4055/wp_setuserstate?user=ivanov&onlunch=1&lunchreasonid=1001