Настройка оборудования Астарта iBase, используемого для подключения в разрыв потоков E1, в целях Антифрода

Монтаж

Инструкцию по подключению питания, кабелей E1, расположение разъёмов и контактов в них,
см. по ссылке: www.astarta-m.ru/iBaseAntifrodPassport.pdf.

IP адреса по умолчанию: 192.168.211.100, на второй плате – 192.168.211.101, и так далее.
(в ранних поставках адрес может быть 10.10.10.151, ..152 и т.д)
Устройство должно отвечать на ping. Устройство не поддерживает WEB, telnet.

Платы желательно подключить на отдельный сетевой интерфейс вашего сервера.
Адрес этого интерфейса должен быть 192.168.211.200 (или 10.10.10.254).
Если плат несколько, то их необходимо объединить через отдельный гигабитный сетевой ip-switch второго уровня,
например, подойдёт TL-SG1005D, стоимость около 2 т.р.
(в целях надёжности системы, не смешивайте выделенную сеть со своей офисной сетью).
Трафик не более 1 Мбит/сек с платы, но ip-switch должен быть современный (гигабитный).

“Астарту” необходимо подключить в разрыв рабочего потока, который соединяет вашу АТС с присоединённым оператором:
один поток в порты 0 и 1, второй поток в порты 2 и 3.
При этом, в порт 0 и порт 2 подключите вышестоящего (стороннего) оператора, а порт 1 и 3 используйте для подключения своей АТС.
Порт 0 (ближайший к Ethernet) на Астарте iBase является источником для синхронизации всей платы.
(есть возможность поменять синхронизацию на порт 1)

Стыковка плат с ПО управления

Здесь нужно скачать шаблон конфигурации proconf.txt

Убедитесь, что все платы отвечают на ping и запомните их ip адреса

Пропишите в файле /home/ipats/config/proconf.txt все платы таким образом:
(эти строки уже есть в вашем файле - подправьте ip адреса и серийные номера)

CONF NEW ibase0  AFRibase  0   0  0  0  0  "T"   PN_remoteHost = 192.168.211.100   # 01.19125, свой комментарий  
CONF NEW ibase1  AFRibase  1   0  0  0  0  "T"   PN_remoteHost = 192.168.211.101   # 01.19126, свой комментарий  
CONF NEW ibase2  AFRibase  2   0  0  0  0  "T"   PN_remoteHost = 192.168.211.102   # 01.19127, свой комментарий  
... и т.д.  

Сотрите лишние платы (в шаблоне их 10 штук, а у Вас может быть меньше)

Зайдите в терминал управления ПО (для выхода используйте ‘exit’):

sudo /home/ipats/terminal-manager.sh  

Выполните команду перезапуска ПО управления для применения изменений в конфигурации proconf.txt:

repro  

Пока не обращайте внимания на ошибки - Вы стёрли часть объектов: ibase7, ibase8, ibase9,
но ещё не стёрли их использование дальше по тексту.

Для распечатки отклика от всех плат, введите команду:

@  

Для распечатки состояния потоков E1 одной платы, введите команду (замените вопрос на число от 0 до 9):

@?SHOWPCM  

Убедитесь, что в отклике присутствуют все платы потоков, которые Вы смонтировали.

Установка свежей прошивки (встроенного ПО) в плату

Версия ПО в плате потоков видна в отклике. Если она не свежая, выполните обновление.

Обновление прошивки потенциально опасная процедура: теоретически, может произойти сбой и плата перестанет работать.
Вероятность такой проблемы менее 1% - мы заменим плату по гарантии. Но при такой аварии связь по потоку E1 сама не восстановится,
то есть нужно, чтобы кто-то был в помещении АТС для подстраховки, чтобы соединить кабель E1 напрямую, минуя плату потоков.
По этой причине мы не проводим обновление прошивки удалённо и автоматически, хотя такая возможность есть.
При штатном обновлении ПО связь по потоку E1 прервётся примерно на пол минуты.

