VoIPmonitor is able to detect (currently only for G711a/u) silence in RTP streams. Silence threshold is hardcoded in the code (it is tolerant to a little noise). It must be enabled in voipmonitor.conf
silencedetect = yes
MySQL table cdr must have those columns:
caller_silence, called_silence, caller_silence_end, called_silence_end caller_clipping_div3, called_clipping_div3 a_mos_silence_min_mult10, b_mos_silence_min_mult10, _mos_silence_mult10, b_mos_silence_mult10
If any of those columns are missing this feature will be not enabled and you need manually alter cdr table (it can take long time blocking access to GUI and sniffers during the upgrade).
Full alter commands: (remove columns from following sql command which you already have in the cdr table). When you run voipmonitor it also prints alter commands which are missing (on syslog and stdout)
ALTER TABLE cdr ADD COLUMN caller_silence tinyint unsigned default NULL, ADD COLUMN called_silence tinyint unsigned default NULL, ADD COLUMN caller_silence_end smallint default NULL, ADD COLUMN called_silence_end smallint default NULL;, ADD COLUMN caller_clipping_div3 smallint unsigned default NULL, ADD COLUMN called_clipping_div3 smallint unsigned default NULL, ADD COLUMN a_mos_silence_min_mult10 tinyint unsigned DEFAULT NULL, ADD COLUMN b_mos_silence_min_mult10 tinyint unsigned DEFAULT NULL, ADD COLUMN a_mos_silence_mult10 tinyint unsigned DEFAULT NULL, ADD COLUMN b_mos_silence_mult10 tinyint unsigned DEFAULT NULL;
When enabled following metrics are produced:
- Number of absolute silence audio frames (with 20ms length) which are treated as packet loss. On the following picture see the holes in the first audio stream - this example is taken from a call where RTP stream is coming without any packet loss or jitter, those audio drops are encoded directly in the RTP audio stream. With silencedetection = yes feature voipmonitor will calculate number of those silence frames and counts them as packet loss and calculates MOS score.
The MOS score is shown in the Graph in CDR detail as new MOS value "Sil" - see the RED 2.8 number
- Another silence feature is overall percentage of silence in each direction of a call which will be shown in cdr detail. Calls with >95% percent of a silence would indicate problem.
- Next feature is number of silence seconds counter from the end of the last RTP packet - this might be the reason why someone hanged up the call because although RTP packets were coming, there was a silence. If value is non zero it will be shown also in CDR summary:
- Number of clipped frames (clipped frame has the highest volume) - perceived as audible clicks - this value is shown in cdr detail table. It can be filtered and used in charts. Must be enabled in voipmonitor.conf
clippingdetect = yes
Data series in charts for silence, silence end and clipped frames: