revert part of 92bd8966fa FSCORE-598

This commit is contained in:
Anthony Minessale 2010-06-24 14:30:37 -05:00
parent 64a71c5798
commit 464ecd1b18
2 changed files with 15 additions and 39 deletions

View File

@ -3871,7 +3871,7 @@ static void sofia_handle_sip_r_invite(switch_core_session_t *session, int status
switch_channel_t *a_channel; switch_channel_t *a_channel;
const char *sip_redirect_profile, *sip_redirect_context, *sip_redirect_dialplan, *sip_redirect_fork; const char *sip_redirect_profile, *sip_redirect_context, *sip_redirect_dialplan, *sip_redirect_fork;
if ((a_session = switch_core_session_locate(br)) && (a_channel = switch_core_session_get_channel(a_session))) { if ((a_session = switch_core_session_locate(br)) && (a_channel = switch_core_session_get_channel(a_session))) {
switch_stream_handle_t stream = { 0 }; switch_stream_handle_t stream = { 0 };
char separator[2] = "|"; char separator[2] = "|";
@ -4103,7 +4103,7 @@ static void sofia_handle_sip_r_invite(switch_core_session_t *session, int status
if (profile->pres_type) { if (profile->pres_type) {
const char *presence_data = switch_channel_get_variable(channel, "presence_data"); const char *presence_data = switch_channel_get_variable(channel, "presence_data");
//const char *presence_id = switch_channel_get_variable(channel, "presence_id"); const char *presence_id = switch_channel_get_variable(channel, "presence_id");
char *full_contact = ""; char *full_contact = "";
char *p = NULL; char *p = NULL;
@ -4114,26 +4114,18 @@ static void sofia_handle_sip_r_invite(switch_core_session_t *session, int status
if (call_info && (p = strchr(call_info, ';'))) { if (call_info && (p = strchr(call_info, ';'))) {
p++; p++;
} }
sql = switch_mprintf("insert into sip_dialogs "
sql = switch_mprintf("update sip_dialogs set " "(call_id,uuid,sip_to_user,sip_to_host,sip_from_user,sip_from_host,contact_user,"
"call_id='%q', " "contact_host,state,direction,user_agent,profile_name,hostname,contact,presence_id,presence_data,call_info) "
"sip_to_user='%q', " "values('%q','%q','%q','%q','%q','%q','%q','%q','%q','%q','%q','%q','%q','%q','%q','%q','%q')",
"sip_to_host='%q', "
"sip_from_user='%q', "
"sip_from_host='%q', "
"contact_user='%q', "
"contact_host='%q', "
"state='%q', "
"user_agent='%q', "
"contact='%q', "
"presence_data='%q', "
"call_info='%q' where uuid='%q'",
call_id, call_id,
switch_core_session_get_uuid(session),
to_user, to_host, from_user, from_host, contact_user, to_user, to_host, from_user, from_host, contact_user,
contact_host, astate, user_agent, contact_host, astate, "outbound", user_agent,
switch_str_nil(full_contact), profile->name, mod_sofia_globals.hostname, switch_str_nil(full_contact),
switch_str_nil(presence_data), switch_str_nil(p), switch_core_session_get_uuid(session)); switch_str_nil(presence_id), switch_str_nil(presence_data), switch_str_nil(p));
switch_assert(sql);
sofia_glue_actually_execute_sql(profile, sql, profile->ireg_mutex); sofia_glue_actually_execute_sql(profile, sql, profile->ireg_mutex);
switch_safe_free(sql); switch_safe_free(sql);

View File

@ -581,7 +581,6 @@ static void actual_sofia_presence_event_handler(switch_event_t *event)
if (!mod_sofia_globals.profile_hash) if (!mod_sofia_globals.profile_hash)
goto done; goto done;
switch_mutex_lock(mod_sofia_globals.hash_mutex); switch_mutex_lock(mod_sofia_globals.hash_mutex);
for (hi = switch_hash_first(NULL, mod_sofia_globals.profile_hash); hi; hi = switch_hash_next(hi)) { for (hi = switch_hash_first(NULL, mod_sofia_globals.profile_hash); hi; hi = switch_hash_next(hi)) {
switch_hash_this(hi, &var, NULL, &val); switch_hash_this(hi, &var, NULL, &val);
@ -601,10 +600,10 @@ static void actual_sofia_presence_event_handler(switch_event_t *event)
continue; continue;
} }
if (call_info) { if (call_info) {
const char *uuid = switch_event_get_header(event, "unique-id"); const char *uuid = switch_event_get_header(event, "unique-id");
#if 0 #if 0
if (mod_sofia_globals.debug_sla > 1) { if (mod_sofia_globals.debug_sla > 1) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "SLA EVENT:\n"); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "SLA EVENT:\n");
@ -634,24 +633,9 @@ static void actual_sofia_presence_event_handler(switch_event_t *event)
} }
sync_sla(profile, euser, host, SWITCH_TRUE, SWITCH_TRUE); sync_sla(profile, euser, host, SWITCH_TRUE, SWITCH_TRUE);
} else {
char count_buf[128] = "";
int count = 0;
const char *state = switch_event_get_header(event, "channel-state");
sql = switch_mprintf("select count(*) from sip_dialogs "
"where hostname='%q' and presence_id='%q@%q'", mod_sofia_globals.hostname, euser, host);
sofia_glue_execute_sql2str(profile, profile->ireg_mutex, sql, count_buf, sizeof(count_buf));
count = atoi(count_buf);
switch_safe_free(sql);
if (count > 1 || (count > 0 && switch_stristr("hangup", state))) {
continue;
}
} }
if ((sql = switch_mprintf("select sip_subscriptions.proto,sip_subscriptions.sip_user,sip_subscriptions.sip_host," if ((sql = switch_mprintf("select sip_subscriptions.proto,sip_subscriptions.sip_user,sip_subscriptions.sip_host,"
"sip_subscriptions.sub_to_user,sip_subscriptions.sub_to_host,sip_subscriptions.event," "sip_subscriptions.sub_to_user,sip_subscriptions.sub_to_host,sip_subscriptions.event,"
"sip_subscriptions.contact,sip_subscriptions.call_id,sip_subscriptions.full_from," "sip_subscriptions.contact,sip_subscriptions.call_id,sip_subscriptions.full_from,"