Свежая версия прошивки равна 7.07.246
Если в отклике такая-же версия, то обновление делать не нужно.
Если в отклике версия 7.07.245 и потоки нормально поднимаются в режиме “W”, то обновление делать не нужно.
Прошивка со свежей версией находится в файле /home/ipats/upware/afr_v246_cr.bin
Контрольная сумма файла равна ‘c5e9b1f9d7c18c52bfac667a56e145c657c9fae0’, проверяется командой:

sha1sum /home/ipats/upware/afr_v246_cr.bin  

Зайдите в терминал управления ПО (для выхода используйте ‘exit’):

sudo /home/ipats/terminal-manager.sh  

Убедитесь, что обновляемая плата (номер который Вы впишите вместо знака вопрос) отвечает стандартным откликом на команду:

@?INFO  

Дайте команду на старт обновления (во второй строке нет номера платы, система помнит номер из первой строки):

@?INFO  
upware /home/ipats/upware/afr_v246_cr.bin  

Подождите 5 минут и дайте команду:

@?INFO  

Убедитесь, что в новом отклике изменился номер версии ПО.
Если плата не отвечает на отклик, не продолжайте обновление других плат, возможно файл прошивки искажён.

По окончании перепрошивки всех плат, проверьте их состояние и номера версий, команда:

@  

Настройка сигнализации и тайм-слотов потоков E1

Здесь нужно скачать шаблон конфигурации proconf.txt

Примеры конфигурационной строки, хранящейся в файле /home/ipats/config/proconf.txt

CONF NEW ibase0  AFRibase  0  16 16  1  1  "W"   PN_remoteHost = 192.168.211.100   # 01.19125, свой комментарий  
CONF NEW ibase1  AFRibase  1  32 32 32 32  "W"   PN_remoteHost = 192.168.211.101   # 01.19126, свой комментарий  
CONF NEW ibase2  AFRibase  2   1  1  0  0  "W"   PN_remoteHost = 192.168.211.102   # 01.19127, свой комментарий  
CONF NEW ibase3  AFRibase  3   1  1 32 32  "T"   PN_remoteHost = 192.168.211.103   # 01.19128, свой комментарий  

Формат конфигурационной строки:

CONF NEW ibase<N>  AFRibase  <N>  <SL> <SL> <SR> <SR>  <MODE>   PN_remoteHost = <IP>   # <SERIAL>, свой комментарий  

{N} - номер платы от 0 до 9, обратите внимание, он встречается в строке два раза

{SL} - ‘сигнальный код’ первого потока в плате (который подключен в порты 0 и 1, т.е. расположен левее)

{SR} - ‘сигнальный код’ первого потока в плате (который подключен в порты 2 и 3, т.е. расположен правее)

‘сигнальный код’ - может принимать четыре значения:
0 - в потоке нет сигнализации, т.е. порты не используются
1 - поток с сигнализацией ОКС7, в котором сама сигнализация расположена в 1-ом тайм-слоте (канальном интервале)
16 - поток с сигнализацией ОКС7, в котором сама сигнализация расположена в 16-ом тайм-слоте (канальном интервале)
32 - поток с сигнализацией EDSS1 PRI, в котором сама сигнализация расположена в 16-ом тайм-слоте (канальном интервале)

{MODE} - режим работы платы, может принимать два значения:
“W” - (work) рабочий режим работы платы, в котором есть возможность прервать вызов
“T” - (transporent) прозрачный режим работы платы, в котором анализ проходящего трафика происходит, но невозможно прервать вызов.
такой режим можно использовать, если есть подозрения на нарушения в работе связи, вызванные оборудованием iBase,
в этом режиме весь трафик проходит прозрачно, т.е. копируется на уровне битового потока.

{IP} - ip адрес платы

{SERIAL} - серийный номер платы

Если Вы не знаете точно, какая у Вас сигнализация и в каком тайм-слоте,
просто переберите все возможные значения в такой последовательности: 1, 16, 32
Когда ‘сигнальный код’ будет ‘угадан’, в терминале управления автоматически появятся вызовы, проходящие по этому потоку (если созданы объекты этих потоков, см. ниже).

