From a46d290802b6114f13db5ccb9da308b40aae0d03 Mon Sep 17 00:00:00 2001 From: Jeff Peeler Date: Thu, 12 Feb 2009 20:48:56 +0000 Subject: [PATCH] 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: https://origsvn.digium.com/svn/asterisk/trunk@175298 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/features.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/main/features.c b/main/features.c index 910570a283..40efac0c47 100644 --- a/main/features.c +++ b/main/features.c @@ -673,6 +673,7 @@ static int ast_park_call_full(struct ast_channel *chan, struct ast_channel *peer struct ast_context *con; int parkingnum_copy; struct parkeduser *pu = args->pu; + const char *event_from; if (pu == NULL) pu = park_space_reserve(chan, peer, args); @@ -748,6 +749,12 @@ static int ast_park_call_full(struct ast_channel *chan, struct ast_channel *peer pthread_kill(parking_thread, SIGURG); ast_verb(2, "Parked %s on %d (lot %s). Will timeout back to extension [%s] %s, %d in %d seconds\n", pu->chan->name, pu->parkingnum, pu->parkinglot->name, 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" @@ -757,7 +764,7 @@ static int ast_park_call_full(struct ast_channel *chan, struct ast_channel *peer "CallerIDNum: %s\r\n" "CallerIDName: %s\r\n" "Uniqueid: %s\r\n", - pu->parkingexten, pu->chan->name, pu->parkinglot->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, ""), S_OR(pu->chan->cid.cid_name, ""),