fix small issue
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7804 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
6074db4a74
commit
86729b7ff8
|
@ -2134,7 +2134,8 @@ void sofia_handle_sip_i_refer(nua_t *nua, sofia_profile_t *profile, nua_handle_t
|
||||||
uint32_t timeout = 60;
|
uint32_t timeout = 60;
|
||||||
char *tuuid_str;
|
char *tuuid_str;
|
||||||
const char *port = NULL;
|
const char *port = NULL;
|
||||||
|
switch_status_t status;
|
||||||
|
|
||||||
if (refer_to && refer_to->r_url && refer_to->r_url->url_port) {
|
if (refer_to && refer_to->r_url && refer_to->r_url->url_port) {
|
||||||
port = refer_to->r_url->url_port;
|
port = refer_to->r_url->url_port;
|
||||||
}
|
}
|
||||||
|
@ -2157,17 +2158,20 @@ void sofia_handle_sip_i_refer(nua_t *nua, sofia_profile_t *profile, nua_handle_t
|
||||||
if (!switch_strlen_zero(full_ref_to)) {
|
if (!switch_strlen_zero(full_ref_to)) {
|
||||||
switch_channel_set_variable(channel, SOFIA_REFER_TO_VARIABLE, full_ref_to);
|
switch_channel_set_variable(channel, SOFIA_REFER_TO_VARIABLE, full_ref_to);
|
||||||
}
|
}
|
||||||
if (switch_ivr_originate(a_session,
|
status = switch_ivr_originate(a_session,
|
||||||
&tsession, &cause, exten, timeout, &noop_state_handler, NULL, NULL, NULL, SOF_NONE)
|
&tsession, &cause, exten, timeout, &noop_state_handler, NULL, NULL, NULL, SOF_NONE);
|
||||||
!= SWITCH_STATUS_SUCCESS) {
|
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot Create Outgoing Channel! [%s]\n", exten);
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot Create Outgoing Channel! [%s]\n", exten);
|
||||||
nua_notify(tech_pvt->nh, NUTAG_NEWSUB(1), SIPTAG_CONTENT_TYPE_STR("message/sipfrag"),
|
nua_notify(tech_pvt->nh, NUTAG_NEWSUB(1), SIPTAG_CONTENT_TYPE_STR("message/sipfrag"),
|
||||||
NUTAG_SUBSTATE(nua_substate_terminated),
|
NUTAG_SUBSTATE(nua_substate_terminated),
|
||||||
SIPTAG_PAYLOAD_STR("SIP/2.0 403 Forbidden"), SIPTAG_EVENT_STR(etmp), TAG_END());
|
SIPTAG_PAYLOAD_STR("SIP/2.0 403 Forbidden"), SIPTAG_EVENT_STR(etmp), TAG_END());
|
||||||
|
|
||||||
|
switch_core_session_rwunlock(a_session);
|
||||||
|
|
||||||
|
if (status != SWITCH_STATUS_SUCCESS) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch_core_session_rwunlock(a_session);
|
|
||||||
tuuid_str = switch_core_session_get_uuid(tsession);
|
tuuid_str = switch_core_session_get_uuid(tsession);
|
||||||
switch_ivr_uuid_bridge(br_a, tuuid_str);
|
switch_ivr_uuid_bridge(br_a, tuuid_str);
|
||||||
switch_channel_set_variable(channel_a, SWITCH_ENDPOINT_DISPOSITION_VARIABLE, "ATTENDED_TRANSFER");
|
switch_channel_set_variable(channel_a, SWITCH_ENDPOINT_DISPOSITION_VARIABLE, "ATTENDED_TRANSFER");
|
||||||
|
@ -2205,7 +2209,7 @@ void sofia_handle_sip_i_refer(nua_t *nua, sofia_profile_t *profile, nua_handle_t
|
||||||
|
|
||||||
if ((br = switch_channel_get_variable(channel, SWITCH_SIGNAL_BOND_VARIABLE))) {
|
if ((br = switch_channel_get_variable(channel, SWITCH_SIGNAL_BOND_VARIABLE))) {
|
||||||
switch_core_session_t *b_session;
|
switch_core_session_t *b_session;
|
||||||
|
|
||||||
if ((b_session = switch_core_session_locate(br))) {
|
if ((b_session = switch_core_session_locate(br))) {
|
||||||
switch_channel_t *b_channel = switch_core_session_get_channel(b_session);
|
switch_channel_t *b_channel = switch_core_session_get_channel(b_session);
|
||||||
switch_channel_set_variable(channel, "transfer_fallback_extension", from->a_user);
|
switch_channel_set_variable(channel, "transfer_fallback_extension", from->a_user);
|
||||||
|
|
|
@ -519,6 +519,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_eavesdrop_session(switch_core_session
|
||||||
SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE,
|
SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE,
|
||||||
NULL, switch_core_session_get_pool(session)) != SWITCH_STATUS_SUCCESS) {
|
NULL, switch_core_session_get_pool(session)) != SWITCH_STATUS_SUCCESS) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot init codec\n");
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot init codec\n");
|
||||||
|
switch_core_session_rwunlock(tsession);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -785,6 +785,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_uuid_bridge(const char *originator_uu
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "reversing order of channels so this will work!\n");
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "reversing order of channels so this will work!\n");
|
||||||
} else {
|
} else {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Neither channel is answered, cannot bridge them.\n");
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Neither channel is answered, cannot bridge them.\n");
|
||||||
|
switch_core_session_rwunlock(originator_session);
|
||||||
|
switch_core_session_rwunlock(originatee_session);
|
||||||
return SWITCH_STATUS_FALSE;
|
return SWITCH_STATUS_FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue