<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><FONT class="Apple-style-span" color="#000000">Folks, </FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">I'm working on the infamous Bridge patch (5841, 4297) etc and I've pretty well rewritten it.<SPAN class="Apple-converted-space">  </SPAN>It now will continue both bridged channels at their spot in the dialplan if broken, etc. and it works.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><BR class="khtml-block-placeholder"></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">It works by masquerading both channels and then bridging them, and then when done, it masquerades both of those channels yet again, sends them on their way (via async_goto back into the pbx) before letting the bridge thread die.  You might think of it as:</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><BR class="khtml-block-placeholder"></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Start:</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">A-&gt;PBX, B-&gt;PBX</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><BR class="khtml-block-placeholder"></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Bridge Action:</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">(OLD A)-&gt;(MASQ A)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">(OLD B)-&gt;(MASQ B)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">(MASQ A)&lt;-&gt;(MASQ B)</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><BR class="khtml-block-placeholder"></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">End of Bridge:</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">(OLD MASQ A)-&gt;(NEW MASQ A)-&gt;PBX</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">(OLD MASQ B)-&gt;(NEW MASQ B)-&gt;PBX</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><BR class="khtml-block-placeholder"></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">In each case the OLD channels become zombies and die, while the MASQ channels get threaded up to participate in the bridge and then the async_goto into the PBX.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><BR class="khtml-block-placeholder"></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">I've run across a vexing problem though that I thought the list might have some insight into.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><BR class="khtml-block-placeholder"></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">I am using this Bridge code to connect one constantly connected channel (A) and another arbitrary channel (B).<SPAN class="Apple-converted-space">  </SPAN>I do this repeatedly.<SPAN class="Apple-converted-space">  </SPAN>The first time I do this, B bridges to A and A gets plays a beep and bridges to B no problems.<SPAN class="Apple-converted-space">  </SPAN>Sounds great.<SPAN class="Apple-converted-space">  </SPAN>Then I break the bridge and send A to MOH, and B goes off and dies as it should.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Then I do this a second time. It works but there might be some noise when the bridge occurs.<SPAN class="Apple-converted-space">  </SPAN>Beep-burp instead of beep.<SPAN class="Apple-converted-space">  </SPAN>Then the bridge occurs, everything is happy.<SPAN class="Apple-converted-space">  </SPAN>Break the bridge, A back to MOH, B hangs up.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">By the fourth or fifth time this happens, A is sounding *really* bad, especially when the new bridges with B are made.<SPAN class="Apple-converted-space">  </SPAN>Channel A might lose sync with MOH (rendering it nasty; it's native ulaw MOH btw), and the bridge with B might have crazy repeats of beeps (beep audio beep audio burp audio beep beep) before the bridge starts to stabilize.<SPAN class="Apple-converted-space">  </SPAN>All the while though I start to develop a clicking sound once per second in the background audio.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">I am using ztdummy w/RTC, 2.6.15, and trunk-ish releases of zaptel/asterisk.<SPAN class="Apple-converted-space">  </SPAN>The channels are SIP and that's non-negotiable. I have been trying to figure out if I need to suck up some frames near the time of the initial bridge or on the async_goto at the end of the bridge, thinking that maybe Channel A is getting backed up with spew, but nothing I have done (safe_sleep, while ast_read, etc) seems to make any difference, in fact it usually seems to make it worse.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">My gut is telling me at this point that it's a timing issue more than a frames issue, but I can't see why the two channels would be getting out of sync.<SPAN class="Apple-converted-space">  </SPAN>Especially also given that the first bridge sounds so good, and if I hang up A and be and re-establish A and do it from that point it sounds great once again.  It's the channel and not asterisk that's getting out of sync.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">So, I am puzzled.<SPAN class="Apple-converted-space">  Any suggestions would be *greatly* appreciated and would also accelerate the completion of the Bridge action/app.</SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ">Thanks,</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Dave</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV> </DIV><BR></BODY></HTML>