在Ubuntu 12.04 LTS上设置VoIPmonitor

时间:2020-03-21 11:48:21  来源:igfitidea点击:

VoIPmonitor是那些用于SIP VoIP调用监视和故障排除的开源工具之一,当我们遇到深奥的VoIP问题时,我们可以使用它。
我们最喜欢的是,可以将调用保存到PCAP文件中,然后使用WireShark进行进一步调试。

软件

本文使用的软件:

  • Ubuntu 12.04 LTS
  • Nginx 1.1.19
  • MySQL 5.5.35
  • PHP 5.3.10
  • Tshark 1.6
  • VoIPmonitor(带有GUI 7.17)

我们正在使用四核Inter Xeon CPU:

$grep name /proc/cpuinfo
model name	: Intel(R) Xeon(TM) CPU 2.66GHz
model name	: Intel(R) Xeon(TM) CPU 2.66GHz
model name	: Intel(R) Xeon(TM) CPU 2.66GHz
model name	: Intel(R) Xeon(TM) CPU 2.66GHz

安装强制性软件包

我们将Asterisk PBX系统与Nginx-light一起使用进行测试。
这些软件包中的任何一个的安装和配置都不在本文的讨论范围之内。

假设我们已经安装并运行了Asterisk,则可以执行以下操作来安装Nginx(如果需要,可以免费使用Apache2):

# apt-get update && apt-get install nginx-light nginx-common

安装PHP,MySQL,基于终端的wireshark和其他软件包:

# apt-get install build-essential git gsfonts libvorbis-dev libpcap-dev php5 php5-cli \ 
php5-mysql php5-gd php5-mcrypt mysql-server unixodbc-dev tshark libmysqlclient-dev \
zlib1g-dev librsvg2-bin

安装VoIPmonitor WEB GUI(对于PHP 5.3)

VoIPmonitor WEB GUI是商业前端,但是可以通过在http://www.voipmonitor.org/download-gui?version=license上创建一个新帐户来获得30天的免费许可证密钥。

VoIPmonitor WEB GUI软件包

下载VoIPmonitor WEB GUI存档文件:

# wget http://www.voipmonitor.org/download-gui?version=latest&phpver=53&festry \
-O gui.tgz

解压缩并移至Web服务器的根目录'/var/www /':

# tar xvfz gui.tgz
# mv ./voipmonitor-gui-7.17-SVN ./voipmonitor
# mv ./voipmonitor /var/www/
# chown -R asterisk /var/www/voipmonitor

HTML/PDF包

下载HTML/PDF wkhtml二进制文件:

# wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/0.10.0_rc2/wkhtmltopdf-i686 -O /var/www/voipmonitor/bin/wkhtmltopdf-i686

使它在世界范围内可执行:

# chmod +x /var/www/voipmonitor/bin/wkhtmltopdf-i686

HTML /图像包

下载HTML/Image wkhtml二进制文件:

# wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/0.10.0_rc2/wkhtmltoimage-i686 -O /var/www/voipmonitor/bin/wkhtmltoimage-i686

使它在世界范围内可执行:

# chmod +x /var/www/voipmonitor/bin/wkhtmltoimage-i686

IonCube程序包

下载并设置IonCube加载程序:

# wget http://www.voipmonitor.org/ioncube/i686/ioncube_loader_lin_5.3.so \
-O /usr/lib/php5/20090626+lfs/ioncube_loader_lin_5.3.so
# echo "zend_extension = /usr/lib/php5/20090626+lfs/ioncube_loader_lin_5.3.so" > /etc/php5/fpm/conf.d/ioncube.ini

此时,应该使用IonCude配置PHP:

$php5 -v
PHP 5.3.10-1ubuntu3.11 with Suhosin-Patch (cli) (built: Apr  4 2014 01:27:23) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
    with the ionCube PHP Loader v4.5.2, Copyright (c) 2002-2014, by ionCube Ltd.

将用于处理警报的PHP脚本添加到crontab,每5分钟运行一次:

# echo "/5 * * * * root php /var/www/voipmonitor/php/run.php cron" >> /etc/crontab

许可证密钥

获得许可证密钥后,请不要忘记将其复制到'/var/www/voipmonitor/key.php'下。

重新启动FastCGI流程管理器:

# service php5-fpm restart

