[Home]

Summary:ASTERISK-16077: [patch] MeetMe 'L' and 'S' ignore 'C' option
Reporter:var (var)Labels:
Date Opened:2010-05-10 20:41:00Date Closed:2011-05-03 21:39:13
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Applications/app_meetme
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) meetme-continue-on-l_16218.diff
( 1) meetme-continue-on-l-or-s.diff
( 2) meetme-S-option.txt
Description:Using MeetMe with options 'S' or 'L', in conjunction with 'C' fails. When the time-limit is up (L or S) the user's channel is given a soft hangup instead of following the context as expected. If the user is kicked using MeetMeAdmin or MeetMeChannelAdmin, it does follow context as expected.

Meetme 'L' option does not state that line will be hungup - though it does not state that it will not be hungup either:

   'L(x[:y][:z])' - Limit the conference to 'x' ms. Play a warning when 'y' ms are
   left. Repeat the warning every 'z' ms.

Meetme 'S' option does not state that the line will be hungup, it states the user will be 'kicked' from the conference. This would create an assumption that 'C' flag would be utilised and the context followed, however this is not the case:

   'S(x)' -- Kick the user 'x' seconds *after* he entered into the conference.
   'C' -- continue in dialplan when kicked out of conference


The above was tested with:

* Asterisk 1.6.1.18, dahdi 2.2.1, libpri 1.4.10.2 with a Digium TE220 card on Debian 5.0.4 (x86)
* Asterisk 1.6.2.7, DAHDI 2.3.0, libpri 1.4.10.2 with a Digium TE220 card on Debian 5.0.4 (x86)

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

Until this behaviour is changed, the continuing/non-hangup alternatives to MeetMe 'L' and 'S' options I have found are:

     1.) Use an AGI background script with MeetMe option "b". Example script use: Wait(${CONFTIMELIMIT}) and then MeetMeChannelAdmin (or MeetMeAdmin?) to kick the channels associated with the MeetMe conference.

     2.) Use Set(TIMEOUT(absolute)=$[${CURRENTCALLTIME} + ${CONFTIMELIMIT}]), once the absolute time has been reached for the given channel, user of said channel will be transferred to the 'T' extension and follow a context from there.


Options which end in Hangup and do not follow context:

     1.) Limit the scheduled conference via realtime to have an 'endtime' associated with the total length of conference time required.

     2.) Use a Marked user, when last marked user leaves all users are removed from conference.

     3.) MeetMe with 'L' option, MeetMe with 'L' and 'C' options together

     4.) MeetMe with 'S' option, and MeetMe with 'S' and 'C' options together
Comments:By: Leif Madsen (lmadsen) 2010-05-11 10:17:45

Acknowledge that this is a bug. This will be resolved by a developer as time and resources allow.

By: Digium Subversion (svnbot) 2011-01-29 11:51:29.000-0600

Repository: asterisk
Revision: 304773

U   branches/1.6.2/apps/app_meetme.c

------------------------------------------------------------------------
r304773 | seanbright | 2011-01-29 11:51:28 -0600 (Sat, 29 Jan 2011) | 9 lines

When we pass the S() or L() options to MeetMe, make sure that we honor C as well.

Without this patch, if the user was kicked from the conference via the S() or L()
mechanism, we would just hang up on them even if we also passed C (continue in
dialplan when kicked).  With this patch we honor the C flag in those cases.

(closes issue ASTERISK-16077)
Reported by: var

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=304773

By: Digium Subversion (svnbot) 2011-01-29 11:54:44.000-0600

Repository: asterisk
Revision: 304774

_U  branches/1.8/
U   branches/1.8/apps/app_meetme.c

------------------------------------------------------------------------
r304774 | seanbright | 2011-01-29 11:54:44 -0600 (Sat, 29 Jan 2011) | 16 lines

Merged revisions 304773 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
 r304773 | seanbright | 2011-01-29 12:51:28 -0500 (Sat, 29 Jan 2011) | 9 lines
 
 When we pass the S() or L() options to MeetMe, make sure that we honor C as well.
 
 Without this patch, if the user was kicked from the conference via the S() or L()
 mechanism, we would just hang up on them even if we also passed C (continue in
 dialplan when kicked).  With this patch we honor the C flag in those cases.
 
 (closes issue ASTERISK-16077)
 Reported by: var
........

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=304774

By: Digium Subversion (svnbot) 2011-01-29 11:57:02.000-0600

Repository: asterisk
Revision: 304775

_U  trunk/
U   trunk/apps/app_meetme.c

------------------------------------------------------------------------
r304775 | seanbright | 2011-01-29 11:57:02 -0600 (Sat, 29 Jan 2011) | 23 lines

