Silence detection

From VoIPmonitor.org
Revision as of 00:08, 15 March 2019 by Festr (talk | contribs)
Jump to navigation Jump to search

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.

Cdr spectral silence example.png


The MOS score is shown in the Graph in CDR detail as new MOS value "Sil" - see the RED 2.8 number

Cdr graph silence lowmos example.png


  • 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.

Cdr detail silence table.png

  • 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:

Cdr summary silence example.png

  • 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:

Charts silence values.png