[Home]

Summary:ASTERISK-16747: [regression] 'D' option of MeetMe does not work for 1st caller (PIN not asked)
Reporter:Florent Chauveau (mav3rick)Labels:
Date Opened:2010-09-28 11:42:30Date Closed:2011-04-05 16:41:20
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Applications/app_meetme
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) DEBUG.txt
Description:The D option of MeetMe is not working anymore, at least for the first user.

Example :

exten => s,1,MeetMe(1,1DP,42)

The first user entering the conference is not asked for a PIN (bad) :

   -- Executing [s@CONFERENCE:1] MeetMe("SIP/proxy-00000002", "1,1DP,42") in new stack
   -- Created MeetMe conference 1023 for conference '1'

While the second user is asked for a PIN (good) :

   -- Executing [s@CONFERENCE:1] MeetMe("SIP/proxy-00000003", "1,1DP,42") in new stack
   -- <SIP/proxy-00000003> Playing 'conf-getpin.gsm' (language 'en')


Seems like dynamically created conference do not ask the pin to the 1st user.
Static conferences configured in meetme.conf are working as expected.

It used to work in previous versions of Asterisk (at least in 1.6.0.X).

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

I tried the patch in issue ASTERISK-16613 without success.
Comments:By: Leif Madsen (lmadsen) 2010-09-29 11:19:00

Can you provide some console output of this happening along with DEBUG information?

Thanks!

By: Florent Chauveau (mav3rick) 2010-09-29 11:41:31

Console output :


Verbosity is at least 3
Core debug is at least 99999
 == Using SIP RTP CoS mark 5
   -- Executing [556080@sip-from-gateway:1] Set("SIP/proxy-00000001", "__MOON_CALLID=556080") in new stack
   -- Executing [556080@sip-from-gateway:2] Goto("SIP/proxy-00000001", "init-IN,s,1") in new stack
   -- Goto (init-IN,s,1)
   -- Executing [s@init-IN:1] AGI("SIP/proxy-00000001", "themoon/proxy.php,agi.pbx_call_init_in") in new stack
   -- Launched AGI Script /var/lib/asterisk/agi-bin/themoon/proxy.php
   -- <SIP/proxy-00000001>AGI Script themoon/proxy.php completed, returning 0
   -- Executing [s@init-IN:2] GotoIf("SIP/proxy-00000001", "1?CONFERENCE,s,1") in new stack
   -- Goto (CONFERENCE,s,1)
   -- Executing [s@CONFERENCE:1] NoOp("SIP/proxy-00000001", "ROOM = 2") in new stack
   -- Executing [s@CONFERENCE:2] NoOp("SIP/proxy-00000001", "PIN = 42007") in new stack
   -- Executing [s@CONFERENCE:3] MeetMe("SIP/proxy-00000001", "2,1D,42007") in new stack
   -- Created MeetMe conference 1023 for conference '2'
 == Manager 'monitoring' logged on from 172.16.1.17
 == Manager 'monitoring' logged off from 172.16.1.17
 == Using SIP RTP CoS mark 5
   -- Executing [556081@sip-from-gateway:1] Set("SIP/proxy-00000002", "__MOON_CALLID=556081") in new stack
   -- Executing [556081@sip-from-gateway:2] Goto("SIP/proxy-00000002", "init-IN,s,1") in new stack
   -- Goto (init-IN,s,1)
   -- Executing [s@init-IN:1] AGI("SIP/proxy-00000002", "themoon/proxy.php,agi.pbx_call_init_in") in new stack
   -- Launched AGI Script /var/lib/asterisk/agi-bin/themoon/proxy.php
   -- <SIP/proxy-00000002>AGI Script themoon/proxy.php completed, returning 0
   -- Executing [s@init-IN:2] GotoIf("SIP/proxy-00000002", "1?CONFERENCE,s,1") in new stack
   -- Goto (CONFERENCE,s,1)
   -- Executing [s@CONFERENCE:1] NoOp("SIP/proxy-00000002", "ROOM = 2") in new stack
   -- Executing [s@CONFERENCE:2] NoOp("SIP/proxy-00000002", "PIN = 42007") in new stack
   -- Executing [s@CONFERENCE:3] MeetMe("SIP/proxy-00000002", "2,1D,42007") in new stack
   -- <SIP/proxy-00000002> Playing 'conf-getpin.slin' (language 'en')
 == Manager 'monitoring' logged on from 172.16.1.17
 == Manager 'monitoring' logged off from 172.16.1.17
 == Spawn extension (CONFERENCE, s, 3) exited non-zero on 'SIP/proxy-00000001'
 == Spawn extension (CONFERENCE, s, 3) exited non-zero on 'SIP/proxy-00000002'
pbx4*CLI> exit

By: Florent Chauveau (mav3rick) 2010-09-29 11:43:05

As you can see in the console output, the first user is not asked for a PIN (no Playing 'conf-getpin.slin').

