voipmonitor,顾名思义,是一个用来监控voip的东西。使用它,可以把每一个通话的报文都抓取并且记录起来,而且会自动分析出通话结果,数据的抖动、延时、丢包等,而且还能根据报文的RTP数据还原出通话声音。真的是外出行走江湖的必备良药。
其实voipmonitor能做的事情,我们通过之前提到的pcapsipdump和sox也可以做到,但是一般情况下我更喜欢使用voipmonitor来做个例的分析,而使用pcap-analyze来做统计工作。因为voipmonitor提供了web界面来查看和试听通话内容,能够非常方便的针对某个具体的通话进行分析查看。不过voipmonitor的web-gui是收费的,庆幸的是有试用License。
voipmonitor有3种部署方式,我们可以根据自己的需要,来选择其中的一种方式进行部署。
首先要介绍一下voipmonitor的架构,它是由三个模块组成的,一个是收费的WEB GUI(提供30天试用,同一个账号可以无限次申请试用),一个是免费的嗅探器,剩下一个就是免费的MySQL。
第一种部署方式,也是最简单的方式,voipmonitor的3个模块都部署在一台机器上,这样的话,对机器负担就会比较大,而且在实际生产中,我们肯定不只有一个机器提供服务,这样你就需要在每一台机器上部署一套voipmonitor,这是不太实际的做法。
第二种部署方式,相对会复杂一些,但是更加的实用。这种方式会有多个远程嗅探器,然后公用一套数据库和WEB GUI,你可以根据实际需要来考虑数据库和WEB GUI是否需要分开部署。
根据嗅探器的配置方式,这种部署方式又细分为如下两种:
Local processing
这种方式,嗅探器会在本地完成报文的抓取、分析和存储,只把话单信息保存在数据库中。这种方式比较节省带宽,因为只传输话单信息,但是会增加服务器的CPU开销以及磁盘的消耗。
Packet mirroring
这种方式,嗅探器只负责报文的抓取,然后会把报文全部传输到一台指定的机器,由那台机器进行报文的分析和存储,然后把话单信息保存在数据库中。这种方式对嗅探器所在服务器的CPU和磁盘影响很小,基本可以忽略不计,但是带宽会大一些,因为传输的是所有报文。
在实际使用过程中,考虑到最好不要影响服务器性能,因此我采用的是第三种部署方式---Packet mirroring
见官方文档,一步一步来操作,基本没有问题