8(499)-709-97-83
Работаем с 8:00 до 19:00

Мониторинг: CDR с помощью PHP и Voipmonitor

  • 27 мая 2015

В одной из наших предыдущих статей (Мониторинг VoIP канала с помощью Zabbix) мы писали о программе Voipmonitor и о ее широких возможностях. В сегодняшней статье мы расскажем, как с помощью PHP и Voipmonitor сделать табличную выгрузку CDR по определенному Б номеру с точной детализацией (время вызова, SIP релиз и т.д.) и возможностью загрузить Dump с сигнальным и голосовым трафиком. Сразу скажу, что код писался для своих нужд, и он может быть не очень красив, так что прошу тухлыми яйцами не закидывать. Предварительно у вас должны быть установлены Linux, Apache, MySQL, PHP(LAMP)

 

Установим и настроим  Voipmonitor:

Первым делом обновляемся и устанавливаем нужные нам программы и пакеты:

yum groupinstall 'Development Tools'
yum install git unixODBC-devel mysql-devel libogg libogg-devel vorbis-tools libvorbis libvorbis-devel libpcap-devel zlib-devel

Переходим в /usr/src/ и скачиваем нужную нам версию снифера

64 bit

wget http://sourceforge.net/projects/voipmonitor/files/10.1/voipmonitor-amd64-10.1.23-static.tar.gz

32 bit

wget http://sourceforge.net/projects/voipmonitor/files/10.1/voipmonitor-i686-10.1.23-static.tar.gz

теперь распаковываем и устанавливаем

tar xzf voipmonitor-*-static.tar.gz
cd voipmonitor-*-static
./install-script.sh
cp voipmonitor.conf /etc/
mysqladmin create voipmonitor

Теперь отредактируем конфигурационный файл /etc/voipmonitor.conf

Вносим изменения для подключения к нашей базе данных:

mysqlhost = 127.0.0.1
mysqlport = 3306
mysqlusername = root mysqlpassword = *******

Указываем, какой сетевой интерфейс и порт должны слушать снифер,меняем путь куда будут собираться наши dump и выбираем конвертацию в wav :

interface = eth0
sipport = 5060
spooldir = /var/www/html/voipmonitor
saveaudio = wav

Сохраняем настройки и запускаем Voipmonitor

/etc/init.d/voipmonitor start
 

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

Переходим в каталог  /var/www/html/ и создаем следующий файл cdr.php с кодом:

Скачать код можно тут -> (cdr.php) либо напишите нам на support@voipnotes.ru

В этом скрипте вы должны подставить свои данные для подключение к MySQL:

$hostname = "localhost"; 
$mysql_username = "root";
$mysql_password = "password";

Даем право на исполнение нашему скрипту и каталогу с дампами:

chmod 777 cdr.php
chmod  -R 777 voipmonitor/
 

Теперь, перейдя в  браузере по ссылке http://Ваш-IP/cdr.php, мы должны увидеть:

Теперь вводим Б-номер в формате E.164, выбираем интервал времени, за который хотим произвести поиск. Результат:

Вывод таблицы, я надеюсь, понятный, но если что, все заголовки можно подправить в коде. Последние два столбца содержат ссылки на скачку дампов с сигнальным и звуковой файл с разговором, которые после скачки можно объединить (merge wireshark) и детально провести анализ проблемы.

 

Если вы в статье нашли ошибки или несоответствия, мы будем благодарны, если вы напишите нам о них в комментариях.

 
Powered by SEO CMS ver.: 23.1 TOP 2 (opencartadmin.com)
 
Метки: PHP, CDR