Index: channels/chan_dahdi.c =================================================================== --- channels/chan_dahdi.c (revision 153123) +++ channels/chan_dahdi.c (working copy) @@ -3606,7 +3606,9 @@ if (p->subs[SUB_THREEWAY].owner->_state == AST_STATE_RING) { tone_zone_play_tone(p->subs[SUB_THREEWAY].dfd, DAHDI_TONE_RINGTONE); } - if (ast_channel_masquerade(p->subs[SUB_THREEWAY].owner, ast_bridged_channel(p->subs[SUB_REAL].owner))) { + pbx_builtin_setvar_helper(p->subs[SUB_THREEWAY].owner, "BLINDTRANSFER", p->subs[SUB_REAL].owner->name); + pbx_builtin_setvar_helper(p->subs[SUB_REAL].owner, "BLINDTRANSFER", p->subs[SUB_THREEWAY].owner->name); + if (ast_channel_masquerade(p->subs[SUB_THREEWAY].owner, ast_bridged_channel(p->subs[SUB_REAL].owner))) { ast_log(LOG_WARNING, "Unable to masquerade %s as %s\n", ast_bridged_channel(p->subs[SUB_REAL].owner)->name, p->subs[SUB_THREEWAY].owner->name); return -1; @@ -3622,6 +3624,8 @@ if (p->subs[SUB_REAL].owner->_state == AST_STATE_RING) { tone_zone_play_tone(p->subs[SUB_REAL].dfd, DAHDI_TONE_RINGTONE); } + pbx_builtin_setvar_helper(p->subs[SUB_THREEWAY].owner, "BLINDTRANSFER", p->subs[SUB_REAL].owner->name); + pbx_builtin_setvar_helper(p->subs[SUB_REAL].owner, "BLINDTRANSFER", p->subs[SUB_THREEWAY].owner->name); if (ast_channel_masquerade(p->subs[SUB_REAL].owner, ast_bridged_channel(p->subs[SUB_THREEWAY].owner))) { ast_log(LOG_WARNING, "Unable to masquerade %s as %s\n", ast_bridged_channel(p->subs[SUB_THREEWAY].owner)->name, p->subs[SUB_REAL].owner->name); Index: channels/chan_misdn.c =================================================================== --- channels/chan_misdn.c (revision 153123) +++ channels/chan_misdn.c (working copy) @@ -3538,6 +3538,8 @@ holded_chan->state=MISDN_CONNECTED; /* misdn_lib_transfer(holded_chan->bc); */ + pbx_builtin_setvar_helper(tmp_ch->ast, "BLINDTRANSFER", holded_chan->ast->name); + pbx_builtin_setvar_helper(holded_chan->ast, "BLINDTRANSFER", tmp_ch->ast->name); ast_channel_masquerade(holded_chan->ast, ast_bridged_channel(tmp_ch->ast)); } Index: channels/chan_mgcp.c =================================================================== --- channels/chan_mgcp.c (revision 153123) +++ channels/chan_mgcp.c (working copy) @@ -2928,6 +2928,8 @@ if (p->sub->owner->_state == AST_STATE_RINGING) { ast_indicate(ast_bridged_channel(p->sub->next->owner), AST_CONTROL_RINGING); } + pbx_builtin_setvar_helper(p->sub->owner, "BLINDTRANSFER", p->sub->next->owner->name); + pbx_builtin_setvar_helper(p->sub->next->owner, "BLINDTRANSFER", p->sub->owner->name); if (ast_channel_masquerade(p->sub->next->owner, ast_bridged_channel(p->sub->owner))) { ast_log(LOG_WARNING, "Unable to masquerade %s as %s\n", ast_bridged_channel(p->sub->owner)->name, p->sub->next->owner->name); @@ -2940,6 +2942,8 @@ ast_indicate(ast_bridged_channel(p->sub->next->owner), AST_CONTROL_RINGING); } ast_queue_control(p->sub->next->owner, AST_CONTROL_UNHOLD); + pbx_builtin_setvar_helper(p->sub->owner, "BLINDTRANSFER", p->sub->next->owner->name); + pbx_builtin_setvar_helper(p->sub->next->owner, "BLINDTRANSFER", p->sub->owner->name); if (ast_channel_masquerade(p->sub->owner, ast_bridged_channel(p->sub->next->owner))) { ast_log(LOG_WARNING, "Unable to masquerade %s as %s\n", ast_bridged_channel(p->sub->next->owner)->name, p->sub->owner->name); Index: channels/chan_sip.c =================================================================== --- channels/chan_sip.c (revision 153123) +++ channels/chan_sip.c (working copy) @@ -14788,6 +14788,8 @@ transmit_notify_with_sipfrag(transferer, seqno, "200 OK", TRUE); append_history(transferer, "Xfer", "Refer succeeded"); transferer->refer->status = REFER_200OK; + pbx_builtin_setvar_helper(transferer->owner, "BLINDTRANSFER", targetcall_pvt->owner->name); + pbx_builtin_setvar_helper(targetcall_pvt->owner, "BLINDTRANSFER", transferer->owner->name); if (targetcall_pvt->owner) { if (option_debug) ast_log(LOG_DEBUG, "SIP attended transfer: Unlocking channel %s\n", targetcall_pvt->owner->name); Index: res/res_features.c =================================================================== --- res/res_features.c (revision 153123) +++ res/res_features.c (working copy) @@ -972,6 +972,8 @@ if ((features_datastore = ast_channel_datastore_find(newchan, &dial_features_info, NULL))) { dialfeatures = features_datastore->data; } + pbx_builtin_setvar_helper(transferer, "BLINDTRANSFER", newchan->name); + pbx_builtin_setvar_helper(newchan, "BLINDTRANSFER", transferer->name); ast_channel_unlock(newchan); if (dialfeatures) {