diff options
author | jpeeler <jpeeler@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-02-12 20:50:30 +0000 |
---|---|---|
committer | jpeeler <jpeeler@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-02-12 20:50:30 +0000 |
commit | a505ab928fa1d9c0f4f7c02c5ac3a6ccdd5b30f3 (patch) | |
tree | 9d99185ab09f30133e6d3537d0b5daffe40814e0 | |
parent | fa45b92709a0764da545dcfd41490408b7efb2f1 (diff) |
Merged revisions 175298 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r175298 | jpeeler | 2009-02-12 14:48:56 -0600 (Thu, 12 Feb 2009) | 15 lines
Merged revisions 175294 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r175294 | jpeeler | 2009-02-12 14:34:36 -0600 (Thu, 12 Feb 2009) | 9 lines
Fix ParkedCall event information for From field in the case of a blind transfer
If the parker information can not be obtained from the peer, try and see if
the BLINDTRANSFER channel variable has been set. Previously, a blind transfer
to the ParkAndAnnounce app would return nothing for the From.
Closes AST-189
........
................
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@175299 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | main/features.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/main/features.c b/main/features.c index b1b6e8409..a84dfc8b2 100644 --- a/main/features.c +++ b/main/features.c @@ -489,6 +489,7 @@ static struct parkeduser *park_space_reserve(struct ast_channel *chan) static int park_call_full(struct ast_channel *chan, struct ast_channel *peer, int timeout, int *extout, const char *orig_chan_name, struct parkeduser *pu) { struct ast_context *con; + const char *event_from; /* Get a valid space if not already done */ if (pu == NULL) @@ -555,6 +556,12 @@ static int park_call_full(struct ast_channel *chan, struct ast_channel *peer, in pthread_kill(parking_thread, SIGURG); ast_verb(2, "Parked %s on %d@%s. Will timeout back to extension [%s] %s, %d in %d seconds\n", pu->chan->name, pu->parkingnum, parking_con, pu->context, pu->exten, pu->priority, (pu->parkingtime/1000)); + if (peer) { + event_from = peer->name; + } else { + event_from = pbx_builtin_getvar_helper(chan, "BLINDTRANSFER"); + } + manager_event(EVENT_FLAG_CALL, "ParkedCall", "Exten: %s\r\n" "Channel: %s\r\n" @@ -563,7 +570,7 @@ static int park_call_full(struct ast_channel *chan, struct ast_channel *peer, in "CallerIDNum: %s\r\n" "CallerIDName: %s\r\n" "Uniqueid: %s\r\n", - pu->parkingexten, pu->chan->name, peer ? peer->name : "", + pu->parkingexten, pu->chan->name, pu->parkinglot->name, event_from ? event_from : "", (long)pu->start.tv_sec + (long)(pu->parkingtime/1000) - (long)time(NULL), S_OR(pu->chan->cid.cid_num, "<unknown>"), S_OR(pu->chan->cid.cid_name, "<unknown>"), |