Silence detection: Difference between revisions

From VoIPmonitor.org
Jump to navigation Jump to search
No edit summary
No edit summary
 
(4 intermediate revisions by 2 users not shown)
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
VoIPmonitor is able to detect silence in RTP streams (currently only for G711a/u). Silence threshold can be changed by silencethreshold option (default 512 - which is tolerant to a little noice, lower values means not tolerant to a noice.




  silencedetect = yes
  silencedetect   = yes
silencethreshold = 512




Line 45: Line 46:
[[File:cdr_detail_silence_table.png]]
[[File:cdr_detail_silence_table.png]]


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


[[File:cdr_summary_silence_example.png]]
[[File:cdr_summary_silence_example.png]]
Line 53: Line 54:
  clippingdetect = yes  
  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]]

Latest revision as of 13:47, 7 July 2023

VoIPmonitor is able to detect silence in RTP streams (currently only for G711a/u). Silence threshold can be changed by silencethreshold option (default 512 - which is tolerant to a little noice, lower values means not tolerant to a noice.


silencedetect    = yes
silencethreshold = 512


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: