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

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Mar 2 10:44:26 CST 2011


Author: dvossel
Date: Wed Mar  2 10:44:22 2011
New Revision: 309252

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=309252
Log:
Addition of more bridge profile options

Modified:
    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/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=309252&r1=309251&r2=309252
==============================================================================
--- team/dvossel/hd_confbridge/apps/confbridge/conf_config_parser.c (original)
+++ team/dvossel/hd_confbridge/apps/confbridge/conf_config_parser.c Wed Mar  2 10:44:22 2011
@@ -124,6 +124,7 @@
 	ao2_lock(b_profile);
 	/* set defaults */
 	b_profile->internal_sample_rate = 0;
+	b_profile->flags = 0;
 
 	for (var = ast_variable_browse(cfg, cat); var; var = var->next) {
 		if (!strcasecmp(var->name, "internal_sample_rate")) {
@@ -133,6 +134,22 @@
 				ast_log(LOG_WARNING, "internal_sample_rate '%s' at line %d of %s is not supported.\n",
 						var->value, var->lineno, CONF_CONFIG);
 			}
+		} else if (!strcasecmp(var->name, "music_on_hold_when_empty")) {
+			b_profile->flags = ast_true(var->value) ?
+				b_profile->flags | BRIDGE_OPT_MUSICONHOLD :
+				b_profile->flags & ~BRIDGE_OPT_MUSICONHOLD;
+		} else if (!strcasecmp(var->name, "wait_marked")) {
+			b_profile->flags = ast_true(var->value) ?
+				b_profile->flags | BRIDGE_OPT_WAITMARKED :
+				b_profile->flags & ~BRIDGE_OPT_WAITMARKED;
+		} else if (!strcasecmp(var->name, "quiet")) {
+			b_profile->flags = ast_true(var->value) ?
+				b_profile->flags | BRIDGE_OPT_QUIET :
+				b_profile->flags & ~BRIDGE_OPT_QUIET;
+		} else if (!strcasecmp(var->name, "announce_user_count")) {
+			b_profile->flags = ast_true(var->value) ?
+				b_profile->flags | BRIDGE_OPT_ANNOUNCEUSERCOUNT :
+				b_profile->flags & ~BRIDGE_OPT_ANNOUNCEUSERCOUNT;
 		} else if (!strcasecmp(var->name, "type")) {
 			continue;
 		} else {
@@ -316,13 +333,26 @@
 		return CLI_SUCCESS;
 	}
 
-	ast_cli(a->fd,"Name: %s\n", b_profile->name);
+	ast_cli(a->fd,"--------------------------------------------\n");
+	ast_cli(a->fd,"Name:                 %s\n", b_profile->name);
 	if (b_profile->internal_sample_rate) {
 		snprintf(tmp, sizeof(tmp), "%d", b_profile->internal_sample_rate);
 	} else {
 		snprintf(tmp, sizeof(tmp), "auto");
 	}
 	ast_cli(a->fd,"Internal Sample Rate: %s\n", tmp);
+	ast_cli(a->fd,"MOH When Empty:       %s\n",
+		b_profile->flags & BRIDGE_OPT_MUSICONHOLD ?
+		"enabled" : "disabled");
+	ast_cli(a->fd,"Wait Marked:          %s\n",
+		b_profile->flags & BRIDGE_OPT_WAITMARKED ?
+		"enabled" : "disabled");
+	ast_cli(a->fd,"Quiet:                %s\n",
+		b_profile->flags & BRIDGE_OPT_QUIET ?
+		"enabled" : "disabled");
+	ast_cli(a->fd,"Announce User Count:  %s\n",
+		b_profile->flags & BRIDGE_OPT_ANNOUNCEUSERCOUNT ?
+		"enabled" : "disabled");
 	ast_cli(a->fd,"\n");
 
 	ao2_ref((struct bridge_profile *) b_profile, -1);

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=309252&r1=309251&r2=309252
==============================================================================
--- team/dvossel/hd_confbridge/apps/confbridge/include/confbridge.h (original)
+++ team/dvossel/hd_confbridge/apps/confbridge/include/confbridge.h Wed Mar  2 10:44:22 2011
@@ -27,8 +27,8 @@
 /* Maximum length of a conference bridge name */
 #define MAX_CONF_NAME 32
 
