Summary: | ASTERISK-15738: [patch] [regression] local channel with '/bn' modifier does not optimize itself on built-in transfer | ||
Reporter: | frawd (frawd) | Labels: | |
Date Opened: | 2010-03-03 12:03:42.000-0600 | Date Closed: | 2011-07-26 15:30:47 |
Priority: | Minor | Regression? | Yes |
Status: | Closed/Complete | Components: | Channels/chan_local |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) builtin_transfer_local.patch ( 1) chan_local_optimize_on_transfer.patch | |
Description: | The 'b' modifier supposedly removes the Local channel out of the path on transfer situations. It works perfectly with SIP-style transfers (both attended and blind), but does not work with the built-in atxfer and blindxfer (features.conf). As a result, a "Local/" queue agent will still be marked as "In use" after a builtin transfer for as long as the original caller does not hangup. I believe it was why the 'b' modifier was added in the first place. ****** ADDITIONAL INFORMATION ****** Platform: Debian Lenny Asterisk version: 1.6.2 branch revision 250253 The change in revision 249580 (and related things) might have had something to do with this. "core show channels" before attempting transfers: Channel Location State Application(Data) SIP/2102-00000016 (None) Up AppDial((Outgoing Line)) Local/2102@outgoing- 2102@outgoing:2 Up Dial(SIP/2102,60,t) Local/2102@outgoing- 2@outgoing:1 Up AppQueue((Outgoing Line)) SIP/marces-00000013 2@ivr-ivr_english:2 Up Queue(cc2_queue4,tT,,,) "core show channels" after blindxfer: Channel Location State Application(Data) SIP/2104-00000017 (None) Up AppDial((Outgoing Line)) Local/2102@outgoing- 2104@outgoing:2 Up Dial(SIP/2104,60,t) Local/2102@outgoing- 2@outgoing:1 Ringing AppQueue((Outgoing Line)) SIP/marces-00000013 2@ivr-ivr_english:2 Up Queue(cc2_queue4,tT,,,) "core show channels" after atxfer: Channel Location State Application(Data) Local/2102@outgoing- 2102@outgoing:2 Up Transferred Call(Local/2104@ou SIP/2104-0000001c (None) Up AppDial((Outgoing Line)) Local/2104@outgoing- 2104@outgoing:2 Up Dial(SIP/2104,60,t) Local/2104@outgoing- 2104@outgoing:1 Up Transferred Call(Local/2102@ou Local/2102@outgoing- 2@outgoing:1 Ringing AppQueue((Outgoing Line)) SIP/marces-00000018 2@ivr-ivr_espaƱol:2 Up Queue(cc2_queue4,tT,,,) | ||
Comments: | By: frawd (frawd) 2010-03-04 11:46:37.000-0600 Attached patch is a very ugly fixed, copy/pasted from call parking features code (which can be removed now). It works well for me, atxfer, blindxfer and mixmonitor tested (they all depend on the modified function). Call parking not tested. By: frawd (frawd) 2010-03-05 09:12:51.000-0600 This patch actually does not seem to work all the times (not sure it's the cause but it could be). At least it gives an idea of where to go. By: frawd (frawd) 2010-03-05 12:16:22.000-0600 Attached an old patch I used in 1.4 (that didn't have the /b parameter). It adds parameter /t (optimize_on_transfer) to Local channels and detects GOTOs and MASQUERADES directly from chan_local.c in a very simple manner. Worked very well in 1.4, also works in 1.6 (patch is for 1.6.2 branch). I attach it to give an additional solution to the real devs that are going to fix this bug! By: Leif Madsen (lmadsen) 2011-07-26 15:30:40.615-0500 Per the Asterisk maintenance timeline page at http://www.asterisk.org/asterisk-versions maintenance (bug) support for the 1.4 and 1.6.x branches has ended. For continued maintenance support please move to the 1.8 branch which is a long term support (LTS) branch. For more information about branch support, please see https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions If this is still an issue, please open a new issue so it can be re-triaged appropriately. Thanks! |