fix auto_simplify
This commit is contained in:
parent
de53b3983d
commit
b35ac6b3bd
|
@ -1097,8 +1097,9 @@ static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_f
|
|||
|
||||
|
||||
if (sofia_test_flag(tech_pvt, TFLAG_SIMPLIFY) && sofia_test_flag(tech_pvt, TFLAG_GOT_ACK)) {
|
||||
sofia_glue_tech_simplify(tech_pvt);
|
||||
sofia_clear_flag(tech_pvt, TFLAG_SIMPLIFY);
|
||||
if (sofia_glue_tech_simplify(tech_pvt)) {
|
||||
sofia_clear_flag(tech_pvt, TFLAG_SIMPLIFY);
|
||||
}
|
||||
}
|
||||
|
||||
while (sofia_test_flag(tech_pvt, TFLAG_IO) && tech_pvt->read_frame.datalen == 0) {
|
||||
|
@ -1714,7 +1715,9 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi
|
|||
|
||||
switch_channel_set_variable(channel, SOFIA_REPLACES_HEADER, NULL);
|
||||
|
||||
sofia_set_flag(tech_pvt, TFLAG_SIMPLIFY);
|
||||
if (switch_true(switch_channel_get_variable(tech_pvt->channel, "sip_auto_simplify"))) {
|
||||
sofia_set_flag(tech_pvt, TFLAG_SIMPLIFY);
|
||||
}
|
||||
|
||||
|
||||
if (switch_rtp_ready(tech_pvt->rtp_session)) {
|
||||
|
|
|
@ -1191,7 +1191,7 @@ uint32_t sofia_reg_reg_count(sofia_profile_t *profile, const char *user, const c
|
|||
void sofia_glue_copy_t38_options(switch_t38_options_t *t38_options, switch_core_session_t *session);
|
||||
switch_t38_options_t *sofia_glue_extract_t38_options(switch_core_session_t *session, const char *r_sdp);
|
||||
char *sofia_glue_get_multipart(switch_core_session_t *session, const char *prefix, const char *sdp, char **mp_type);
|
||||
void sofia_glue_tech_simplify(private_object_t *tech_pvt);
|
||||
int sofia_glue_tech_simplify(private_object_t *tech_pvt);
|
||||
switch_console_callback_match_t *sofia_reg_find_reg_url_multi(sofia_profile_t *profile, const char *user, const char *host);
|
||||
switch_console_callback_match_t *sofia_reg_find_reg_url_with_positive_expires_multi(sofia_profile_t *profile, const char *user, const char *host, time_t reg_time, const char *contact_str, long exptime);
|
||||
switch_bool_t sofia_glue_profile_exists(const char *key);
|
||||
|
|
|
@ -6785,21 +6785,19 @@ switch_status_t sofia_glue_send_notify(sofia_profile_t *profile, const char *use
|
|||
}
|
||||
|
||||
|
||||
void sofia_glue_tech_simplify(private_object_t *tech_pvt)
|
||||
int sofia_glue_tech_simplify(private_object_t *tech_pvt)
|
||||
{
|
||||
const char *uuid, *network_addr_a = NULL, *network_addr_b = NULL, *simplify, *simplify_other_channel;
|
||||
switch_channel_t *other_channel = NULL, *inbound_channel = NULL;
|
||||
switch_core_session_t *other_session = NULL, *inbound_session = NULL;
|
||||
uint8_t did_simplify = 0;
|
||||
int r = 0;
|
||||
|
||||
if (!switch_channel_test_flag(tech_pvt->channel, CF_ANSWERED) || switch_channel_test_flag(tech_pvt->channel, CF_SIMPLIFY)) {
|
||||
return;
|
||||
goto end;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if ((uuid = switch_channel_get_partner_uuid(tech_pvt->channel))
|
||||
&& (other_session = switch_core_session_locate(uuid))) {
|
||||
if ((uuid = switch_channel_get_partner_uuid(tech_pvt->channel)) && (other_session = switch_core_session_locate(uuid))) {
|
||||
|
||||
other_channel = switch_core_session_get_channel(other_session);
|
||||
|
||||
|
@ -6807,6 +6805,8 @@ void sofia_glue_tech_simplify(private_object_t *tech_pvt)
|
|||
simplify = switch_channel_get_variable(tech_pvt->channel, "sip_auto_simplify");
|
||||
simplify_other_channel = switch_channel_get_variable(other_channel, "sip_auto_simplify");
|
||||
|
||||
r = 1;
|
||||
|
||||
if (switch_true(simplify) && !switch_channel_test_flag(tech_pvt->channel, CF_BRIDGE_ORIGINATOR)) {
|
||||
network_addr_a = switch_channel_get_variable(tech_pvt->channel, "network_addr");
|
||||
network_addr_b = switch_channel_get_variable(other_channel, "network_addr");
|
||||
|
@ -6851,6 +6851,11 @@ void sofia_glue_tech_simplify(private_object_t *tech_pvt)
|
|||
|
||||
switch_core_session_rwunlock(other_session);
|
||||
}
|
||||
|
||||
|
||||
end:
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
void sofia_glue_pause_jitterbuffer(switch_core_session_t *session, switch_bool_t on)
|
||||
|
|
Loading…
Reference in New Issue