[asterisk-dev] Asterisk mishandling user busy isdn releases

Ken Leland III k3leland at monmouth.com
Tue Feb 5 11:05:39 CST 2008


 > > Hello All,
 > > I have found that Asterisk does not play a busy tone when it 
receives a
 > > USER BUSY ISDN RELEASE messages following an ISDN CONNECT message.
 > >
 > > Details:
 > > 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.
 > >
 > > Questions:
 > > Is there a way to configure this behavior in the dial plan?

 > You can check DIALSTATUS after Dial() and play Busy() if the DIALSTATUS
 > is busy.
 > klaus
Thanks klaus,  I gave this a try, with no luck, using the following 
hangup extensions:

exten => h,1,Gotoif($[${HANGUPCAUSE} = 17]?BUSY:HANGUP)
exten => h,n(BUSY),Playtones(busy)
exten => h,n(HANGUP),Hangup

Here is some partial console output + SIP debug:

-- Executing [h at test:1] GotoIf("SIP/testuser-10685f60", "1?BUSY:HANGUP") 
in new stack
-- Goto (test,h,2)
-- Executing [h at test:2] PlayTones("SIP/testuser-10685f60", "busy") in 
new stack
-- Executing [h at test:3] Hangup("SIP/testuser-10685f60", "") in new stack
-- Asterisk sends SIP BYE message.

It seems whatever attempts i made at adding audio in the special 'h' 
hangup extension would fail.  As you can see the PlayTones("busy") is 
happening before the SIP BYE message but it still doesn't make it to the 
audio stream.  Does the Dial cmd tear down the rtp session before 
returning?  Did you mean for me to check the DIALSTATUS in the special 
hangup extension or somewhere else?

 > >
 > > If not does anyone think that adding the following logic to Asterisk
 > > would be a useful patch?
 > >
 > > If a zap channel is bridged with a sip channel, and the zap channel
 > > receives a user busy RELEASE, play a busy tone inband on the sip 
channel.
 > >
 > > Cheers,
-
Ken W. Leland  III
Engineering
k3leland at monmouth.com
Monmouth Telecom
10 Drs. James Parker Blvd., Suite 110
Red Bank, NJ  07701
732-704-1000  X283



More information about the asterisk-dev mailing list