Обратите внимание на правило этих четырёх сигнальных чисел: первое число должно быть равно второму, а третее число должно быть равно четвёртому

При отгрузке системы используется буква “T”, чтобы не разрушить связь, в рабочей системе должна быть буква “W” - обязательно выполните эту замену.

Запуск терминал управления ПО (для выхода используйте ‘exit’):

sudo /home/ipats/terminal-manager.sh  

Применение изменений, внесённых в файл /home/ipats/config/proconf.txt (команду вводить в терминале управления, а не в терминале Linux):

repro  

Настраивая и подключая потоки, убедитесь, что в терминале печатаются вызовы по каждому из потоков, которые Вы используете.
Необходимо исключить ситуацию, в которой всё вроде бы работает, но в одном из потоков перепутали тайм-слот 1/16
и вызовы с этого потока не контролируются.

Для того, чтобы система начала печатать вызовы в терминале, необходимо создать объекты такого контроля.
Так выглядят объекты контроля потоков EDSS1 PRI, в примере 6 потоков - 6 объектов:

CONF NEW afr_ib0_p01       AFRgavDSS1   PN_afrControl=afr  ibase0:0:1  ROUTE=rt_X  OPR_ATT=OPR_RT
CONF NEW afr_ib0_p23       AFRgavDSS1   PN_afrControl=afr  ibase0:2:3  ROUTE=rt_X  OPR_ATT=OPR_RT
  
CONF NEW afr_ib1_p01       AFRgavDSS1   PN_afrControl=afr  ibase1:0:1  ROUTE=rt_X  OPR_ATT=OPR_RT
CONF NEW afr_ib1_p23       AFRgavDSS1   PN_afrControl=afr  ibase1:2:3  ROUTE=rt_X  OPR_ATT=OPR_MTT
  
CONF NEW afr_ib2_p01       AFRgavDSS1   PN_afrControl=afr  ibase2:0:1  ROUTE=rt_X   OPR_ATT=OPR_MTT
CONF NEW afr_ib2_p23       AFRgavDSS1   PN_afrControl=afr  ibase2:2:3  ROUTE=rt_X   OPR_ATT=OPR_MTT

Следующие объекты описывают потоки ОКС7, проходящие транзитом через Астарта iBase
afr_ib0_p01 - первый модуль Астарта, поток (два порта 0 и 1), расположенный левее (ближе к Ethernet)
afr_ib8_p23 - девятый модуль Астарта, поток (два порта 2 и 3), расположенный правее
В правой части описания потока, укажите с каким присоединённым оператором он связан.
Обязательно сотрите лишние строки, оставив фактическое количество оборудования.

Так выглядят объекты контроля потоков ОКС7 с единственным сигнальным линком в пучке, в примере 3 потока - 3 объекта:

CONF NEW afr_ib0_p01       AFRgavISUP   PN_afrControl=afr  ibase0:0:1  ROUTE=rt_X  OPR_ATT=OPR_RT
CONF NEW afr_ib0_p23       AFRgavISUP   PN_afrControl=afr  ibase0:2:3  ROUTE=rt_X  OPR_ATT=OPR_MTT
  
CONF NEW afr_ib1_p01       AFRgavISUP   PN_afrControl=afr  ibase1:0:1  ROUTE=rt_X  OPR_ATT=OPR_K

Часто, при использовании ОКС7 с присоединённым оператором, используется пучок из нескольких потоков,
два из которых сигнальные, а остальные голосовые.

Если вы точно не знаете, принадлежат ли два сигнальных линка одному пучку или они независмы,
тогда проведите такой тест: при маленькой нагрузке, отключите один из сигнальных линков (потоков) от своей АТС:
если связь никак не ‘пострадала’, т.е. все исходящие направления доступны и все входящие тоже,
то с большой вероятностью это один пучок (второй сигнальный линк является резервирование первого).

Если два потока идут к разным операторам, то это точно разные пучки.