重新启动Nginx:

# service nginx restart

要完成GUI安装,请打开Web浏览器并导航到'http://localhost/voipmonitor'。
我们应该看到类似的视图,如下所示。
点击蓝色按钮。

从源代码编译并安装GNU/GPL嗅探器

安装snappy和curl库:

# apt-get install libsnappy1 libsnappy-dev libcurl4-openssl-dev

从git检出嗅探器的源代码:

# cd /usr/src && git clone git://git.code.sf.net/p/voipmonitor/git voipmonitor-git
# cd ./voipmonitor-git

配置,编译和安装:

# ./configure
# make
# make install

创建一个新的VoIPmonitor数据库:

# mysqladmin -uroot -p create voipmonitor

创建一个新目录来存储数据文件(用于RTP,SIP,音频等):

# mkdir /var/spool/voipmonitor
# chown asterisk /var/spool/voipmonitor

复制默认配置文件:

# cp ./config/voipmonitor.conf /etc/
# cp ./config/init.d/voipmonitor /etc/init.d/

建立链接以在运行级别2345中启动VoIPmonitor服务:

# update-rc.d voipmonitor defaults
 /etc/rc0.d/K20voipmonitor -> ../init.d/voipmonitor
 /etc/rc1.d/K20voipmonitor -> ../init.d/voipmonitor
 /etc/rc6.d/K20voipmonitor -> ../init.d/voipmonitor
 /etc/rc2.d/S20voipmonitor -> ../init.d/voipmonitor
 /etc/rc3.d/S20voipmonitor -> ../init.d/voipmonitor
 /etc/rc4.d/S20voipmonitor -> ../init.d/voipmonitor
 /etc/rc5.d/S20voipmonitor -> ../init.d/voipmonitor

现在修改“ /etc/voipmonitor.conf”,提供MySQL数据库凭据,侦听的接口等。
一些配置详细信息如下:

mysqlhost = 127.0.0.1
mysqlport = 3306
mysqlusername = 
mysqlpassword = 
mysqldb = voipmonitor
interface = eth0
managerport = 5029
sipport = 5060
packetbuffer_enable             = yes
packetbuffer_total_maxheap      = 1000 #in MB 
packetbuffer_compress           = yes
spooldir = /var/spool/voipmonitor
maxpoolsize             = 10240
maxpooldays             = 21
promisc = yes

启动VoIPmonitor服务:

# /etc/init.d/voipmonitor start
Starting voipmonitor: voipmonitor version 9.4beta21
Loading configuration from file /etc/voipmonitor.conf
SQL DRIVER: mysql
voipmonitor[17588]: connect - db version 5.5
voipmonitor[17588]: creating and upgrading MySQL schema...
voipmonitor[17588]: create procedure create_partition
voipmonitor[17588]: create procedure create_partitions_cdr
voipmonitor[17588]: create function getIdOrInsertUA
voipmonitor[17588]: create function getIdOrInsertSIPRES
voipmonitor[17588]: create function getIdOrInsertCONTENTTYPE
voipmonitor[17588]: create procedure PROCESS_SIP_REGISTER
voipmonitor[17588]: done

确保它正在运行:

# netstat -nltp | grep voip
tcp   0  0 127.0.0.1:5029  0.0.0.0:*    LISTEN  17594/voipmonitor

故障排除

如果出现任何问题,请首先检查syslog:

$tail /var/log/syslog

配置:错误:无法找到snappy库

configure: error: Unable to find snappy library

要解决此问题,请执行以下操作:

# apt-get install libsnappy1 libsnappy-dev

配置:错误:找不到curl库

configure: error: Unable to find curl library

要解决此问题,请执行以下操作:

# apt-get install libcurl4-openssl-dev

本地-127.0.0.1:5029-连接被拒绝(111)-重试

local - 127.0.0.1 : 5029 - Connection refused (111) - trying again

确保VoIPmonitor正在运行,并且可以远程登录:

# telnet localhost 5029
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
]

voipmonitor []:收到信号0x04(SIGILL):非法指令(ANSI)

voipmonitor[]: Got signal 0x04 (SIGILL): Illegal instruction (ANSI)

在安装预构建的嗅探器程序包时,可能会发生这种情况。
我们需要从源代码为CPU对其进行编译。