[asterisk-dev] The "Busy" App.... isn't.
Joshua Colp
jcolp at digium.com
Wed Apr 4 18:09:13 CDT 2018
On Wed, Apr 4, 2018, at 8:04 PM, Steve Murphy wrote:
> On Wed, Apr 4, 2018 at 3:20 PM, Matt Fredrickson <creslin at digium.com> wrote:
>
> > On Mon, Apr 2, 2018 at 9:40 PM, Steve Murphy <murf at parsetree.com> wrote:
> > > Someone complained about errant behavior of the Busy and Hangup apps...
> > > and I see some strangenesses that might make them credible.
> > >
> > <snip>
> > >
> > > I cut off the rest of the debug, but the call lasts the full 15 seconds
> > > after busy() is called, and then hangs up. It's interesting to see what
> > the
> > > trunk provider does on top of all this.
> > >
> > > So, my question is: Did I do the best thing? It seems to work, but I
> > have no
> > > idea if I'm creating bugs galore in other usages.
> >
> > There is an assumption (for asterisk C level applications, like
> > Busy()) when using ast_read that if it ever returns NULL that the
> > underlying channel has been hung up and the application should quickly
> > exit. Busy() is honoring that assumption. It looks like in
> > sip_indicate() of chan_sip.c, when a AST_CONTROL_BUSY is queued on a
> > SIP channel, it sets the soft hangup flag on the channel. That's why
> > you're seeing this behavior. The timeout from Busy() is invalidated
> > if the underlying channel wants to be hung up.
> >
> > I would be highly concerned about breaking that assumption, as you are
> > doing in your proposed patch. Is there a particular reason you want
> > to keep the call up for 15 seconds before releasing the channel?
> >
>
> I was tempted so say:
>
> Mainly for the sake of that "Busy Here" SIP message I'd like to see go
> back to the
> trunk provider. With my patch, it goes out. Without it, nada.
>
> But... incoming calls can come from either of two IP's, and "sip set debug
> ip xxxxxx"
> can only monitor one. So, what I thought was happening may not be!
>
> But, really.... if the Busy app takes an arg, but never honors it... why
> does it take the
> argument at all?
Legacy purposes where it's not signaled I'd bet. Specifically, when the busy tone itself is generated locally.
--
Joshua Colp
Digium, Inc. | Senior Software Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - US
Check us out at: www.digium.com & www.asterisk.org
More information about the asterisk-dev
mailing list