FS-5279 --resolve some mods made to the patch
This commit is contained in:
parent
227af62a4a
commit
28f3e67740
|
@ -4252,6 +4252,10 @@ void sofia_presence_handle_sip_i_publish(nua_t *nua, sofia_profile_t *profile, n
|
||||||
switch_event_t *event;
|
switch_event_t *event;
|
||||||
char *sql;
|
char *sql;
|
||||||
char *full_agent = NULL;
|
char *full_agent = NULL;
|
||||||
|
char network_ip[80];
|
||||||
|
int network_port = 0;
|
||||||
|
|
||||||
|
sofia_glue_get_addr(de->data->e_msg, network_ip, sizeof(network_ip), &network_port);
|
||||||
|
|
||||||
pd_dup = strdup(payload->pl_data);
|
pd_dup = strdup(payload->pl_data);
|
||||||
|
|
||||||
|
@ -4293,15 +4297,19 @@ void sofia_presence_handle_sip_i_publish(nua_t *nua, sofia_profile_t *profile, n
|
||||||
rpid = note_txt = "Unregistered";
|
rpid = note_txt = "Unregistered";
|
||||||
if (sofia_test_pflag(profile, PFLAG_MULTIREG)) {
|
if (sofia_test_pflag(profile, PFLAG_MULTIREG)) {
|
||||||
count = sofia_reg_reg_count(profile, from_user, from_host);
|
count = sofia_reg_reg_count(profile, from_user, from_host);
|
||||||
|
|
||||||
|
if (count != 1) {
|
||||||
|
/* Don't broadcast offline when there is more than one client or one signing off makes them all appear to sign off on some clients */
|
||||||
|
count = 0;
|
||||||
|
} else {
|
||||||
sub_count = sofia_presence_contact_count(profile, contact_str);
|
sub_count = sofia_presence_contact_count(profile, contact_str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
/* if (count > 1) let's not and say we did or all the clients who subscribe to their own presence will think they selves is offline */
|
|
||||||
|
|
||||||
event_type = sip_header_as_string(nh->nh_home, (void *) sip->sip_event);
|
event_type = sip_header_as_string(nh->nh_home, (void *) sip->sip_event);
|
||||||
|
|
||||||
if (count != 1) {
|
if (count) {
|
||||||
if ((sql = switch_mprintf("delete from sip_presence where sip_user='%q' and sip_host='%q' "
|
if ((sql = switch_mprintf("delete from sip_presence where sip_user='%q' and sip_host='%q' "
|
||||||
" and profile_name='%q' and hostname='%q'",
|
" and profile_name='%q' and hostname='%q'",
|
||||||
from_user, from_host, profile->name, mod_sofia_globals.hostname))) {
|
from_user, from_host, profile->name, mod_sofia_globals.hostname))) {
|
||||||
|
@ -4309,10 +4317,10 @@ void sofia_presence_handle_sip_i_publish(nua_t *nua, sofia_profile_t *profile, n
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sub_count > 0 && (sql = switch_mprintf("insert into sip_presence (sip_user, sip_host, status, rpid, expires, user_agent,"
|
if (sub_count > 0 && (sql = switch_mprintf("insert into sip_presence (sip_user, sip_host, status, rpid, expires, user_agent,"
|
||||||
" profile_name, hostname, open_closed) "
|
" profile_name, hostname, open_closed, network_ip, network_port) "
|
||||||
"values ('%q','%q','%q','%q',%ld,'%q','%q','%q','%q')",
|
"values ('%q','%q','%q','%q',%ld,'%q','%q','%q','%q','%q','%d')",
|
||||||
from_user, from_host, note_txt, rpid, exp, full_agent, profile->name,
|
from_user, from_host, note_txt, rpid, exp, full_agent, profile->name,
|
||||||
mod_sofia_globals.hostname, open_closed))) {
|
mod_sofia_globals.hostname, open_closed, network_ip, network_port))) {
|
||||||
|
|
||||||
sofia_glue_execute_sql_now(profile, &sql, SWITCH_TRUE);
|
sofia_glue_execute_sql_now(profile, &sql, SWITCH_TRUE);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue