Here&#39;s my troubleshooting help -- since the problem sounds like a timing issue and part of the call is being trunked, then fix your timing problem, or remove the trunking from A and B then see if the problem goes away.<br>

<br><div class="gmail_quote">On Thu, Mar 26, 2009 at 10:50 PM, Andrew Hakman <span dir="ltr">&lt;<a href="mailto:andrew.hakman@gmail.com" target="_blank">andrew.hakman@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

So no one else has a problem routing IAX traffic through an<br>
intermediate Asterisk server? Does anyone else use Asterisk in such a<br>
configuration?<br>
<br>
On Thu, Mar 26, 2009 at 2:45 AM, Andrew Hakman &lt;<a href="mailto:andrew.hakman@gmail.com" target="_blank">andrew.hakman@gmail.com</a>&gt; wrote:<br>
&gt; I&#39;m having a problem with IAX running through an intermediate asterisk<br>
&gt; box. Perhaps a small diagram will explain the situation better:<br>
&gt;<br>
&gt; *A ------- [cloud (public internet)] ------- *B --------[cloud<br>
&gt; (private network)]----------- *C<br>
&gt;<br>
&gt; Asterisk server&#39;s A, B, and C, are all connected together with IAX<br>
&gt; All asterisk servers are 1.6.0.6<br>
&gt; Server A and B are geographically close, but connected over the public internet.<br>
&gt; Server B and C are geographically far, but connected over a private network.<br>
&gt; (the latency between A and B, and B and C are roughly equal)<br>
&gt;<br>
&gt; Each server has at least 1 phone hanging off of it, with A and C<br>
&gt; having most of the phones (B only has a couple).<br>
&gt; A&#39;s extensions are all 1XXX, B&#39;s are 2XXX, and C&#39;s are 3XXX<br>
&gt;<br>
&gt; Phoning from A to B (or vice versa) works well, as does phoning from B<br>
&gt; to C (and vice versa). Calls can be placed for an indefinite amount of<br>
&gt; time and everything works great.<br>
&gt;<br>
&gt; The problem arises when phoning from A through B to C (or vice versa).<br>
&gt; For the first small amount of time (which can vary on a call to call<br>
&gt; basis, and lasts from 0 seconds to 3 minutes or so) everything is<br>
&gt; fine. After this, the audio in both directions gets garbled, and<br>
&gt; starts arriving in spurts. Once this happens, it continues forever.<br>
&gt; The audio never returns to normal no matter how long you wait.<br>
&gt;<br>
&gt; A to B uses IAX with trunking. B to C is not using trunking<br>
&gt; (dahdi_dummy is not working well on C for some reason - the module<br>
&gt; loads, but no /dev/dahdi is ever created). The same behavior happens<br>
&gt; when A to B is not using trunking either.<br>
&gt;<br>
&gt; Usually only 1 call is being placed at a time. An interesting thing<br>
&gt; happens when 2 testcalls are in progress at the same time though. If<br>
&gt; there&#39;s a call from A to B, and a call from A to C is made, once the<br>
&gt; call from A to C becomes garbled, so does the A to B call. When the A<br>
&gt; to C call is ended, the A to B call clears up. Ending the A to B call<br>
&gt; first does not improve the A to C call.<br>
&gt;<br>
&gt; The dialplans are setup so each server passes all non-local extensions<br>
&gt; to it&#39;s neighbor.<br>
&gt;<br>
&gt; Hence, for A, the relevant part of the dialplan is<br>
&gt;<br>
&gt; exten =&gt; _2XXX,1,Verbose(1|Extension 2xxx)<br>
&gt; exten =&gt; _2XXX,n,Dial(IAX2/asterisk_B/${EXTEN})<br>
&gt; exten =&gt; _2XXX,n,Hangup()<br>
&gt;<br>
&gt; exten =&gt; _3XXX,1,Verbose(1|Extension 3xxx)<br>
&gt; exten =&gt; _3xxx,n,Dial(IAX2/asterisk_B/${EXTEN})<br>
&gt; exten =&gt; _3xxx,n,Hangup()<br>
&gt;<br>
&gt; For B:<br>
&gt;<br>
&gt; exten =&gt; _1XXX,1,NoOp()<br>
&gt; exten =&gt; _1XXX,n,Dial(IAX2/asterisk_A/${EXTEN})<br>
&gt; exten =&gt; _1XXX,n,Hangup()<br>
&gt;<br>
&gt; exten =&gt; _3xxx,1,NoOp()<br>
&gt; exten =&gt; _3xxx,n,Dial(IAX2/asterisk_C/${EXTEN})<br>
&gt; exten =&gt; _3xxx,n,Hangup()<br>
&gt;<br>
&gt;<br>
&gt; For C:<br>
&gt; exten =&gt; _2XXX,1,Verbose(1|Extension 2xxx)<br>
&gt; exten =&gt; _2XXX,n,Dial(IAX2/asterisk_B/${EXTEN})<br>
&gt; exten =&gt; _2XXX,n,Hangup()<br>
&gt;<br>
&gt; exten =&gt; _1XXX,1,Verbose(1|Extension 1xxx)<br>
&gt; exten =&gt; _1XXX,n,Dial(IAX2/asterisk_B/${EXTEN})<br>
&gt; exten =&gt; _1XXX,n,Hangup()<br>
&gt;<br>
&gt; Is this the proper way to set such a configuration up? Is there a<br>
&gt; better way to call from A through B to C that would work better?<br>
&gt; Anyone else experience total audio breakup after a while with a<br>
&gt; similar arrangement? Why does it work initially for up to about 3<br>
&gt; minutes, then completely fall apart?<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Andrew<br>
&gt;<br>
<br>
_______________________________________________<br>
-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" target="_blank">http://www.api-digital.com</a> --<br>
<br>
asterisk-users mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
   <a href="http://lists.digium.com/mailman/listinfo/asterisk-users" target="_blank">http://lists.digium.com/mailman/listinfo/asterisk-users</a><br>
</blockquote></div><br>