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

Материал из Oktell
Перейти к: навигация, поиск
Строка 2: Строка 2:
  
 
__TOC__
 
__TOC__
 
 
  
 
=== Описание ===
 
=== Описание ===

Версия 08:56, 29 июля 2013

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

Описание

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

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

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

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

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

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

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

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


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

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

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


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

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

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

{
  "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) требует указания среди свойств шлюза только идентификатора, остальное игнорируется. При удалении потока удаляются динамическое направление и все линии, с ним связанные.


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

Шлюз характеризуется

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

  • "id":"01010101-0101-0101-0101-010101010101"
  • "name":"DynamicGate"
  • "regtype":2
  • "address":"192.168.0.5:5060"
  • "sipproxyaddress":"192.168.0.5:5060"

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

  • "expire":300
  • "freegate":false
  • "aliases":["Domain1", "Domain2"]
  • "def-caller-id":"3"

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

  • "disabled-answer":"500"