При настройке телефонной маршрутизации возникает необходимость изменить (скорректировать) телефонный номер: как набираемый (B-номер), так и номер инициатора вызова (А-номер, АОН). Например, абоненты нашей станции набирают междугородние/федеральные номера через префикс «8», а вышестоящему оператору связи необходимо передавать номер без префикса, в десятизначном формате. Или вызовы на вашу станцию приходят с кодом зоны, а внутри станции используются номера в 6 или 7 знаков, и лишние символы необходимо удалить. Для корректировки номеров в Huawei SoftX3000 существует множество инструментов, применяемых в зависимости от конкретных случаев. Рассмотрим некоторые из них.

Таблица корректировки символов DNC

Для любых операций с изменением номера используются правила таблицы DNC. Эти правила применяются для непосредственной корректировки символов, а все прочие команды определяют, в отношении какого поля (А-номер или B-номер), на каком направлении (входящее/исходящее) и на какой транк-группе будет применено это правило.

Для добавления правила в эту таблицу используется команда ADD DNC.

Назначение атрибутов и применение этой команды:

Number change index — порядковый номер правила. Используется для идентификации правила. В обновлённых версиях можно использовать любые текстовые названия.

Number change type — тип преобразования номера, принимает значения:

  • NONE — номер не изменяется. Используется, если нужно изменить только тип номера.
  • MOD — изменение цифр номера.
  • DEL — удаление цифр из номера. Указываем позицию, начиная с которой удаляются цифры (Change location) и количество цифр (Change length).
  • INS — добавление цифр в номер. Указываем позицию, куда вставляем цифры (Change location) и сами цифры (New number).
  • RPL — замена цифр в номере. Указываем позицию, с которой начинаются цифры для замены (Change location) и сами цифры (New number).

Change location — позиция цифр, которые подлежат корректировке. Начальная позиция — 0. Началом номера считается первая набираемая цифра слева направо, то есть в номере 8-905-123-45-67 первой цифрой будет 8.

Nature of address indicator — тип номера, принимает значения:

  • NONE — тип номера не изменяется;
  • IDN — международный номер;
  • NDN — национальный номер;
  • UDN — местный номер;
  • UNN — неизвестный номер;
  • SDN — специальный номер.

New number — добавляемые (изменяемые) цифры.

Для наглядности приведем реальные примеры таких правил:

В таблице выше:

  • Правило №2 изменяет первый символ в номере (Change location — 0) на цифру 8 (New number).
  • Правило №4 удаляет первые (Change location — 0) 2 символа (Change length — 2) в номере и преобразует тип номера в международный.
  • Правило №9 заменяет первые (Change location — 0) 6 символов (Change length — 6) на номер 29xxxx.
  • В системе можно создать 65535 правил, правило под №0 — системное, изменению не подлежит.

Изменение А- и B-номеров на исходящем направлении

Для корректировки номеров на исходящих направлениях используются 2 таблицы:

  • TGLD: здесь компонуются правила для А- и B-номера.
  • TGLDIDX: указывает транк, для которого применяется правило TGLD, и условия, в которых оно применяется.

При добавлении записи командой ADD TGLD необходимо задать следующие обязательные параметры:

  • Bearer index — номер правила по порядку. Этот номер будет использоваться для идентификации в таблице TGLDIDX.
  • Trunk seizure point — минимальная длина набираемого номера.
  • Caller sending change index — правило из таблицы DNC, которое будет применено к А-номеру.
  • Callee sending change index — правило из таблицы DNC, применяемое к B-номеру.

Примеры записей TGLD:

Здесь запись TGLD=1 изменяет А-номер по правилу DNC=3 и B-номер по правилу DNC=12.

Далее необходимо привязать созданное правило TGLD к транкам. Для этого используем команду ADD TGLDIDX:

Указываем следующие параметры:

  • Trunk group number — номер транка, к которому применяется данное правило.
  • Call source code — callsource источника вызова, по которому срабатывает правило. Если код отличается, правило не применится. Чтобы применить правило ко всем callsrc, необходимо указать wildcard-значение — 65534.
  • Local DN set — код Local DN set, к которому принадлежат номера/транки, совершающие вызов.
  • Call prefix — префикс, при наборе которого срабатывает правило.
  • Bearer index — номер правила из таблицы TGLD, которое было создано предыдущей командой.

