]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Write the correct callid to the data1 field in queue_log for transfer events.
authorKevin Harwell <kharwell@digium.com>
Tue, 19 Feb 2013 19:16:44 +0000 (19:16 +0000)
committerKevin Harwell <kharwell@digium.com>
Tue, 19 Feb 2013 19:16:44 +0000 (19:16 +0000)
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

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@381770 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/features.c

index 2820f421f7f583ce871181e014716a10c8b7c3a9..203d95486f2afa2819b10ce46a2d4321767473a9 100644 (file)
@@ -2851,7 +2851,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, transferee->context, transferee->exten, transferee->priority);
+
+       dash = strrchr(xferto, '@');
+       if (dash) {
+               /* Trim off the context. */
+               *dash = '\0';
+       }
+       ast_explicit_goto(xferchan, transferer_real_context, xferto, 1);
        xferchan->_state = AST_STATE_UP;
        ast_clear_flag(xferchan, AST_FLAGS_ALL);