Если у одного оператора на двух потокам сквозная нумерация CIC (идентификатор голосового тайм-слота),
например, первый поток CIC 1..31, а второй поток CIC 32..63,
то с очень большой вероятностью эти два потока в одном пучке.

Голосовые потоки вовсе не проходят через Астарту, а вот два сигнальных потока одного пучка
необходимо описать ЕДИНЫМ объектом, в таком случае:
1) сотрите два объекта выше afr_ib0_p01 и afr_ib7_p01
2) создайте вместо него один составной объект, ссылающийся на выбранные два потока (не важно, в одной плате или в разных)

CONF NEW afr_ib0_p01_ib7_p01  AFRgavISUP  PN_afrControl=afr ROUTE=rt_X  ibase0:0:1 ibase7:0:1 OPR_ATT=OPR_RT

Справа от описания объекта указывается имя присоединённого оператора.
См. в шаблоне конфигурации возможные имена и способ добавления новых имён.
У каждого оператора необходимо задать его личный код, который можно посмотреть в этом справочнике.

В шаблоне конфигурации уже созданы такие объекты потоков. Сотрите лишние и/или отредактируйте существующие.
(рекомендуется взять здесь свежий шаблон конфигурации proconf.txt)

Названия объектов после слова NEW - произвольные. В примере они составлены из индексов портов в плате
p01 - это порты 0 и 1, а p23 - это порты 2 и 3.

Числа :0:1 или :2:3 после имени платы ibase2 означают номера пары портов, в которые подключен один контролируемый поток.

Таким образом, после завершения этой части конфигурации, мы имеем некие абстрактные объекты,
вокруг которых будет строится остальная часть конфигурации и диагностика вызовов:
afr_ib0_p23, afr_ib2_p01, afr_ib0_p01_ib7_p01.

Имена этих объектов можно выбирать произвольно, например:
afr_PotokNaMegafon, afr_PotokNaBeeline1, afr_PotokNaBeeline2, afr_PotokDrugoyOffice
(кому-то удобнее оперировать номерами, кому-то названиями филиалов, кому-то названиями присоединённых операторов)

Диагностика потоков

Подробный журнал аварий по потокам можно увидеть в файлах:
/home/ipats/journal_operator/<дата>.txt

Подробный журнал вызовов можно увидеть в файлах:
/home/ipats/journal_manager/<дата>.txt

Краткую сводку только аварий по платам и потокам можно увидеть в файле:
/home/ipats/alarm.txt

Уведомление об авариях можно настроить в скрипте:
/home/ipats/settings/alarm.sh

Запустите терминала управления ПО (для выхода используйте ‘exit’):

sudo /home/ipats/terminal-manager.sh  

Сделайте контрольный вызов по каждому потоку и убедитесь, что информация о нём печатается в терминале:

02:14:50 AFRgavISUP-afr_PotokNaMegafon: CALL: RX:ibase0:2, CIC: 1, orig: "1234567"->"88125559898", trans: "79001234567"->"78125559898"  
02:14:50 AFRgavISUP-afr_PotokNaMegafon: ANSWER: TX:ibase0:3, CIC: 1  
02:16:50 AFRgavISUP-afr_PotokNaMegafon: RELEASE: TX:ibase0:3, CIC: 1, cause: UPV_CauseValue_Normal_call_clearing  

afr_PotokNaMegafon - имя объекта, который зафиксировал вызов
ibase0:2 - имя платы и номер порта, откуда пришло именно это сообщение (CALL и ANSWER могут быть в разных платах для двойного ОКСа)
orig: - номер А и номер Б до унификации к формату E.164, т.е. те номера, которые непосредственно зафиксированы в потоке
trans: - номер А и номер Б, приведённые к формату E.164

Обратите внимание, приведение к унифицированному формату E.164, это не автоматическая функция,
а результат работы скриптов, описанных в конфигурационном файла proconf.txt.
Если Вы в терминале наблюдаете неправильную работу механизма унификации, тогда исправьте правила в файле proconf.txt.

