ECSS-10 существует возможность изменения параметров проходящего вызова при помощи команд от RADIUS-сервера, посылаемых в ответ на запросы RADIUS-Authorization. Команды передаются в текстовом виде с использованием Vendor-Specific атрибута с номером вендора, закреплённым за «ООО Предприятие «ЭЛТЕКС» и равным 35265, и именем атрибута "Eltex-AVPair", имеющим номер 1. В общем виде формат атрибута Eltex-AVPair выглядит следующим образом:

Vendor-Specific(26): Eltex(35265): Eltex-AVPair(1):<$COMMAND-STRING>

Передавая различные команды в строке $COMMAND-STRING, возможно управлять следующими параметрами: модификация номеров CgPNCdPN а так же параметром маршрутизации tag.

Для номеров CgPN, помимо значения самого номера, можно изменять такие параметры как:

  • numtype – тип номера CgPN;
  • plantype – тип плана нумерации CgPN;
  • presentation – значение поля presentation CgPN.

Для номеров CdPN, помимо значения самого номера, можно менять такие параметры как:

  • numtype – тип номера CdPN;
  • plantype – тип плана нумерации CdPN.

Для того чтобы вызвать внешнюю маршрутизации на ECSS-10 в контексте маршрутизации необходимо написать правило вида:

<rule name="to_RADIUS_routing">
   <conditions>
     ...
   </conditions>
   <actions>
         <external_routing id="master;backup" service="radius_route_service" timeout="5000"/>
   </actions>
   <result>
      <continue context="ctx_after_radius"/>
   </result>
</rule>
CODE

В этом правиле говорится, что в случае совпадения условий, выполнить внешнюю RADIUS маршрутизацию на серверах с идентификаторами master (а если он недоступен, backup). Команды для настройки RADIUS серверов можно посмотреть тут. При этом на внешнюю маршрутизацию потратить не более 5000ms. По результатам выполнения RADIUS запроса, продолжится ECSS маршрутизация в контексте ctx_after_radius. Но с измененными CgPN, CdPN, tag (если эти поля были изменены в результате RADIUS запроса).

Синтаксис запроса на изменения параметра Tag

Команда состоит из следующих частей.

  • «CallManagement:» – текстовый идентификатор, определяющий, что данный атрибут содержит команду для управления вызовом;
  • «Tag=» - идентификатор команды, говорящий о том, что необходимо выставить параметр tag.

Значения для параметра Tag может выступать любая строка, которая затем может быть использована на маршрутизации в рамках софтсвича.

В общем виде формат команды выглядит следующим образом:

CallManagement:Tag=<$tag>

где:

  • «CallManagement:Tag=<$tag>;» - выставление параметра tag в значение <$tag>.

Пример:
Выставить значение параметра tag в to_nsk. Для этого достаточно передать в ответе Access-Accept от RADIUS-сервера атрибут со следующим значением:

Vendor-Specific(26): Eltex(35265): Eltex-AVPair(1):CallManagement:Tag=to_nsk

Синтаксис запроса на модификацию номеров CgPN и CdPN

Команда состоит из обязательной и необязательной части. Обязательная часть состоит из начального текстового идентификатора команды, идентификатора изменяемого номера и маски модификации.

  • «CallManagement:» – текстовый идентификатор, определяющий, что данный атрибут содержит команду для управления вызовом;
  • «CgPN=», «CdPN=» - идентификаторы номеров, указывают к какому номеру применить модификацию;
  • Параметр «маска модификации» - правило для модификации цифр номера (может быть пустой).

Необязательная часть может состоять как из одного параметра, так и из нескольких параметров, разделяемых символом «точка с запятой». Обязательная и необязательная части также разделяются символом «точка с запятой» при наличии необязательной части команды.

Возможные параметры для необязательной части:

  • numtype
  • plantype
  • presentation

В общем виде формат команды выглядит следующим образом (для CGPN):

CallManagement:CgPN=<$modifymask>;numtype=<$numtype>;plantype=<$plantype>;presentation=<$presentation>;displayName=<$displayName>

