<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jul 10, 2014 at 10:57 AM, Justin Killen <span dir="ltr"><<a href="mailto:jkillen@allamericanasphalt.com" target="_blank">jkillen@allamericanasphalt.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">








<div link="blue" vlink="purple" lang="EN-US">

<div>

<p class="MsoNormal"><font face="Arial"><span style="font-size:10pt;font-family:Arial">Hi,<u></u><u></u></span></font></p>

<p class="MsoNormal"><font face="Arial"><span style="font-size:10pt;font-family:Arial"><u></u> <u></u></span></font></p>

<p class="MsoNormal"><font face="Arial"><span style="font-size:10pt;font-family:Arial">I’m using freepbx, and I’ve gotten myself into a
bit of an argument (<a href="http://issues.freepbx.org/browse/FREEPBX-7706" target="_blank">http://issues.freepbx.org/browse/FREEPBX-7706</a>) about when
to use Busy() vs. Hangup(17).  The conversation boils down to the fact
that in a certain condition within the freepbx dialplan, an incoming PRI call
runs the application Playtone(busy) followed by Busy(20).  My issue here
is that PRI_CAUSE never gets set, so the calling phone doesn’t ever ring
busy, it just rings normally.  I should note that this call is never
Answer()’d.  The stance of the freepbx team member is that calling
Busy() should be all that an application needs to do – they shouldn’t
have to worry about writing special code depending on the type of the
underlying channel.  I can’t say that I disagree with that,
especially after viewing the official docs, which describe Busy() as:<u></u><u></u></span></font></p>

<p class="MsoNormal"><font face="Arial"><span style="font-size:10pt;font-family:Arial"><u></u> <u></u></span></font></p>

<p class="MsoNormal"><font face="Arial"><span style="font-size:10pt;font-family:Arial">"This application will indicate the busy condition to
the calling channel."<u></u><u></u></span></font></p>

<p class="MsoNormal"><font face="Arial"><span style="font-size:10pt;font-family:Arial"><u></u> <u></u></span></font></p>

<p class="MsoNormal"><font face="Arial"><span style="font-size:10pt;font-family:Arial">This to me implies that calling Busy() on a PRI channel should
internally set PRI_CAUSE = 17.<u></u><u></u></span></font></p>

<p class="MsoNormal"><font face="Arial"><span style="font-size:10pt;font-family:Arial"><u></u> <u></u></span></font></p>

<p class="MsoNormal"><font face="Arial"><span style="font-size:10pt;font-family:Arial">What I’m really looking for here is a definitive answer
as to what should change here, either:<u></u><u></u></span></font></p>

<p class="MsoNormal" style="margin-left:0.5in"><u></u><font face="Arial"><span style="font-size:10pt;font-family:Arial"><span>a)<font face="Times New Roman" size="1"><span style="font:7pt "Times New Roman"">       </span></font></span></span></font><u></u><font face="Arial"><span style="font-size:10pt;font-family:Arial">Dialplans be
required to check channel status and run playtones/busy on answered channels or
hangup(17) on non-answered channels<u></u><u></u></span></font></p>

<p class="MsoNormal" style="margin-left:0.25in"><font face="Arial"><span style="font-size:10pt;font-family:Arial">or<u></u><u></u></span></font></p>

<p class="MsoNormal" style="margin-left:0.5in"><u></u><font face="Arial"><span style="font-size:10pt;font-family:Arial"><span>b)<font face="Times New Roman" size="1"><span style="font:7pt "Times New Roman"">      </span></font></span></span></font><u></u><font face="Arial"><span style="font-size:10pt;font-family:Arial">Busy(), when
called on a non-answered channel, should set the PRI_CAUSE (or whatever other appropriate
variable for the channel)<u></u><u></u></span></font></p>

<p class="MsoNormal"><font face="Arial"><span style="font-size:10pt;font-family:Arial"><u></u> <u></u></span></font></p>

<p class="MsoNormal"><font face="Arial"><span style="font-size:10pt;font-family:Arial"><u></u> <u></u></span></font></p>

<p class="MsoNormal"><font face="Arial"><span style="font-size:10pt;font-family:Arial">Lastly, I should mention that I’ve posted this to the
users group, and although I have gotten workarounds, I have not been able to
get a definitive answer on how this actually <i><span style="font-style:italic">should</span></i>
work, only on how it <i><span style="font-style:italic">does </span></i>work
and how to work around it.</span></font></p></div></div></blockquote><div><br>The Hangup(), Busy(), and Congestion() applications are not equivalent<br>in their behaviours even though some channel drivers treat Busy() as<br>
Hangup(17) and Congestion() as Hangup(34).  The Hangup() application<br>always sets the cause code and immediately begins hangup<br>procedures.  The Busy() and Congestion() applications send a control<br>frame to the channel driver to handle as it sees fit and then the<br>
application waits with optional timeout for the far end to hangup the call.<br>For chan_dahdi PRI, this behaviour is configurable in chan_dahdi.conf to<br>work either way when the Busy()/Congestion() applications are used.<br>
The default is to send the inband busy/congestion tone rather than send<br>the cause code 17/34 so a caller can hear the tone and hangup.<br><br>Excerpt from chan_dahdi.conf.sample file:<br><br>; PRI Out of band indications.<br>
; Enable this to report Busy and Congestion on a PRI using out-of-band<br>; notification. Inband indication, as used by Asterisk doesn't seem to work<br>; with all telcos.<br>;<br>; outofband:      Signal Busy/Congestion out of band with RELEASE/DISCONNECT<br>
; inband:         Signal Busy/Congestion using in-band tones (default)<br>;<br>; priindication cannot be changed on a reload.<br>;<br>;priindication = outofband<br></div></div><br></div><div class="gmail_extra">Richard<br>
</div></div>