Debian 12
Install MariaDB
apt-get -y install mariadb-server
change auth method for root@localhost user from unix_socket to mysql_native_password type with no password
Start the mysql console first with mysql and push following queries:
MariaDB> ALTER USER root@localhost IDENTIFIED VIA mysql_native_password; MariaDB> SET PASSWORD = PASSWORD(""); MariaDB> FLUSH PRIVILEGES;
Set mariadb's config
in /etc/mysql/mariadb.conf.d/50-server.cnf edit [mysqld] section and add options, like suggested in scaling https://www.voipmonitor.org/doc/Scaling#MySQL_performance section fo our doc
innodb_flush_log_at_trx_commit = 2 innodb_file_format = barracuda #set there up to half of available mem innodb_buffer_pool_size = 8GB #starting from mariadb 10.6 is necesasry to disable read-only for compressed tables innodb_read_only_compressed=OFF
Restart mariadb service
service mariadb restart
create database needed for voipmonitor
mysqladmin create voipmonitor
Install voipmonitor sensor
Installing sensor - voipmonitor service
mkdir /usr/src/voipmonitor cd /usr/src/voipmonitor wget --content-disposition http://www.voipmonitor.org/current-stable-sniffer-static-64bit.tar.gz -O x.tar.gz tar xzf x.tar.gz cd voipmonitor-* ./install-script.sh --no-user-input #set in /etc/voipmonitor.conf at least interface option it can be like interface=ens33, spooldir=/var/spool/voipmonitor, cleandatabase=31, sipport=5060, maxpoolsize=102400
Install voipmonitor GUI
Installation of packages needed by voipmonitor's GUI
apt-get install php php-gd php-mysql php-cli libapache2-mod-php php-mbstring php-zip tshark mtr librsvg2-bin gsfonts rrdtool libtiff-tools
(When asked if non-superuser can capture traffic You can answer No)
downgrade php to 8.1
Unfortunately php 8.2 is not supported by ioncube loader yet, you need to downgrade the php to version 8.1 using sury apt repositories
apt update apt -y install apt-transport-https lsb-release ca-certificates curl wget gnupg2
wget -qO- https://packages.sury.org/php/apt.gpg | \ gpg --dearmor > /etc/apt/trusted.gpg.d/sury-php-x.x.gpg
sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" \ > /etc/apt/sources.list.d/php.list'
apt update apt install php8.1 php8.1-gd php8.1-mysql php8.1-cli php8.1-mbstring php8.1-zip libapache2-mod-php8.1
update-alternatives --list php update-alternatives --set php /usr/bin/php8.1 a2dismod php8.2 a2enmod php8.1
Installing IOncube - php loader / decryptor
wget --no-continue http://voipmonitor.org/ioncube/x86_64/ioncube_loader_lin_8.1.so -O /usr/lib/php/8.1/ioncube_loader_lin_8.1.so echo "zend_extension = /usr/lib/php/8.1/ioncube_loader_lin_8.1.so" > /etc/php/8.1/mods-available/ioncube.ini ln -s /etc/php/8.1/mods-available/ioncube.ini /etc/php/8.1/apache2/conf.d/01-ioncube.ini ln -s /etc/php/8.1/mods-available/ioncube.ini /etc/php/8.1/cli/conf.d/01-ioncube.ini
Installing package for voipmonitor GUI
cd /var/www/html rm -f index.html wget "http://www.voipmonitor.org/download-gui?version=latest&major=5&phpver=82&festry" -O w.tar.gz tar xzf w.tar.gz mv voipmonitor-gui*/* ./
Finalizing steps
For working alerts / reports, system needs to run periodicaly script using scheduller
echo " * * * * * root php /var/www/html/php/run.php cron" >> /etc/crontab kill -HUP `pgrep cron`
Set privileges for apache
chown -R www-data /var/www/html /etc/init.d/apache2 restart chown www-data /var/spool/voipmonitor/
set service to be started at a boot time
systemctl enable voipmonitor /etc/init.d/voipmonitor start
Binaries downloaded with first access of the GUI (voluntary)
You can speedup the installation process by downloading and installing binaries the GUI needs with following steps for 64bits only.
wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/phantomjs-2.1.1-x86_64.gz/download -O '/var/www/html/bin/phantomjs-2.1.1-x86_64.gz' gunzip '/var/www/html/bin/phantomjs-2.1.1-x86_64.gz' chmod +x '/var/www/html/bin/phantomjs-2.1.1-x86_64' wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/sox-x86_64.gz/download -O '/var/www/html/bin/sox-x86_64.gz' gunzip '/var/www/html/bin/sox-x86_64.gz' chmod +x '/var/www/html/bin/sox-x86_64' wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/tshark-2.3.0.3-x86_64.gz/download -O '/var/www/html/bin/tshark-2.3.0.3-x86_64.gz' gunzip '/var/www/html/bin/tshark-2.3.0.3-x86_64.gz' chmod +x '/var/www/html/bin/tshark-2.3.0.3-x86_64' wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/mergecap-2.3.0.3-x86_64.gz/download -O '/var/www/html/bin/mergecap-2.3.0.3-x86_64.gz' gunzip '/var/www/html/bin/mergecap-2.3.0.3-x86_64.gz' chmod +x '/var/www/html/bin/mergecap-2.3.0.3-x86_64' wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/t38_decode-2-i686.gz/download -O '/var/www/html/bin/t38_decode-2-i686.gz' gunzip '/var/www/html/bin/t38_decode-2-i686.gz' chmod +x '/var/www/html/bin/t38_decode-2-i686'
Building service's binary file from sources (voluntary)
Following describes how to build and install custom voipmonitor binary from sources (tested with sniffer sources version 31.7.5)
First install necesary develop packages
apt-get -y install git build-essential unixodbc-dev libvorbis-dev libpcap-dev libsnappy-dev libcurl4-openssl-dev libicu-dev libjson-c-dev libssh-dev librrd-dev libglib2.0-dev libxml2-dev libfftw3-dev liblzma-dev liblzo2-dev libpng-dev libgcrypt-dev libgoogle-perftools-dev libmariadb-dev libmariadb-dev-compat
Then download voipmonitor sources and build
mkdir /usr/src/voipmonitor-git cd /usr/src/voipmonitor-git git clone https://github.com/voipmonitor/sniffer.git ./ cd sniffer ./configure make make install