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)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87953 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.6.0
Joshua Colp 19 years ago
parent b1d5789cc5
commit 284721fdb1

@ -252,7 +252,7 @@ struct pbx_exception {
AST_DECLARE_STRING_FIELDS( AST_DECLARE_STRING_FIELDS(
AST_STRING_FIELD(context); /*!< Context associated with this exception */ AST_STRING_FIELD(context); /*!< Context associated with this exception */
AST_STRING_FIELD(exten); /*!< Exten 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 */ int priority; /*!< Priority associated with this exception */
@ -448,8 +448,7 @@ static struct pbx_builtin {
{ "RaiseException", pbx_builtin_raise_exception, { "RaiseException", pbx_builtin_raise_exception,
"Handle an exceptional condition", "Handle an exceptional condition",
" RaiseException(<reason>): This application will jump to the \"e\" extension\n" " RaiseException(<reason>): This application will jump to the \"e\" extension\n"
"in the current context, setting the dialplan function EXCEPTION().\n" "in the current context, setting the dialplan function EXCEPTION(). If the \"e\"\n"
"You can access the value of <reason> with ${EXCEPTION(type)}. If the \"e\"\n"
"extension does not exist, the call will hangup.\n" "extension does not exist, the call will hangup.\n"
}, },
@ -1291,9 +1290,9 @@ static struct ast_datastore_info exception_store_info = {
.destroy = exception_store_free, .destroy = exception_store_free,
}; };
int pbx_builtin_raise_exception(struct ast_channel *chan, void *vtype) int pbx_builtin_raise_exception(struct ast_channel *chan, void *vreason)
{ {
const char *type = vtype; const char *reason = vreason;
struct ast_datastore *ds = ast_channel_datastore_find(chan, &exception_store_info, NULL); struct ast_datastore *ds = ast_channel_datastore_find(chan, &exception_store_info, NULL);
struct pbx_exception *exception = NULL; struct pbx_exception *exception = NULL;
@ -1316,7 +1315,7 @@ int pbx_builtin_raise_exception(struct ast_channel *chan, void *vtype)
} else } else
exception = ds->data; 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, context, chan->context);
ast_string_field_set(exception, exten, chan->exten); ast_string_field_set(exception, exten, chan->exten);
exception->priority = chan->priority; exception->priority = chan->priority;
@ -1331,8 +1330,8 @@ static int acf_exception_read(struct ast_channel *chan, const char *name, char *
if (!ds || !ds->data) if (!ds || !ds->data)
return -1; return -1;
exception = ds->data; exception = ds->data;
if (!strcasecmp(data, "TYPE")) if (!strcasecmp(data, "REASON"))
ast_copy_string(buf, exception->type, buflen); ast_copy_string(buf, exception->reason, buflen);
else if (!strcasecmp(data, "CONTEXT")) else if (!strcasecmp(data, "CONTEXT"))
ast_copy_string(buf, exception->context, buflen); ast_copy_string(buf, exception->context, buflen);
else if (!strncasecmp(data, "EXTEN", 5)) else if (!strncasecmp(data, "EXTEN", 5))
@ -1349,7 +1348,8 @@ static struct ast_custom_function exception_function = {
.synopsis = "Retrieve the details of the current dialplan exception", .synopsis = "Retrieve the details of the current dialplan exception",
.desc = .desc =
"The following fields are available for retrieval:\n" "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" " context The context executing when the exception occurred\n"
" exten The extension 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", " priority The numeric priority executing when the exception occurred\n",

Loading…
Cancel
Save