[asterisk-commits] file: trunk r87953 - /trunk/main/pbx.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Oct 31 19:04:44 CDT 2007


Author: file
Date: Wed Oct 31 19:04:43 2007
New Revision: 87953

URL: http://svn.digium.com/view/asterisk?view=rev&rev=87953
Log:
Drop any more references to type in the Exception dialplan function.
(closes issue #11134)
Reported by: blitzrage
Patches:
      exception_patch.txt uploaded by blitzrage (license 10)

Modified:
    trunk/main/pbx.c

Modified: trunk/main/pbx.c
URL: http://svn.digium.com/view/asterisk/trunk/main/pbx.c?view=diff&rev=87953&r1=87952&r2=87953
==============================================================================
--- trunk/main/pbx.c (original)
+++ trunk/main/pbx.c Wed Oct 31 19:04:43 2007
@@ -252,7 +252,7 @@
 	AST_DECLARE_STRING_FIELDS(
 		AST_STRING_FIELD(context);	/*!< Context associated with this exception */
 		AST_STRING_FIELD(exten);	/*!< Exten associated with this exception */
-		AST_STRING_FIELD(type);		/*!< The type of exception */
+		AST_STRING_FIELD(reason);		/*!< The exception reason */
 	);
 
 	int priority;				/*!< Priority associated with this exception */
@@ -448,8 +448,7 @@
 	{ "RaiseException", pbx_builtin_raise_exception,
 	"Handle an exceptional condition",
 	"  RaiseException(<reason>): This application will jump to the \"e\" extension\n"
-	"in the current context, setting the dialplan function EXCEPTION().\n"
-	"You can access the value of <reason> with ${EXCEPTION(type)}. If the \"e\"\n"
+	"in the current context, setting the dialplan function EXCEPTION(). If the \"e\"\n"
 	"extension does not exist, the call will hangup.\n"
 	},
 
@@ -1291,9 +1290,9 @@
 	.destroy = exception_store_free,
 };
 
-int pbx_builtin_raise_exception(struct ast_channel *chan, void *vtype)
-{
-	const char *type = vtype;
+int pbx_builtin_raise_exception(struct ast_channel *chan, void *vreason)
+{
+	const char *reason = vreason;
 	struct ast_datastore *ds = ast_channel_datastore_find(chan, &exception_store_info, NULL);
 	struct pbx_exception *exception = NULL;
 
@@ -1316,7 +1315,7 @@
 	} else
 		exception = ds->data;
 
-	ast_string_field_set(exception, type, type);
+	ast_string_field_set(exception, reason, reason);
 	ast_string_field_set(exception, context, chan->context);
 	ast_string_field_set(exception, exten, chan->exten);
 	exception->priority = chan->priority;
@@ -1331,8 +1330,8 @@
 	if (!ds || !ds->data)
 		return -1;
 	exception = ds->data;
-	if (!strcasecmp(data, "TYPE"))
-		ast_copy_string(buf, exception->type, buflen);
+	if (!strcasecmp(data, "REASON"))
+		ast_copy_string(buf, exception->reason, buflen);
 	else if (!strcasecmp(data, "CONTEXT"))
 		ast_copy_string(buf, exception->context, buflen);
 	else if (!strncasecmp(data, "EXTEN", 5))
@@ -1349,7 +1348,8 @@
 	.synopsis = "Retrieve the details of the current dialplan exception",
 	.desc =
 "The following fields are available for retrieval:\n"
-"  type      INVALID, ERROR, RESPONSETIMEOUT, or ABSOLUTETIMEOUT\n"
+"  reason    INVALID, ERROR, RESPONSETIMEOUT, ABSOLUTETIMEOUT, or custom\n"
+"               value set by the RaiseException() application\n"
 "  context   The context executing when the exception occurred\n"
 "  exten     The extension executing when the exception occurred\n"
 "  priority  The numeric priority executing when the exception occurred\n",




More information about the asterisk-commits mailing list