Summary: | ASTERISK-15925: Busy(xx) exits immediately on IAX channel | ||||
Reporter: | James Lamanna (jlamanna) | Labels: | |||
Date Opened: | 2010-04-08 00:30:35 | Date Closed: | 2014-07-01 21:59:07 | ||
Priority: | Minor | Regression? | No | ||
Status: | Closed/Complete | Components: | Applications/General | ||
Versions: | Frequency of Occurrence | ||||
Related Issues: |
| ||||
Environment: | Attachments: | ||||
Description: | I'm running Asterisk 1.4.26.3 and I've noticed an interesting problem when trying to play a Busy tone over a IAX trunk from the PSTN. It seems as though Busy(20) returns immediately (it does not wait 20s), so the caller never hears the busy tone, but the call just appears to hang up. I don't believe this happens when trying to play a Busy on a SIP trunk. The busy part of the dialplan looks like this, exten => s-BUSY,1,Noop(Dial failed due to trunk reporting BUSY - giving up) exten => s-BUSY,n,Playtones(busy) exten => s-BUSY,n,Busy(20) The only way to remedy this is to put a Wait(20) between the Playtones() and Busy(). Any ideas on why this only fails on IAX and not SIP? I cannot test a later version of Asterisk because of the SIP relay bug. | ||||
Comments: | By: Paul Belanger (pabelanger) 2010-04-08 08:27:02 Thank you for taking the time to report this bug and helping to make Asterisk better. Unfortunately, we cannot work on this bug because your description didn't include enough information. You may find it helpful to read "Asterisk Issue Guidelines" http://www.asterisk.org/developers/bug-guidelines. [^] We'd be grateful if you would then provide a more complete description of the problem. At a minimum, we need: 1. the specific steps or actions you took that caused you to encounter the problem, 2. the behavior you expected, and 3. the behavior you actually encountered (in as much detail as possible). This likely includes output from the console with debug level logging, a SIP trace (if this is SIP related), and configuration information such as dialplan (e.g. extensions.conf) and channel configuration (e.g. sip.conf). Thanks! By: James Lamanna (jlamanna) 2010-04-08 10:50:00 Sorry I wasn't more clear. Lets say you have a phone P, and 2 asterisk boxes A & B. - A & B have an IAX trunk (to-pstn) set up between them. - B has a PSTN connection (PRI) - P is registered to A. P tries to dial out, so you have executed on A: Dial(IAX2/to-pstn/1xxxxxxxxxx) This triggers B's dialplan to dialout to the PRI at some point: [macro-dialout-trunk] ... exten => s,n,Dial(Zap/g0/${NUMBER},300) exten => s,n,Goto(s-${DIALSTATUS},1) exten => s-BUSY,1,Noop(Dial failed due to trunk reporting busy) exten => s-BUSY,n,Playtones(busy) exten => s-BUSY,n,Busy(20) At this point say the Dial command returns DIALSTATUS == BUSY. You would expect Busy(20) to wait for 20 seconds before the call is hungup so that the caller at phone P can hear the busy tone. However, Busy(20) returns immediately, so the caller at phone P just sees the line disconnected and hears no busy tone. Here is a snippet of the logfile that shows Busy(20) returning immediately: [Apr 7 10:03:28] VERBOSE[23882] logger.c: -- Executing [s-BUSY@macro-dialout-trunk:4] Busy("IAX2/w2bpstn-15047", "20") in new stack [Apr 7 10:03:28] VERBOSE[23882] logger.c: == Spawn extension (macro-dialout-trunk, s-BUSY, 4) exited non-zero on 'IAX2/w2bpstn-15047' in macro 'dialout-trunk' If the trunk between A & B is SIP, it does not have this problem. By: James Lamanna (jlamanna) 2010-04-08 10:58:29 IAX trunk configuration on A: [to-pstn] context=from-pstn host=ip.address.B qualify=yes secret=xxxxxxxxx type=peer username=w2bpstn IAX trunk configuration on B: [w2bpstn] context=from-internal host=ip.address.A secret=xxxxxxxxx type=user By: Leif Madsen (lmadsen) 2010-04-12 09:31:53 Acknowledging this issue. By: John Todd (jtodd) 2010-04-27 12:59:10 Playtones doesn't automatically answer the channel -did you answer the channel on this? By: Leif Madsen (lmadsen) 2010-05-25 14:51:07 Suspending this issue due to lack of feedback from the reporter. |