Summary: | ASTERISK-14836: [patch] features.conf auto-included park function sometimes included junk in Park() command | ||
Reporter: | dlnoah (dlnoah) | Labels: | |
Date Opened: | 2010-01-12 09:20:17.000-0600 | Date Closed: | 2010-01-19 17:02:23.000-0600 |
Priority: | Major | Regression? | No |
Status: | Closed/Complete | Components: | Applications/app_parkandannounce |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) bug16586.patch ( 1) bug16586v2.patch | |
Description: | When using the included parking context from features.conf, or using an Aastra phone with their built-in park softkey (which appears to call the same built-in park, from what I can tell) in any version of 1.6.x that I've used (including 1.6.0.9, 1.6.0.15, 1.6.1.0, 1.6.2.0), the Park() command will sometimes but inconsistently include extra information--most commonly a channel that was dialed by the parking phone. In 1.6.0.x, the extra information is simply ignored as Park() doesn't take parameters. In 1.6.1.x and 1.6.2.x, Park interprets this information numerically (usually as 0, since they generally start with a letter), which causes the call to timeout immediately. ****** ADDITIONAL INFORMATION ****** For example, on my 1.6.0.9 server with a transfer to my parking extension using the features.conf included context, I get this output to the console: -- Executing [170@default:1] Park("SIP/100-b7e92170", "SIP/104&SIP/109,10,m") in new stack | ||
Comments: | By: Jeff Peeler (jpeeler) 2010-01-12 17:09:15.000-0600 How exactly is this park being done? It does sound like 16406, but there it's been reported as always reproducible. By: dlnoah (dlnoah) 2010-01-12 17:40:30.000-0600 When I have problems, it's if I'm parking using an attended transfer to my features.conf parking extension *using the included parking context from features.conf*. If I set up my own extension in the context my SIP phones are dialing into, then it will call that extension and will park with the options I set. The Aastra phones have a Park softkey that will park via the features.conf context, so they have the same problem with their Park softkey. The problem I am having is definitely not consistently reproducible. If you sit at your phone constantly dialing (or transferring to) the parking extension, you will have some of those dials look like: -- Executing [170@default:1] Park("SIP/100-b7e92170", "") in new stack Which is what I expect it should be. But as you keep going, you'll eventually wind up with some sort of random gobbledy-gook passed to the Park application. It appears to me that the most reliable way to get the extra information in the Park application is to place an outgoing call from the phone, then park a call within a few minutes of placing that outgoing call (and the extra information will have a string related to the outgoing call you placed), but it's not 100% reproducible that way. If there's more testing type stuff you want me to do, let me know, but up until about 2 days ago, I had thought this was an Aastra-softkey specific problem. I've had it ongoing for at least a couple months. By: Jeff Peeler (jpeeler) 2010-01-18 17:26:48.000-0600 Can you reproduce while running under valgrind? See doc/valgrind.txt. By: Jeff Peeler (jpeeler) 2010-01-18 18:13:59.000-0600 Actually I may have found the problem, see if you can reproduce with the patch applied. By: dlnoah (dlnoah) 2010-01-19 11:20:36.000-0600 I applied the two patches above to 1.6.0.9, and placed about 30 calls to our parking extension, including: direct calls while I wasn't on a call and hadn't received a call in a while, direct calls while I wasn't on a call and had just received a call, and actual attended transfers of a live call. In all of these calls, Park worked as expected, e.g.: -- Executing [170@default:1] Park("SIP/100-b7dce1f8", "") in new stack Before, the extra stuff in the Park() application would usually show up within 3-5 calls, especially if I had just received a call. I haven't tested against 1.6.1.x or 1.6.2.x yet, but this seems to fix the behavior I reported. By: Jeff Peeler (jpeeler) 2010-01-19 13:12:21.000-0600 Well, the patches do the same thing. Only one needed applying, but thanks for testing! By: Digium Subversion (svnbot) 2010-01-19 16:59:55.000-0600 Repository: asterisk Revision: 241366 U trunk/main/pbx.c ------------------------------------------------------------------------ r241366 | jpeeler | 2010-01-19 16:59:54 -0600 (Tue, 19 Jan 2010) | 13 lines Initialize data on the stack so that Park doesn't interpret random arguments. passdata was only being set in pbx_substitue_variables when arguments were passed. (closes issue ASTERISK-14664) (closes issue ASTERISK-14836) Reported by: DLNoah Patches: bug16586v2.patch uploaded by jpeeler (license 325) Tested by: DLNoah ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=241366 By: Digium Subversion (svnbot) 2010-01-19 17:01:04.000-0600 Repository: asterisk Revision: 241367 _U branches/1.6.0/ U branches/1.6.0/main/pbx.c ------------------------------------------------------------------------ r241367 | jpeeler | 2010-01-19 17:01:03 -0600 (Tue, 19 Jan 2010) | 19 lines Merged revisions 241366 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ........ r241366 | jpeeler | 2010-01-19 16:59:53 -0600 (Tue, 19 Jan 2010) | 13 lines Initialize data on the stack so that Park doesn't interpret random arguments. passdata was only being set in pbx_substitue_variables when arguments were passed. (closes issue ASTERISK-14664) (closes issue ASTERISK-14836) Reported by: DLNoah Patches: bug16586v2.patch uploaded by jpeeler (license 325) Tested by: DLNoah ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=241367 By: Digium Subversion (svnbot) 2010-01-19 17:01:45.000-0600 Repository: asterisk Revision: 241368 _U branches/1.6.1/ U branches/1.6.1/main/pbx.c ------------------------------------------------------------------------ r241368 | jpeeler | 2010-01-19 17:01:44 -0600 (Tue, 19 Jan 2010) | 19 lines Merged revisions 241366 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ........ r241366 | jpeeler | 2010-01-19 16:59:53 -0600 (Tue, 19 Jan 2010) | 13 lines Initialize data on the stack so that Park doesn't interpret random arguments. passdata was only being set in pbx_substitue_variables when arguments were passed. (closes issue ASTERISK-14664) (closes issue ASTERISK-14836) Reported by: DLNoah Patches: bug16586v2.patch uploaded by jpeeler (license 325) Tested by: DLNoah ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=241368 By: Digium Subversion (svnbot) 2010-01-19 17:02:23.000-0600 Repository: asterisk Revision: 241369 _U branches/1.6.2/ U branches/1.6.2/main/pbx.c ------------------------------------------------------------------------ r241369 | jpeeler | 2010-01-19 17:02:22 -0600 (Tue, 19 Jan 2010) | 19 lines Merged revisions 241366 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ........ r241366 | jpeeler | 2010-01-19 16:59:53 -0600 (Tue, 19 Jan 2010) | 13 lines Initialize data on the stack so that Park doesn't interpret random arguments. passdata was only being set in pbx_substitue_variables when arguments were passed. (closes issue ASTERISK-14664) (closes issue ASTERISK-14836) Reported by: DLNoah Patches: bug16586v2.patch uploaded by jpeeler (license 325) Tested by: DLNoah ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=241369 |