При настройке телефонной маршрутизации очень часто возникает необходимость изменения (корректировки) телефонных номеров, как набираемого (Б-номер), так и инициатора вызова (А-номер, АОН). Например, абоненты вашей станции набирают междугородние/федеральные номера через префикс "8", а вышестоящему оператору связи необходимо передавать номер без префикса, в десятизначном формате. Или вызовы на вашу станцию приходят с кодом зоны, а внутри станции используются номера в 6 или 7 знаков, и лишние символы необходимо удалить. Для корректировки номеров в SoftX3000 существует множество инструментов, применяемые в зависимости от конкретных случаев. Рассмотрим некоторые из них.
Таблица корректировки символов DNC
Для любых операций с изменением номера используются правила таблицы DNC. Эти правила используются для непосредственной корректировки символов, а все прочие команды определяют, в отношении какого поля (А-номер или Б-номер), на каком направлении (входящее/исходящее) и на какой транк-группе будет применено это правило.
Для добавления правила в эту таблицу используется команда 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 позиция цифр, которые подлежат корректировке.
- Nature of address indicator тип номера, принимает значения:
- NONE тип номера не изменяется
- IDN международный номер
- NDN национальный номер
- UDN местный номер
- UNN неизвестный номер
- SDN специальный номер
- New number добавляемые (изменяемые) цифры.
Для наглядности приведем реальные примеры таких правил:
В таблице выше:
- Правило №2 изменяет первый символ в номере (Change location 0) на цифру 8 (New number).
- Правило №4 удаляет первые (Change location 0) два символа (Change length - 2) в номере и преобразует тип номера в международный.
- Правило №9 заменяет первые (Change location 0) шесть символов (Change length - 6) на номер 29xxxx.
В системе можно создать 65535 правил, правило под №0 системное, изменению не подлежит.
Изменение А и Б номеров на исходящем направлении
Для корректировки номеров вызовах в исходящих направлениях используется две таблицы:
- TGLD здесь компонуются правила для А и Б номера.
- TGLDIDX указывает транк, в отношении которого применяется правило TGLD и условия, при которых оно применяется.
При добавлении записи командой ADD TGLD, необходимо задать следующие обязательные параметры:
- Bearer index номер правила по порядку. Этот номер будет использоваться для идентификации в таблице TGLDIDX.
- Trunk seizure point минимальная длина набираемого номера.
- Caller sending change index правило из таблицы DNC, которое будет применено к А-номеру.
- Callee sending change index правило из таблицы DNC, применяемое к Б-номеру.
Примеры записей TGLD:
Здесь запись TGLD=1 изменяет А-номер по правилу DNC=3 и Б-номер по правилу DNC=12.
Далее, необходимо привязать созданное правила TGLD к транкам. Для этого используем команду ADD TGLDIDX:
Указываем следующие параметры:
- Trunk group number номер транка, к которому применяется данное правило.
- Call source code callsource источника вызова, по которому срабатывает правило. Если код отличается, правило не применится. Чтобы применить правило ко всем callsrc, необходимо указать 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.
Изменение А и Б номеров на входящем направлении
Для изменения атрибутов вызова во входящем направлении применительно ко всем входящим вызовам с определенным callsrc (это может быть группа транков или группа абонентов, объединённых этим параметром), используется таблица PFXPRO. Рассмотрим назначение параметров команды ADD PFXPRO сразу на примере:
Параметры имеют следующее назначение:
- Call source code = 0 правило будет применяться к входящим вызовам с callsrc=0 и только к ним.
- Call prefix = 871229 правило применяется, если Б-номер начинается с этого префикса (871229).
- Local DN set = 0 набор номера должен производится с транка или абонента, привязанного к Local DN set = 0. Следует отметить, что вышеуказанный префикс (871229) должен присутствовать в таблице CNACLD с любым атрибутом в указанном Local DN set.
- Called number change flag = true означает, что Б-номер подлежит изменению.
- Called number change index = 1 Б-номер будет изменен по правилу DNC=1, которое, для наглядности, приведено ниже:
Согласно данному правилу, из номера Б будут удалены первые 4 символа.
Reanalysis = true после всех изменений вызов снова будет обработан как вновь поступивший и смаршрутизирован согласно новым параметрам А и Б номеров.
Таким образом, вызов, поступивший с атрибутом callsrc=0, в котором Б-номер соответствует шаблону 871229хххх, вновь поступит на обработку, но уже с Б-номером 29хххх, то есть будет вызван 6-значный номер внутреннего абонента станции.
Таблица PFXPRO так же позволяет корректировать и А-номер (поля Caller number change flag и Caller number change index), назначить новое значение источника вызова (New call source code) и изменять некоторые другие поля.
В нашей станции данная таблица используется в нескольких целях:
- Приведение Б-номеров по входящему направлению к виду, который мы можем маршрутизировать, то есть: от операторов связи приходит вызов на номер 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" и т.д.
Изменение атрибутов вызова по Б-номеру для внутренних абонентов
Данная функция может использоваться для разных задач. Одна из них ограничение исходящих вызовов для определенного абонента на определенный номер. В нашем примере это будут исходящие вызовы на префикс 810, то есть международные вызовы (эту задачу можно решить и другими способами).
Используем команду ADD CNACLR:
Здесь выделим следующие параметры:
- Call source code код callsrc, к которому принадлежит номер.
- Call prefix префикс, при наборе которого срабатывает правило.
- Caller number номер телефона абонента, к которому применяется правило. Здесь так же применимо выражение wildcard, то есть применить правило к любому номеру, установив символ "E".
- Function code тип обработки вызова. В данном случае используем изменение Б-номера, выбрав Modify caller attribute.
- Caller number change index правило DNC, которое применяется к А-номеру.
- Called number change index правило DNC, которое применяется к Б-номеру.
- Reanalysis flag = true устанавливаем данный флаг для повторной обработки вызова в таблице маршрутизации с новыми параметрами.
Приведенное правило используется в следующем сценарии. В организации приобретен номер 8-800, вызовы на которые переадресуются на локальный номер станции 29хххх. При помощи данного правила мы можем обнаружить набор этого номера 8800 локальными абонентами и подменить его на локальный номер назначения внутри станции, тем самым избежав тарификации этих вызовов на платформе 8800, а так же снизив внешний трафик.
Применение данных функций и команд не ограничивается приведенными сценариями, и ограничено только фантазией и лицензиями оборудования.
Версия станции Huawei SoftX3000 V300R600, но команды будут применимы на более свежих версиях, а принцип их применения такой же.