[asterisk-commits] dvossel: branch dvossel/hd_confbridge r310882 - in /team/dvossel/hd_confbridg...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Mar 15 12:42:30 CDT 2011


Author: dvossel
Date: Tue Mar 15 12:42:26 2011
New Revision: 310882

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=310882
Log:
Allow user moh class to be specified in user profile

Modified:
    team/dvossel/hd_confbridge/apps/app_confbridge.c
    team/dvossel/hd_confbridge/apps/confbridge/conf_config_parser.c
    team/dvossel/hd_confbridge/apps/confbridge/include/confbridge.h
    team/dvossel/hd_confbridge/configs/confbridge.conf.sample

Modified: team/dvossel/hd_confbridge/apps/app_confbridge.c
URL: http://svnview.digium.com/svn/asterisk/team/dvossel/hd_confbridge/apps/app_confbridge.c?view=diff&rev=310882&r1=310881&r2=310882
==============================================================================
--- team/dvossel/hd_confbridge/apps/app_confbridge.c (original)
+++ team/dvossel/hd_confbridge/apps/app_confbridge.c Tue Mar 15 12:42:26 2011
@@ -374,7 +374,7 @@
 		 * allowing a marked user to enter while the prompt was playing
 		 */
 		if (!conference_bridge->markedusers && ast_test_flag(&conference_bridge_user->u_profile, USER_OPT_MUSICONHOLD)) {
-			ast_moh_start(conference_bridge_user->chan, conference_bridge_user->opt_args[OPTION_MUSICONHOLD_CLASS], NULL);
+			ast_moh_start(conference_bridge_user->chan, conference_bridge_user->u_profile.moh_class, NULL);
 		}
 	}
 }
@@ -400,7 +400,7 @@
 		 * participant could have joined while the above prompt was playing for the first user.
 		 */
 		if (conference_bridge->users == 1 && ast_test_flag(&conference_bridge_user->u_profile, USER_OPT_MUSICONHOLD)) {
-			ast_moh_start(conference_bridge_user->chan, conference_bridge_user->opt_args[OPTION_MUSICONHOLD_CLASS], NULL);
+			ast_moh_start(conference_bridge_user->chan, conference_bridge_user->u_profile.moh_class, NULL);
 		}
 		return;
 	}
@@ -625,7 +625,7 @@
 					other_participant->kicked = 1;
 					ast_bridge_remove(conference_bridge->bridge, other_participant->chan);
 				} else if (ast_test_flag(&other_participant->u_profile, USER_OPT_MUSICONHOLD) && !ast_bridge_suspend(conference_bridge->bridge, other_participant->chan)) {
-					ast_moh_start(other_participant->chan, other_participant->opt_args[OPTION_MUSICONHOLD_CLASS], NULL);
+					ast_moh_start(other_participant->chan, other_participant->u_profile.moh_class, NULL);
 					ast_bridge_unsuspend(conference_bridge->bridge, other_participant->chan);
 				}
 			}
@@ -634,7 +634,7 @@
 			struct conference_bridge_user *first_participant = AST_LIST_FIRST(&conference_bridge->users_list);
 
 			if (ast_test_flag(&first_participant->u_profile, USER_OPT_MUSICONHOLD) && !ast_bridge_suspend(conference_bridge->bridge, first_participant->chan)) {
-				ast_moh_start(first_participant->chan, first_participant->opt_args[OPTION_MUSICONHOLD_CLASS], NULL);
+				ast_moh_start(first_participant->chan, first_participant->u_profile.moh_class, NULL);
 				ast_bridge_unsuspend(conference_bridge->bridge, first_participant->chan);
 			}
 		}
@@ -1158,7 +1158,7 @@
 	/* See if music on hold needs to be started back up again */
 	ao2_lock(conference_bridge);
 	if (conference_bridge->users == 1 && ast_test_flag(&conference_bridge_user->u_profile, USER_OPT_MUSICONHOLD)) {
-		ast_moh_start(bridge_channel->chan, conference_bridge_user->opt_args[OPTION_MUSICONHOLD_CLASS], NULL);
+		ast_moh_start(bridge_channel->chan, conference_bridge_user->u_profile.moh_class, NULL);
 	}
 	ao2_unlock(conference_bridge);
 

Modified: team/dvossel/hd_confbridge/apps/confbridge/conf_config_parser.c
URL: http://svnview.digium.com/svn/asterisk/team/dvossel/hd_confbridge/apps/confbridge/conf_config_parser.c?view=diff&rev=310882&r1=310881&r2=310882
==============================================================================
--- team/dvossel/hd_confbridge/apps/confbridge/conf_config_parser.c (original)
+++ team/dvossel/hd_confbridge/apps/confbridge/conf_config_parser.c Tue Mar 15 12:42:26 2011
@@ -196,6 +196,7 @@
 	/* set defaults */
 	u_profile->flags = 0;
 	memset(u_profile->pin, 0, sizeof(u_profile->pin));
