05/03/2019

Реализация SIP на М-200: заметки и памятки


Читая документ М200.5100.000-ТО.02.SIP узнаем

В видении реализации SIP на оборудовании М-200 фирмы МТА лежат два типа портов: 


SIP-абонент (EXT_SIP) – полноценный абонент АТС М-200 с полным
                                            спектром абонентских услуг и сервисов
                                            (СОРМ, тарификация, услуги ДВО и т.п.). 
                                            Предназначен для подключения IP-телефонов 
                                            или аналогичного оборудования.

SIP-транк (SIP) – канал для подключения к внешнему VoIP
                               оборудованию. Предназначен для стыка с
                               операторами  цифровой  телефонии  и  для  
                               подключения  клиентского  VoIP  оборудования  (IP  
                               PBX,  IP-шлюз  и  т.д.).  В  данном  случае       
                               обеспечиваются  только  транзитные соединения  и
                               достуддоступные  для  них сервисы.

 SIP-транк может быть двух типов:

User Agent (UA)- клиент, который регистрируется на прокси-сервере
Proxy – сервер, на котором регистрируются внешние UA

Одна виртуальная плата PROMG дает нам 124, помним что один забран на 34 код отбоя.

Пример/памятка настройки
 
настройка  SIP-транков  производится  с помощью виртуальных SIP портов.
Здесь у нас 2 транк-группы объявлены, на 1 и 123 порта

PCM [121] { PROFIL = 27              // TYPE PCM = PCM_IP
        }
        AIR [1] { PROFIL = 28             // AIR TYPE = AIR_IP   ---Тип  виртуального контейнера  должен быть
            PORT [1] { PROFIL = 29       // SIG = SIG_SIP         ---Тип портов должен быть
                GROUP = 24
            }
            PORT [2-124] { PROFIL = 30       // SIG = SIG_SIP
                GROUP = 25
            }
        }


-------------------------------------------------------------------

    PROFIL [27] { TYPE = PCM_IP
    }
    PROFIL [28] { TYPE = AIR_IP      --- виртуального контейнер
    }
    PROFIL [29] { TYPE = SIG_SIP    --- Тип портов
        IPPcmNo = 121                        --- отвечает за привязку к потоку
        nLocalUDPPort = 5001
        remoteIP = "192.168.137.116"
        username = "cgsg"
    }
    PROFIL [30] { TYPE = SIG_SIP
        IPPcmNo = 121
        fDetectDtmf = YES
        fDetectFax = YES
        fEnableT38 = YES
        fRegisterInProxy = NO    --- процедура авторизации
        nLocalUDPPort = 5060    --- локальный порт сиг-ии
        nOutDTMFtype = 2         --- метод передачи DTMF сигнало в. 0 – inband, 1 -  sip info, 2 – rfc2833
        nRemoteUDPPort = 5061      --- удаленный порт сиг-ии
        remoteIP = "8.9.10.11"            --- огрничиваем адреса регистрации
        username = "aster-test"
    }

----------------------------------------------------------------

    GROUP [24] { ROUTE = 2 }
    GROUP [25] { ROUTE = 41 }


----------------------------------------------------------------

    }
    ROUTE [2] { NAME = "block_all"
        RECORD "?????????????????????????????????????????" 41
    }

   }
    ROUTE [41] { NAME = "test_sip"
        RECORD "4951234567" 14
    }


----------------------------------------------------------------
Привязка  виртуального  слота  к  слото-месту  в  конфигурационном  пространстве  коммутатора

/ATS/SYSCONFIG/ifcfg-eth2

DEVICE=eth2
BOOTPROTO=static
MACADDR=00:00:aa:aa:1f:1f --- 31 -> 31*4 = 124 - 4 потока 121,122,123,124
ONBOOT=yes
METRIC=5
MII_NOT_SUPPORTED=no
USERCTL=no
RESOLV_MODS=no
IPV6INIT=no
IPV6TO4INIT=no


----------------------------------------



В Bash подключившись после активации промга, мы должны его увидеть:

atsuser@211.254:~ ->telnet localhost 33333

[2019-03-05 09:20:30] PLATA 512-PA-SORM (16) Motor 6.10.33 SER 11.10308 [Synchro Up]
[2019-03-05 09:20:30] PLATA 512-PA (17) Motor 6.10.33 SER 11.11339 [Synchro Up]
[2019-03-05 09:20:30] PLATA 512-PA (18) Motor 6.10.33 SER 11.11335 [Synchro Up]
[2019-03-05 09:20:30] PLATA 512-PA (19) Motor 6.10.33 SER 11.11343 [Synchro Up]
[2019-03-05 09:20:30] PLATA 512-PA (20) Motor 6.10.33 SER 11.11334 [Synchro Up]
[2019-03-05 09:20:30] PROMG0 (31) (gcc 4.9.2) Motor 6.10.46 SER 00.00126 [Synchro Up]
[2019-03-05 09:20:30] PLATES ONLINE = 21