Пример:

Рассмотрим правила, применяемые к транку №7 (столбец Trunk group number):

  1. Для вызовов с callsource=5 при наборе «8» будет применено правило TGLD=2.
  2. Для вызовов с любых прочих callsource при наборе 8 будет применено правило TGLD=17.
  3. Для вызовов с любых callsource при наборе 810 будет применено правило TGLD=1.

Изменение А- и B-номеров на входящем направлении

Для изменения атрибутов вызова во входящем направлении применительно ко всем входящим вызовам с определенным callsrc (это может быть группа транков или группа абонентов, объединённых этим параметром) используется таблица PFXPRO. Рассмотрим назначение параметров команды ADD PFXPRO сразу на примере:

Параметры имеют следующее назначение:

  • Call source code = 0 — правило будет применяться к входящим вызовам с callsrc=0 и только к ним.
  • Call prefix = 871229 — правило применяется, если B-номер начинается с этого префикса (871229).
  • Local DN set = 0 — набор номера должен производиться с транка или абонента, привязанного к Local DN set = 0. Следует отметить, что этот префикс (871229) должен присутствовать в таблице CNACLD с любым атрибутом в указанном Local DN set.
  • Called number change flag = true означает, что B-номер подлежит изменению.
  • Called number change index = 1 — B-номер будет изменён по правилу DNC=1, которое для наглядности приведено ниже:

Согласно данному правилу из номера B будут удалены первые 4 символа.

  • Reanalysis = true — после всех изменений вызов снова будет обработан как вновь поступивший и маршрутизирован согласно новым параметрам А- и B- номеров.

Таким образом, вызов, поступивший с атрибутом callsrc=0, в котором B-номер соответствует шаблону 871229хххх, вновь поступит на обработку, но уже с B-номером 29хххх, то есть будет вызван 6-значный номер внутреннего абонента станции.

Таблица PFXPRO также позволяет корректировать и А-номер (поля Caller number change flag и Caller number change index), назначать новое значение источника вызова (New call source code) и изменять некоторые другие поля.

В нашей станции эта таблица используется в нескольких целях:

  • Приведение B-номеров по входящему направлению к виду, который мы можем маршрутизировать. То есть от операторов связи приходит вызов на номер 871229xxxx, но мы используем сокращённую нумерацию 29xxxx. Следовательно, нам нужно отрезать первые 4 символа, чтобы распознать нашего абонента.
  • Номера некоторых экстренных служб имеют общий вид (6-значный городской номер), однако абонент набирает короткий номер службы (01, 02, 03). Нам нужно распознать такой набор и подменить номер на реальный. Также в зависимости от того, в какой местности расположен абонент, номера одной и той же службы могут быть разными. Для того чтобы учесть этот аспект, мы используем атрибут callsrc (назначаем каждому району свой callsrc и в соответствии с ним осуществляем подмену набранного номера).

Изменение атрибутов вызова на входящем направлении на определенном транке

Для корректировки атрибутов вызова на входящем транке используется таблица CLRDSN. Запись CLRDSN привязывается к определённому транку командой ADD TGDSG. В самой команде CLRDSN можно создать несколько правил корректировки, которые будут срабатывать в зависимости от А-номера:

Для добавления правила даём команду ADD CLRDSN:

Здесь заполняем следующие поля:

  • Discrimination group number — номер правила. По этому номеру выполняется привязка к транку в команде ADD TGDSG (в предыдущем примере мы рассматривали параметры правила №5).
  • Caller number — номер вызывающего, то есть А-номер. Можем указать конкретный номер или начальный префикс (например, если указать 995, правило будет действовать на все вызовы, которые совершаются с номеров, начинающихся на 995). Можно использовать символ Wildcard, то есть применить к любым возможным номерам. Для этого вводим символ E. Префикс в данном поле должен быть таким же, какой приходит из транка. Например, если установить префикс 906, а из транка будет приходить номер 8906 или 7906, правило не сработает.
  • Address nature — тип А-номера. Позволяет ограничить применение правила только к А-номерам определённого типа, то есть только для:
  • Unknown — неизвестный;
  • International — международный;
  • National — междугородний;
  • Subscriber — местный;
  • _All _— все типы номеров.
  • Function code — тип действия с вызовом. Выбираем ATT (Modify caller attribute), то есть изменение атрибутов А-номера.
  • Call source code — если установить значение, код callsource будет изменен. Если оставить пустым, будет установлен callsource = 0.
  • Number change index — правило DNC, которое будет применено к А-номеру.