-
-enum user_profile_flags {
+//todohere remove these old flags once the new ones take their place.
+enum {
 	OPTION_ADMIN = (1 << 0),             /*!< Set if the caller is an administrator */
 	OPTION_MENU = (1 << 1),              /*!< Set if the caller should have access to the conference bridge IVR menu */
 	OPTION_MUSICONHOLD = (1 << 2),       /*!< Set if music on hold should be played if nobody else is in the conference bridge */
@@ -40,6 +40,20 @@
 	OPTION_QUIET = (1 << 8),             /*!< Set if no audio prompts should be played */
 };
 
+enum user_profile_flags {
+	USER_OPT_ADMIN = (1 << 0),             /*!< Set if the caller is an administrator */
+	USER_OPT_MARKEDUSER = (1 << 2),        /*!< Set if the caller is a marked user */
+	USER_OPT_STARTMUTED = (1 << 3),        /*!< Set if the caller should be initially set muted */
+};
+
+enum bridge_profile_flags {
+	BRIDGE_OPT_MUSICONHOLD = (1 << 0),  /*!< Set if music on hold should be played if nobody else is in the conference bridge */
+	BRIDGE_OPT_NOONLYPERSON = (1 << 1), /*!< Set if the "you are currently the only person in this conference" sound file should not be played */
+	BRIDGE_OPT_WAITMARKED = (1 << 2),   /*!< Set if the conference must wait for a marked user before starting */
+	BRIDGE_OPT_QUIET = (1 << 3),        /*!< Set if no audio prompts should be played */
+	BRIDGE_OPT_ANNOUNCEUSERCOUNT = (1 << 4), /*!< Set if the number of users should be announced to the caller */
+};
+
 struct conf_menu {
 	char name[64];
 	int delme;
@@ -47,13 +61,14 @@
 
 struct user_profile {
 	char name[64];
-	enum user_profile_flags flags;
+	unsigned int flags;
 	int volume;
 	int delme;
 };
 
 struct bridge_profile {
 	char name[64];
+	unsigned int flags;
 	unsigned int internal_sample_rate;     /*!< The internal sample rate of the bridge. 0 when set to auto adjust mode. */
 	int delme;
 };

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=309252&r1=309251&r2=309252
==============================================================================
--- team/dvossel/hd_confbridge/configs/confbridge.conf.sample (original)
+++ team/dvossel/hd_confbridge/configs/confbridge.conf.sample Wed Mar  2 10:44:22 2011
@@ -8,10 +8,28 @@
 ; instances invoked without a user, bridge, or menu argument.
 [default_user]
 type=user
+;admin=yes     ; Sets if the user is an admin or not. Off by default.
+;marked=yes    ; Sets if this is a marked user or not. Off by default.
+;startmuted=yes; Sets if all users should start out muted. Off by default
 
 [default_bridge]
 type=bridge
-internal_sample_rate=auto
+;internal_sample_rate=auto     ; Sets the internal native sample rate the
+                               ; conference is mixed at.  This is set to automatically
+                               ; adjust the sample rate to the best quality by default.
+                               ; Other values can be anything from 8000-192000.  If a
+                               ; sample rate is set that Asterisk does not support, the
+                               ; closest sample rate Asterisk does support to the one requested
+                               ; will be used.
+
+;music_on_hold_when_empty=yes  ; Sets whether MOH should be played when only
+                               ; one person is in the conference.  Off by default.
+;wait_marked=yes      ; Sets if the conference must wait for a marked user
+                      ; to enter before starting. Off by default.
+;quiet=yes            ; Sets if no audio prompts should be played. Off by default
+;announce_user_count=yes  ; Sets if the number of users should be announced to the
+                          ; caller.  Off by default.
+
 
 [default_menu]
 type=menu




More information about the asterisk-commits mailing list