[asterisk-commits] murf: trunk r63076 - /trunk/res/res_features.c

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Fri May 4 11:47:20 MST 2007


Author: murf
Date: Fri May  4 13:47:19 2007
New Revision: 63076

URL: http://svn.digium.com/view/asterisk?view=rev&rev=63076
Log:
According to my testing, it's better if the ast_find_call_feature func ran this way instead, as far as the snom record button is concerned

Modified:
    trunk/res/res_features.c

Modified: trunk/res/res_features.c
URL: http://svn.digium.com/view/asterisk/trunk/res/res_features.c?view=diff&rev=63076&r1=63075&r2=63076
==============================================================================
--- trunk/res/res_features.c (original)
+++ trunk/res/res_features.c Fri May  4 13:47:19 2007
@@ -1056,7 +1056,7 @@
 }
 
 /*! \brief find a call feature by name */
-struct ast_call_feature *ast_find_call_feature(char *name)
+static struct ast_call_feature *find_feature(char *name)
 {
 	struct ast_call_feature *tmp;
 
@@ -1068,6 +1068,18 @@
 	AST_LIST_UNLOCK(&feature_list);
 
 	return tmp;
+}
+
+/*! \brief find a call feature by name */
+struct ast_call_feature *ast_find_call_feature(char *name)
+{
+	int x;
+	for (x = 0; x < FEATURES_COUNT; x++) {
+		if (!strcasecmp(name, builtin_features[x].sname)) {
+			return &builtin_features[x];
+		}
+	}
+	return NULL;
 }
 
 /*! \brief exec an app by feature */
@@ -1197,7 +1209,7 @@
 		char *tok;
 
 		while ((tok = strsep(&tmp, "#")) != NULL) {
-			feature = ast_find_call_feature(tok);
+			feature = find_feature(tok);
 			
 			if (feature) {
 				/* Feature is up for consideration */
@@ -1241,7 +1253,7 @@
 
 			/* while we have a feature */
 			while ((tok = strsep(&tmp, "#"))) {
-				if ((feature = ast_find_call_feature(tok)) && ast_test_flag(feature, AST_FEATURE_FLAG_NEEDSDTMF)) {
+				if ((feature = find_feature(tok)) && ast_test_flag(feature, AST_FEATURE_FLAG_NEEDSDTMF)) {
 					if (ast_test_flag(feature, AST_FEATURE_FLAG_BYCALLER))
 						ast_set_flag(config, AST_BRIDGE_DTMF_CHANNEL_0);
 					if (ast_test_flag(feature, AST_FEATURE_FLAG_BYCALLEE))
@@ -2580,7 +2592,7 @@
 			continue;
 		}
 
-		if ((feature = ast_find_call_feature(var->name))) {
+		if ((feature = find_feature(var->name))) {
 			ast_log(LOG_WARNING, "Dynamic Feature '%s' specified more than once!\n", var->name);
 			continue;
 		}



More information about the asterisk-commits mailing list