<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 77.95pt 1.0in 77.95pt;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; -----Original Message-----</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; From: asterisk-users-bounces@lists.digium.com
[mailto:asterisk-users-</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; bounces@lists.digium.com] On Behalf Of John Todd</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; Sent: Wednesday, August 08, 2007 5:08 PM</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; To: <st1:PersonName w:st="on">Asterisk Users Mailing List -
 Non-Commercial Discussion</st1:PersonName></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; Subject: Re: [asterisk-users] Measuring Jitter in Asterisk</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; </span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; At 3:33 PM -0700 2007/8/3, Douglas Garstang wrote:</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;&nbsp; &gt; At 12:31 PM -0700 2007/8/3, Douglas Garstang
wrote:</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;&gt;&nbsp; &gt;</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;&gt;&nbsp; &gt;How can I objectively measure jitter in
Asterisk on a SIP channel?</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;&gt;&nbsp; &gt;</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;&gt;&nbsp; &gt;I don't just want to turn the new 1.4 jitter
buffer on. I want to</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;&gt;&nbsp; &gt;measure jitter.</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;&gt;&nbsp; &gt;</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;&gt;&nbsp; &gt;Thanks,</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;&gt;&nbsp; &gt;Doug.</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;&gt;</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;&gt;&nbsp; You could look at the txjitter and rxjitter values
(and other values)</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;&gt;&nbsp; stored in the CHANNEL() function, and those values
you're looking for</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;&gt;&nbsp; were previously known as RTPAUDIOQOS.&nbsp; Or is
this not sufficient?</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;Are txjitter and rxjitter working reliably? These calls are
going to be</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;placed from AMI and bridged together. Do you think the
variables would</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;be correctly set for each leg of the call?</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;Doug.</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; </span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; I think the best way to determine this would be to compare the</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; numbers provided by CHANNEL() versus the numbers provided by</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; something with a little more reliability, such as wireshark, in a</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; controlled set of circumstances.</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; </span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; Please post your results here - it would be an interesting test.</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>No comparisons yet, but I may not need to.<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>I&#8217;m not feeling too confident with
the figures in Asterisk to begin with.<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>I had an Asterisk box, bridging two
channels, where the media was going to two different ITSP&#8217;s. <o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>Upon hangup of the call, I was printing
out the QoS stats available with the CHANNEL(rtpqos) command. That seems to be
what&#8217;s implemented in Asterisk 1.4.8.<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp; h =&gt; {<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Noop(local_ssrc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
${CHANNEL(rtpqos,audio,local_ssrc)});<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Noop(local_lostpackets&nbsp; = ${CHANNEL(rtpqos,audio,local_lostpackets)});<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Noop(local_jitter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
${CHANNEL(rtpqos,audio,local_jitter)});<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Noop(local_count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
${CHANNEL(rtpqos,audio,local_count)});<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Noop(remote_ssrc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
${CHANNEL(rtpqos,audio,remote_ssrc)});<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Noop(remote_lostpackets = ${CHANNEL(rtpqos,audio,remote_lostpackets)});<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Noop(remote_jitter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
${CHANNEL(rtpqos,audio,remote_jitter)});<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Noop(remote_count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
${CHANNEL(rtpqos,audio,remote_count)});<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Noop(rtt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= ${CHANNEL(rtpqos,audio,rtt)});<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>When the call is hung up, I only see the
output from this once. I&#8217;d never thought about it before, but when you
hang up a call, where two channels are bridged, the hangup extension only gets
called once for the call, not once for each channel. Correct?<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>So, my output looked like this&#8230;<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>Connected to Asterisk 1.4.8 currently
running on a1 (pid = 30914)<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>Verbosity is at least 3<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>a1*CLI&gt; show channels<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>Channel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Location&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
State&nbsp;&nbsp;
Application(Data)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>SIP/edge1-09bad778&nbsp;&nbsp;
(None)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Up&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bridged Call(SIP/edge1-09baf35<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>SIP/edge1-09baf358&nbsp;&nbsp;
13033372500@Outbound Up&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Dial(SIP/edge1/13033372500|60|<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>2 active channels<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>1 active call<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp; == Spawn extension (Outbound,
13033372500, 2) exited non-zero on SIP/edge1-09baf358'<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp; -- Executing
[h@Outbound:1] NoOp(&quot;SIP/edge1-09baf358&quot;,
&quot;local_ssrc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
891055531&quot;) in new stack<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp; -- Executing
[h@Outbound:2] NoOp(&quot;SIP/edge1-09baf358&quot;,
&quot;local_lostpackets&nbsp; = 1215&quot;) in new stack<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp; -- Executing
[h@Outbound:3] NoOp(&quot;SIP/edge1-09baf358&quot;,
&quot;local_jitter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 3&quot;) in new stack<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp; -- Executing
[h@Outbound:4] NoOp(&quot;SIP/edge1-09baf358&quot;,
&quot;local_count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1124&quot;) in
new stack<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp; -- Executing
[h@Outbound:5] NoOp(&quot;SIP/edge1-09baf358&quot;,
&quot;remote_ssrc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 59917798&quot;)
in new stack<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp; -- Executing
[h@Outbound:6] NoOp(&quot;SIP/edge1-09baf358&quot;, &quot;remote_lostpackets =
1&quot;) in new stack<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp; -- Executing
[h@Outbound:7] NoOp(&quot;SIP/edge1-09baf358&quot;,
&quot;remote_jitter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0&quot;) in new stack<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp; -- Executing
[h@Outbound:8] NoOp(&quot;SIP/edge1-09baf358&quot;,
&quot;remote_count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1123&quot;) in new
stack<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;&nbsp;&nbsp; -- Executing
[h@Outbound:9] NoOp(&quot;SIP/edge1-09baf358&quot;,
&quot;rtt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= 0&quot;) in new stack<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>So, what do the totals represent? We&#8217;re
getting stats for two channels added together it seems. Is local_jitter local
jitter on both channels? If so, it&#8217;s completely useless. We need to be
able to see stats for EACH CHANNEL, otherwise they mean nothing.<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>Also, rtt is always 0. Man&#8230; the
internet is fast today. Also, local_lostpackets looks bogus. It&#8217;s always
some huge number, larger than local_count.<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>Don&#8217;t know if it&#8217;s relevant,
but this Asterisk box sent the call to an edge router, than would sent the call
onto the ITSP, and then drop out of the RTP path. This Asterisk box was in the
media, but the edge router was not.<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>Doug.<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>