summaryrefslogtreecommitdiff
path: root/main/features.c
diff options
context:
space:
mode:
authorKevin Harwell <kharwell@digium.com>2013-02-19 19:47:42 +0000
committerKevin Harwell <kharwell@digium.com>2013-02-19 19:47:42 +0000
commit5e9994ed9c53a61613ce1a8bc84f58f04f311796 (patch)
tree5e0970805ae1e42c037a1bd0a306960f3923798e /main/features.c
parentd1f8e338b0713975e5b42654f9e771acffb713d4 (diff)
Write the correct callid to the data1 field in queue_log for transfer events.
The incorrect callid was being written to the "data1" field in queue_log table for transfer events. The callid of the queue was being written instead of the transfer target's callid. This now gets the correct "transfer to" number and places that in the "data1" field of the queue_log table when a transfer event is triggered. (closes issue ASTERISK-19960) Reported by: vladimir shmagin ........ Merged revisions 381770 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 381791 from http://svn.asterisk.org/svn/asterisk/branches/11 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@381792 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/features.c')
-rw-r--r--main/features.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/main/features.c b/main/features.c
index 0224e7841..0f05fadf3 100644
--- a/main/features.c
+++ b/main/features.c
@@ -3012,7 +3012,13 @@ static int builtin_atxfer(struct ast_channel *chan, struct ast_channel *peer, st
ast_party_connected_line_free(&connected_line);
return -1;
}
- ast_explicit_goto(xferchan, ast_channel_context(transferee), ast_channel_exten(transferee), ast_channel_priority(transferee));
+
+ dash = strrchr(xferto, '@');
+ if (dash) {
+ /* Trim off the context. */
+ *dash = '\0';
+ }
+ ast_explicit_goto(xferchan, transferer_real_context, xferto, 1);
ast_channel_state_set(xferchan, AST_STATE_UP);
ast_clear_flag(ast_channel_flags(xferchan), AST_FLAGS_ALL);