+	memset(u_profile->moh_class, 0, sizeof(u_profile->moh_class));
 	for (var = ast_variable_browse(cfg, cat); var; var = var->next) {
 		if (!strcasecmp(var->name, "type")) {
 			continue;
@@ -241,6 +242,8 @@
 				u_profile->flags & ~USER_OPT_ANNOUNCE_JOIN_LEAVE;
 		} else if (!strcasecmp(var->name, "pin")) {
 			ast_copy_string(u_profile->pin, var->value, sizeof(u_profile->pin));
+		} else if (!strcasecmp(var->name, "music_on_hold_class")) {
+			ast_copy_string(u_profile->moh_class, var->value, sizeof(u_profile->moh_class));
 		} else if (!strcasecmp(var->name, "denoise")) {
 			u_profile->flags = ast_true(var->value) ?
 				u_profile->flags | USER_OPT_DENOISE :
@@ -477,6 +480,9 @@
 	ast_cli(a->fd,"MOH When Empty:      %s\n",
 		u_profile.flags & USER_OPT_MUSICONHOLD ?
 		"enabled" : "disabled");
+	ast_cli(a->fd,"MOH Class:           %s\n",
+		ast_strlen_zero(u_profile.moh_class) ?
+		"default" : u_profile.moh_class);
 	ast_cli(a->fd,"Quiet:               %s\n",
 		u_profile.flags & USER_OPT_QUIET ?
 		"enabled" : "disabled");

Modified: team/dvossel/hd_confbridge/apps/confbridge/include/confbridge.h
URL: http://svnview.digium.com/svn/asterisk/team/dvossel/hd_confbridge/apps/confbridge/include/confbridge.h?view=diff&rev=310882&r1=310881&r2=310882
==============================================================================
--- team/dvossel/hd_confbridge/apps/confbridge/include/confbridge.h (original)
+++ team/dvossel/hd_confbridge/apps/confbridge/include/confbridge.h Tue Mar 15 12:42:26 2011
@@ -103,6 +103,7 @@
 struct user_profile {
 	char name[128];
 	char pin[MAX_PIN];
+	char moh_class[128];
 	unsigned int flags;
 	int delme;
 };
@@ -113,12 +114,6 @@
 	unsigned int max_members;          /*!< The maximum number of participants allowed in the conference */
 	unsigned int internal_sample_rate; /*!< The internal sample rate of the bridge. 0 when set to auto adjust mode. */
 	int delme;
-};
-
-enum {//todohere this must move or go away somewhere
-	OPTION_MUSICONHOLD_CLASS,            /*!< If the 'M' option is set, the music on hold class to play */
-	/*This must be the last element */
-	OPTION_ARRAY_SIZE,
 };
 
 /*! \brief The structure that represents a conference bridge */
@@ -144,7 +139,6 @@
 	char menu_name[64];                          /*!< The name of the DTMF menu assigned to this user */
 	char name_rec_location[PATH_MAX];            /*!< Location of the User's name recorded file if it exists */
 	struct ast_channel *chan;                    /*!< Asterisk channel participating */
-	char *opt_args[OPTION_ARRAY_SIZE];           /*!< Arguments to options passed when application was called */
 	struct ast_bridge_features features;         /*!< Bridge features structure */
 	unsigned int kicked:1;                       /*!< User has been kicked from the conference */
 	AST_LIST_ENTRY(conference_bridge_user) list; /*!< Linked list information */

Modified: team/dvossel/hd_confbridge/configs/confbridge.conf.sample
URL: http://svnview.digium.com/svn/asterisk/team/dvossel/hd_confbridge/configs/confbridge.conf.sample?view=diff&rev=310882&r1=310881&r2=310882
==============================================================================
--- team/dvossel/hd_confbridge/configs/confbridge.conf.sample (original)
+++ team/dvossel/hd_confbridge/configs/confbridge.conf.sample Tue Mar 15 12:42:26 2011
@@ -20,6 +20,7 @@
                                ; one person is in the conference or when the
                                ; the user is waiting on a marked user to enter
                                ; the conference. Off by default.
+;music_on_hold_class=default   ; The MOH class to use for this user.
 ;quiet=yes     ; Sets if no audio prompts should be played.  There are some prompts,
                ; such as the prompt to enter a PIN number, that must be played regardless
                ; of what this option is set to.  Off by default




More information about the asterisk-commits mailing list