В элементе <conditions> описывается набор условий, выполнение которых приводит к выполнению правила.

Формат описания элемента <conditions> имеет следующий вид:

<conditions>
  <calling/>
  <called>
  <cdpn/>
  <cgpn/>
  <rgn/>
  <time/>
  <date/>
  <weekday/>
  <timetable/>
  <tag/>
  <final/>
  <cause/>
  <ocdpn>
</conditions>
CODE

где

  • 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"/>
CODE

где

  • 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 — номер абонента, который будет передан в ПУ СОРМ;
Если вызов осуществляется абонентом ECSS-10, являющимся объектом контроля, то согласно 268 приказу набранный номер будет передан в ПУ СОРМ без изменений.
  • sorm_ni — признак абонента, который будет передан в ПУ СОРМ, принимает значения:
    • private — частная сеть;
    • local — местная сеть;
    • zone — зоновая сеть;
    • intercity — междугородная сеть;
    • international — международная сеть;
    • emergency — спецслужбы.
  • category — категория абонента А, может принимать строковое либо цифровое значение согласно таблице:

Таблица 1 — Категории абонента

Строковое значениеЦифровой код (ISUP)Цифровой код (АОН)
unknownAtThisTime0
operatorFrench1
operatorEngish2
operatorGerman3
operatorRussian4
operatorSpanish5
reserved9
ordinarySubscriber101 — ОАО "Ростелеком"
subscriberWithPriority114 — ООО "Эквант"
dataCall128 — ОАО "АРКТЕЛ"
testCall13
spare14
payphone156 — ЗАО "Компания ТрансТелеКом"
category0224
hotelsSubscriber2252 — ОАО "КОМСТАР-ОТС"
freeSubscriber226
paidSubscriber2277 — ЗАО "Синтерра"
localSubscriber2283 — ОАО "Вымпелком" (ранее ООО "СЦС Совинтел")
localTaksofon2299 — ОАО "Межрегиональный Транзит Телеком"
autoCallI240
semiautoCallI241
autoCallII242
semiautoCallII243
autoCallIII244
semiautoCallIII245
autoCallIV246
semiautoCallIV247
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"/> 
CODE

где

  • 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"/>
CODE

где

  • 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"/>
CODE

где

  • 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"/>
CODE

где

  • 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"/>
CODE

где

  • value — маска времени суток. Подробное описание приведено в разделе Маска времени.

<date>

Дата, задается в виде: ДД1.ММ1.ГГГГ1 - ДД2.ММ2.ГГГГ2, где ДД — день, ММ — месяц, ГГГГ — год.

<date value="DateMask"/>
CODE

где

value — маска даты. 

Маска даты задает диапазон дат.
Формат задания маски даты: "ДД1.ММ1.ГГГГ1 - ДД2.ММ2.ГГГГ2", где ДД — день, ММ — месяц, ГГГГ — год.
Так же возможно применение на любой позиции служебного символа "*", который соответствует любому значению.

Примеры масок даты в правилах:

<conditions>
  <date value="01.01.* - 31.01.*"/>
</conditions>
CODE

Условию удовлетворяют вызовы, обслуживаемые в январе (1 месяц).

<conditions>
 <date value="10.*.* - 20.*.*"/>
</conditions>
CODE

Условию удовлетворяют вызовы, обслуживаемые в период с 10 по 20-е число каждого месяца.

<conditions>
  <date value="13.12.2011 - 13.12.2011"/>
</conditions> 
CODE

Условию удовлетворяют вызовы, обслуживаемые 13 декабря 2011 года.

<weekday>

Маска дня недели задает набор дней недели.
Формат описания маски дней недели: "ДН1,ДН2,...,ДНX", где ДН — номер дня недели (числа от 1 до 7). Может быть указано от 1 до 7 дней недели.
Работает по григорианскому календарю.

<weekday value="WeekdayMask" day_types="DayTypes" />
CODE

где

  • value — маска дня недели;
  • day_types — типы дней недели, перечисленные через запятую. Возможные значения:
    • day-off — выходной день;
    • half-holiday — предпраздничный день;
    • holiday — праздничный день;
    • work — рабочий день

Если одновременно указаны параметры value и day_types то условие должно совпадать по обоим параметрам.

Примеры масок дней недели в правилах:

<conditions>
  <weekday value="1,2,3,4,5" day_types="work" /> 
</conditions> 
CODE

Условию удовлетворяют вызовы, обслуживаемые с понедельника по пятницу (рабочие дни).

<conditions>
  <weekday value="6,7" day_types="day-off,holiday"/>
</conditions>
CODE

Условию удовлетворяют вызовы обслуживаемые в субботу и воскресенье (выходные дни).

<timetable>

Имя расписания, которое будет использоваться для проверки при маршрутизации.

<timetable value="Timetable" />
CODE

где

Если одновременно указаны теги <time>, <weekdays>, <timetable>, то условие должно совпадать по всем параметрам.

Пример:

<timetable value="working_time" />
CODE

<tag>

Специальный параметр, который можно установить для вызова при маршрутизации.
Параметр действует только на этапе маршрутизации, устанавливается в правиле маршрутизации и в последующем используется для изменения отработки логики маршрутизации.

<tag value="Tag"/>
CODE

где

  • value — строка, значение поля "tag" для вызова, проверяется на полное совпадение. По умолчанию значение — "default".

<final>

Признак финальной маршрутизации. Набор номера Б завершен (срабатывает таймера окончания набора) либо номер полный (пришел в режиме "enblock").

<final value="boolean"/>
CODE

где

  • value — признак финальной маршрутизации, принимает значение:
    • true — номер Б полный;
    • false — возможен донабор по номеру Б.

<cause>

Причина разъединения предыдущей попытки вызова.
Механизм позволяет использовать режим маршрутизации по "Cause". Когда вызов с абонента А на абонента Б был завершен с определенным кодом завершения без фазы разговора, то выполняется повторная маршрутизация, в качестве одного из параметров указывается причина разъединения.
Если в системе корректно настроены правила маршрутизации по "Cause", то возможно осуществить перевод таких вызовов на различного вида автоинформаторы (переадресация на автоинформаторы с сообщениями типа "абонент временно недоступен", "линия перегружена", "абонент не существует" и другие).

<cause value="Cause"/>
CODE

где

  • cause — причина разъединения.

<ocdpn>

Параметры оригинального номера, на который был совершен вызов.

<ocdpn digits="Digits" 
     nai="Nai" 
     incomplete="boolean" 
     npi="Npi" 
     apri="Apri" 
     ni="Ni" 
     empty="Empty" 
     category="Category"
     in_list="listName"/>
CODE
  • 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.