The second user is asked for a PIN.

In DEBUG.txt, first user starts at [Sep 29 18:34:44]
Second user starts at [Sep 29 18:35:12]

By: Kris Shaw (shawkris) 2010-09-29 17:07:55

This might be related to the change in dynamic conference behavior in ASTERISK-1568878

By: Andrew Thomas (raffles) 2010-09-30 03:56:15

Just to stick my oar in...

MeetMe appears to be totally screwed these days.  Only static conferences seem to work as they should.  Have a look at https://issues.asterisk.org/view.php?id=18006 and https://issues.asterisk.org/view.php?id=17908 as well.

Also, check out the number of 'MeetMe' related reports - https://issues.asterisk.org/view_all_bug_page.php

Roll on RC2 ;)

By: Leif Madsen (lmadsen) 2010-10-04 12:40:00

Raffles: I'm not sure how productive that comment was.

By: kuj (kuj) 2010-10-04 23:53:35

When I worked on the patch for 0017908, I deliberately didn't want to touch dynamic conferences. I don't use them, and I feel the documentation isn't sufficient. After looking at the code again, I do agree though that the changes in 0015878 are the likely cause of the symptoms seen by the OP.

However, I'm not sure I have the same expectation for the 'D' option as the OP. So far, I understood 'D' to mean "prompt the first user for a conference PIN if no PIN has been set already". But when you invoke "MeetMe(1,1D,1234)", you've essentially assigned a PIN of 1234, so there's no need to prompt for a new PIN. But then again, "MeetMe(1,1DP,1234)" really should prompt for the PIN (because of the 'P' flag). Looking at the code, it appears the intention was to always prompt for a PIN if either the 'P' or 'D' flag was specified (always_prompt=...), but the check for dynamic conferences and first user (in 0015878) doesn't account for that.

I think the first thing needed before implementing actual code to address the OP's observation is to document (and agree on) desired behavior for the various dynamic options.



By: Andrew Thomas (raffles) 2010-10-05 02:52:13

Sorry Leif

I was just trying to point out that MeetMe needs some serious work - and soon :)

Guess I was trying to be 'pushy'.  Sorry all.

By: Florent Chauveau (mav3rick) 2010-10-05 09:53:23

The D option is supposed to prompt every user for a PIN. The MeetMe doc says :

D: Dynamically add conference, prompting for a PIN.

Invoking "MeetMe(1,1D,1234)" should prompt for a PIN, that's the difference between 'd' and 'D'.

I see 'D' like 'dP'.

Anyways, 'dP', 'DP', 'D' do not prompt the first user for a PIN. They all should I guess.

By: kuj (kuj) 2010-10-05 12:23:30

Looking at the code, and based on the existence of the 'P' flag and *'s propensity to avoid redundant code/options, I interpreted the 'D' flag to mean "Dynamically add conference, prompting for a PIN to be assigned to the conference" if none was given. That behavior also is consistent with the original issue in 0015878, where the user was prompted for a PIN twice: once to assign it to the conference because 'D' was used and no PIN existed yet, then one more time to enter the conference which now has a PIN assigned.

Your understanding may well be correct, though. That's why I said the first step should be to agree on behavior and document it in a clear and concise manner, then the code can be adapted accordingly.

By: Digium Subversion (svnbot) 2011-03-23 16:54:12

Repository: asterisk
Revision: 311615

U   branches/1.8/apps/app_meetme.c

------------------------------------------------------------------------
r311615 | bbryant | 2011-03-23 16:54:12 -0500 (Wed, 23 Mar 2011) | 8 lines

This patch fixes a bug with MeetMe behavior where the 'P' option for always
prompting for a pin is ignored for the first caller.

(closes issue ASTERISK-16747)
Reported by: mav3rick

Review: https://reviewboard.asterisk.org/r/1132/

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

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

By: Digium Subversion (svnbot) 2011-03-23 16:55:55

Repository: asterisk
Revision: 311616

_U  trunk/
U   trunk/apps/app_meetme.c

------------------------------------------------------------------------
r311616 | bbryant | 2011-03-23 16:55:54 -0500 (Wed, 23 Mar 2011) | 15 lines

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

........
 r311615 | bbryant | 2011-03-23 17:54:11 -0400 (Wed, 23 Mar 2011) | 8 lines
 
 This patch fixes a bug with MeetMe behavior where the 'P' option for always
 prompting for a pin is ignored for the first caller.
 
 (closes issue ASTERISK-16747)
 Reported by: mav3rick
 
 Review: https://reviewboard.asterisk.org/r/1132/
........

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

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

By: Doug Lytle (lytledd) 2011-07-09 13:20:00.193-0500

I've just updated one of my systems (meetme server) to 1.4.42 and have been bitten by this bug.  I don't see a patch for the 1.4 series and not being familiar with Jira yet, maybe I'm missing something?

Can someone point me in the correct direction to get this patch for 1.4.42?

Thanks,

Doug