aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2006-12-07 15:33:32 +0000
committermurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2006-12-07 15:33:32 +0000
commitf336d2a0c7c4680b025ee38274a3a6485a2e09c9 (patch)
tree9a792efe1dc8dc8da13a929b1474344a860381de
parentf39051c1147a6b9b831dd0ebaa131d8ae175c0f1 (diff)
Here lies the fixes that killed bug 8423 -- OriginateSuccess and OriginateError incomplete channel name. May it rest in peace.
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@48349 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--CHANGES2
-rw-r--r--UPGRADE.txt4
-rw-r--r--main/manager.c15
3 files changed, 15 insertions, 6 deletions
diff --git a/CHANGES b/CHANGES
index dca675a32..faa185507 100644
--- a/CHANGES
+++ b/CHANGES
@@ -337,3 +337,5 @@ Changes since Asterisk 1.2:
2. chan_modem_* and related modules are gone because the kernel support for those interfaces is old, buggy and unsupported
* New Utils:
1. aelparse -- compile .ael files outside of asterisk
+ * New manager events:
+ 1. OriginateResponse event comes to replace OriginateSuccess and OriginateFailure
diff --git a/UPGRADE.txt b/UPGRADE.txt
index 741f8111a..2f90be429 100644
--- a/UPGRADE.txt
+++ b/UPGRADE.txt
@@ -247,6 +247,10 @@ Manager:
also been deprecated in favor of the already existing MeetmeTalking event
with a "Status" of "on" or "off" added.
+* OriginateFailure and OriginateSuccess events were replaced by event
+ OriginateResponse with a header named "Response" to indicate success or
+ failure
+
Variables:
* The builtin variables ${CALLERID}, ${CALLERIDNAME}, ${CALLERIDNUM},
diff --git a/main/manager.c b/main/manager.c
index 10dca04e6..7a3270de9 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -1567,6 +1567,7 @@ static void *fast_originate(void *data)
int res;
int reason = 0;
struct ast_channel *chan = NULL;
+ char requested_channel[AST_CHANNEL_NAME];
if (!ast_strlen_zero(in->app)) {
res = ast_pbx_outgoing_app(in->tech, AST_FORMAT_SLINEAR, in->data, in->timeout, in->app, in->appdata, &reason, 1,
@@ -1578,13 +1579,15 @@ static void *fast_originate(void *data)
S_OR(in->cid_num, NULL),
S_OR(in->cid_name, NULL),
in->vars, in->account, &chan);
- }
-
+ }
+
+ if (!chan)
+ snprintf(requested_channel, AST_CHANNEL_NAME, "%s/%s", in->tech, in->data);
/* Tell the manager what happened with the channel */
- manager_event(EVENT_FLAG_CALL,
- res ? "OriginateFailure" : "OriginateSuccess",
+ manager_event(EVENT_FLAG_CALL, "OriginateResponse",
"%s"
- "Channel: %s/%s\r\n"
+ "Response: %s\r\n"
+ "Channel: %s\r\n"
"Context: %s\r\n"
"Exten: %s\r\n"
"Reason: %d\r\n"
@@ -1592,7 +1595,7 @@ static void *fast_originate(void *data)
"CallerID: %s\r\n" /* This parameter is deprecated and will be removed post-1.4 */
"CallerIDNum: %s\r\n"
"CallerIDName: %s\r\n",
- in->idtext, in->tech, in->data, in->context, in->exten, reason,
+ in->idtext, res ? "Failure" : "Success", chan ? chan->name : requested_channel, in->context, in->exten, reason,
chan ? chan->uniqueid : "<null>",
S_OR(in->cid_num, "<unknown>"),
S_OR(in->cid_num, "<unknown>"),