diff --git a/agc_2-X/trunk/docs/BASE_INSTALL.txt b/agc_2-X/trunk/docs/BASE_INSTALL.txt index e6bd277f..0e6665f8 100644 --- a/agc_2-X/trunk/docs/BASE_INSTALL.txt +++ b/agc_2-X/trunk/docs/BASE_INSTALL.txt @@ -80,6 +80,11 @@ cd ../asterisk-1.2.12.1 wget http://www.eflo.net/files/channel.c-42600.patch patch -p1 < ./channel.c-42600.patch - File to patch: channel.c + *OPTIONAL*(1.2 tree) apply the meetme volume control patch + wget http://www.eflo.net/files/meetmeadmin_volume_control.patch + patch -p1 < ./meetmeadmin_volume_control.patch + - File to patch: app_meetme.c.c + make clean make make install diff --git a/agc_2-X/trunk/docs/SCRATCH_INSTALL.txt b/agc_2-X/trunk/docs/SCRATCH_INSTALL.txt index a8091065..628d7a20 100644 --- a/agc_2-X/trunk/docs/SCRATCH_INSTALL.txt +++ b/agc_2-X/trunk/docs/SCRATCH_INSTALL.txt @@ -808,6 +808,10 @@ with the following patch: - wget http://www.eflo.net/files/channel.c-42600.patch - patch -p1 < ./channel.c-42600.patch - File to patch: channel.c + -*OPTIONAL*(1.2 tree) apply the meetme volume control patch + - wget http://www.eflo.net/files/meetmeadmin_volume_control.patch + - patch -p1 < ./meetmeadmin_volume_control.patch + - File to patch: app_meetme.c.c - make clean - make @@ -1950,6 +1954,16 @@ exten => 8600029,1,Meetme,8600029|q entries(this is a pure addition, nothing is being modified): NOTE: see below these entries for app_conference instructions is used ######------ START extensions.conf changes for VD conf ------###### +exten => _X48600XXX,1,MeetMeAdmin(${EXTEN:2},T,${EXTEN:0:1}) +exten => _X48600XXX,2,MeetMeAdmin(${EXTEN:2},U,${EXTEN:0:1}) +exten => _X48600XXX,3,Hangup + +exten => _X38600XXX,1,MeetMeAdmin(${EXTEN:2},t,${EXTEN:0:1}) +exten => _X38600XXX,2,MeetMeAdmin(${EXTEN:2},u,${EXTEN:0:1}) +exten => _X38600XXX,3,Hangup + +exten => 8300,1,Hangup + exten => 8600051,1,Meetme,8600051 exten => 8600052,1,Meetme,8600052 exten => 8600053,1,Meetme,8600053 diff --git a/agc_2-X/trunk/docs/conf_examples/extensions.conf.sample b/agc_2-X/trunk/docs/conf_examples/extensions.conf.sample index 85d14476..e4ef625c 100644 --- a/agc_2-X/trunk/docs/conf_examples/extensions.conf.sample +++ b/agc_2-X/trunk/docs/conf_examples/extensions.conf.sample @@ -259,6 +259,16 @@ exten => 8600027,1,Meetme,8600027|q exten => 8600028,1,Meetme,8600028|q exten => 8600029,1,Meetme,8600029|q +exten => _X48600XXX,1,MeetMeAdmin(${EXTEN:2},T,${EXTEN:0:1}) +exten => _X48600XXX,2,MeetMeAdmin(${EXTEN:2},U,${EXTEN:0:1}) +exten => _X48600XXX,3,Hangup + +exten => _X38600XXX,1,MeetMeAdmin(${EXTEN:2},t,${EXTEN:0:1}) +exten => _X38600XXX,2,MeetMeAdmin(${EXTEN:2},u,${EXTEN:0:1}) +exten => _X38600XXX,3,Hangup + +exten => 8300,1,Hangup + ; VICIDIAL conferences exten => 8600051,1,Meetme,8600051 exten => 8600052,1,Meetme,8600052 diff --git a/agc_2-X/trunk/extras/meetmeadmin_volume_control.patch b/agc_2-X/trunk/extras/meetmeadmin_volume_control.patch new file mode 100644 index 00000000..b557eece --- /dev/null +++ b/agc_2-X/trunk/extras/meetmeadmin_volume_control.patch @@ -0,0 +1,180 @@ +--- app_meetme-orig.c 2006-10-04 12:00:55.000000000 -0400 ++++ app_meetme.c 2006-10-04 14:01:02.000000000 -0400 +@@ -121,6 +121,16 @@ + " 'M' -- Mute conference\n" + " 'n' -- Unmute entire conference (except admin)\n" + " 'N' -- Mute entire conference (except admin)\n" ++" 'S' -- Raise entire conference speaking volume\n" ++" 's' -- Lower entire conference speaking volume\n" ++" 'V' -- Raise entire conference listening volume\n" ++" 'v' -- Lower entire conference listening volume\n" ++" 'T' -- Raise one user's talk volume\n" ++" 't' -- Lower one user's talk volume\n" ++" 'U' -- Raise one user's listen volume\n" ++" 'u' -- Lower one user's listen volume\n" ++" 'R' -- Reset all user's volume settings\n" ++" 'r' -- Reset one user's volume settings\n" + ""; + + #define CONFIG_FILE_NAME "meetme.conf" +@@ -2095,13 +2105,12 @@ + break; + case 75: /* K: kick all users*/ + user = cnf->firstuser; +- while(user) { ++ while (user) { + user->adminflags |= ADMINFLAG_KICKME; +- if (user->nextuser) { ++ if (user->nextuser) + user = user->nextuser; +- } else { ++ else + break; +- } + } + break; + case 101: /* e: Eject last user*/ +@@ -2113,51 +2122,125 @@ + ast_log(LOG_NOTICE, "Not kicking last user, is an Admin!\n"); + break; + case 77: /* M: Mute */ +- if (user) { ++ if (user) + user->adminflags |= ADMINFLAG_MUTED; +- } else { ++ else + ast_log(LOG_NOTICE, "Specified User not found!\n"); +- } + break; + case 78: /* N: Mute all users */ + user = cnf->firstuser; +- while(user) { ++ while (user) { + if (user && !(user->userflags & CONFFLAG_ADMIN)) + user->adminflags |= ADMINFLAG_MUTED; +- if (user->nextuser) { ++ if (user->nextuser) + user = user->nextuser; +- } else { ++ else + break; +- } + } + break; + case 109: /* m: Unmute */ +- if (user && (user->adminflags & ADMINFLAG_MUTED)) { ++ if (user && (user->adminflags & ADMINFLAG_MUTED)) + user->adminflags ^= ADMINFLAG_MUTED; +- } else { ++ else + ast_log(LOG_NOTICE, "Specified User not found or he muted himself!\n"); +- } + break; + case 110: /* n: Unmute all users */ + user = cnf->firstuser; +- while(user) { +- if (user && (user-> adminflags & ADMINFLAG_MUTED)) { ++ while (user) { ++ if (user && (user-> adminflags & ADMINFLAG_MUTED)) + user->adminflags ^= ADMINFLAG_MUTED; +- } +- if (user->nextuser) { ++ if (user->nextuser) + user = user->nextuser; +- } else { ++ else + break; +- } + } + break; + case 107: /* k: Kick user */ +- if (user) { ++ if (user) + user->adminflags |= ADMINFLAG_KICKME; +- } else { ++ else + ast_log(LOG_NOTICE, "Specified User not found!\n"); ++ break; ++ case 118: /* v: Lower all users listen volume */ ++ user = cnf->firstuser; ++ while(user) { ++ tweak_listen_volume(user, VOL_DOWN); ++ if (user->nextuser) ++ user = user->nextuser; ++ else ++ break; ++ } ++ break; ++ case 86: /* V: Raise all users listen volume */ ++ user = cnf->firstuser; ++ while (user) { ++ tweak_listen_volume(user, VOL_UP); ++ if (user->nextuser) ++ user = user->nextuser; ++ else ++ break; ++ } ++ break; ++ case 115: /* s: Lower all users speaking volume */ ++ user = cnf->firstuser; ++ while (user) { ++ tweak_talk_volume(user, VOL_DOWN); ++ if (user->nextuser) ++ user = user->nextuser; ++ else ++ break; ++ } ++ break; ++ case 83: /* S: Raise all users speaking volume */ ++ user = cnf->firstuser; ++ while (user) { ++ tweak_talk_volume(user, VOL_UP); ++ if (user->nextuser) ++ user = user->nextuser; ++ else ++ break; + } + break; ++ case 82: /* R: Reset all volume levels */ ++ user = cnf->firstuser; ++ while (user) { ++ reset_volumes(user); ++ if (user->nextuser) ++ user = user->nextuser; ++ else ++ break; ++ } ++ break; ++ case 114: /* r: Reset user's volume level */ ++ if (user) ++ reset_volumes(user); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; ++ case 85: /* U: Raise user's listen volume */ ++ if (user) ++ tweak_listen_volume(user, VOL_UP); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; ++ case 117: /* u: Lower user's listen volume */ ++ if (user) ++ tweak_listen_volume(user, VOL_DOWN); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; ++ case 84: /* T: Raise user's talk volume */ ++ if (user) ++ tweak_talk_volume(user, VOL_UP); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; ++ case 116: /* t: Lower user's talk volume */ ++ if (user) ++ tweak_talk_volume(user, VOL_DOWN); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; + } + } else { + ast_log(LOG_NOTICE, "Conference Number not found\n"); \ No newline at end of file