Asterisk chan_ss7 «12 потоков»

    Задача:


    Подключение к Городской Телефонной Станций «ГТС» используя систему сигнализации N7 (Общеканальная сигнализация № 7(ОКС7 или SS7)

    Решение по этапам:


    • Сервер
    • Система и софт
    • Настройка подключения
    • Проблемы и их решения
    • Тестирование


    Сервер:

    Про сервер мне мало известно, я все настраивал удаленно и не видел его но все что мне нужно я увидел.
    Проц:
    [root@ss7 ~]# cat /proc/cpuinfo |grep "model name"
    model name : Pentium(R) Dual-Core CPU E5700 @ 3.00GHz
    model name : Pentium(R) Dual-Core CPU E5700 @ 3.00GHz

    Память:
    [root@ss7 ~]# free -m
    total used free shared buffers cached
    Mem: 4051 3899 152 0 142 3628
    -/+ buffers/cache: 128 3923
    Swap: 5247 0 5247

    Винт:
    2 винта в райде по 250 Гигов, обычные SATA
    Материнская плата:
    Модель и производитель меня не интересовали мне нужно было только знать нет ли USB или ETH на одном прерывание с платами DIGIUM.
    [root@ss7 ~]# cat /proc/interrupts
    ....
    58: 6425 2287054760 IO-APIC-level ata_piix, wct4xxp
    74: 2285708690 4349 IO-APIC-level wct4xxp
    82: 4161 2285686641 IO-APIC-level wct4xxp
    ....

    то что одна из плат на одном прерывание с винтом (ata_piix, wct4xxp) это проблема но все что было предпринято ничего не дало.
    Потоковые платы:
    [root@ss7 ~]# dahdi_hardware
    pci:0000:05:00.0 wct4xxp+ d161:1405 Wildcard TE405P (5th Gen)
    pci:0000:05:01.0 wct4xxp+ d161:0405 Wildcard TE405P (4th Gen)
    pci:0000:05:02.0 wct4xxp+ d161:0405 Wildcard TE405P (4th Gen)

    Используются 3 платы DIGIUM TE405 слот PCI.

    Система и софт

    Перед тем как приступить к данной задачи я много искал в интернете какое решение лучше использовать вот список который я нашел:

    Выбор пал на asterisk и chan_ss7 он самый простой по моему в настройке и очень хорошо выводит дебуг который очень нужен для таких подключении. Система была поднята на Centos 5.5 далее из sourse было собран DAHDI и Asterisk после скачал сhan_ss7-2.0.0.

    Настройка подключения

    Потоки были поданы через спец. модемы до сервера, для подключения нужно было только обычный Е1 кабель. Конфиг dahdi:
    [root@ss7 asterisk]# cat /etc/dahdi/system.conf
    span=1,1,0,ccs,hdb3,crc4
    bchan=1-31
    echocanceller=mg2,1-31

    span=2,2,0,ccs,hdb3,crc4
    bchan=32-62
    echocanceller=mg2,32-62

    span=3,3,0,ccs,hdb3,crc4
    bchan=63-93
    echocanceller=mg2,63-93

    span=4,4,0,ccs,hdb3,crc4
    bchan=94-124
    echocanceller=mg2,94-124

    span=5,5,0,ccs,hdb3,crc4
    bchan=125-155
    echocanceller=mg2,125-155

    span=6,6,0,ccs,hdb3,crc4
    bchan=156-186
    echocanceller=mg2,156-186

    span=7,7,0,ccs,hdb3,crc4
    bchan=187-217
    echocanceller=mg2,187-217

    span=8,8,0,ccs,hdb3,crc4
    bchan=218-248
    echocanceller=mg2,218-248

    span=9,9,0,ccs,hdb3,crc4
    bchan=249-279
    echocanceller=mg2,249-279

    span=10,10,0,ccs,hdb3,crc4
    bchan=280-310
    echocanceller=mg2,280-310

    span=11,11,0,ccs,hdb3,crc4
    bchan=311-341
    echocanceller=mg2,311-341

    span=12,12,0,ccs,hdb3,crc4
    bchan=342-372
    echocanceller=mg2,342-372

    loadzone = us
    defaultzone = us


    Конфиг chan_ss7:
    [root@ss7 ~]# cat /etc/asterisk/ss7.conf
    [linkset-mtc]
    enabled => yes
    enable_st => yes
    use_connect => no
    hunting_policy => even_mru
    context => ss7
    language => ru
    t35 => 15000,timeout
    subservice => 8

    [link-mtcl1]
    linkset => mtc
    channels => 2-31
    schannel => 1
    firstcic => 1
    enabled => yes
    echocancel => allways
    echocan_train => 350
    echocan_taps => 128

    [link-mtcl2]
    linkset => mtc
    channels => 1-31
    schannel =>
    firstcic => 33
    enabled => yes
    echocancel => allways
    echocan_train => 350
    echocan_taps => 128

    [link-mtcl3]
    linkset => mtc
    channels => 1-31
    schannel =>
    firstcic => 65
    enabled => yes
    echocancel => allways
    echocan_train => 350
    echocan_taps => 128

    [link-mtcl4]
    linkset => mtc
    channels => 1-31
    schannel =>
    firstcic => 97
    enabled => yes
    echocancel => allways
    echocan_train => 350
    echocan_taps => 128

    [link-mtcl5]
    linkset => mtc
    channels => 1-31
    schannel =>
    firstcic => 129
    enabled => yes
    echocancel => allways
    echocan_train => 350
    echocan_taps => 128

    [link-mtcl6]
    linkset => mtc
    channels => 1-31
    schannel =>
    firstcic => 161
    enabled => yes
    echocancel => allways
    echocan_train => 350
    echocan_taps => 128

    [link-mtcl7]
    linkset => mtc
    channels => 1-31
    schannel =>
    firstcic => 193
    enabled => yes
    echocancel => allways
    echocan_train => 350
    echocan_taps => 128

    [link-mtcl8]
    linkset => mtc
    channels => 1-31
    schannel =>
    firstcic => 225
    enabled => yes
    echocancel => allways
    echocan_train => 350
    echocan_taps => 128

    [link-mtcl9]
    linkset => mtc
    channels => 1-31
    schannel =>
    firstcic => 257
    enabled => yes
    echocancel => allways
    echocan_train => 350
    echocan_taps => 128

    [link-mtcl10]
    linkset => mtc
    channels => 1-31
    schannel =>
    firstcic => 289
    enabled => yes
    echocancel => allways
    echocan_train => 350
    echocan_taps => 128

    [link-mtcl11]
    linkset => mtc
    channels => 1-31
    schannel =>
    firstcic => 321
    enabled => yes
    echocancel => allways
    echocan_train => 350
    echocan_taps => 128

    [link-mtcl12]
    linkset => mtc
    channels => 1-31
    schannel =>
    firstcic => 353
    enabled => yes
    echocancel => allways
    echocan_train => 350
    echocan_taps => 128

    [host-ss7.host.ru]
    enabled => yes
    opc => 0x62
    dpc => mtc:0x0d
    links => mtcl1:1,mtcl2:2,mtcl3:3,mtcl4:4,mtcl5:5,mtcl6:6,mtcl7:7,mtcl8:8,mtcl9:9,mtcl10:10,mtcl11:11,mtcl12:12


    Проблемы и их решения

    1) Порядок подключения потоков (физически):
    При подключение физических линков надо синхронно втыкать их в порт 1 ГТС — 1 DIGUM, 2 -2… это была первая проблема потому что потоки сначала включили как попало.
    2) CRC4 — ГТС на 3 день настроек сказал что у них CRC4 выключен когда на DIGIUM у меня они были включены и влияли на работу сигнального канала. Не знаю как вышло думаю что это и за модемов поэтому попросил ГТС включить CRC4.
    Лог: [May 24 11:46:48] NOTICE[6229] mtp.c: Failover not possible, no other signalling link and no other host available.
    [May 24 11:46:48] WARNING[6229] chan_ss7.c: MTP is now DOWN on link 'mtcl1'.
    [May 24 11:46:50] WARNING[6229] chan_ss7.c: MTP is now UP on link 'mtcl1'.
    [May 24 11:46:50] NOTICE[6229] mtp.c: Sending TRA to peer on link 'mtcl1'....

    3) При подключение более одного потока используется обычно всего один сигнальный линк тот что в первом потоке для этого выделен. Поэтому у меня в настройках link-mtcl1 указан schannel => 1 и голосовые каналы от 2 до 31 а остальные потоки используют для голоса от 1 до 31(все).

    Тестирование

    Проверка статуса сигнального линка:
    *CLI> ss7 link status
    linkset mtc, link mtcl1/1 INSERVICE, sls 0, total: 3173888, 3173904

    Проверка статуса каналов:
    ss7*CLI> ss7 show channels
    Linkset: mtc
    CIC 2 Idle
    CIC 3 Idle
    CIC 4 Idle
    .
    .
    .
    CIC 382 Idle
    CIC 383 Idle

    Максимальное количество каналов которую я успел поймать:
    root@ss7 ~]# asterisk -rx "core show channels"
    ….
    1069 active channels
    362 active calls


    P.S. Если нужны подробности по настройке или помощь пишите :)

    Похожие публикации

    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 25

      +1
      > При подключение физических линков надо синхронно втыкать их в порт 1 ГТС — 1 DIGUM, 2 -2…
      > это была первая проблема потому что потоки сначала включили как попало.
      нужно просто нумерацию потоков и первичный саурс тайминга задать согласно того, как физически воткнули.
      Вместо соответствия 1-1 2-2 лучше иметь бумажку с нумерацией ГТС стороны.
      В случае ЧП железа на сервере надо уметь перекинуть шланги с любой на любую, а не просить чтобы переткнули на ГТС что-то куда-то.

      > Модель и производитель меня не интересовали
      dmidecode | grep «Base Board Information» -A 3
      всё-таки было бы интересно глянуть.
        +1
        нет проблем покажу :)
        Base Board Information
        Manufacturer: ASUSTeK Computer INC.
        Product Name: P5P41T-LE
        Version: Rev X.0x
        а про потоки не совсем понял, они пронумерованы конечно.
          0
          Система под 400 параллельных вызовов на бюджетном бытовом тазике?
          Хм. Даже не знаю, что это. Офисная АТС?
          В общем-то, по мощам-то всё хорошо — но вот сколько оно времени выживет…
          Особенно три карты, вблизи без должного охлаждения.
          Запасные карты есть? :)
            0
            > Особенно три карты, вблизи без должного охлаждения.
            А может на платы пару пропеллеров надувают, и стоит системник в вместе где всегда 18 по цельсию )))
              0
              системник реально стоит вместе где всегда 18 по цельсию, ребята когда платы втыкали просили вырубить кондиционер в серверной а то более 10 минут там не посидишь:)
                0
                Как думаешь(ничего что я на ты)? Насколько реально обрабатывать 200-300 параллельных звонков без применения плат типа TE405, используя только sip-транки, т.е. где-то уже есть настроенная многоканальная АТС, а она уже приземляет звонки на сервак по sip?
                  0
                  можно на ты. На 200 — 300 звонков sip to sip транзитом не надо мощного сервера, а вот если там всякие вкусности астера прикрутить(Meetme, IVR, VM, Rcord, CDR, DB, Queue, API… ) да еще и на базе FreePBX или подобных решении то надо думаю CPU Dual core 2.5, RAM 4 GB, HDD 250 или разделить к примеру запись на 1 тера а систему на нормальном райде. Многое от применения зависит.
                  0
                  Cервак типа 3 ядерный phenome II, и надо писать голос…
              0
              Про потоки:
              span=1,1,0,ccs,hdb3,crc4
              bchan=1-31
              вот тут span= правильный выставить согласно реалиям коммутации надо
            +1
            Вопрос — почему взят 1.6, а не 1.8?
              +1
              chan_ss7 не собирается с 1.8, пока не поддерживается.
              0
              Должен признать что я бы не стал собирать на одной машине столько, боязно всё таки. Поставил бы шлюзы, а потом сделал бы виртуалку, да и снапшот, если сдохнет то новую запустить моментально или на Heartbeat.
                0
                Я тоже ненавижу когда такой сервис поднимают на Desktop PC, я думаю что то что я сделал и есть шлюз :) кроме SS7 to SIP он ничего не делает.
                  0
                  Он исполняет роль шлюза конечно, но вы и я знаете что такое нормальный шлюз. Хотя бы поставили материнку от Intel или Supermicro, жаль что у подрядчиков нет права голоса иногда.
                0
                Если не секрет для каких целей собиралась такая штука?
                  0
                  SS7 to SIP Gateway
                    +2
                    Да, это понятно, интерисует больше именно применение! Тяжело могу представить куда может потребоваться 370 одновременных соединений и вообщем как происходит договор с ГТС.
                  0
                  ну я на этот вопрос ответить не могу, я не знаю ничего про это, я грубо говоря субподрядчик и меня не интересует зачем столько каналов надо и как договорились :)
                    0
                    Понятно. Кстати с CRC4 на E1 ловил такой же глюк, при связи panasonic TDA и Asterisk если не включать CRC4 переодически падают все 30 канала и ругаеться на ошибку синхронизации pri_dchannel: PRI got event: Alarm (4) on Primary D-channel of span 1 и далее на каждом канале handle_alarms: Detected alarm on channel 2: Yellow Alarm. При включенном CRC4 канал также переодически падают, но связь не рветься на всех каналах, так до конца и не победил, возможно тут дело в плате E1 YEASTAR YE110.
                      0
                      E1 YEASTAR YE110 — да я тоже так думаю :) поэтому я только DIGIUM использую.
                    0
                    Жаль, что автор топика лишь «субподрядчик».
                    Было бы интересно услышать отзывы о работе этого шлюза от тех, кто его будет эксплуатировать.
                      +1
                      Насколько я в курсе данного проекта, Alexcr и сейчас поддерживает систему, и может сказать, насколько стабильно она работает. Мы в рамках этого проекта поставили платы Digium.
                        0
                        Кстати, Макс, вопрос.
                        Железки Digium уже имеют сертификаты соответствия, так что их можно законно присоединять аж к ГТС? И в составе узла связи официально показать?
                    0
                    Да доступ на сервер у меня есть, но делать там нечего, он просто работает, там все что можно выключено в modules.conf и работает без проблем месяца три точно!

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое