[Home]

Summary:ASTERISK-07756: app_page calls hangup after ~3 seconds
Reporter:Bob Atkins (bob)Labels:
Date Opened:2006-09-17 18:40:19Date Closed:2011-06-07 14:02:41
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Applications/app_page
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) app_page-patch.txt
Description:When calling a paging extension, the paged phones hangup after about 3 seconds leaving the original caller (the phone that originated the page) online but without anyone to talk to. During the first 3 seconds the originating caller's voice can be heard on the paged extensions.

It appears that a change was made to app_page that added a delay to the 'w' option to app_meetme. According to app_meetme there is a new optional delay to the 'w' option:

     'w[(<secs>)]'
         -- wait until the marked user enters the conference

It appears based on the syntax above that the optional delay in seconds should be specified by enclosing the value in parenthesis after the 'w' option. In looking at the app_meetme code this does not appear to be the expected syntax.

From the app_meetme code:

/* Possible timeout waiting for marked user */
if ((confflags & CONFFLAG_WAITMARKED) &&
!ast_strlen_zero(optargs[OPT_ARG_WAITMARKED]) &&
(sscanf(optargs[OPT_ARG_WAITMARKED], "%d", &opt_waitmarked_timeout) == 1) &&
(opt_waitmarked_timeout > 0)) {
timeout = time(NULL) + opt_waitmarked_timeout;
}

This code does not appear to be looking for the optional wait timeout value to be within parenthesis however, app_page is putting this value inside parethesis:

snprintf(meetmeopts, sizeof(meetmeopts), "%ud|%sqxdw(5)", confid, ast_test_flag(&flags, PAGE_DUPLEX) ? "" : "m");

This seems to be causing the called extensions to hangup after about 3 seconds.

****** ADDITIONAL INFORMATION ******

I have modified the app_page application to remove the parenthesis from the 'w' delay and app_page now works just fine. Of course, I do not have any way of creating a test scenerio in which the 'w' delay could expire because it took too long to add the originating caller to the conference.

I have attached a patch to this bug report for consideration.
Comments:By: Tilghman Lesher (tilghman) 2006-09-17 22:07:36

This is already fixed in SVN 1.2.