3.14.3 <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 - имя абонента для отображения на терминале;
- 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 |
Атрибуты элемента <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 - маска цифр номера вызываемого абонента, подробное описание приведено в разделе 3.14.3 Маска цифр номера;
- 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.
<cgpn>
Параметры номера вызывающего абонента.
<cgpn digits="Digits"
nai="Nai"
incomplete="boolean"
npi="Npi"
apri="Apri"
screening="Screening"
ni="Ni"/>
где
- digits - маска цифр номера вызывающего абонента, подробное описание приведено в разделе 3.14.3 Маска цифр номера;
- 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.
<rgn>
Параметры номера, который выполнил переадресацию
<rgn digits="Digits"
nai="Nai"
incomplete="boolean"
npi="Npi"
apri="Apri"
ni="Ni"
empty="Empty"/>
где
- digits - маска цифр номера вызывающего абонента, подробное описание приведено в разделе 3.14.3 Маска цифр номера
- 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.
Для того, чтобы понять как будет обрабатываться правило с этим условием, требуется определиться откуда будет приходить вызов переадресацией. Если вызов приходит на SSW уже с признаком переадресации (это может быть поле Diversion в sip или redirecting number в isup), то проверка будет выполняться по указанному в признаке номеру. Если вызов был переадресован локально с использованием какой либо услуги cfu, то перед повторной маршрутизацией SSW поверяет, есть ли маршрут между абонентом который совершал переадресацию и номером куда переадресуется вызов. Только если этот маршрут найден, SSW начинает искать маршрут между звонящим абонентом и номером куда была совершена переадресация.
<time>
Время суток, задается в виде: ЧЧ:ММ - ЧЧ:ММ, где ЧЧ - часы, ММ - минуты.
<time value="TimeMask"/>
где
- value - маска времени суток. Подробное описание приведено в разделе 3.14.3 Маска времени.
<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"/>
- digits - маска цифр номера вызываемого абонента, подробное описание приведено в разделе 3.14.3 Маска цифр номера;
- 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.