------------------------------------------
Контроль/проверка состояния

Команду давать в териминале, а не в Bash Linux

>sipstate
PROVIDER-SIP(cgsg)(769/1) State: A_Registering 31:5001 -> T(1) D(0) SL:<r>
PROVIDER-SIP(Фыеукшыл)(769/2) State: A_Idle 31:5060 -> 8.9.10.11:5061 T(0) D(0) SL:<>;
Done

 
 

--------------------------------------------
Контроль виртуальных плат осуществляется командой ‘virtman’

>virtman
plata 31 index 0 wanip 10.20.120.140 count 124 used <all:3 ip:3 conf:0>
Done


У нас одна виртуальная плата на 124 канала

---------------------------------------------
PROMG - это програмный комплекс, в рамках АТС он видится как ТЭЗ:

 Администрирование выглядит следующим образом:

 Мониторинг SIP

Жмем на беленький квадрат и попадаем

 Вот в таком виде выглядят каналы:

04/03/2019

AddPac: нюансы с ДВО и приоритеты в пирах


Узнал нюанс с программированием ДВО, обычно у меня на шлюзах два диал-пира один на Н323 и один на SIP

!
dial-peer voice 100 voip
 destination-pattern 000T
 session target {ip-addr} 
 voice-class codec 1
 no vad      
 dtmf-relay h245-alphanumeric
 translate-outgoing called-number 2
 translate-outgoing calling-number 0
 fax protocol t38 redundancy 2
 fax rate 9600
!
dial-peer voice 200 voip
 destination-pattern T
 session target {ip-addr} 
 session protocol sip
 voice-class codec 1
 no vad
 dtmf-relay rtp-2833
 translate-outgoing called-number 4
 preference 1
 huntstop

 fax protocol t38 redundancy 2
 fax rate 9600

 
Я выделил три пункта, чтобы работали ДВО
В чем проблема
1) когда идет с префиксом вызов как в 100 пире, то шлюз не может ассоциировать номер ни с одним прописаном на портах пиром. т.к. у нас номера 100, 101 и тд, а прилетает 000100 001101 и так далее
2) А второе, это то что при таком ключе аддпак не ассоциирует связь DTMF по RFC2833, т.е. он не видит в голосе ее, а при установленном соединении он не может менять, такое правда только на APOS G1, но учитывать надо
3) Обходим это тем что пир по SIP делаем без префикса, но тут выходит то что в него приходят все вызовы и чтобы не потерять и попадали бы звонки по Н323 мы уменьшаем приоритет, делаем:
     А) больший номер пира(200 против 100).
     Б) По очереди опускаем ниже: preference 1
     В) Останавливаем на нем поиск, делая конечным пунктом: huntstop

На этом все!

M200: 34 код вместо 21


Возникла проблема как то раз с одним оператором, не лично ее решал, но лично с ней разбирался. Краткая суть, встречный оператор, который лил на нас трафик, жалуется что неуспешные вызовы М-200 отбивает 21 кодом

21 это у нас SUBSCRIBER_ABSENT
По описанию Q.931
Вызываемая сторона недоступна, установление связи невозможно или вызываемый абонент временно недоступен в сети.

Оператор просил присылать 34 код:

NORMAL_CIRCUIT_CONGESTION
Нет доступного маршрута/канала.
Подходящий маршрут/канал для принятия вызова в данный момент недоступен.

По информации от оператора их биллинг система не реагирует на этот код и не обнуляет счет, подвесание вызовов и может еще что-то. Проблема в том что для нас это оказалось проблематичным т.к. в М-200 есть дефолтное направление ERROR и в нем можно выбирать код отбоя:


Фишка в том что оно не работает и всегда выдает 3 код, почему я не знаю, МОТОР был уже самый последний на тот момент и работать должно было, но не судьба :(

Делаем такой финт ушами:

1) Заводим направление на отбой:


2) В таблице маршрутизации для оператора ставим его:


3) Самое интересное, вешаем это направление на SIP транк:


Как видим, завели на левый ip с левым login, как попадет в наше направление, то сразу отбивается 34ым кодом и нет проблем.

В АТС по дефолту есть 122 SIP-канала, одним можно спокойно пожертвовать.

Неизвестное и непозннаное или Москве запретили майнинг

 Сначала сама новость: Внесены изменения в перечень запрета на осуществление майнинга цифровой валюты (в том числе участие в майнинг-пуле) в...