При настройке телефонной маршрутизации возникает необходимость изменить (скорректировать) телефонный номер: как набираемый (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):
- Для вызовов с callsource=5 при наборе «8» будет применено правило TGLD=2.
- Для вызовов с любых прочих callsource при наборе 8 будет применено правило TGLD=17.
- Для вызовов с любых 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, но команды применимы на более свежих версиях, а принцип их применения — примерно такой же.