<conditions>
В элементе <conditions> описывается набор условий, выполнение которых приводит к выполнению правила.
Формат описания элемента <conditions> имеет следующий вид:
<conditions>
<calling/>
<called>
<cdpn/>
<cgpn/>
<rgn/>
<time/>
<date/>
<weekday/>
<timetable/>
<tag/>
<final/>
<cause/>
<ocdpn>
</conditions>
где
- calling — поле сравнения параметров доступа вызывающего абонента;
- called — поле сравнения параметров доступа вызываемого абонента;
- cdpn — поле сравнения номера вызываемого абонента (номер Б и его параметры);
- cgpn — поле сравнения номера вызывающего абонента (номер А и его параметры);
- rgn — поле сравнения номера переадресации вызываемого абонента (номер Б, до переадресации на С);
- time — время суток;
- date — день в году;
- weekday — день недели;
- timetable — имя расписания, которое будет использоваться для проверки при маршрутизации;
- tag — вспомогательный параметр для организации многошаговой маршрутизации в рамках одного контекста, по умолчанию установлено значение "default";
- final — признак финальной маршрутизации: номер Б полный или возможен донабор по номеру Б;
- cause — причина окончания предыдущей попытки вызова.
Каждый из указанных выше элементов в рамках <conditions> является опциональным и может быть использован не более одного раза.
Пустой набор критериев говорит об отсутствии ограничений.
<calling>
Параметры доступа вызывающего абонента.
<calling access_private="booleanType"
access_local="booleanType"
access_zone="booleanType"
access_intercity="booleanType"
access_international="booleanType"
access_emergency="booleanType"
have_access_to="atomType"
city="stringType"
region="stringType"
operator="stringType"
category="atomType"
caller_id="stringType"
display_name="stringType"
sorm_digits="stringType"
sorm_ni="atomType"
interface_group="stringType"
iface="binaryType"/>
где
- access_private — проверка значения типа доступа вызываемого абонента при выходе на УПАТС access_type/access_private.out;
- access_local — проверка значения типа доступа вызываемого абонента при выходе на местную сеть access_type/access_local.out;
- access_zone — проверка значения типа доступа вызываемого абонента при выходе на зоновую сеть access_type/access_zone.out;
- access_intercity — проверка значения типа доступа вызываемого абонента при выходе на междугородную сеть access_type/access_intercity.out;
- access_international — проверка значения типа доступа вызываемого абонента при выходе на международную сеть access_type/access_international.out;
- access_emergency — проверка значения типа доступа вызываемого абонента при выходе на спецслужбы access_type/access_emergency.out;
- have_access_to — проверка матрицы доступа вызывающего абонента на возможность выхода в указанную группу доступа (access_matrix);
city — город абонента полученный из БД реестра плана нумерации РФ
При задании через xml нужно учитывать знаки: точки, тире, пробелы.
Для обозначения города используется сокращения:
- Г. — город;
- ПГТ. — поселок городского типа;
- Р-Н — район
- operator — оператор абонента полученный из БД реестра плана нумерации РФ;
- region — регион абонента полученный из БД реестра плана нумерации РФ;
- caller_id — текущее значение номера АОН;
- interface_group — группа вызывающего интерфейса;
- iface — имя вызывающего интерфейса;
- display_name — имя абонента для отображения на терминале (замечание: если задать условие display_name="" , то под это условие попадет как случай, когда display_name задан пустой строкой, так и случай, когда он вообще не задан);
- sorm_digits — номер абонента, который будет передан в ПУ СОРМ;
- sorm_ni — признак абонента, который будет передан в ПУ СОРМ, принимает значения:
- private — частная сеть;
- local — местная сеть;
- zone — зоновая сеть;
- intercity — междугородная сеть;
- international — международная сеть;
- emergency — спецслужбы.
- category — категория абонента А, может принимать строковое либо цифровое значение согласно таблице:
Таблица 1 — Категории абонента
Строковое значение | Цифровой код (ISUP) | Цифровой код (АОН) |
---|---|---|
unknownAtThisTime | 0 | |
operatorFrench | 1 | |
operatorEngish | 2 | |
operatorGerman | 3 | |
operatorRussian | 4 | |
operatorSpanish | 5 | |
reserved | 9 | |
ordinarySubscriber | 10 | 1 — ОАО "Ростелеком" |
subscriberWithPriority | 11 | 4 — ООО "Эквант" |
dataCall | 12 | 8 — ОАО "АРКТЕЛ" |
testCall | 13 | |
spare | 14 | |
payphone | 15 | 6 — ЗАО "Компания ТрансТелеКом" |
category0 | 224 | |
hotelsSubscriber | 225 | 2 — ОАО "КОМСТАР-ОТС" |
freeSubscriber | 226 | |
paidSubscriber | 227 | 7 — ЗАО "Синтерра" |
localSubscriber | 228 | 3 — ОАО "Вымпелком" (ранее ООО "СЦС Совинтел") |
localTaksofon | 229 | 9 — ОАО "Межрегиональный Транзит Телеком" |
autoCallI | 240 | |
semiautoCallI | 241 | |
autoCallII | 242 | |
semiautoCallII | 243 | |
autoCallIII | 244 | |
semiautoCallIII | 245 | |
autoCallIV | 246 | |
semiautoCallIV | 247 | |
FETCH_BY_ECSS_GLOBAL_NUMBER_LIST_NAME | В данном случае система сделает запрос на получения категории номера из единой базы номеров ECSS-10. Замечание: данное значение можно выставить только в блоке conditions. |
Атрибуты элемента <calling> являются опциональными, но должен быть указан хотя бы один атрибут.
Порядок указания атрибутов произвольный.
<called>
Параметры доступа вызываемого абонента.
<called sorm_digits="stringType"
sorm_ni="atomType"
city="stringType"
region="stringType"
operator="stringType"/>
где
- sorm_digits — номер абонента, который будет передан в ПУ СОРМ;
- sorm_ni — признак абонента, который будет передан в ПУ СОРМ, принимает значения:
- private — частная сеть;
- local — местная сеть;
- zone — зоновая сеть;
- intercity — междугородная сеть;
- international — международная сеть;
- emergency — спецслужбы;
city — город абонента полученный из БД реестра плана нумерации РФ
При задании через xml нужно учитывать знаки: точки, тире, пробелы.
Для обозначения города используется сокращения:
- Г. — город;
- ПГТ. — поселок городского типа;
- Р-Н — район
- operator — оператор абонента полученный из БД реестра плана нумерации РФ;
- region — регион абонента полученный из БД реестра плана нумерации РФ
Атрибуты элемента <called> являются опциональными, но должен быть указан хотя бы один атрибут.
Порядок указания атрибутов произвольный.
<cdpn>
Параметры номера вызываемого абонента.
<cdpn digits="Digits"
nai="Nai"
incomplete="boolean"
inni="Inni"
npi="Npi"
ni="Ni"
in_list="listName"/>
где
- digits — маска цифр номера вызываемого абонента, подробное описание приведено в разделе Маска цифр номера;
- nai — тип номера (NatureOfAddressInformation), принимает значения: subscriberNumber, unknown, nationalNumber, internationNumber;
- incomplete — признак полного номера, принимает значения:
- false — номер полный,
- true — номер не полный;
- inni — индикатор внутрисетевого номера (InternalNetworkNumberIndicator), принимает значения:
- routingToInternalNumberAllowed — маршрутизация на внутренний номер разрешена,
- routingToInternalNumberNotAllowed — маршрутизация на внутренний номер не разрешена;
- npi — код плана нумерации (NumberingPlanIndicator), принимает значения: isdnTelephony, dataNumberingPlan, telexNumberingPlan, reserved1 (код 5), reserved2 (код 6), reserved3 (код 7);
- ni — признак номера (NumberIndicator), принимает значения:
- private — частная сеть,
- local — местная сеть,
- zone — зоновая сеть,
- intercity — междугородная сеть,
- international — международная сеть,
- emergency — спецслужбы.
- in_list — имя списка для проверки номеров на вхождение. Список можно сформировать в приложении Web-конфигуратора "Группы мониторинга" или командами CLI. Тип списка должен быть default. Замечание: начиная с версии 3.14.5 добавлена поддержка глобальной базы категорий номеров. Для проверки вхождения номера в эту базу в качестве имени списка нужно указать ECSS_GLOBAL_NUMBER_LIST_NAME.
<cgpn>
Параметры номера вызывающего абонента.
<cgpn digits="Digits"
nai="Nai"
incomplete="boolean"
npi="Npi"
apri="Apri"
screening="Screening"
ni="Ni"
in_list="listName"/>
где
- 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 — недоступность номера;
- screening — индикатор контроля номера вызывающего абонента, принимает значения:
- userProvidedNotVerified — предоставлена пользователем, не проверена;
- userProvidedVerifiedAndPassed — предоставлена пользователем, проверка пройдена;
- userProvidedVerifiedAndFailed — предоставлена пользователем, проверка не пройдена;
- networkProvided — предоставлена сетью.
- ni — индикатор номера (NumberIndicator), принимает значения:
- private — частная сеть;
- local — местная сеть;
- zone — зоновая сеть;
- intercity — междугородная сеть;
- international — международная сеть;
- emergency — спецслужбы.
- in_list — имя списка для проверки номеров на вхождение. Список можно сформировать в приложении Web-конфигуратора "Группы мониторинга" или командами CLI. Тип списка должен быть default. Замечание: начиная с версии 3.14.5 добавлена поддержка глобальной базы категорий номеров. Для проверки вхождения номера в эту базу в качестве имени списка нужно указать ECSS_GLOBAL_NUMBER_LIST_NAME.
<rgn>
Параметры номера, который выполнил переадресацию
<rgn digits="Digits"
nai="Nai"
incomplete="boolean"
npi="Npi"
apri="Apri"
ni="Ni"
empty="Empty"
in_list="listName"/>
где
- 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 — присутствует ли в сигнализации вызова параметр RedirectingNumber (В случае, если данный параметр выставлен — все остальные параметры (digits, nai, incompele, npi, apri, ni) не должны выставляться
- false — RedirectingNumber не присутствует в сигнализации;
- true — RedirectingNumber присутствует;
- in_list — имя списка для проверки номеров на вхождение. Список можно сформировать в приложении Web-конфигуратора "Группы мониторинга" или командами CLI. Тип списка должен быть default. Замечание: начиная с версии 3.14.5 добавлена поддержка глобальной базы категорий номеров. Для проверки вхождения номера в эту базу в качестве имени списка нужно указать ECSS_GLOBAL_NUMBER_LIST_NAME.
Для того, чтобы понять как будет обрабатываться правило с этим условием, требуется определиться откуда будет приходить вызов переадресацией. Если вызов приходит на SSW уже с признаком переадресации (это может быть поле Diversion в sip или redirecting number в isup), то проверка будет выполняться по указанному в признаке номеру. Если вызов был переадресован локально с использованием какой либо услуги cfu, то перед повторной маршрутизацией SSW поверяет, есть ли маршрут между абонентом который совершал переадресацию и номером куда переадресуется вызов. Только если этот маршрут найден, SSW начинает искать маршрут между звонящим абонентом и номером куда была совершена переадресация.
<time>
Время суток, задается в виде: ЧЧ:ММ - ЧЧ:ММ, где ЧЧ — часы, ММ — минуты.
<time value="TimeMask"/>
где
- value — маска времени суток. Подробное описание приведено в разделе Маска времени.
<date>
Дата, задается в виде: ДД1.ММ1.ГГГГ1 - ДД2.ММ2.ГГГГ2, где ДД — день, ММ — месяц, ГГГГ — год.
<date value="DateMask"/>
где
value — маска даты.
Маска даты задает диапазон дат.
Формат задания маски даты: "ДД1.ММ1.ГГГГ1 - ДД2.ММ2.ГГГГ2", где ДД — день, ММ — месяц, ГГГГ — год.
Так же возможно применение на любой позиции служебного символа "*", который соответствует любому значению.
Примеры масок даты в правилах:
<conditions>
<date value="01.01.* - 31.01.*"/>
</conditions>
Условию удовлетворяют вызовы, обслуживаемые в январе (1 месяц).
<conditions>
<date value="10.*.* - 20.*.*"/>
</conditions>
Условию удовлетворяют вызовы, обслуживаемые в период с 10 по 20-е число каждого месяца.
<conditions>
<date value="13.12.2011 - 13.12.2011"/>
</conditions>
Условию удовлетворяют вызовы, обслуживаемые 13 декабря 2011 года.
<weekday>
Маска дня недели задает набор дней недели.
Формат описания маски дней недели: "ДН1,ДН2,...,ДНX", где ДН — номер дня недели (числа от 1 до 7). Может быть указано от 1 до 7 дней недели.
Работает по григорианскому календарю.
<weekday value="WeekdayMask" day_types="DayTypes" />
где
- value — маска дня недели;
- day_types — типы дней недели, перечисленные через запятую. Возможные значения:
- day-off — выходной день;
- half-holiday — предпраздничный день;
- holiday — праздничный день;
- work — рабочий день
Если одновременно указаны параметры value и day_types то условие должно совпадать по обоим параметрам.
Примеры масок дней недели в правилах:
<conditions>
<weekday value="1,2,3,4,5" day_types="work" />
</conditions>
Условию удовлетворяют вызовы, обслуживаемые с понедельника по пятницу (рабочие дни).
<conditions>
<weekday value="6,7" day_types="day-off,holiday"/>
</conditions>
Условию удовлетворяют вызовы обслуживаемые в субботу и воскресенье (выходные дни).
<timetable>
Имя расписания, которое будет использоваться для проверки при маршрутизации.
<timetable value="Timetable" />
где
- value — имя расписания. Управление расписаниями приведено в разделах /domain/<DOMAIN>/calendar/timetable -команды для управление расписанием домена., Календарь (Calendar).
Если одновременно указаны теги <time>, <weekdays>, <timetable>, то условие должно совпадать по всем параметрам.
Пример:
<timetable value="working_time" />
<tag>
Специальный параметр, который можно установить для вызова при маршрутизации.
Параметр действует только на этапе маршрутизации, устанавливается в правиле маршрутизации и в последующем используется для изменения отработки логики маршрутизации.
<tag value="Tag"/>
где
- value — строка, значение поля "tag" для вызова, проверяется на полное совпадение. По умолчанию значение — "default".
<final>
Признак финальной маршрутизации. Набор номера Б завершен (срабатывает таймера окончания набора) либо номер полный (пришел в режиме "enblock").
<final value="boolean"/>
где
- value — признак финальной маршрутизации, принимает значение:
- true — номер Б полный;
- false — возможен донабор по номеру Б.
<cause>
Причина разъединения предыдущей попытки вызова.
Механизм позволяет использовать режим маршрутизации по "Cause". Когда вызов с абонента А на абонента Б был завершен с определенным кодом завершения без фазы разговора, то выполняется повторная маршрутизация, в качестве одного из параметров указывается причина разъединения.
Если в системе корректно настроены правила маршрутизации по "Cause", то возможно осуществить перевод таких вызовов на различного вида автоинформаторы (переадресация на автоинформаторы с сообщениями типа "абонент временно недоступен", "линия перегружена", "абонент не существует" и другие).
<cause value="Cause"/>
где
- cause — причина разъединения.
<ocdpn>
Параметры оригинального номера, на который был совершен вызов.
<ocdpn digits="Digits"
nai="Nai"
incomplete="boolean"
npi="Npi"
apri="Apri"
ni="Ni"
empty="Empty"
category="Category"
in_list="listName"/>
- 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.
- in_list — имя списка для проверки номеров на вхождение. Список можно сформировать в приложении Web-конфигуратора "Группы мониторинга" или командами CLI. Тип списка должен быть default. Замечание: начиная с версии 3.14.5 добавлена поддержка глобальной базы категорий номеров. Для проверки вхождения номера в эту базу в качестве имени списка нужно указать ECSS_GLOBAL_NUMBER_LIST_NAME.