Если Вы в конфигурации proconf.txt меняете только строки, начинающиеся с CONF APPLY,
тогда нет необходимости перезапускать всё ПО (команда repro), достаточно дать команду ‘мягкого’ применения изменений:

uppro  

Чтобы посмотреть список текущих активных разговоров на одном объекте (потоке), используйте в терминале управления команду:

CONF CMD afr_PotokNaMegafon SHOW  

Помимо прочего, ОБЯЗАТЕЛЬНО убедитесь, что система успешно прерывает вызовы по заданному номеру на каждом потоке.

CONF CMD afr_PotokNaMegafon RELEASE 79121234567  

Чтобы команда прерывания вызова отработала успешно, должны быть выполнены следующие условия:
1) Объект afr_PotokNaMegafon должен быть правильно выбран (вызов на другом объекте afr_PotokDrugoyOffice не отобьётся)
2) Заданный номер должен совпасть с номером А или номером Б в унифицированном формате
3) Унификация номеров должна быть настроена правильно (сравнение происходит с номером после “trans:”)
4) Плата должна быть описана с признаком “W” (work mode), а не с признаком “T” (transporetn mode)

Настройка собственной номерной ёмкости оператора

Чтобы система могла отличить входящий вызов на своего абонента от транзитного вызова, и для многих других целей,
ей необходимо знать всю номерную ёмкость оператора.

Заполните свою номерную ёмкость в файле ‘/home/uvr/setup/SETUP-full.csv’, НО пока не выгружайте её в ИС “Антифрод”, т.е. НЕ выполняйте команду ‘0-update-setup-sftp-full.sh’.

Инструкцию по заполнению файла с номерной ёмкостью смотрите по этой ссылке.

Убедитесь, что в файле ‘proconf.txt’ используется конструкция:

# Сначала задаётся наша нумерация
CONF NEW   tb_local TABLE 1 31 NOT
import tb_local /home/uvr/setup/SETUP-full.csv

а не ручное заполнение нумерации, дублирующее файл SETUP-full.csv.
Ручное заполнение тоже допустимо, но повышает риск допустить опечатки:

# Сначала задаётся наша нумерация
CONF NEW   tb_local TABLE 1 31 NOT
CONF APPLY tb_local ADD ":78123202421-78123202423", ":78123202429-78123202429", ":78123202590-78123202590", ":78123202700-78123202702"
CONF APPLY tb_local ADD ":78123202704-78123202706", ":78123202709-78123202711", ":78123202715-78123202727", ":78123202729-78123202744"
CONF APPLY tb_local ADD ":78123202749-78123202749", ":78123202754-78123202754", ":78123202756-78123202757", ":78123202761-78123202786"

Тестирование конфигурации

Обязательно заполните всю свою нумерацию в файле SETUP-full.csv,
несмотря на то, что тестируются только три выбранных номера.

Несколько действий, для подготовки самотестирования:
1) замените в конфигурации номер 79110000000 на свой мобильный,
2) замените в конфигурации номер 74950003333 на третий тестовый номер из вашей номерной ёмкости

Проведите тесты входящей и исходящей связи из этого описания !!!

Перезапуск системы управления в целях применения изменений в файле proconf.txt:

sudo /home/ipats/terminal-manager.sh  
repro  
exit  

Перезапуск системы управления в целях применения изменений в файле proconf.txt:

sudo pkill -e ia-manager  

‘Мягкое’ применение изменений в файле proconf.txt без перезапуска системы управления:
(использовать, если менялись (в том числе добавлялись, удалялись) только строки “CONF APPLY …”)

sudo /home/ipats/terminal-manager.sh  
uppro  
exit  

Перезапуск системы управления не должен приводить к обрыву связи на потоках E1,
при условии, что не менялись строки “CONF NEW ibase AFRibase …”

Результаты верификации

смотрите в журналах:
/home/ipats/journal_billing/<дата>.csv
Подробное описание формата этого журнала смотрите здесь.