Silence detection: Difference between revisions

From VoIPmonitor.org
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
VoIPmonitor is able to detect (currently only for G711a/b) 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). When enabled following metrics are produced:  
VoIPmonitor is able to detect (currently only for G711a/b) 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 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.  
* 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.  
Line 19: Line 49:
[[File:cdr_summary_silence_example.png]]
[[File: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  
* 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.  
Data series in charts for silence, silence end and clipped frames.  


[[File:charts_silence_values.png]]
[[File:charts_silence_values.png]]

Revision as of 17:26, 14 March 2019

VoIPmonitor is able to detect (currently only for G711a/b) 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 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.

  • number of silence seconds 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.