<div>Hi All,</div>
<div>&nbsp;</div>
<div>I am wondering how I program my dialplan to meet this senario.</div>
<div>&nbsp;</div>
<div>- I have several SIP and ZAP channels, i.e. SIP/1, SIP/2(to Vonage), Zap/1, Zap/2(to AT&amp;T)</div>
<div>- Due to cost consideration, I would like to check availability for SIP&nbsp;channels&nbsp;first, then&nbsp;Zap channels, dial out via the first available channel.</div>
<div>&nbsp;</div>
<div>First, I tried to use ChanIsAvail() in my dialplan like this</div>
<div>&nbsp;</div>
<div>; try SIP/1 which is cheapest, then SIP/2, Zap/1, and Zap/2 which is most expensive</div>
<div>exten =&gt; 123,1,ChanIsAvail(SIP/1&amp;SIP/2&amp;Zap/1&amp;Zap2)</div>
<div>exten =&gt; 123,2,Dial(${AVAILORIGCHAN}/14082223333)</div>
<div>; go to 101 if none is available</div>
<div>exten =&gt; 123,102,Playback(all-circuits-busy-now)</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>However, it does not work that well. For instance if SIP/1 is a invalid channel, ChanIsAvail() still presents it is available.</div>
<div>Thus, the call always goes out via SIP/1 and never succeeds.</div>
<div>I doubt that ChanIsAvail() only works properly for Zap channels.</div>
<div>&nbsp;</div>
<div>So, does anybody have other ideas how to write dialplan to cost down phone call expense in this case?</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>thanks</div>
<div>JC</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>