четверг, 22 августа 2019 г.

sip 481 call/transaction does not exist

        sip 481 call/transaction does not exist - выдается в случае если АТС не получила запрос BYE, который не соответствует любому существующему вызову или же softswitch получил запрос CANCEL, оторый не соответствует текущей сессии

Вообще из теории:
  • 4xx: Ошибка Клиента (Client Error) – запрос имеет некорректный синтаксис(информацию) или запрос не может быть выполнен на данном сервере;

  • У меня было такое к примеру:
          В данном случае оказалось банально, клиент сменил роутер и шлюз был не доступен за NAT, но так как был без регистрации, АТС пыталась до него достучатся.

    среда, 21 августа 2019 г.

    voipmonitor: что это?

         voipmonitor - опенсорс снифер/мониторинг(статистика и дампы вызовов) VoIP трафика по протоколу SIP становится популярном и стоящим внимания. обратил внимание на него и я, решил поставить на Убунту 16.04

    К слову, вот он-лайн демо:

    http://www.voipmonitor.org/demo/admin.php

    Подробный вызов и что уникально, обещают запись разговора в онлайн режиме, приятный и интуитивно понятный интерфейс без наворотов.

    На сайте есть подробная инструкция для убунту:

    Добавляем репозиторий:

    apt-get install software-properties-common
    add-apt-repository ppa:ondrej/php
    add-apt-repository ppa:ondrej/php5-compat
    apt-get update
     
    Инсталим веб для него
     
    apt-get -y install php5.6 php5.6-gd php5.6-mysql php5.6-cli apache2 php-gettext php5.6-mbstring libapache2-mod-php5.6 php5.6-mcrypt php5.6-xml php5.6-zip unzip
    wget http://voipmonitor.org/ioncube/x86_64/ioncube_loader_lin_5.6.so -O /usr/lib/php/20131226/ioncube_loader_lin_5.6.so
    echo "zend_extension = /usr/lib/php/20131226/ioncube_loader_lin_5.6.so" > /etc/php/5.6/apache2/conf.d/01-ioncube.ini
    echo "zend_extension = /usr/lib/php/20131226/ioncube_loader_lin_5.6.so" > /etc/php/5.6/cli/conf.d/01-ioncube.ini
    service apache2 restart
     
    Ставим БД и задаем пароли:
     
    apt-get -y install  tshark mtr librsvg2-bin gsfonts mysql-server
     
    Качаем библиотеку для него и бинарники(все одним архивом)
     
    cd /usr/src/
    wget --content-disposition http://www.voipmonitor.org/current-stable-sniffer-static-64bit.tar.gz
    tar xzf voipmonitor*.tar.gz
    cd voipmonitor*   -- хитро указали, когда я ставил, был такой voipmonitor-amd64-25.5-static.tar.gz
    ./install-script.sh
    #You should edit /etc/voipmonitor.conf and set properly at least interface option and mysql password option 
     
    Рестартуем
     
    systemctl enable voipmonitor
    systemctl start voipmonitor
     
    Веб морда:
     
    cd /var/www/html
    # FOR PHP 5.6 and 7.0 !
    wget "http://www.voipmonitor.org/download-gui?version=latest&major=5&phpver=56&festry" -O w.tar.gz
    # FOR PHP 7.1 !
    wget "http://www.voipmonitor.org/download-gui?version=latest&major=5&phpver=71&festry" -O w.tar.gz
    
    tar xzf w.tar.gz
    mv voipmonitor-gui*/* ./
    rm -f index.html
    mkdir /var/spool/voipmonitor/
    chown www-data /var/spool/voipmonitor/
    wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/0.10.0_rc2/wkhtmltoimage-x86_64 -O "/var/www/html/bin/wkhtmltoimage-x86_64"
    chmod +x "/var/www/html/bin/wkhtmltoimage-x86_64"
    wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/0.10.0_rc2/wkhtmltopdf-x86_64 -O "/var/www/html/bin/wkhtmltopdf-x86_64"
    chmod +x "/var/www/html/bin/wkhtmltopdf-x86_64"
    chown -R www-data /var/www 
     
    Добавляем задачу в Крон

    echo " * * * * * root php /var/www/html/php/run.php cron" >> /etc/crontab
    kill -HUP `pgrep cron`
     
    Если все верно, то увидим следующее: 
    Принимаем и идем дальше:
     
    После выдаст справку что ок, а что нет:
    Как видим нет лицензии и нет связки с БД, базу установили, но саму базу для него не создавал(в низу есть поля имя базы, логин, пароль)

    Базу делаем самым простым способом:

    root@voipmonitor:/var/www/html# mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 985
    Server version: 5.7.27-0ubuntu0.16.04.1 (Ubuntu)

    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.

    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

    mysql> CREATE DATABASE voipmonitor;
    Query OK, 1 row affected (0,01 sec)

    mysql> quit;
    Bye


    Проверяем:
    Теперь переходим к лицензии:
    но не спеши, пробная лицензия на 30 дней, потом надо платит или урезанный на сколько не знаю функционал, так что пока подожду, душу греет уж то чтоесть рядом он))

    вторник, 20 августа 2019 г.

    Linux: подключаем новый жесткий для себя любимого

    Ставлю я себе новый диск и хочу его при монтировать, но тут появилась супер идея: а что если выделить весь этот дикс под /home.
    И вот как это делаем:

    Смотрим сейчас разделы

    df -h

    Файл.система   Размер Использовано  Дост Использовано% Cмонтировано в
    udev             3,9G            0  3,9G            0% /dev
    tmpfs            786M         9,6M  777M            2% /run
    /dev/sda1         70G          60G  6,3G           91% /
    tmpfs            3,9G         101M  3,8G            3% /dev/shm
    tmpfs            5,0M         4,0K  5,0M            1% /run/lock
    tmpfs            3,9G            0  3,9G            0% /sys/fs/cgroup


    Смотрим диски, если наш подключен, то мы его увидим, если нет, то смотри физику:

    ll /dev/ |grep sd
    brw-rw----   1 root disk        8,   0 авг 20 15:48 sda
    brw-rw----   1 root disk        8,   1 авг 20 15:48 sda1
    brw-rw----   1 root disk        8,   2 авг 20 15:48 sda2
    brw-rw----   1 root disk        8,   5 авг 20 15:48 sda5
    brw-rw----   1 root disk        8,  16 авг 20 15:48 sdb
    brw-rw----   1 root disk        8,  17 авг 20 15:48 sdb1


    Монтируем его в /mnt - и вот тут с ним будем химичить

    mount /dev/sdb1 /mnt/

    теперь делаем вот такую вещь, мы копируем /home/user в /mnt,
    а потом из /mnt монтируем в /home

          Прелесть линукса в том что тут нет привязки к разделам, а все есть
    точки монтирование т.е. каждую точку монтирования можно вынести на свой диск/хранилище/и др.
           Есть у меня /var/log и на нем много чего  в отдельный диск и все туда и к нему доступы, на виндовс такое до последнего нельзя было и только появляется по рассказам, но как-то костляво.
           Поехали дальше:

        Скопировав проверяем права и правим чтоб был не root, а после отмонтируем:

    chown user. -R /mnt/user (R -рекурсивно, а тчк - это и группа как имя)
    umount /mnt

    Теперь монтируем

    mount /dev/sdb1 /home/

         Казалось бы все ок, но надо чтобы все сохранилось после перезагрузки
    а для этого нам надо править файл /etc/fstab:

    # / was on /dev/sda1 during installation
    UUID=d1798c3d-c8d4-4391-bd9b-81d7debb3832 /               ext4    errors=remount-ro 0       1
    # swap was on /dev/sda5 during installation
    UUID=a5300ffe-ad15-4f3f-a34c-47a0a437814a none            swap    sw              0       0
    # /home/cherkas /dev/sdb1 147 GB
    UUID=aa23feb2-0723-4f72-a419-1d5a35b36dc6 /home/        ext4    defaults        0       2


    Я добавил последнюю строчку:

    1) UUID=aa23feb2-0723-4f72-a419-1d5a35b36dc6 мой жесткий
        узнаем командой blkid /dev/sdb1

    2) Прописали раздел /home/ не /home/Пользователь - иначе не загрузится,
        мы ведь по сути добавляем раздел в /home/

    3) Поле options, много чего, я выставил defaults = rw, suid, dev, exec, auto,
        nouser, async -- все что только может пригодится, если не знаешь что
        надо, то ставь ее

    4) 0 2 1ый ноль - не делать дамп(я и не делал никогда автоматически)
              2ой ноль - очередь загрузки, 1ый есть, айда 2ым, очевидно, есть
              нюанс конечно 1 - это всегда корневой, а 2 - остальные, 3,4,5 - нету
              ну а 0 - это не загружать(swap, странно было бы если бы его грузили).

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

    понедельник, 19 августа 2019 г.

    Что мы знаем о линии, когда на ней шумы

     Понабрал я данных по абонентским линия везде по маленьку.

    Абонентская линия это линия связи, соединяющая пользовательское (оконечное) оборудование с узлом связи сети передачи данных.
    Абонентская линия имеет следующие параметры:

    1) Собственное затухание на частоте 1020 Гц должно быть не более 4,5 дБ для кабеля с диаметром провода 0,5 мм и не более 3,5 дБ для кабеля с диаметром провода 0,32 мм.

    2) Переходное затухание между двумя абонентскими линиями на ближнем конце (относящемся к АТС) должно быть меньше чем 69,5 дБ на частоте 1020 Гц.

    Должна быть обеспечена работа с аналоговым абонентским устройством, используя сигналы взаимодействия при сопротивлении абонентского шлейфа, включая полное сопротивление абонентской установки, до 1800 Ом.


      Удельное сопротивление токопроводящей медной жилы (Ом/км) многопарных кабелей местной телефонной связи
    Диаметр токопроводящей жилы, мм Электрическое сопротивление токопроводящей жилы, Ом, не более Примечание
    0,32
    0,40
    0,50
    0,64
    229,0
    148,0
    96,0
    58,0
    Сопротивление токопроводящей медной жилы, пересчитанное на 1 км длины при температуре 200С
    Удельное сопротивление токопроводящей медной жилы (Ом/км) для проводов абонентской разводки (максимальное сопротивление)
    Диаметр жилы, мм Сопротивление цепи, Ом, не более Примечание
    0,32
    0,40
    0,50
    0,64
    458,0
    296,0
    192,0
    116,0
    Сопротивление токопроводящей медной жилы, пересчитанное на 1 км длины при температуре 20 градусов по Цельсию.

    Штатное сопротивление порта на Элтексе серии TAU: 3,4 кОм

    Европейские рекомендации по аб. линии  МСЭ-Т Q.512 и I.412

    Пример порта Eltex(тестирование встроенными средствами):

    Порт   18
    Номер 19578   
    Состояние Idle    
    Состояние после тестирования OK   
    Результат теста OK

    0.53            Ub, B – величина постороннего нап-ия на проводе В(Ring)
    0.16            Ua, B – величина постороннего нап-ия на проводе А(Ring)
    -49.07         Ubat, B – напряжение питания батареи
    nan             Uring, B – напряжение питания линии
    1092.23      Rab, кОм – соп-ие между проводами А (Tip) и В (Ring)
    584.67        Ra, кОм – соп-ие между проводом А (Tip) и «землей» (GND)
    549.81        Rb, кОм – соп-ие между проводом B (Ring) и «землей» (GND)
    1.05           Сab, мкФ – емкость между проводами А (Tip) и В (Ring)
    0.62           Сa, мкФ – емкость между проводом А (Tip) и «землей» (GND)
    1.49           Сb, мкФ – емкость между проводом R(Ring) и «землей» (GND)

    Казалось бы, а при чем тут шумы?

    Так вот при спаренном аппарате появляются шумы, как звук старого телевизора, если линяя старая, то опять от неё шумы. Вот порт Авайи дает большее усиление и на нем шумов нет, а на Элтексе(более бюджетен) все сразу вылазит и ничего с эти не сделать

    К слову, про порты Авайи:

    An impedance range of Rs: 215 - 300 ohms; Rp: 750 - 1000 ohms; Cp: 115 - 220pF
    A ringing frequency range of 20, 25, or 50 Hz
    A DC current range of 20 - 60 mA
    A hook flash range of 90 ms - 1000 ms

    понедельник, 12 августа 2019 г.

    Вот так фирма, вот так сайт


           Нашел супер ресурс для проверки доступности мобильных номеров:

    Вот так смотрится удачный и не удачный.

    Что за компания не понял, на сайте есть аглицкий и германский, но через /ru можно получить русский, причем проверка мобильного только на русском.
    Что интересно, не вижу по ним лицензий на оказание услуг связи, но при этом есть тарифы на МН:
    И при этом их номер принадлежит не им а провайдеру АВАНТЕЛ + они торгуют всяким дополнительным для Астериска и вообще ip-телефонии:
    Еще у них есть переделка а-ля своя АТС: MetPBX

    Ярко выраженный интерфейс FreePBX v 2.9(весьма старая)
        Как видим  в основном смена только цветов и логотипа - что самое простое и можете сделать сами при минимальном опыте


    четверг, 8 августа 2019 г.

    sipgrep: как grep, только sipgrep

             Весьма функциональный и достаточно мощный инструмент от разработчиков HOMERа поддержка pcap для отслеживания, захвата, отображения и диагностики неполадок SIP-сигнализации по IP-сетям, позволяющий пользователю указывать расширенные регулярные выражения
           Похож на grep, но только sipgrep т.е. мы имеем grep утилиту по SIP-пакетам

    Ставлю:

    cd /usr/src
    git clone https://github.com/sipcapture/sipgrep.git

    Склонировали, если не вышло, то обновляйте GIT, особенно на старой CentOS.

    Ставим

    cd sipgrep
    ./build.sh
    ./configure
    make && make install

    Вот тут и пошло все криво
    Сначала выдало:

    configure: error: sipgrep requires but cannot find libpcap

    Решил:

    [root@localhost sipgrep]# yum install libpcap*

    Делайте так, там не одина билиотека libpcap, а с ней еще идет libpcap-devel

    Потом пожаловался вот на это:

    configure: error: Could not find pcre headers !

    Это библиотека регулярных выражений Перла

    Тоже просто: yum install pcre-devel

    И после этого прошел скрипт конфигурации

    И выполнили мейк инсталл
    ВАЖНО:

    sipgrep -h
    usage: sipgrep <-ahNViwgGJpevxlDTRMmqCJjxK> <-IO pcap_dump> <-n num> <-d dev> <-A num>
                 <-s snaplen> <-S limitlen> <-c contact user> <-j user agent>
             <-f from user>  <-t to user> <-H capture url> <-q autostop cond.>
             <-Q split cond.> <-P portrange> <-F file> <-z duration>
             <match expression> <bpf filter>
       -h  is help/usage
       -V  is version information
       -e  is show empty packets
       -i  is ignore case
       -x  is disable bad parsing notification
       -v  is invert match
       -R  is don't do privilege revocation logic
       -w  is word-regex (expression must match as a word)
       -p  is don't go into promiscuous mode
       -l  is make stdout line buffered
       -D  is replay pcap_dumps with their recorded time intervals
       -T  is print delta timestamp every time a packet is matched
       -m  is don't do dialog match
       -M  is don't do multi-line match (do single-line match instead)
       -I  is read packet stream from pcap format file pcap_dump
       -O  is dump matched packets in pcap format to pcap_dump
       -n  is look at only num packets
       -A  is dump num packets after a match
       -s  is set the bpf caplen
       -S  is set the limitlen on matched packets
       -C  is no colors in stdout
       -c  is search user in Contact: header
       -f  is search user in From: header
       -t  is search user in To: header
       -F  is read the bpf filter from the specified file
       -H  is homer sipcapture URL (i.e. udp:10.0.0.1:9061)
       -N  is show sub protocol number
       -g  is disabled clean up dialogs during trace
       -G  is print dialog report during clean up
       -J  is kill friendly scanner automatically
       -j  is kill friendly scanner automatically matching user agent string
       -K  is kill friendly scanner providing IP and port/portrange i.e.: 10.0.0.1:5060-5090
       -q  is auto stop condition:
            duration:NUM - stop after NUM seconds
            filesize:NUM - stop this file after NUM KB
       -Q  is pcap_dump split condition:
            duration:NUM - switch to next file after NUM secs
            filesize:NUM - switch to next file after NUM KB
       -a  is disable packet re-assemblation
       -P  is use specified portrange instead of default 5060-5061
       -d  is use specified device instead of the pcap default
       -z  is make statistics count maximum <duration> seconds

    У меня особенно не пошел, так как и так хватает TCPDump, Tshark, SNGrep

    Но всегда приятно когда есть еще один инструмент.

    Если нихотите мучаться, то ставьте как я Убунту и apt install sipgrep и все
    На десктоп версии все есть и библиотеки и по дефолту в репозиториях и все что хотите, а на серверных придется разбираться подробнее и понимать что творишь в системе.

    Примеры:

    Показать всю SIP-сигнализацию

    sipgrep -d any

    От user 1234567

    sipgrep -f 2323232

    По коду сообщения в пакете

    sipgrep '^SIP/2.0 603' -m

    Показывать только сообщения OPTIONS and NOTIFY в отчете
    sipgrep '^(OPTIONS|NOTIFY)'

    Разработчики пишут что можно аж так, носам еще не протестировал такой функционал

    #Kill friendly-scanner
    sipgrep -J
    
    #Kill friendly-scanner with custom UAC
    sipgrep -j sipvicious

    #collect all Calls/Regisrations untill pcap_dump smaller than 20 KB.
    sipgrep -q 'filesize:20' -O sipgrep.pcap
    
    #collect all Calls/Regisrations dialogs during 120 seconds, print reports and exit.
    sipgrep -g -G -q 'duration:120'
    
    #split pcap_dump to 20 KB files in sipgrep_INDEX_YYYYMMDDHHMM.pcap
    sipgrep -Q 'filesize:20' -O sipgrep.pcap
    
    #split pcap_dump in sipgrep_INDEX_YYYYMMDDHHMM.pcap each 120 seconds
    sipgrep -Q 'duration:120' -O sipgrep.pcap
    
























    понедельник, 5 августа 2019 г.

    DOCKER: заметки на полях







         Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации. Позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, который может быть перенесён на любую Linux-систему с поддержкой cgroups в ядре, а также предоставляет среду по управлению контейнерами. Изначально использовал возможности LXC, с 2015 года применял собственную библиотеку, абстрагирующую виртуализационные возможности ядра Linux — libcontainer. Это то что почерпнули из ВИКИ.
          По сути это ПО для управления LXC, которое теперь может не только LXC. Выглядит разница с "обычной" виртуалкой(Аппаратный уровень) так:

    Теперь тупым языком.

          Виртуалка в любом слычае жрет много как ни оптимизирую, в ней полноценная ОС и ей нужно железно памяти, а тебе на ней нужно одно приложение. Разумно было подумать чтобы как нибудь упростить и начать экономить ресурсы. И такое придумали, изначально был chroot( менял корневой коталог программы), а потом дошло и до Докера. По сути мы имеем папочку в которую все упаковано - под все подразумевается, все что нужно для конкретной программы, не вся ОС, а лишь необходимое и этим всем можно оперативно обмениваться, в виртуалках приходилось передавать файлы как с компа на комп, не смотря на то что здесь они все были на одном диски(мы проходим по всем уровням ВОС), то тут нет такого ограничения:

    Как мы видим контейнер доступен как для чтения так и записи и при запуске он разворачивает так называемое "пространство процессов" в котором и работаем, если нам надо оставить после выключения все изменения то надо записать их, создав тем самым новый слой, как и что запускать все расписываем в Dockerfile
    Хорошая статья что и как: https://habr.com/ru/post/272145/

    Ставится как и все в Линукс просто

    sudo apt install docker
    И сразу видим его в сетевых интерфейсах
       Есть собственный репозиторий, куда можно добавлять и свои образы в них можно покопаться и посмотреть что предлагают:
    И поставить с него:

        Можно и что-нибудь для начала более простое, к примеру самое базовое во всем:
         Ну или Убунту в убунте:

    Памятка по командам:
    Замечено мной что уже все больше и больше под доке идет образов на GitHab и GitLib

    Популярно такое решение в области разработке и тестирования приложений, но как вариант виртуальных клиентских станций, тоже весьма интересен, хотя тут лучше наверное будет чистый LXC

    пятница, 2 августа 2019 г.

    HOMER: как ставил себе на CentOS



         Эта опен-сорс система призвана облегчить инженерам поиск и устранение неисправностей в VoIP-сетях при помощи записи и дальнейшего анализа и визуализации SIP-сигнализации между узлами и детальный просмотр всех  записанных SIP-сообщений. Решение позволяет сохранять выгружать SIP-трейсы вызовов в виде pcap дампов или текстовых файлов. Еще одним преимуществом решения является возможность разнесения компонентов системы по разным узлам, что позволяет масштабировать систему.
            Вот что я про неё узнал, показывал её один из создателей и сотрудников SIPCAPTURE() еще в 2017. Решил поделиться заметкой по тому как ставил ее и ощущения

    В составе Homer входят три основные подсистемы:
    • HOMER CAPTURE AGENT – агент захватывает трафик из VoIP-сети, копирует и инкапсулирует  SIP и RTCP пакеты  при помощи протокола HEP/EPP и передаёт их на CAPTURE SERVER, причём агент может представлять из себя как модуль для SIP-сервера (Asterisk, Freeswith, Kamailio,OpenSIPS), так и сервис захвата «сырого» трафика с сетевого интерфейса, который может зеркалироваться с порта(-ов) ethernet-коммутатора куда подключен SIP-сервер (например, модуль транзита трафика РТУ МТТ) на порт(-ы) CAPTURE AGENT. 
    • HOMER CAPTURE SERVER – сервер на базе SIP маршрутизатора Kamailio с базой данных MySQL, где аккумулируется и хранятся SIP и RTCP пакеты полученные от CAPTURE AGENT
    • HOMER USER INTERFACE – веб-интерфейс для поиска, анализа и визуализации SIP-трейсов которые хранятся в CAPTURE SERVER.
     Вот последние два и будем ставить , а про агента расскажу отдельно.

    Ставлю с GIT: https://github.com/sipcapture/

    Сначала скачал образ CentOS: https://www.centos.org/download/
     обязательно 7 версия(у меня уже была 7.6)


    Напомню, сеть настраиваем в:
    vi /etc/sysconfig/network-scripts/ifcfg-ens18 
    service network restart

    Не забываем
    Качаем и запускаем скрипт:

    cd /usr/src
    wget https://cdn.rawgit.com/sipcapture/homer-installer/master/homer_installer.sh
    chmod +x homer_installer.sh
    ./homer_installer.sh
     
    Не поехал и сказал в чем проблема.
    Просто поставить не выйдет, надо ставить так, бесплатно даю совет:
     
    yum provides */lsb_release
    yum install redhat-lsb-core

    И пускаем повторно:
    Ура, поехало!
    И после ввода всех данных получаем памятку:

    User    Organization    Bucket
    homer    ncp        ncp
    *************************************************************
          ,;;;;,                                                
         ;;;;;;;;.     Congratulations! HOMER has been installed!
       ;;;;;;;;;;;;                                             
      ;;;;  ;;  ;;;;   <--------------- INVITE ---------------  
      ;;;;  ;;  ;;;;    --------------- 200 OK ---------------> 
      ;;;;  ..  ;;;;                                            
      ;;;;      ;;;;   Your system should be now ready to rock!
      ;;;;  ;;  ;;;;   Please verify/complete the configuration 
      ,;;;  ;;  ;;;;   files generated by the installer below.  
       ;;;;;;;;;;;;                                             
        :;;;;;;;;;     THIS SCRIPT IS PROVIDED AS-IS, USE AT    
         ;;;;;;;;      YOUR *OWN* RISK, REVIEW LICENSE & DOCS   
                                                                
    *************************************************************

         * Verify configuration for HOMER-API:
             '/api/configuration.php'
             '/api/preferences.php'

         * Start/stop Homer SIP Capture:
             'systemtcl start|stop heplify'

         * Access HOMER UI:
             http://[IP-ADDRESS]
             [default: admin/sipcapture]

         * Send HEP/EEP Encapsulated Packets:
             hep://
    [IP-ADDRESS]:9060

         * Access INFLUXDB UI:
             http://
    [IP-ADDRESS]:9999
         * Configure Scapper in Influxdb with URL:
             http://
    [IP-ADDRESS]:9096

    **************************************************************

     IMPORTANT: Do not forget to send Homer node some traffic! ;)
     For our capture agents, visit http://github.com/sipcapture
     For more help and information visit: http://sipcapture.org

    **************************************************************
     Installer Log saved to: /tmp/homer_installer.sh.10913.log

    [root@localhost src]#


    Выделил лог где история установки и как выдержка:

    Зависимости определены

    ================================================================================
     Package             Архитектура
                                    Версия                        Репозиторий
                                                                              Размер
    ================================================================================
    Установка:
     cmake               x86_64     2.8.12.2-2.el7                base        7.1 M
     epel-release        noarch     7-11                          extras       15 k
     gcc                 x86_64     4.8.5-36.el7_6.2              updates      16 M
     gcc-c++             x86_64     4.8.5-36.el7_6.2              updates     7.2 M
     mlocate             x86_64     0.26-8.el7                    base        113 k
     net-tools           x86_64     2.0-0.24.20131004git.el7      base        306 k
     ntp                 x86_64     4.2.6p5-28.el7.centos         base        549 k
     yum-utils           noarch     1.1.31-50.el7                 base        121 k
    Установка зависимостей:
     autogen-libopts     x86_64     5.18-5.el7                    base         66 k
     cpp                 x86_64     4.8.5-36.el7_6.2              updates     5.9 M
     glibc-devel         x86_64     2.17-260.el7_6.6              updates     1.1 M
     glibc-headers       x86_64     2.17-260.el7_6.6              updates     684 k
     kernel-headers      x86_64     3.10.0-957.27.2.el7           updates     8.0 M
     libarchive          x86_64     3.1.2-10.el7_2                base        318 k
     libmpc              x86_64     1.0.1-3.el7                   base         51 k
     libstdc++-devel     x86_64     4.8.5-36.el7_6.2              updates     1.5 M
     libxml2-python      x86_64     2.9.1-6.el7_2.3               base        247 k
     mpfr                x86_64     3.1.1-4.el7                   base        203 k
     ntpdate             x86_64     4.2.6p5-28.el7.centos         base         86 k
     python-chardet      noarch     2.2.1-1.el7_1                 base        227 k
     python-kitchen      noarch     1.1.1-5.el7                   base        267 k

    Итого за операцию
    ================================================================================
    Установить  8 пакетов (+13 зависимых)

    Объем загрузки: 50 M
    Объем изменений: 119 M


    После этого идет в веб и вбиваем данные, которые установили:
    Заходим и видим базовую форму:


    Визуализация работы:


           Хорошие GIF иллюстрирующие работу, ПО обеслатон , есть платная версия - больше датчиков, тригерров + могут под ваши нужды делать какие-нить аплеиты и т. д.
            Мне понравилась сама идея, пишем всю сигнализацию и постоянна, а как жалуются смотрим, то смотрим и тут же видно что и как. Обычно идет так:
    обращаются ---> пишим дамп ---> повторяем ситуацию --->
    остонавливаем дамп ---> качаем дамп ---> разбираемся --->
    при необходимости повторяем ---> PROFIT!!!

    Описание с сайта:

    Capture Server
    • Высокая производительность – тысячи пакетов в секунду
    • Поддержка нескольких баз данных
    • Мощный пользовательский интерфейс для поиска и фильтрации
    • Визуальные диалоги SIP  и возможность их вызгрузки в pcap-файлы
    • Графики со статистикой и аналитикой
    • Поддержка REST API и виджетов
    • Авторизация пользователей по RADIUS и LDAP
    • Angular/JS интерфейс пользователя
    Capture Agent
    • HEP3 инкапсуляция
    • Шифрование и сжатие содержимого
    • Модульный дизайн
    • SIP,RTP/RTCP,Журналы,CDRs
    • Поддержка TLS
    • Высокопроизводительный
    • Поддержка Linux,Solaris,BSD/OSX,Win32
    Функции  Ядра
    • Протокол HEP/EEP
    • SIP-сигналинг
    • WebRTC-сигналинг
    • Протокол RTCP
    • Протокол RTCP-XR
    • Коллектор журналов
    • Гео-меппинг
    • Поддержка Docker

            Сейчас к слову можно качать прямо для Докера образ
            Система не проста, должен хорошо понимать что хочешь и как делать... и да же чем делать, с нахрапа не возьмешь и встанешь в начале сразу.



























    четверг, 1 августа 2019 г.

    Интересная связка Asterisk + Docker


              Натолкнулся давеча на такой проект, как раз занимаясь изучением Докера и понял что это самое то что искал:

    https://github.com/dougbtv/docker-asterisk

     Dockerfile в корневом каталоге - Asterisk 11 и ставится командой  

    docker pull dougbtv/asterisk
      
    Запускаем с хоста командойtools/asterisk-cli.sh (даст консоль)

    В скрипте написано:


    NAME_ASTERISK=asterisk
    NAME_FASTAGI=fastagi
    
    # Запускаем контейнер fastagi
    docker run \
        -p 4573:4573 \
        --name $NAME_FASTAGI \
        -d -t dougbtv/fastagi
    
    # Run the main asterisk container.
    docker run \
        --name $NAME_ASTERISK \
        --net=host \
        -d -t dougbtv/asterisk

     Рекомендуют запускать как:
    docker run \
        --name $NAME_ASTERISK \
        --net=host \
        -v $(pwd)/test/example/:/etc/asterisk/ \
        -d -t dougbtv/asterisk
    Памятка по структуре файлов:

    |-- Dockerfile
    |-- extensions.conf
    |-- fastagi/
    |   |-- agiLaunch.sh
    |   |-- agi.php
    |   |-- Dockerfile
    |   `-- xinetd_agi
    |-- iax.conf
    |-- modules.conf
    |-- README.md
    `-- tools/
        |-- asterisk-cli.sh
        |-- clean.sh
        `-- run.sh

    В корневом каталоге:
    • Dockerfileбазовый файл для создания образа dockerhub dougbtv/asterisk
    • extensions.conf файл диалплана
    • iax.conf пример iax.conf, который устанавливает клиента IAX2 (для тестирования, действительно)
    fastagi/:
    • Dockerfile создает образ Docker, который запускает xinetd
    • xinetd_agi конфигурация для запуска xinetd agiLaunch.sh
    • agiLaunch.sh скрипт оболочки для запуска нашего процесса xinetd (скрипт php)
    • agi.php пример сценария AGI, замените его вашими основными процессами AGI php
    В tools/каталоге находятся некоторые утилиты, которые я использую снова и снова:
    • asterisk-cli.shзапускает nsenterкоманду (примечание: имя изображения должно содержать «звездочку», чтобы его можно было обнаружить, достаточно легко изменить в соответствии с вашими потребностями)
    • clean.sh убивает все контейнеры и удаляет их.
    • run.sh предлагаемый способ запуска контейнера Docker.
    Запустил так сначала:

    docker images dougbtv/asterisk13
    REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
    dougbtv/asterisk13   latest              e3ec0fab17b9        23 months ago       1.33GB


     docker run dougbtv/asterisk13

    А потом смотрим и заходим:

    docker container ls

    CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS               NAMES
    4a78c23e487f        dougbtv/asterisk13   "/bin/sh -c 'aster..."   53 seconds ago      Up 51 seconds                           xenodochial_kalam


    docker exec -it 4a78c23e487f bash


    bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
    bash: warning: setlocale: LC_COLLATE: cannot change locale (en_US.UTF-8): No such file or directory
    bash: warning: setlocale: LC_MESSAGES: cannot change locale (en_US.UTF-8): No such file or directory
    bash: warning: setlocale: LC_NUMERIC: cannot change locale (en_US.UTF-8): No such file or directory
    bash: warning: setlocale: LC_TIME: cannot change locale (en_US.UTF-8): No such file or directory




    На этом пока конец!

    Linux/UNIX: unixtimestamp - что заперевод, где играет и какая его роль?

             Сейчас, когда пишу, время у меня 1659086347 или  Fri Jul 29 2022 12:19:07 GMT+0300 (Москва, стандартное время)  Забегая вперед, спо...