caller/callee id flipping for blind xfer

This commit is contained in:
Anthony Minessale 2010-06-14 18:37:40 -05:00
parent beca1423d5
commit 2b2f921442
2 changed files with 17 additions and 1 deletions

View File

@ -1406,6 +1406,21 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_session_transfer(switch_core_session_
new_profile->destination_number = switch_core_strdup(new_profile->pool, extension);
new_profile->rdnis = switch_core_strdup(new_profile->pool, profile->destination_number);
if (switch_channel_direction(channel) == SWITCH_CALL_DIRECTION_OUTBOUND) {
if (profile->callee_id_name) {
switch_channel_set_variable(channel, "pre_transfer_caller_id_name", new_profile->caller_id_name);
new_profile->caller_id_name = switch_core_strdup(new_profile->pool, profile->callee_id_name);
profile->callee_id_name = NULL;
}
if (profile->callee_id_number) {
switch_channel_set_variable(channel, "pre_transfer_caller_id_number", new_profile->caller_id_number);
new_profile->caller_id_number = switch_core_strdup(new_profile->pool, profile->callee_id_number);
profile->callee_id_number = NULL;
}
}
switch_channel_set_variable(channel, SWITCH_SIGNAL_BOND_VARIABLE, NULL);
/* If HANGUP_AFTER_BRIDGE is set to 'true', SWITCH_SIGNAL_BRIDGE_VARIABLE

View File

@ -100,7 +100,8 @@ static void send_display(switch_core_session_t *session, switch_core_session_t *
caller_channel = switch_core_session_get_channel(session);
caller_profile = switch_channel_get_caller_profile(caller_channel);
if (switch_channel_direction(caller_channel) == SWITCH_CALL_DIRECTION_OUTBOUND) {
// if (switch_channel_direction(caller_channel) == SWITCH_CALL_DIRECTION_OUTBOUND) {
if (!switch_channel_test_flag(caller_channel, CF_BRIDGE_ORIGINATOR)) {
name = caller_profile->callee_id_name;
number = caller_profile->callee_id_number;