Динамическое управление картой сети — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
(Новая страница: « Компонент Статус объекта позволяет управлять составо...»)
 
м (Описание)
 
(не показаны 23 промежуточные версии 2 участников)
Строка 1: Строка 1:
 +
<code>[[Техническая документация]] / [[Администрирование]] / [[Карта сети]] / [[Редактор карты сети]] / [[Динамическое управление картой сети]]</code>
 +
 +
 +
__TOC__
 +
  
 
Компонент [[Общие компоненты сценариев#UserState|Статус объекта]] позволяет управлять составом карты сети с помощью [http://ru.wikipedia.org/wiki/JSON JSON]-форматированных команд. Это может быть полезно для решения интеграционных задач, в многосерверных решениях с внешней логикой управления, а также в проектах с постоянно изменяющимися параметрами карты сети.
 
Компонент [[Общие компоненты сценариев#UserState|Статус объекта]] позволяет управлять составом карты сети с помощью [http://ru.wikipedia.org/wiki/JSON JSON]-форматированных команд. Это может быть полезно для решения интеграционных задач, в многосерверных решениях с внешней логикой управления, а также в проектах с постоянно изменяющимися параметрами карты сети.
 +
 +
 +
=== Описание ===
  
 
Определенным образом формируемые параметры позволяют:
 
Определенным образом формируемые параметры позволяют:
Строка 7: Строка 15:
 
* Добавлять телефоны (операция ''phone-add'').
 
* Добавлять телефоны (операция ''phone-add'').
 
* Удалять шлюзы со всеми потоками (операция ''gate-del'').
 
* Удалять шлюзы со всеми потоками (операция ''gate-del'').
* Удалять отдельные потоки (операция ''stream-add'').
+
* Удалять отдельные потоки (операция ''stream-del'').
* Удалять отдельные телефоны (операция ''phone-add'').
+
* Удалять отдельные телефоны (операция ''phone-del'').
 
* Изменять параметры шлюзов (операция ''gate-set'').
 
* Изменять параметры шлюзов (операция ''gate-set'').
 
* Изменять параметры потоков (операция ''stream-set'').
 
* Изменять параметры потоков (операция ''stream-set'').
 
* Изменять параметры телефонов (операция ''phone-set'').
 
* Изменять параметры телефонов (операция ''phone-set'').
 
* Удалять единовременно все динамические объекты (команда ''clear'').
 
* Удалять единовременно все динамические объекты (команда ''clear'').
 +
* Изменять на постоянной основе свойства конфигурации аналогично модулю "Параметры аппаратуры" (команда ''hw-set'').
  
 
Добавленные динамические объекты не появляются среди отображаемых объектов в [[Карта сети|карте сети]], но доступны в [[Мониторинг|мониторинге линий]], [[Настройки оборудования|параметрах аппаратуры]], и прочих модулях системы, связанных с исполнением в реальном времени.
 
Добавленные динамические объекты не появляются среди отображаемых объектов в [[Карта сети|карте сети]], но доступны в [[Мониторинг|мониторинге линий]], [[Настройки оборудования|параметрах аппаратуры]], и прочих модулях системы, связанных с исполнением в реальном времени.
Строка 26: Строка 35:
  
 
При создании объектов и изменении их параметров могут указываться как настройки из [[Карта сети|«Карты сети»]], так и настройки из [[Настройки оборудования|«Параметров аппаратуры»]].
 
При создании объектов и изменении их параметров могут указываться как настройки из [[Карта сети|«Карты сети»]], так и настройки из [[Настройки оборудования|«Параметров аппаратуры»]].
 
 
  
 
=== Лицензирование ===
 
=== Лицензирование ===
Строка 47: Строка 54:
 
<pre>
 
<pre>
 
{
 
{
 +
  "method":"complex",
 
   "actions":[
 
   "actions":[
 
     {...},
 
     {...},
Строка 68: Строка 76:
 
Каждая команда представляет собой одну или несколько операций, возможно различных. В простейшем случае в одной команде содержится одна операция.
 
Каждая команда представляет собой одну или несколько операций, возможно различных. В простейшем случае в одной команде содержится одна операция.
 
В каждой операции может присутствовать один или несколько объектов. Так, операция добавления шлюзов может содержать мета-данные нескольких шлюзов, операция добавления потоков - несколько потоков, операция добавления телефонов - несколько SIP-телефонов. То же самое с удалением и изменением параметров.
 
В каждой операции может присутствовать один или несколько объектов. Так, операция добавления шлюзов может содержать мета-данные нескольких шлюзов, операция добавления потоков - несколько потоков, операция добавления телефонов - несколько SIP-телефонов. То же самое с удалением и изменением параметров.
 +
 +
 +
 +
=== Структура операций ===
  
  
Строка 92: Строка 104:
  
  
=== Структура операций ===
 
  
 
Структура одной операции добавления потока:
 
Структура одной операции добавления потока:
Строка 148: Строка 159:
 
=== Свойства объектов ===
 
=== Свойства объектов ===
  
Шлюз характеризуется
+
Ниже приводится список свойств различных объектов, используемый при создании. Свойства разделены на группы: обязательные свойства при создании объекта, необязательные свойства при создании объекта, у которых существуют значения по умолчанию, а также внутренние SIP-свойства объектов, доступные также в модуле [[Настройки оборудования|«Параметры аппаратуры»]].
 +
 
 +
 
 +
 
 +
==== Шлюзы ====
  
 
Обязательные параметры:
 
Обязательные параметры:
  
* "id":"01010101-0101-0101-0101-010101010101"
+
* "<span style="color:red;">id</span>":"<span style="color:gray;">01010101-0101-0101-0101-010101010101</span>" - Guid-идентификатор шлюза.
* "name":"DynamicGate"
+
* "<span style="color:red;">name</span>":"<span style="color:gray;">DynamicGate</span>" - Название шлюза для отображения в модуле [[Настройки оборудования|«Параметры аппаратуры»]].
* "regtype":2
+
* "<span style="color:red;">regtype</span>":<span style="color:gray;">2</span> - Тип регистрации (0 - без регистрации, 1 - регистрация на сервере, 2 - регистрация на шлюзе).
* "address":"192.168.0.5:5060"
+
 
* "sipproxyaddress":"192.168.0.5:5060"
+
Обязательные параметры (кроме шлюзов с регистрацией на сервере):
 +
 
 +
* "<span style="color:red;">address</span>":"<span style="color:gray;">192.168.0.1</span>" - Доменное имя, подставляемое в запрос.
 +
* "<span style="color:red;">sipproxyaddress</span>":"<span style="color:gray;">192.168.0.1:5060</span>" - Адрес и порт удаленного узла, на который отправлять пакеты.
 +
 
  
 
Необязательные параметры:
 
Необязательные параметры:
* "expire":300
+
 
* "freegate":false
+
* "<span style="color:red;">expire</span>":<span style="color:gray;">3600</span> - Период регистрации в секундах для шлюзов с внешней регистрацией. По умолчанию ''3600''.
* "aliases":["Domain1", "Domain2"]
+
* "<span style="color:red;">freegate</span>":<span style="color:gray;">false</span> - Для шлюза без регистрации признак разрешения обработки неизвестных входящих. В системе не должно быть более одного шлюза для приема неизвестных входящих. По умолчанию ''false''.
* "def-caller-id":"3"
+
* "<span style="color:red;">aliases</span>":["<span style="color:gray;">Domain1</span>", "<span style="color:gray;">Domain2</span>", "<span style="color:gray;">212.212.121.121</span>"] - Список дополнительных доменных имен, которые ассоциируются со шлюзом при поступлении входящих запросов. По умолчанию список пуст.
 +
 
  
 
Дополнительные параметры SIP:
 
Дополнительные параметры SIP:
* "disabled-answer":"500"
+
 
 +
* "<span style="color:red;">interface-address</span>":"<span style="color:gray;">default</span>" - Сетевой интерфейс сервера (или ''default'' - автоопределение). По умолчанию ''default''.
 +
* "<span style="color:red;">search-in-from</span>":"<span style="color:gray;">0</span>" - Поиск соответствия между аккаунтом и входящим INVITE (0 - contact, 1 - contact+from). По умолчанию ''0''.
 +
* "<span style="color:red;">def-caller-id</span>":"<span style="color:gray;">1234567</span>" - Источник определения CallerId (0 - From:URI, 1 - From:DisplayName, 2 - Contact:URI, 3 - INVITE целиком). По умолчанию ''0''.
 +
* "<span style="color:red;">disabled-answer</span>":"<span style="color:gray;">503</span>" - SIP-ответ при вызове на отключенный поток.
 +
* "<span style="color:red;">declined-answer</span>":"<span style="color:gray;">486</span>" - SIP-ответ при отсутствии свободных транков.
 +
* "<span style="color:red;">error-answer</span>":"<span style="color:gray;">500</span>" - SIP-ответ при ошибке резервирования транка.
 +
* "<span style="color:red;">disconnect-answer</span>":"<span style="color:gray;">480</span>" - SIP-ответ при отказе сценария IVR.
 +
 
 +
 
 +
 
 +
==== Потоки ====
 +
 
 +
Обязательные параметры:
 +
 
 +
* "<span style="color:red;">id</span>":"<span style="color:gray;">12341234-1234-1234-1234-123412341234</span>" - Guid-идентификатор потока.
 +
* "<span style="color:red;">name</span>":"<span style="color:gray;">DynamicStream</span>" - Название потока для отображения.
 +
* "<span style="color:red;">displayname</span>":"<span style="color:gray;">stream1</span>" - SIP DisplayName.
 +
* "<span style="color:red;">username</span>":"<span style="color:gray;">stream1</span>" - SIP UserName.
 +
* "<span style="color:red;">login</span>":"<span style="color:gray;">stream1</span>" - SIP Login.
 +
* "<span style="color:red;">password</span>":"<span style="color:gray;">u74S3iiB</span>" - SIP Password.
 +
* "<span style="color:red;">lines</span>":[{...}, ..., {...}] - список новых линий с параметрами, соответствующих потоку (рассмотрено ниже).
 +
 
 +
 
 +
Необязательные параметры
 +
 
 +
* "<span style="color:red;">defaultcallerid</span>":"<span style="color:gray;">1234567</span>" - Подставляемый по умолчанию CallerId.
 +
* "<span style="color:red;">codecs</span>":[<span style="color:gray;">0</span>, <span style="color:gray;">1</span>] - Список используемых кодеков через запятую в порядке уменьшения приоритета (возможные значения: 0-711u, 1-711a, 2-gsm, 3-729). По умолчанию ''[0, 1]''.
 +
* "<span style="color:red;">numbers</span>":["<span style="color:gray;">account1</span>", "<span style="color:gray;">account2</span>"] - Список дополнительных номеров для ассоциации входящих звонков с потоком. По умолчанию список пуст.
 +
* "<span style="color:red;">dialmode</span>":<span style="color:gray;">0</span> - Способ набора номеров для шлюзов с регистрацией на сервере (0-сначала аккаунт потом номер, 1-сразу номер). По умолчанию ''0''.
 +
* "<span style="color:red;">route</span>":{...} - Свойства направления, которое будет создано и привязано к линиям (рассмотрено ниже).
 +
 
 +
 
 +
Свойства линий:
 +
 
 +
* "<span style="color:red;">id</span>":"<span style="color:gray;">79797979-7979-7979-7979-797979797979</span>" - Guid-идентификатор линии.
 +
* "<span style="color:red;">caption</span>":"<span style="color:gray;">LineCaption</span>" - Имя линии для отображения.
 +
* "<span style="color:red;">code</span>":"<span style="color:gray;">LineCode</span>" - Код линии.
 +
 
 +
 
 +
Свойства направления:
 +
 
 +
* "<span style="color:red;">id</span>":"<span style="color:gray;">68686868-6868-6868-6868-686868686868</span>" - Guid-идентификатор направления.
 +
* "<span style="color:red;">name</span>":"<span style="color:gray;">RouteName</span>" - Название направления.
 +
* "<span style="color:red;">description</span>":"<span style="color:gray;">Route description</span>" - Описание направления.
 +
* "<span style="color:red;">code</span>":"<span style="color:gray;">routecode</span>" - Код направления (для указания в сценариях).
 +
* "<span style="color:red;">commandtype</span>":"<span style="color:gray;">0</span>" - Режим преобразования номера перед набором (0 - нет, 1 - выражение, 2 - служебный сценарий).
 +
* "<span style="color:red;">command</span>":"<span style="color:gray;"></span>" - Выражение или название служебного сценария для преобразования номера.
 +
 
 +
 
 +
<div id="sipstreamprops"></div>
 +
Дополнительные параметры SIP:
 +
 
 +
* "<span style="color:red;">enabled</span>":<span style="color:gray;">0</span> - Включен/выключен.
 +
* "<span style="color:red;">expires</span>":<span style="color:gray;">0</span> - Максимальный период регистрации в секундах для шлюзов с регистрацией на сервере, 0 - не ограничено. По умолчанию ''3600''.
 +
* "<span style="color:red;">replace-user-name</span>":<span style="color:gray;">0</span> - Место подстановки набранного номера при исходящем вызове (0 - To+RequestURI, 1 - To, 2 - RequestURI). По умолчанию ''0''.
 +
* "<span style="color:red;">dtmftype</span>":<span style="color:gray;">0</span> - Способ отправки DTMF (0 - rfc 2833, 1 - SIP INFO, 2 - InBand). По умолчанию ''0''.
 +
* "<span style="color:red;">enable-inband-dtmf</span>":<span style="color:gray;">0</span> - Включение детектора звукового DTMF во входящем rtp-потоке (0 -выключен, 1 - включен). По умолчанию ''0'', так как операция ресурсо-затратная.
 +
* "<span style="color:red;">wait-ack</span>":<span style="color:gray;">1</span> - Ожидать поступления сообщения ACK перед продолжением обработки входящего звонка (0 - нет, 1 - да). По умолчанию ''1''.
 +
* "<span style="color:red;">can-reinvite</span>":<span style="color:gray;">0</span> - Разрешить изменять параметры связи во время коммутации (0 - нет, использовать транскодинг; 1 - да). По умолчанию ''1''.
 +
* "<span style="color:red;">fax-enable</span>":<span style="color:gray;">0</span> - Разрешить прием/передачу факсов T.30 (0 - нет, 1-да). По умолчанию 0.
 +
* "<span style="color:red;">fax-outgoing-timeout</span>":<span style="color:gray;">60</span> - Время ожидания ответа факса в секундах при исходящем сеансе. По умолчанию ''60''.
 +
* "<span style="color:red;">fax-enable-ecm</span>":<span style="color:gray;">1</span> - Error Correction Mode (ECM) для факсов (0 - выключено, 1-включено). По умолчанию ''1''.
 +
* "<span style="color:red;">use-remote-address</span>":<span style="color:gray;">1</span> - Адрес назначения для RTP трафика (0 - адрес/порт из SDP, 1 - адрес/порт отправителя). По умолчанию ''1''.
 +
* "<span style="color:red;">g711-size</span>":<span style="color:gray;">0</span> - Размен звукового пакета при отправке RTP данных в кодеке 711a/711u (0 - 40мс, 1 - 20мс). По умолчанию ''1''.
 +
 
 +
 
 +
 
 +
==== Телефоны ====
 +
 
 +
 
 +
Обязательные параметры:
 +
 
 +
* "<span style="color:red;">id</span>":"<span style="color:gray;">35353535-3535-3535-3535-353535353535</span>" - Guid-идентификатор телефона и связанной с ним линии.
 +
* "<span style="color:red;">name</span>":"<span style="color:gray;">DynamicPhone</span>" - Название телефона для отображения.
 +
* "<span style="color:red;">address</span>":"<span style="color:gray;">192.168.0.231:5060</span>" - Адрес устройства для работы в режиме без регистрации.
 +
* "<span style="color:red;">username</span>":"<span style="color:gray;">user</span>" - SIP UserName.
 +
* "<span style="color:red;">login</span>":"<span style="color:gray;">phone</span>" - SIP Login (по умолчанию совпадает с SIP UserName).
 +
* "<span style="color:red;">password</span>":"<span style="color:gray;">7thNx2wf</span>" - SIP Password.
 +
 
 +
 
 +
Необязательные параметры:
 +
 
 +
* "<span style="color:red;">codecs</span>":[<span style="color:gray;">0</span>, <span style="color:gray;">1</span>] - Список используемых кодеков через запятую в порядке уменьшения приоритета (возможные значения: 0-711u, 1-711a, 2-gsm, 3-729). По умолчанию ''[0, 1]''.
 +
* "<span style="color:red;">defaultuserid</span>":"<span style="color:gray;">84848484-8484-8484-8484-848484848484</span>" - Guid-идентификатор пользователя, привязанного к телефону как [[Свойства компонентов#SipPhone|«пользователь по умолчанию»]]. По умолчанию без привязки.
 +
* "<span style="color:red;">websocketuserid</span>":"<span style="color:gray;">84848484-8484-8484-8484-848484848484</span>" - Guid-идентификатор пользователя, привязанного к телефону как [[Свойства компонентов#SipPhone|«пользователь webcrm»]]. По умолчанию без привязки.
 +
* "<span style="color:red;">citystraight</span>":<span style="color:gray;">-1</span> - (-1 - по умолчанию БД, 0 - нет, 1 - да). По умолчанию ''-1''.
 +
* "<span style="color:red;">busymode</span>":<span style="color:gray;">-1</span> - Режим отбоя (-1 - по умолчанию БД, 0 - SIP-disconnect, 1 - генерировать короткие гудки). По умолчанию ''-1''.
 +
* "<span style="color:red;">translit</span>":<span style="color:gray;">-1</span> - Производить транслитерацию (-1 - согласно общим настройкам, 0 - нет, 1 - да). По умолчанию ''-1''.
 +
* "<span style="color:red;">linecode</span>":"<span style="color:gray;">DynamicPhoneCode</span>" - Код линии.
 +
* "<span style="color:red;">department</span>":"<span style="color:gray;">57575757-5757-5757-5757-575757575757</span>" - Идентификатор существующего подразделения для привязки и отображения в разделе «Сотрудники».
 +
 
 +
 
 +
Дополнительные параметры SIP аналогичны [[#sipstreamprops|параметрам потоков]].
 +
 
 +
 
 +
=== Изменение параметров аппаратуры на постоянной основе ===
 +
 
 +
 
 +
Изменение параметров аппаратуры может потребоваться, например, для изменения параметров внешнего адреса в разделе SIP-сервера при наладке автоматической схемы переключения на резервный интернет из-под NAT. Для изменения доступны все параметры всех разделов модуля "Параметры аппаратуры".
 +
 
 +
Применение осуществляется только в случае, если новые значения отличаются от уже установленных и сохраненных в БД. При этом изменения корректируются и в БД, так что при следующей загрузке сервера будет произведена загрузка свойств конфигурации с измененными значениями.
 +
 
 +
Структура команды изменения параметров конфигурации аппаратуры:
 +
 
 +
<pre>
 +
{
 +
  "method":"hw-set",
 +
  "items":[
 +
    {
 +
      "key":"newvalue",
 +
      ...
 +
    },
 +
    ...
 +
    {...}
 +
  ]
 +
}
 +
</pre>
 +
 
 +
* ''key'' - название параметра, подлежащего замене
 +
* ''newvalue'' - новое значение
 +
 
 +
Доступные для изменения параметры:
 +
 
 +
* "<span style="color:red;">sip/p:interface</span>":"<span style="color:gray;">sip:*:5060</span>" - интерфейс и порт для подъема SIP-сервера (применяется только при перезагрузке сервера или HAL).
 +
* "<span style="color:red;">sip/p:domain-list</span>":"<span style="color:gray;">x.oktell.ru y.oktell.ru</span>" - дополнительные доменные имена, SIP запросы на которые сервер должен обрабатывать.
 +
* "<span style="color:red;">sip/p:if192.168.0.218</span>":"<span style="color:gray;"></span>" - Настройка для работы конкретного сетевого интерфейса сервера за NAT/ ''address:nat_addr port:nat_port [domain:nat_dns_name]''. Обратите внимание, что название ключа динамически зависит от адресов серверных интерфейсов.
 +
 
 +
 
 +
Чтобы выяснить key нужного параметра, следует в конфигурационном файле сервера добавить ключ (или изменить значение) ''<add key="TraceHWParams" value="1"/>'', после чего перезагрузить сервер и открыть модуль "Администрирование. Параметры аппаратуры". В каталоге сервера появится файл hw_out_*.xml с настройками параметров аппаратуры. Эта структура представляет собой исчерпывающий конфиг настройки, где все ключи уникальны и заданы атрибутом ''name'' в тегах. В качестве ''key'' необходимо указать значение атрибута ''name''.
 +
 
 +
 
 +
 
 +
=== Пример сценария ===
 +
 
 +
[http://wiki.oktell.ru/images/b/be/%28Example%29_Dynamic_SIP.oscr (Example) Dynamic SIP.oscr]

Текущая версия на 10:00, 2 марта 2018

Техническая документация / Администрирование / Карта сети / Редактор карты сети / Динамическое управление картой сети



Компонент Статус объекта позволяет управлять составом карты сети с помощью JSON-форматированных команд. Это может быть полезно для решения интеграционных задач, в многосерверных решениях с внешней логикой управления, а также в проектах с постоянно изменяющимися параметрами карты сети.


Описание

Определенным образом формируемые параметры позволяют:

  • Добавлять шлюзы (операция gate-add).
  • Добавлять потоки (операция stream-add).
  • Добавлять телефоны (операция phone-add).
  • Удалять шлюзы со всеми потоками (операция gate-del).
  • Удалять отдельные потоки (операция stream-del).
  • Удалять отдельные телефоны (операция phone-del).
  • Изменять параметры шлюзов (операция gate-set).
  • Изменять параметры потоков (операция stream-set).
  • Изменять параметры телефонов (операция phone-set).
  • Удалять единовременно все динамические объекты (команда clear).
  • Изменять на постоянной основе свойства конфигурации аналогично модулю "Параметры аппаратуры" (команда hw-set).

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

Жизненный цикл динамических объектов протекает от момента создания до момента удаления или перезапуска системы. Таким образом при необходимости формирования постоянных настроек карты сети с помощью динамических объектов, необходимо реализовывать однократное исполнение служебной задачи, загружающей требуемые динамические объекты всякий раз после перезапуска системы. Гарантировать однократность можно в том числе с помощью глобальных переменных сценариев.

После исполнения любой операции, связанной с динамическими объектами, автоматически происходит перезагрузка сервера состояний. Это затратная операция. В этой связи настоятельно рекомендуется комбинировать все операции в один запрос, и не исполнять их в цикле одну за другой.

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

Создание динамических потоков в шлюзах может сопровождаться автоматическим созданием направления, состоящего из всех вновь-созданных линий потока.

При создании объектов и изменении их параметров могут указываться как настройки из «Карты сети», так и настройки из «Параметров аппаратуры».

Лицензирование

При добавлении динамических объектов расходуются свободные лицензии на соответствующие линии. При удалении объектов лицензии высвобождаются. Таким образом можно использовать конкурентный механизм в отличие от статической карты сети.

В случае, если после добавления очередного объекта итоговое количество линий превосходит количество линий в лицензии, сервер произведет стандартную процедуру отключения части линий по своему усмотрению (преимущественно выключенные, неактивные).


Формат команд

Команды управления динамической картой сети передаются в строковом виде в формате JSON.

Структура команд, передаваемых серверу через компонент сценария в общем виде выглядит следующим образом:

{
  "method":"complex",
  "actions":[
    {...},
    ...
    {...}
  ]
}


Команда полной очистки динамических объектов

{
  "method":"clear"
}


Каждая команда представляет собой одну или несколько операций, возможно различных. В простейшем случае в одной команде содержится одна операция. В каждой операции может присутствовать один или несколько объектов. Так, операция добавления шлюзов может содержать мета-данные нескольких шлюзов, операция добавления потоков - несколько потоков, операция добавления телефонов - несколько SIP-телефонов. То же самое с удалением и изменением параметров.


Структура операций

Структура одной операции добавления шлюза:

{
  "method":"gate-add",
  "gates":[
    {...},
    ...
    {...}
  ]
}

В свойстве gates могут перечисляться несколько шлюзов. Каждый шлюз представляет собой совокупность настроек: обязательных и необязательных параметров. Администратор, производящий настройку, должен гарантировать уникальность идентификаторов, а также отличия в настройках шлюзов.

При добавлении шлюзов можно сразу в той же операции определить потоки, соответствующие каждому шлюзу. Для этого среди свойств шлюза необходимо размещение свойства streams с информацией, эквивалентной операции создания потока. Управление отдельными потоками динамического шлюза может производиться и позже.

Структура операции изменения шлюза отличается значением ключа method (gate-set), а также невозможностью одновременно изменять параметры потоков внутри шлюза и изменять тип регистрации (regtype).

Операция удаления шлюза (gate-del) требует указания среди свойств шлюза только идентификатора, остальное игнорируется. При удалении шлюза удаляются все его потоки, линии и динамические направления, с ними связанные.


Структура одной операции добавления потока:

{
  "method":"stream-add",
  "gates":[
    {
      "id":"_guid_шлюза_",
      "streams":[
        {...},
        ...
        {...}
      ]
    },
    ...
    {...}
  ]
}

В свойстве gates могут перечисляться несколько шлюзов. Каждый шлюз должен содержать идентификатор и набор добавляемых потоков (streams), другие его свойства игнорируются. Создаваемые потоки привязываются к содержащим их шлюзам. Каждый поток в наборе представляет собой совокупность настроек: обязательных и необязательных параметров.

Структура операции изменения потока отличается значением ключа method (stream-set).

Операция удаления потока (stream-del) требует указания среди свойств шлюза только идентификатора, остальное игнорируется. При удалении потока удаляются динамическое направление и все линии, с ним связанные.



Структура одной операции добавления SIP-телефона:

{
  "method":"phone-add",
  "phones":[
    {
      "id":"_guid_телефона_",
      ...
    },
    ...
    {...}
  ]
}

В свойстве phones могут перечисляться несколько телефонов. Каждый телефон представляет собой совокупность настроек: обязательных и необязательных параметров. Администратор, производящий настройку, должен гарантировать уникальность идентификаторов, а также уникальность и сложность авторизационных параметров телефонов.

Структура операции изменения телефона отличается значением ключа method (phone-set).

Операция удаления потока (phone-del) требует указания среди свойств шлюза только идентификатора, остальное игнорируется. При удалении потока удаляются динамическое направление и все линии, с ним связанные.


Свойства объектов

Ниже приводится список свойств различных объектов, используемый при создании. Свойства разделены на группы: обязательные свойства при создании объекта, необязательные свойства при создании объекта, у которых существуют значения по умолчанию, а также внутренние SIP-свойства объектов, доступные также в модуле «Параметры аппаратуры».


Шлюзы

Обязательные параметры:

  • "id":"01010101-0101-0101-0101-010101010101" - Guid-идентификатор шлюза.
  • "name":"DynamicGate" - Название шлюза для отображения в модуле «Параметры аппаратуры».
  • "regtype":2 - Тип регистрации (0 - без регистрации, 1 - регистрация на сервере, 2 - регистрация на шлюзе).

Обязательные параметры (кроме шлюзов с регистрацией на сервере):

  • "address":"192.168.0.1" - Доменное имя, подставляемое в запрос.
  • "sipproxyaddress":"192.168.0.1:5060" - Адрес и порт удаленного узла, на который отправлять пакеты.


Необязательные параметры:

  • "expire":3600 - Период регистрации в секундах для шлюзов с внешней регистрацией. По умолчанию 3600.
  • "freegate":false - Для шлюза без регистрации признак разрешения обработки неизвестных входящих. В системе не должно быть более одного шлюза для приема неизвестных входящих. По умолчанию false.
  • "aliases":["Domain1", "Domain2", "212.212.121.121"] - Список дополнительных доменных имен, которые ассоциируются со шлюзом при поступлении входящих запросов. По умолчанию список пуст.


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

  • "interface-address":"default" - Сетевой интерфейс сервера (или default - автоопределение). По умолчанию default.
  • "search-in-from":"0" - Поиск соответствия между аккаунтом и входящим INVITE (0 - contact, 1 - contact+from). По умолчанию 0.
  • "def-caller-id":"1234567" - Источник определения CallerId (0 - From:URI, 1 - From:DisplayName, 2 - Contact:URI, 3 - INVITE целиком). По умолчанию 0.
  • "disabled-answer":"503" - SIP-ответ при вызове на отключенный поток.
  • "declined-answer":"486" - SIP-ответ при отсутствии свободных транков.
  • "error-answer":"500" - SIP-ответ при ошибке резервирования транка.
  • "disconnect-answer":"480" - SIP-ответ при отказе сценария IVR.


Потоки

Обязательные параметры:

  • "id":"12341234-1234-1234-1234-123412341234" - Guid-идентификатор потока.
  • "name":"DynamicStream" - Название потока для отображения.
  • "displayname":"stream1" - SIP DisplayName.
  • "username":"stream1" - SIP UserName.
  • "login":"stream1" - SIP Login.
  • "password":"u74S3iiB" - SIP Password.
  • "lines":[{...}, ..., {...}] - список новых линий с параметрами, соответствующих потоку (рассмотрено ниже).


Необязательные параметры

  • "defaultcallerid":"1234567" - Подставляемый по умолчанию CallerId.
  • "codecs":[0, 1] - Список используемых кодеков через запятую в порядке уменьшения приоритета (возможные значения: 0-711u, 1-711a, 2-gsm, 3-729). По умолчанию [0, 1].
  • "numbers":["account1", "account2"] - Список дополнительных номеров для ассоциации входящих звонков с потоком. По умолчанию список пуст.
  • "dialmode":0 - Способ набора номеров для шлюзов с регистрацией на сервере (0-сначала аккаунт потом номер, 1-сразу номер). По умолчанию 0.
  • "route":{...} - Свойства направления, которое будет создано и привязано к линиям (рассмотрено ниже).


Свойства линий:

  • "id":"79797979-7979-7979-7979-797979797979" - Guid-идентификатор линии.
  • "caption":"LineCaption" - Имя линии для отображения.
  • "code":"LineCode" - Код линии.


Свойства направления:

  • "id":"68686868-6868-6868-6868-686868686868" - Guid-идентификатор направления.
  • "name":"RouteName" - Название направления.
  • "description":"Route description" - Описание направления.
  • "code":"routecode" - Код направления (для указания в сценариях).
  • "commandtype":"0" - Режим преобразования номера перед набором (0 - нет, 1 - выражение, 2 - служебный сценарий).
  • "command":"" - Выражение или название служебного сценария для преобразования номера.


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

  • "enabled":0 - Включен/выключен.
  • "expires":0 - Максимальный период регистрации в секундах для шлюзов с регистрацией на сервере, 0 - не ограничено. По умолчанию 3600.
  • "replace-user-name":0 - Место подстановки набранного номера при исходящем вызове (0 - To+RequestURI, 1 - To, 2 - RequestURI). По умолчанию 0.
  • "dtmftype":0 - Способ отправки DTMF (0 - rfc 2833, 1 - SIP INFO, 2 - InBand). По умолчанию 0.
  • "enable-inband-dtmf":0 - Включение детектора звукового DTMF во входящем rtp-потоке (0 -выключен, 1 - включен). По умолчанию 0, так как операция ресурсо-затратная.
  • "wait-ack":1 - Ожидать поступления сообщения ACK перед продолжением обработки входящего звонка (0 - нет, 1 - да). По умолчанию 1.
  • "can-reinvite":0 - Разрешить изменять параметры связи во время коммутации (0 - нет, использовать транскодинг; 1 - да). По умолчанию 1.
  • "fax-enable":0 - Разрешить прием/передачу факсов T.30 (0 - нет, 1-да). По умолчанию 0.
  • "fax-outgoing-timeout":60 - Время ожидания ответа факса в секундах при исходящем сеансе. По умолчанию 60.
  • "fax-enable-ecm":1 - Error Correction Mode (ECM) для факсов (0 - выключено, 1-включено). По умолчанию 1.
  • "use-remote-address":1 - Адрес назначения для RTP трафика (0 - адрес/порт из SDP, 1 - адрес/порт отправителя). По умолчанию 1.
  • "g711-size":0 - Размен звукового пакета при отправке RTP данных в кодеке 711a/711u (0 - 40мс, 1 - 20мс). По умолчанию 1.


Телефоны

Обязательные параметры:

  • "id":"35353535-3535-3535-3535-353535353535" - Guid-идентификатор телефона и связанной с ним линии.
  • "name":"DynamicPhone" - Название телефона для отображения.
  • "address":"192.168.0.231:5060" - Адрес устройства для работы в режиме без регистрации.
  • "username":"user" - SIP UserName.
  • "login":"phone" - SIP Login (по умолчанию совпадает с SIP UserName).
  • "password":"7thNx2wf" - SIP Password.


Необязательные параметры:

  • "codecs":[0, 1] - Список используемых кодеков через запятую в порядке уменьшения приоритета (возможные значения: 0-711u, 1-711a, 2-gsm, 3-729). По умолчанию [0, 1].
  • "defaultuserid":"84848484-8484-8484-8484-848484848484" - Guid-идентификатор пользователя, привязанного к телефону как «пользователь по умолчанию». По умолчанию без привязки.
  • "websocketuserid":"84848484-8484-8484-8484-848484848484" - Guid-идентификатор пользователя, привязанного к телефону как «пользователь webcrm». По умолчанию без привязки.
  • "citystraight":-1 - (-1 - по умолчанию БД, 0 - нет, 1 - да). По умолчанию -1.
  • "busymode":-1 - Режим отбоя (-1 - по умолчанию БД, 0 - SIP-disconnect, 1 - генерировать короткие гудки). По умолчанию -1.
  • "translit":-1 - Производить транслитерацию (-1 - согласно общим настройкам, 0 - нет, 1 - да). По умолчанию -1.
  • "linecode":"DynamicPhoneCode" - Код линии.
  • "department":"57575757-5757-5757-5757-575757575757" - Идентификатор существующего подразделения для привязки и отображения в разделе «Сотрудники».


Дополнительные параметры SIP аналогичны параметрам потоков.


Изменение параметров аппаратуры на постоянной основе

Изменение параметров аппаратуры может потребоваться, например, для изменения параметров внешнего адреса в разделе SIP-сервера при наладке автоматической схемы переключения на резервный интернет из-под NAT. Для изменения доступны все параметры всех разделов модуля "Параметры аппаратуры".

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

Структура команды изменения параметров конфигурации аппаратуры:

{
  "method":"hw-set",
  "items":[
    {
      "key":"newvalue",
      ...
    },
    ...
    {...}
  ]
}
  • key - название параметра, подлежащего замене
  • newvalue - новое значение

Доступные для изменения параметры:

  • "sip/p:interface":"sip:*:5060" - интерфейс и порт для подъема SIP-сервера (применяется только при перезагрузке сервера или HAL).
  • "sip/p:domain-list":"x.oktell.ru y.oktell.ru" - дополнительные доменные имена, SIP запросы на которые сервер должен обрабатывать.
  • "sip/p:if192.168.0.218":"" - Настройка для работы конкретного сетевого интерфейса сервера за NAT/ address:nat_addr port:nat_port [domain:nat_dns_name]. Обратите внимание, что название ключа динамически зависит от адресов серверных интерфейсов.


Чтобы выяснить key нужного параметра, следует в конфигурационном файле сервера добавить ключ (или изменить значение) <add key="TraceHWParams" value="1"/>, после чего перезагрузить сервер и открыть модуль "Администрирование. Параметры аппаратуры". В каталоге сервера появится файл hw_out_*.xml с настройками параметров аппаратуры. Эта структура представляет собой исчерпывающий конфиг настройки, где все ключи уникальны и заданы атрибутом name в тегах. В качестве key необходимо указать значение атрибута name.


Пример сценария

(Example) Dynamic SIP.oscr