[Home]

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-0600Date Closed:2010-01-19 17:02:23.000-0600
Priority:MajorRegression?No
Status:Closed/CompleteComponents: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