Summary:ASTERISK-01605: [patch] Extend app_meetme with several features
Reporter:fabeman (fabeman)Labels:
Date Opened:2004-05-13 10:40:10Date Closed:2008-01-15 14:55:48.000-0600
Versions:Frequency of
Environment:Attachments:( 0) meetme_patch.diff
( 1) meetme_patchv2.diff
( 2) meetme_patchv3.diff
( 3) meetme_sounds.txt
Description:I first made up a new list of users so every user is easily manageable in the code...
then there are some new cli commands:
  show conference confno
     shows all the user in a conference (visual style has to be improved
  conf confno (un)lock
     locks or unlockes the conference so no one is able to join anymore
  conf confno (un)mute userno
     mutes or unmutes a user
  conf confno kick (all|userno)
     kicks all users or a single user

the same functionality will be available in the admin menu by phone but i'm still having some problems with the menu (not behaving as expected...)
and as well within an Dialplan app (MeetMeAdmin) which is already available

I added a function for so called "marked users" (+x)
you can give a user the option 'x' with MeetMe and if the last user with an 'x' in the conference leaves the conf all the other users will leave too.


  getting phone menu to work correctly
  recording voice files for variuos situations ('TODO:' in the code)
  integrating the already posted code for invitation by dialing. but this patch is not as nice as it should, i think. an context/extension in the dialplan is needed for it, so i'm trying to rewrite this.
Comments:By: Brian West (bkw918) 2004-05-13 11:07:14

all cli commands should start with conf


By: Olle Johansson (oej) 2004-05-13 15:31:47

Sounds like a lot of wonderful new features. And finally and admin menu :-)

Agree with bkw, all cli commands should have a syntax that starts with "conf".

By: fabeman (fabeman) 2004-05-13 15:35:53

hm. ok. not a big problem.
what about 'show conferences' ? i think i'll output the same when you just do 'conf' and switch the 'show conference confno' to just 'conf confno'
but remain the old command for compatibility.

By: Olle Johansson (oej) 2004-05-13 16:27:42

remove it. Or just output "Use 'conf show' instead.

By: Mark Spencer (markster) 2004-05-15 13:19:47

This is a very exciting patch.  I'd like to make a few recommendations though:

Hrm, would it be better to have them start with "meetme" rather than "conference"?  Open to suggestions.

Why the extra code for the "unmute" by the way, if adminflags isn't set...

The use of strcat is dangerous and can lead to buffer overflows.  Why the big strings of commands anyway?  It looks like things would be much easier if you just issued one command per participant each time, but I assume you had some reason for wanting to do a long command line.

The ability to access the "user menu" must be enabled explicitly through an option.

I believe the use of "x" should be that the conference ends when the last person who has "x" has left the conference.  You might want someone to have "x" who does not have "a" (most notably for using this to implement paging).

LOG_NOTICE and LOG_WARNING should not be used for debug messages.

Anyway all in all this looks good, lets work through the details I've outlined here -- don't add any new features yet -- and someone get the recordings or get the the strings that need to be recorded, and lets get it in.

By: fabeman (fabeman) 2004-05-16 11:11:34

hm. meetme as prefix would be also ok. then it would be clear to which app it belongs, if (perhaps) other conferencing apps follow (who knows)

if a user is unmuted by the admin the flag is removed from the adminflags var. then the var is possibly empty. so therefore the 'else'.
"problem" with muting is just that the user is able to do and remove this by himself but should be unable to remove it, if the admin set it ...

hm. what do you mean by "one command per participant each time" ?
the long command line in the cli? i think it's quite handy ;)
and the long string is a result of using the MeetMeAdmin function from the dialplan. so this function gets a long cmdline by default from the dialplan
so i reused this one. but a backend function doing just the functionality with single param's would be also possible. i'll take a look at the strcat code but i think it's easy to secure those in this context.

the problem with the user menu is not accessing it. i saw quite weird behavior while testing. for example i would able to mute myself and then i was unable to get to the menu ....
then i accessed the menu from the other participant and did a "mute" and both were unmuted again.. a bit weird. is it possible, that if you are muted with the conference option, that the digit's don't get through?
but there's another quite a bit more complicated thing we should do:
"dtmf tone clamping". if someone presses a key, the whole conference should ne hear it... but i think this must be done in zaptel or ?

'x' works exactly like you explained. if the last person with an 'x' leaves, everyone else leaves too. this is not bound to 'a'.

i'll remove the debug msg's soon ;)