где:

  • «CallManagement:CgPN=<$modify-mask>;» - обязательная часть,
  • «numtype=<$numtype>;plantype=<$plantype>;presentation=<$presentation>»; displayName=<$displayName>- необязательная часть.

В общем виде формат команды выглядит следующим образом (для CDPN):

CallManagement:CdPN=<$modifymask>;numtype=<$numtype>;plantype=<$plantype>

где:

  • «CallManagement:CdPN=<$modify-mask>;» - обязательная часть,
  • «numtype=<$numtype>;plantype=<$plantype>»;displayName=<$displayName> - необязательная часть.

Параметры могут быть заданы в двух вариантах "общепринятое обозначение" или в соответствии с внутренними наименованиями SSW.  Значения параметров, используемых в командах, представлены ниже:

  • $modify-mask – правило модификации номера (синтаксис правила модификации описан в разделе Синтаксис правила модификации);
  • $numtype – (параметр nai на SSW) одно из значений:
    • internationNumber, nationalNumber, subscriberNumber, unknown;
    • international, national, network-specific, subscriber, unknown;
  • $plantype –  (параметр npi на SSW) одно из значений:
    • dataNumberingPlan, isdnTelephony, telexNumberingPlan;
    • isdn, national, private, unknown;
  • $presentation – (параметр apri на SSW) одно из значений:
    • addressNotAvailable, presentationAllowed, presentationRestricted;
    • allowed, restricted, not-available, spare;
  • $displayName - имя, отображаемое на дисплее телефонного аппарата.

ECSS-10 позволяет передавать параметры команды модификации номера в нескольких атрибутах. Таким образом, набор команд:

«CallManagement:CgPN=<$modify-mask>»

«CallManagement:CgPN=;numtype=<$numtype>»

«CallManagement:CgPN=;presentation=<$presentation>»

«CallManagement:CgPN=;displayName=<$displayName>»

эквивалентен одной команде:

«CallManagement:CgPN=<$modify-mask>;numtype=<$numtype>;presentation=<$presentation>»

Если какой-либо необязательный параметр (numtype, plantype, presentation) не нуждается в модификации, то его не следует передавать в запросе, но указание типа номера (CgPN, CdPN), к которому относятся передаваемые поля, обязательно в начале запроса.

Пример:

К номеру CgPN добавить префикс +7383, поменять его тип номера на national и задать presentation restricted. Для этого достаточно передать в ответе Access-Accept от RADIUS-сервера атрибут со следующим значением:

Vendor-Specific(26): Eltex(35265): Eltex-AVPair(1):CallManagement:CgPN=+7383;numtype=national;presentation=restricted;displayName=UserName

Что также это эквивалентно трем атрибутам со значениями:

Vendor-Specific(26): Eltex(35265): Eltex-AVPair(1): CallManagement:CgPN=+7383
Vendor-Specific(26): Eltex(35265): Eltex-AVPair(1): CallManagement:CgPN=;numtype=national
Vendor-Specific(26): Eltex(35265): Eltex-AVPair(1): CallManagement:CgPN=;presentation=restricted

Синтаксис правила модификации

Правило модификации представляет собой набор спецсимволов, определяющих изменения номера:

  • '.' и '-': спецсимволы, обозначающие, что цифра на данной позиции номера удаляется, и на ее место смещаются цифры, следующие далее;
  • 'X', 'x': спецсимволы, обозначающие, что цифра на данной позиции остается неизменной (обязательное наличие цифры на этой позиции);
  • '?': спецсимвол, обозначающий, что цифра на данной позиции остается неизменной (необязательное наличие цифры на этой позиции);
  • '+': спецсимвол, означающий, что все знаки, находящиеся между этой позицией и следующим спецсимволом (или концом последовательности), вставляются в номер на заданное место;
  • '!': спецсимвол, означающий окончание разбора, все дальнейшие цифры номера отрезаются;
  • '$': спецсимвол, означающий окончание разбора, все дальнейшие цифры номера используются неизмененными;
  • 0-9, D, # и * (не имеющие перед собою спецсимвола '+'): информационные символы, которые замещают цифру в номере на данной позиции.