Merged revisions 304774 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
 r304774 | seanbright | 2011-01-29 12:54:43 -0500 (Sat, 29 Jan 2011) | 16 lines
 
 Merged revisions 304773 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.6.2
 
 ........
   r304773 | seanbright | 2011-01-29 12:51:28 -0500 (Sat, 29 Jan 2011) | 9 lines
   
   When we pass the S() or L() options to MeetMe, make sure that we honor C as well.
   
   Without this patch, if the user was kicked from the conference via the S() or L()
   mechanism, we would just hang up on them even if we also passed C (continue in
   dialplan when kicked).  With this patch we honor the C flag in those cases.
   
   (closes issue ASTERISK-16077)
   Reported by: var
 ........
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=304775

By: var (var) 2011-04-08 00:54:01

This issue is not fixed, 'L' and 'S' both cause channel implementing the option to go into SoftHangup when the time limit is reached and not adhere to the 'C' option. Note that this is using realtime meetme.

Asterisk: 1.6.2.17.2
libpri: 1.4.11.5
Dahdi: 2.4.1

Attached output from 'S' option use



By: var (var) 2011-04-08 01:58:56

Patch attached, tested and adheres to the 'C' option on 'L' and 'S' use. Also tested to ensure no continuation when 'C' is not in use.

Patch was made for Asterisk version 1.6.2.17.2 for apps/app_meetme.c

By: Sean Bright (seanbright) 2011-04-15 11:47:28

The issue is absolutely fixed, just not in the version of asterisk you are using.  It will be in 1.6.12.18 when it is released (the RC is out now).  1.6.12.17.2 was copied from 1.6.12.17 which was originally tagged before app_meetme.c was patched.

By: var (var) 2011-05-02 23:25:12

I have installed and tested 1.6.2.18, this issue is still prevalent when using qCL(). The channel which uses qCL() does not continue the dialplan once the time limit (L) is reached, a Soft-Hanging of the channel is executed.

The original patch I added fixed this for 1.6.2.17 in two separate instances, the changes in 1.6.2.18 do not catch a particular break instance when time_left_ms <= 0.

I have attached another patch for 1.6.2.18 to check for the continue flag before this specific break statement.

By: Sean Bright (seanbright) 2011-05-03 20:35:15

Thanks for your patch, I will review it and apply if necessary.  In the future, please generated patch files using the -u (unified) option to diff.

By: Digium Subversion (svnbot) 2011-05-03 21:23:03

Repository: asterisk
Revision: 316475

U   branches/1.6.2/apps/app_meetme.c

------------------------------------------------------------------------
r316475 | seanbright | 2011-05-03 21:23:02 -0500 (Tue, 03 May 2011) | 10 lines

Honor the C option to MeetMe when L is passed.

This fixes a case that r304773 and friends missed.

(closes issue ASTERISK-16077)
Reported by: var
Patches:
     meetme-continue-on-l_16218.diff uploaded by var (license 1227)
Tested by: seanbright

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=316475

By: Digium Subversion (svnbot) 2011-05-03 21:34:02

Repository: asterisk
Revision: 316476

_U  branches/1.8/
U   branches/1.8/apps/app_meetme.c

------------------------------------------------------------------------
r316476 | seanbright | 2011-05-03 21:34:01 -0500 (Tue, 03 May 2011) | 17 lines

Merged revisions 316475 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
 r316475 | seanbright | 2011-05-03 22:23:01 -0400 (Tue, 03 May 2011) | 10 lines
 
 Honor the C option to MeetMe when L is passed.
 
 This fixes a case that r304773 and friends missed.
 
 (closes issue ASTERISK-16077)
 Reported by: var
 Patches:
       meetme-continue-on-l_16218.diff uploaded by var (license 1227)
 Tested by: seanbright
........

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=316476

By: Digium Subversion (svnbot) 2011-05-03 21:39:12

Repository: asterisk
Revision: 316477

_U  trunk/
U   trunk/apps/app_meetme.c

------------------------------------------------------------------------
r316477 | seanbright | 2011-05-03 21:39:11 -0500 (Tue, 03 May 2011) | 24 lines

Merged revisions 316476 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
 r316476 | seanbright | 2011-05-03 22:34:01 -0400 (Tue, 03 May 2011) | 17 lines
 
 Merged revisions 316475 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.6.2
 
 ........
   r316475 | seanbright | 2011-05-03 22:23:01 -0400 (Tue, 03 May 2011) | 10 lines
   
   Honor the C option to MeetMe when L is passed.
   
   This fixes a case that r304773 and friends missed.
   
   (closes issue ASTERISK-16077)
   Reported by: var
   Patches:
         meetme-continue-on-l_16218.diff uploaded by var (license 1227)
   Tested by: seanbright
 ........
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=316477