By: Mark Spencer (markster) 2004-05-16 11:32:38

You should be sure you have the confmute stuff turned on with the set opitons business, otherwise DTMF can come into the conference, but this is likely already the case.  If you fix the strcat we can probably deal with the long strings of functionality so long as it's well documented what all the little bits are that make it up.

I don't like having a single command called "conf" or "meetme".  I reccommend you register the application once for each invocation mode, even if that's the same application, so you can have separate "help" for each one. (also, the conference number would go at the end, where it makes most sense, e.g. 'meetme lock 1234').

As long as the user has the ability to have a menu, their adminmode shouldn't ever be 0 right?

You may find you're better off using "flags &=~foo" rather than "flags ^= foo" for clarity when clearing flags.

Fixing the strcat should be pretty straight forward.  If you qualify that the arguments have to be < 100 characters, that would do it for example.

Thanks for the clarification of the 'x' flag, and it appears that you have to use 's' flag in order to be able to see the menu, if i'm understanding properly.

Look forward to gettin gthis as soon as possible.

By: fabeman (fabeman) 2004-05-17 04:52:47

yes. the 's' is required for being able to get into the menu.

ok, i'll change the command prefix and the order of the commands and then register them each for it's own.

the adminmode has nothing to do with the admin menu.
adminmode are the mode's an admin set for a specific user. this most time IS 0
the user is able to mute himself and unmute.. but if the admin set it, he won't be able to do this!

i'm uploading a new patch with the stuff mentioned and then go to test the dtmf stuff for the menu...

By: fabeman (fabeman) 2004-05-17 04:58:42

meetme lock 12345 would be quite ok. but how to mute a user ?
meetme mute confno userno ?

By: fabeman (fabeman) 2004-05-17 05:14:45

ok, i enabled the confmute stuff for the normal conference, but i'm still able to hear the dtmf tone on the other phone :(
and it also seems that if you are muted, that you're also unable to send dtmf tones (so you're unable to unmute yourself!)
is there another way of muteing somebody than setting him into monitor mode?

By: Mark Spencer (markster) 2004-05-17 09:31:48

No, but you might be missing something here.  I would verify that you're really seeing tones leak back.  In order for the tones to leak back, they have to not only make their way to the other phones, but they have to echo back.

"meetme mute confno userno" is fine.  The user isn't able to mute/unmute themselves unless they have the user menu right?

By: fabeman (fabeman) 2004-05-17 10:13:19

yes that's right. only with the user menu the user is able to do that.

By: fabeman (fabeman) 2004-05-17 10:25:25

hm. i just tested this and as soon as the monitor mode is set for a user no more DTMF Frame's are received by the meetme application :(

By: fabeman (fabeman) 2004-05-18 11:07:33

here's my latest patch. the 'onthephone'-menu works now :)
confmute works ok but i can still a hear a little 'blib' if a button is pressed.
the problem with not receiving dtmf's was my fault i did'nt realize how this exactly works. sry for that.

By: Brian West (bkw918) 2004-05-18 22:52:59

is this disclaimed? And we need sounds.txt list so we can get allison to work on it.


By: fabeman (fabeman) 2004-05-19 05:33:10

i sent in a disclaimer a week ago or so..
i'll add the sounds.txt feel free to suggest better texts
(my english is not the best ;) )

By: Mark Spencer (markster) 2004-05-21 23:58:21

Added to CVS, thanks again for these extensive improvements.  Oh, for consistency I changed the "s" option to "u" (u = user, a = admin)...

By: Digium Subversion (svnbot) 2008-01-15 14:55:48.000-0600

Repository: asterisk
Revision: 3038

U   trunk/apps/app_meetme.c
U   trunk/channel.c
U   trunk/include/asterisk/channel.h
U   trunk/manager.c
A   trunk/sounds/conf-adminmenu.gsm
A   trunk/sounds/conf-errormenu.gsm
A   trunk/sounds/conf-kicked.gsm
A   trunk/sounds/conf-locked.gsm
A   trunk/sounds/conf-lockednow.gsm
A   trunk/sounds/conf-muted.gsm
A   trunk/sounds/conf-unlockednow.gsm
A   trunk/sounds/conf-unmuted.gsm
A   trunk/sounds/conf-usermenu.gsm
U   trunk/sounds.txt

r3038 | markster | 2008-01-15 14:55:48 -0600 (Tue, 15 Jan 2008) | 2 lines

Merge fabeman's extensive meetme improvements (bug ASTERISK-1605)