Если дать команду с тем же номером Discrimination group number, но с другими параметрами, правило будет добавлено в ту же группу. Таким образом, мы добавим правила для разных номеров (или разных типов номеров) в одну группу и сможем привязать её к транку.

Как было сказано ранее, привязка правила CLRDSN к транку выполняется командой ADD TGDSG.

Эту функцию можно использовать для нескольких сценариев.

Сценарий 1

Подмена номера от подключённой УПАТС. Например, у нас есть некая УПАТС, которая подключена к нашей станции. Мы выдали им номер из нашей ёмкости, которую они должны использовать в качестве А-номера (29хххх). Однако по какой-то причине в поле А-номера абонент присылает нам внутренние номера своей станции (101, 102 и т.д.):

  • Добавим правило DNC, которое выполнит полную подмену номера на нужный:
  • Создадим правило, в котором применим правило DNC=15 (number change index = 15) ко всем входящим вызовам (number = E, Adress nature = All number):
  • Привяжем правило CLRDSN=30 к транку №30 командой ADD TGDSG:

Сценарий 2

Блокировка нежелательных вызовов с транка (например, спам-звонков). Для блокировки вызовов в станции создан Local DNset с пустой таблицей маршрутизации (в таблице CNACLD нет никаких записей), также создан callsource (callsrc=4), привязанный к этому Local DNset. При совпадении А-номера с нежелательным вызову назначается callsrc=4, тем самым вызов не может быть маршрутизирован и будет отклонён.

Сценарий 3

Фильтрация входящих вызовов с транка. В данном случае изначально присваиваем транку callsrc=4. Теперь по умолчанию все входящие вызовы будут запрещены. Затем создаются правила CLRDSN с определёнными условиями, при соблюдении которых входящий вызов может быть маршрутизирован. При выполнении этих условий код callsrc заменяется на разрешённый, и вызов проходит. Условием для проверки обычно выступает префикс А-номера. Например, при входящих вызовах от сотового оператора все А-номера должны начинаться с символа «9». При входящих вызовах с наших УПАТС А-номер должен начинаться с цифр «29» и т.д.

Изменение атрибутов вызова по B-номеру для внутренних абонентов

Эта функция может использоваться для разных задач. Например, для ограничения исходящих вызовов для определённого абонента на определённый номер. В нашем примере это будут исходящие вызовы на префикс 810, то есть международные вызовы (эту задачу можно решить и другими способами).

Используем команду ADD CNACLR:

Здесь выделим следующие параметры:

  • Call source code — код callsrc, к которому принадлежит номер.
  • Call prefix — префикс, при наборе которого срабатывает правило.
  • Caller number — номер телефона абонента, к которому применяется правило. Здесь также применимо выражение Wildcard, то есть «применить правило к любому номеру, установив символ E».
  • Function code — тип обработки вызова. В данном случае используем изменение B-номера, выбрав Modify caller attribute.
  • Caller number change index — правило DNC, которое применяется к А-номеру.
  • Called number change index — правило DNC, которое применяется к B-номеру.
  • Reanalysis flag = true — устанавливаем данный флаг для повторной обработки вызова в таблице маршрутизации с новыми параметрами.

Приведённое правило используется в следующем сценарии. В организации приобретён номер 8-800, вызовы на этот номер переадресовываются на локальный номер станции 29хххх. При помощи данного правила мы можем обнаружить набор этого номера 8-800 локальными абонентами и подменить его на локальный номер назначения внутри станции, тем самым избежав тарификации этих вызовов на платформе 8-800, а также снизив внешний трафик.

В этом материале мы рассмотрели некоторые инструменты для корректировки символов А- и B-номеров на станции Huawei SoftX3000 и сценарии их применения. При написании материала использовалась станция Huawei SoftX3000 V300R600, но команды применимы на более свежих версиях, а принцип их применения — примерно такой же.