aboutsummaryrefslogtreecommitdiffstats
path: root/res
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-02-26 07:54:28 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-02-26 07:54:28 +0000
commit6001b7cbd1af820d7deae277a8d4d44192a756f2 (patch)
tree45aa6f60766c3bdb4ab7bde06ae8d94390a53262 /res
parentf82ee2792834df8058f8adaae73b26803f789584 (diff)
Add additional parking events (bug #3620)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5087 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res')
-rwxr-xr-xres/res_features.c38
1 files changed, 36 insertions, 2 deletions
diff --git a/res/res_features.c b/res/res_features.c
index 2979ba87f..ddb02af25 100755
--- a/res/res_features.c
+++ b/res/res_features.c
@@ -278,8 +278,8 @@ int ast_park_call(struct ast_channel *chan, struct ast_channel *peer, int timeou
"CallerIDName: %s\r\n\r\n"
,pu->parkingnum, pu->chan->name, peer->name
,(long)pu->start.tv_sec + (long)(pu->parkingtime/1000) - (long)time(NULL)
- ,(pu->chan->cid.cid_num ? pu->chan->cid.cid_num : "")
- ,(pu->chan->cid.cid_name ? pu->chan->cid.cid_name : "")
+ ,(pu->chan->cid.cid_num ? pu->chan->cid.cid_num : "<unknown>")
+ ,(pu->chan->cid.cid_name ? pu->chan->cid.cid_name : "<unknown>")
);
if (peer) {
@@ -1135,6 +1135,17 @@ static void *do_parking_thread(void *ignore)
strncpy(pu->chan->context, pu->context, sizeof(pu->chan->context)-1);
pu->chan->priority = pu->priority;
}
+
+ manager_event(EVENT_FLAG_CALL, "ParkedCallTimeOut",
+ "Exten: %d\r\n"
+ "Channel: %s\r\n"
+ "CallerID: %s\r\n"
+ "CallerIDName: %s\r\n\r\n"
+ ,pu->parkingnum, pu->chan->name
+ ,(pu->chan->cid.cid_num ? pu->chan->cid.cid_num : "<unknown>")
+ ,(pu->chan->cid.cid_name ? pu->chan->cid.cid_name : "<unknown>")
+ );
+
if (option_verbose > 1)
ast_verbose(VERBOSE_PREFIX_2 "Timeout for %s parked on %d. Returning to %s,%s,%d\n", pu->chan->name, pu->parkingnum, pu->chan->context, pu->chan->exten, pu->chan->priority);
/* Start up the PBX, or hang them up */
@@ -1168,6 +1179,17 @@ static void *do_parking_thread(void *ignore)
/* See if they need servicing */
f = ast_read(pu->chan);
if (!f || ((f->frametype == AST_FRAME_CONTROL) && (f->subclass == AST_CONTROL_HANGUP))) {
+
+ manager_event(EVENT_FLAG_CALL, "ParkedCallGiveUp",
+ "Exten: %d\r\n"
+ "Channel: %s\r\n"
+ "CallerID: %s\r\n"
+ "CallerIDName: %s\r\n\r\n"
+ ,pu->parkingnum, pu->chan->name
+ ,(pu->chan->cid.cid_num ? pu->chan->cid.cid_num : "<unknown>")
+ ,(pu->chan->cid.cid_name ? pu->chan->cid.cid_name : "<unknown>")
+ );
+
/* There's a problem, hang them up*/
if (option_verbose > 1)
ast_verbose(VERBOSE_PREFIX_2 "%s got tired of being parked\n", pu->chan->name);
@@ -1289,6 +1311,18 @@ static int park_exec(struct ast_channel *chan, void *data)
ast_log(LOG_WARNING, "Whoa, failed to remove the extension!\n");
} else
ast_log(LOG_WARNING, "Whoa, no parking context?\n");
+
+ manager_event(EVENT_FLAG_CALL, "UnParkedCall",
+ "Exten: %d\r\n"
+ "Channel: %s\r\n"
+ "From: %s\r\n"
+ "CallerID: %s\r\n"
+ "CallerIDName: %s\r\n\r\n"
+ ,pu->parkingnum, pu->chan->name, chan->name
+ ,(pu->chan->cid.cid_num ? pu->chan->cid.cid_num : "<unknown>")
+ ,(pu->chan->cid.cid_name ? pu->chan->cid.cid_name : "<unknown>")
+ );
+
free(pu);
}
/* JK02: it helps to answer the channel if not already up */