[asterisk-dev] Asterisk mishandling user busy isdn releases
Klaus Darilion
klaus.mailinglists at pernau.at
Thu Feb 7 01:14:14 CST 2008
I would try this:
exten => 123,1,Dial(.....)
exten => 123,2,Gotoif($["${DIALSTATUS}" == "BUSY"]?3:4)
exten => 123,3,Busy()
exten => 123,4,Hangup()
regards
klaus
Ken Leland III schrieb:
> > > 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
>
> _______________________________________________
> --Bandwidth and Colocation Provided by http://www.api-digital.com--
>
> asterisk-dev mailing list
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-dev
More information about the asterisk-dev
mailing list