В элементе <actions> описывается набор действий, выполняемых при срабатывании правила.
Формат описания элемента <actions> имеет следующий вид:
<actions> <set_options/> <cgpn/> <cdpn/> <restore_cgpn/> <restore_cdpn/> <calling/> <called/> <final/> <alarm/> <log/> <external_routing/> </actions>
где
- set_options - установка различных параметров вызова;
- cgpn - модификация параметров номера вызывающего абонента;
- cdpn - модификация параметров номера вызываемого абонента;
- restore_cgpn - восстановление параметров номера вызывающего абонента до значений, которые были при входе в текущий контекст (отмена изменений в рамках контекста);
- restore_cdpn - восстановление параметров номера вызываемого абонента до значений, которые были при входе в текущий контекст (отмена изменений в рамках контекста);
- calling - модификация параметров доступа вызывающего абонента (структура аналогична параметру "calling" из элемента <conditions>);
- called - модификация параметров доступа вызываемого абонента для СОРМ (структура аналогична параметру "called" из элемента <conditions>);
- final - установка признака окончания набора;
- alarm - посылка аварии;
- log - запись сообщения в лог;
- external_routing - вызов внешнего сервиса маршрутизации (в данный момент поддерживается только внешняя маршрутизация по Radius).
Действия указываются в порядке их выполнения. Все действия являются опциональными.
<set_options>
Низкоуровневая операция, может использоваться для модификации специальных свойств вызова.
Используется для передачи опциональных параметров из маршрутизации в ядро, в переменные IVR скрипты.
Для того чтобы определить переменную IVR скрипта, поле key должно начинаться с ivr_variable:
.
Например, чтобы выставить IVR переменную с именем CARD_PLATFORM_TO_NUMBER поле key должно быть равно ivr_variable:CARD_PLATFORM_TO_NUMBER
.
Пример задания переменной IVR скрипта CARD_PLATFORM_TO_NUMBER. Переменная выставляется в символы, введенные после номера выхода на IVR скрипт:
<actions> <set_options> <option key="ivr_variable:card_platform_to_number" value="{def}"/> </set_options> </actions>
<cgpn>
Операция модификации параметров номера вызывающего абонента.
<cgpn digits="Digits" nai="Nai" incomplete="boolean" npi="Npi" apri="Apri" screening="Screening" ni="Ni"/>
где
- digits - маска модификации цифр номера или новые цифры номера.
Подробное описание приведено в разделе Модификация цифр номера,
Описание параметров "nai", "incomplete", "npi", "apri", "screening", "ni" аналогично описанию параметров элемента "cgpn" секции "conditions".
<cdpn>
Операция модификации параметров номера абонента Б.
<cdpn digits="Digits" nai="Nai" incomplete="boolean" inni="Inni" npi="Npi" ni="Ni"/>
где
- digits - маска модификации цифр номера или новые цифры номера, подробное описание приведено в разделе Модификация цифр номера,остальные параметры аналогичны параметрам элемента "cdpn" секции "conditions".
<restore_cgpn>
Восстановление исходных значений параметров номера вызывающего абонента, которые были при входе в контекст маршрутизации.
Этот элемент атрибутов не имеет.
<restore_cdpn>
Восстановление исходных значений параметров номера вызываемого абонента, которые были при входе в контекст маршрутизации.
Этот элемент атрибутов не имеет.
<calling>
Модификация параметров доступа вызывающего абонента.
<calling category="atomType" caller_id="stringType" display_name="stringType" sorm_digits="stringType" sorm_ni="atomType"/>
Синтаксис атрибута "caller_id" аналогичен полю "digits" в "cgpn".
Описание параметров аналогично описанию параметров "calling" раздела "conditions".
Установка номера АОН. Синтаксис атрибута "digits" аналогичен полю "digits" в "cgpn".
Пример установки "caller_id", добавление "8" к номеру из "cgpn":
<conditions> <cgpn digits="%"/> </conditions> <actions> <calling caller_id="8{%}"/> </actions>
<called>
Модификация параметров доступа вызываемого абонента.
<called sorm_digits="stringType" sorm_ni="atomType"/>
Описание параметров аналогично элементу "called" раздела "conditions".
<final value="true">
Установка признака финальной маршрутизации. Набор номера Б завершен (срабатывает таймера окончания набора) либо номер полный (пришел в режиме "enblock").
<alarm>
Добавление аварийного события на ECSS-10.
<alarm severity="alarmSeverity" value="string"/>
- severity - уровень важности аварийного события, возможные значения: warning, minor, major, critical, indeterminate, cleared;
- value - строковое описание данного аварийного события. Строка описания поддерживает следующий набор макросов:
%TAG%
- значения поля tag;%CDPN.NAI%
- значение nai для вызываемого абонента;%CDPN.NI%
- значение ni для вызываемого абонента;%CDPN.INCOMPLETE%
- значение incpomlete для вызываемого абонента;%CDPN.INNI%
- значение inni для вызываемого абонента;%CDPN.NPI%
- значение npi для вызываемого абонента;%CDPN.DIGITS%
- номер для вызываемого абонента;%CGPN.NAI%
- значение nai для вызывающего абонента;%CGPN.NI%
- значение ni для вызывающего абонента;%CGPN.INCOMPLETE%
- значение incpomlete для вызывающего абонента;%CGPN.NPI%
- значение npi для вызывающего абонента;%CGPN.APRI%
- значение apri для вызывающего абонента;%CGPN.SCREENING%
- значение screening для вызывающего абонента;%CGPN.DIGITS%
- номер вызывающего абонента;%DOMAIN%
- домен, в рамках которого маршрутизировался данный вызов;%ISFINAL%
- значение параметра isFinal;%CONTEXTNAME%
- имя контекста маршрутизации;%IFACEA%
- интерфейс абонента А;%DATETIME%
- время, в которое была выполнена маршрутизация.
<log>
Создать запись в системный журнал.
<log severity="logSeverity" value="string"/>
- severity - показатель критичности записи в системный журнал, возможные значения: error, warning, info;
- value - текст записи в системный журнал. Строка описания поддерживает следующий набор макросов:
%TAG%
- значения поля tag;%CDPN.NAI%
- значение nai для вызываемого абонента;%CDPN.NI%
- значение ni для вызываемого абонента;%CDPN.INCOMPLETE%
- значение incpomlete для вызываемого абонента;%CDPN.INNI%
- значение inni для вызываемого абонента;%CDPN.NPI%
- значение npi для вызываемого абонента;%CDPN.DIGITS%
- номер для вызываемого абонента;%CGPN.NAI%
- значение nai для вызывающего абонента;%CGPN.NI%
- значение ni для вызывающего абонента;%CGPN.INCOMPLETE%
- значение incpomlete для вызывающего абонента;%CGPN.NPI%
- значение npi для вызывающего абонента;%CGPN.APRI%
- значение apri для вызывающего абонента;%CGPN.SCREENING%
- значение screening для вызывающего абонента;%CGPN.DIGITS%
- номер вызывающего абонента;%DOMAIN%
- домен, в рамках которого маршрутизировался данный вызов;%ISFINAL%
- значение параметра isFinal;%CONTEXTNAME%
- имя контекста маршрутизации;%IFACEA%
- интерфейс абонента А;%DATETIME%
- время, в которое была выполнена маршрутизация.
<cause>
Для того чтобы можно было выставить cause-ы, по которым необходимо выполнять маршрутизацию по козам, в блоке "Действие" необходимо добавить раздел "Причины для повторной маршрутизации". В данном разделе добавить три поля для ввода:
- причины ACP (ACP causes) - список ACP козов;
- причины ISUP (ISUP causes)- список ISUP козов;
- причины SIP (SIP causes) - список SIP козов.
На уровне контекста маршрутизации, блока actions добавляется блок cause:
<rule name="rule1"> <actions> <cause acp="normal, bPtyBusy" isup="16,17,18" sip="401, 400"/> </actions> </rule>
<external_routing>
Вызов внешнего сервиса маршрутизации (в настоящий момент поддерживается только внешняя маршрутизации по RADIUS).
<external_routing id="stringType" service="stringType" timeout="positiveIntegerType"/>
- id - список имен RADIUS-серверов, на которые будут направляться запросы внешней маршрутизации. Список задается через точку с запятой. В случае указания нескольких серверов, на последующий сервер запрос пойдет только в том случае, если ранее стоящий сервер недоступен. Список серверов можно посмотреть командой @/domain/<DOMAIN>/radius/info@;
- service - radius_route_service - внешняя маршрутизация по RADIUS;
- timeout - время ожидания результата от сервиса внешней маршрутизации, в миллисекундах. По умолчанию установлено 500 мс. Если за данное время внешняя маршрутизация не завершится, система воспримет, что маршрутизация не внесла никаких изменений.
Пример вызова внешней маршрутизации с использованием RADIUS-серверов с именами master и backup, тайм-аутом на запрос в 1 секунду:
<actions> <external_routing id="master;backup" service="radius_route_service" timeout="1000"/> </actions>
<ocdpn>
Операция модификации параметров оригинального номера, на который был совершен вызов.
<ocdpn digits="Digits" nai="Nai" incomplete="boolean" npi="Npi" apri="Apri" ni="Ni" category="Category"/
- digits - маска модификации цифр номера или новые цифры номера, подробное описание приведено в разделе Маска цифр номер;
- nai - тип номера (NatureOfAddressInformation), принимает значения: subscriberNumber, unknown, nationalNumber, internationNumber;
- incomplete - признак полного номера, принимает значения:
- false - номер полный,
- true - номер не полный;
- npi - код плана нумерации (NumberingPlanIndicator), принимает значения: isdnTelephony, dataNumberingPlan, telexNumberingPlan, reserved1 (код 5), reserved2 (код 6), reserved3 (код 7);
- apri - индикатор ограничения предоставления номера вызывающего абонента (AddressPresentationRestrictionIndicator):
- presentationRestricted – запрет,
- presentationAllowed – разрешение,
- addressNotAvailable – недоступность номера;
- ni - индикатор номера (NumberIndicator), принимает значения:
- private - частная сеть;
- local - местная сеть;
- zone - зоновая сеть;
- intercity - междугородная сеть;
- international - международная сеть;
- emergency – спецслужбы$
- empty - присутствует ли в сигнализации вызова параметр OriginalCalledNumber (В случае, если данный параметр выставлен - все остальные параметры (digits, nai, incompele, npi, apri, ni) не должны выставляться
- false - OriginalCalledNumber не присутствует в сигнализации;
- true - OriginalCalledNumber присутствует;
- category - категория абонента, может принимать строковое либо цифровое значение согласно таблице 1.
<restore_ocdpn>
Восстановление исходных значений параметров оригинального номера, на который был совершен вызов, которые были при входе в контекст маршрутизации.
Этот элемент атрибутов не имеет.
<empty_ocdpn>
Удалить из сигнализации параметр OriginalCalledNumber.
Этот элемент атрибутов не имеет.