[Home]

Summary:ASTERISK-11371: Asterisk not playing busy after media bridge
Reporter:Remi Quezada (remiq)Labels:
Date Opened:2008-02-04 08:08:47.000-0600Date Closed:2011-06-07 14:07:50
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Channels/chan_sip/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) sip_debug
Description:We are connecting our Asterisk PBX to a Lucent telephone switch via ISDN PRIs.  The telephone switch provides an authorization code feature where every call originated from asterisk is immediately answered by the telephone switch, and prompted for an authorization code, before completing the call.  The sip phone registered with Asterisk dials a 10 digit number, hears the prompt, and dials a 4-digit code.  The telephone switch authenticates the code and attempts to complete the call.  In the event that the far end is available the telephone switch passes the ringing tones inband over the pri.  In the event that the far end is busy, the telephone switch sends an ISDN RELEASE message with the cause: USERBUSY.  Asterisk receives the RELEASE message and sends a BYE message to the sip phone and a RELEASE COMPLETE back to the switch. This does NOT result in the user hearing a busy signal.  Instead, the user hears a click and dead air as if they were hung up on.  Since there is already a media bridge, once the Asterisk receives the USERBUSY, Asterisk should play an inband busy tone to the sip channel.  
Comments:By: Ken Leland (kenlee) 2008-02-08 09:42:28.000-0600

I have been following this issue on the mailing list.  Here is a list of things we tried to resolve this issue through configuration:
1) setting progressinband=yes in sip.conf
2) using Progress before Dial() in the dialplan

Neither of these work, I suspect because they are both used to send "early audio" before the call setup is completed.  I also think that by setting this you are simply allowing Asterisk to pass early audio between the two channels as opposed to Asterisk acutally inserting audio.  The problem we are having requires Asterisk to replace a BYE message with a busy tone.

3)
_X.,1,Dial()
_X.,2,Busy()
This doesn't work because the ISDN CONNECT causes Dial to behave as if the call was successful.
4)
_X.,1,Dial()
h,1,Playtones(busy)
This doesn't work because (i presume) that the audio path has already been cut down once the hangup extension is given control in the dial plan.

By: Sergey Tamkovich (sergee) 2008-02-11 07:37:56.000-0600

Please try this:

_X.,1,Dial()
_X.,2,Playtones(busy)

By: Remi Quezada (remiq) 2008-02-11 10:50:35.000-0600

When I try this:

_X.,1,Dial()
_X.,2,Playtones(busy)

The Playtones never gets executed because the ISDN CONNECT causes Dial to behave as if the call was successful.

By: Johan Wilfer (johan) 2008-02-11 17:48:07.000-0600

Could you try:

Dial(SIP/1234,,g)
.. and then do the logic to play tones ...

From the help: "g: When the called party hangs up, exit to execute more commands in the current context."

Or would you consider that to be a work around?

By: Remi Quezada (remiq) 2008-02-12 08:31:00.000-0600

Looks like adding the 'g' to the Dial application works!  I was able to successfully play a busy tone when I did that.

By: Jason Parker (jparker) 2008-03-11 14:52:05

Closing, per comments.