<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://docs.yate.ro/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://docs.yate.ro/wiki/index.php?action=history&amp;feed=atom&amp;title=Quality_analyzer_module</id>
		<title>Quality analyzer module - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://docs.yate.ro/wiki/index.php?action=history&amp;feed=atom&amp;title=Quality_analyzer_module"/>
		<link rel="alternate" type="text/html" href="https://docs.yate.ro/wiki/index.php?title=Quality_analyzer_module&amp;action=history"/>
		<updated>2026-05-18T14:17:19Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.19.1</generator>

	<entry>
		<id>https://docs.yate.ro/wiki/index.php?title=Quality_analyzer_module&amp;diff=7739&amp;oldid=prev</id>
		<title>Dana at 07:16, 23 May 2014</title>
		<link rel="alternate" type="text/html" href="https://docs.yate.ro/wiki/index.php?title=Quality_analyzer_module&amp;diff=7739&amp;oldid=prev"/>
				<updated>2014-05-23T07:16:38Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 07:16, 23 May 2014&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 6:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 6:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The audio path under test must be digital and use only the G.711 companders. An analog segment or a different codec will probably make the test fail.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The audio path under test must be digital and use only the G.711 companders. An analog segment or a different codec will probably make the test fail.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== How it &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;works&lt;/del&gt;===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== How it &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Works&lt;/ins&gt;===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The probe signal is the '''tone/probe''' generated by [[tonegen]] consisting of an 125Hz sine wave added with a 2kHz sine wave. The low frequency tone makes the signal sensitive to disruptions of the order of typical VoIP packetization (20 or 30ms) while the high frequency tone tries to catch problems with resamplers, codecs and analog segments.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The probe signal is the '''tone/probe''' generated by [[tonegen]] consisting of an 125Hz sine wave added with a 2kHz sine wave. The low frequency tone makes the signal sensitive to disruptions of the order of typical VoIP packetization (20 or 30ms) while the high frequency tone tries to catch problems with resamplers, codecs and analog segments.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dana</name></author>	</entry>

	<entry>
		<id>https://docs.yate.ro/wiki/index.php?title=Quality_analyzer_module&amp;diff=7390&amp;oldid=prev</id>
		<title>Monica: /* Examples */</title>
		<link rel="alternate" type="text/html" href="https://docs.yate.ro/wiki/index.php?title=Quality_analyzer_module&amp;diff=7390&amp;oldid=prev"/>
				<updated>2013-11-04T11:13:00Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Examples&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 11:13, 4 November 2013&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 57:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 57:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Rmanager]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Rmanager]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Modules]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[Modules]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Test module]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Monica</name></author>	</entry>

	<entry>
		<id>https://docs.yate.ro/wiki/index.php?title=Quality_analyzer_module&amp;diff=6180&amp;oldid=prev</id>
		<title>Dana at 11:08, 11 June 2013</title>
		<link rel="alternate" type="text/html" href="https://docs.yate.ro/wiki/index.php?title=Quality_analyzer_module&amp;diff=6180&amp;oldid=prev"/>
				<updated>2013-06-11T11:08:42Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 11:08, 11 June 2013&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 51:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 51:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; $1234567$=analyzer/probe&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; $1234567$=analyzer/probe&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;'''See also'''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [[Rmanager]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [[Modules]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dana</name></author>	</entry>

	<entry>
		<id>https://docs.yate.ro/wiki/index.php?title=Quality_analyzer_module&amp;diff=1039&amp;oldid=prev</id>
		<title>Dana: Created page with &quot; This is a module designed to check the quality of the digital audio path of a call. It works by analyzing if a probe signal generated by the tonegen module is received al...&quot;</title>
		<link rel="alternate" type="text/html" href="https://docs.yate.ro/wiki/index.php?title=Quality_analyzer_module&amp;diff=1039&amp;oldid=prev"/>
				<updated>2012-10-19T12:42:57Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot; This is a module designed to check the quality of the digital audio path of a call. It works by analyzing if a probe signal generated by the &lt;a href=&quot;/wiki/Tonegen&quot; title=&quot;Tonegen&quot;&gt;tonegen&lt;/a&gt; module is received al...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
This is a module designed to check the quality of the digital audio path of a call. It works by analyzing if a probe signal generated by the [[tonegen]] module is received altered.&lt;br /&gt;
&lt;br /&gt;
The problems that can be detected are gaps (interruptions), cracks, stutter and short audio loops. The reported quality is not related to the subjective voice quality factor.&lt;br /&gt;
&lt;br /&gt;
The audio path under test must be digital and use only the G.711 companders. An analog segment or a different codec will probably make the test fail.&lt;br /&gt;
&lt;br /&gt;
=== How it works===&lt;br /&gt;
&lt;br /&gt;
The probe signal is the '''tone/probe''' generated by [[tonegen]] consisting of an 125Hz sine wave added with a 2kHz sine wave. The low frequency tone makes the signal sensitive to disruptions of the order of typical VoIP packetization (20 or 30ms) while the high frequency tone tries to catch problems with resamplers, codecs and analog segments.&lt;br /&gt;
&lt;br /&gt;
The receiver side in the ''analyzer'' module itself computes the spectrum of the probe signal after it passes the audio path. The percentage of packets that match the expected 2 peaks spectrum is reported as the quality of the call.&lt;br /&gt;
&lt;br /&gt;
The number and total length of discontinuities in the timestamps of the received data are also counted. These can be detected only on VoIP calls since in PSTN the timestamp information is not present (the network is ''supposed'' to be synchronized to a single clock source).&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
The probe calls can be made in two modes:&lt;br /&gt;
* Call from analyzer to a remote digital echo device&lt;br /&gt;
* Call to a remote Yate providing analyzer module&lt;br /&gt;
&lt;br /&gt;
The second way should be used if possible as it detects problems separately on each direction.&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
&lt;br /&gt;
For a call made from [[rmanager]]:&lt;br /&gt;
 &lt;br /&gt;
 output on&lt;br /&gt;
 call analyzer/probe 1234567&lt;br /&gt;
  ... wait ...&lt;br /&gt;
 status analyzer/1&lt;br /&gt;
  ... wait ...&lt;br /&gt;
 drop analyzer/1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The end reports displayed on screen and written to logs will look like:&lt;br /&gt;
 &lt;br /&gt;
 Finished 'analyzer/1' status: dropped,routetime=0.011,answertime=0.102,totaltime=14.019,&lt;br /&gt;
 gaps=0,gaplen=0,samples=111840,rate=8006,quality=100.00&lt;br /&gt;
 ...&lt;br /&gt;
 Finished 'analyzer/2' status: dropped,routetime=0.007,answertime=0.217,totaltime=27.913,gaps=2,&lt;br /&gt;
 gaplen=320,samples=221600,rate=8001,quality=97.978&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the remote echo device is another Yate server it can have the following line in regexroute.conf:&lt;br /&gt;
 &lt;br /&gt;
 $1234567$=conf/probe-${id};smart=no;echo=yes&lt;br /&gt;
&lt;br /&gt;
If the remote runs another Yate analyzer use in regexroute.conf:&lt;br /&gt;
 &lt;br /&gt;
 $1234567$=analyzer/probe&lt;/div&gt;</summary>
		<author><name>Dana</name></author>	</entry>

	</feed>