From a56e221e7021747d91e37f7a191cf67343f5692a Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 19 Dec 2006 18:04:07 +0000 Subject: [PATCH] xmas presence git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3722 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- .../endpoints/mod_dingaling/mod_dingaling.c | 28 ++++++++++++------- src/mod/endpoints/mod_sofia/mod_sofia.c | 2 +- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/mod/endpoints/mod_dingaling/mod_dingaling.c b/src/mod/endpoints/mod_dingaling/mod_dingaling.c index cb1aeca664..929f94567f 100644 --- a/src/mod/endpoints/mod_dingaling/mod_dingaling.c +++ b/src/mod/endpoints/mod_dingaling/mod_dingaling.c @@ -312,17 +312,25 @@ static void pres_event_handler(switch_event_t *event) switch_core_db_t *db; char *errmsg; char *to = switch_event_get_header(event, "to"); - - if (to && (sql = switch_mprintf("select * from subscriptions where sub_to='%q'", to))) { - if (!(db = switch_core_db_open_file(profile->dbname))) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error Opening DB %s\n", profile->dbname); - return; + char *f_host = NULL; + if (to) { + if ((f_host = strchr(to, '@'))) { + f_host++; + } + } + + if (f_host && (profile = switch_core_hash_find(globals.profile_hash, f_host))) { + if (to && (sql = switch_mprintf("select * from subscriptions where sub_to='%q'", to))) { + if (!(db = switch_core_db_open_file(profile->dbname))) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error Opening DB %s\n", profile->dbname); + return; + } + switch_mutex_lock(profile->mutex); + switch_core_db_exec(db, sql, sin_callback, profile, &errmsg); + switch_mutex_unlock(profile->mutex); + switch_core_db_close(db); + switch_safe_free(sql); } - switch_mutex_lock(profile->mutex); - switch_core_db_exec(db, sql, sin_callback, profile, &errmsg); - switch_mutex_unlock(profile->mutex); - switch_core_db_close(db); - switch_safe_free(sql); } } return; diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index 205c553c67..c176a96db8 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -5346,7 +5346,7 @@ static void pres_event_handler(switch_event_t *event) *host++ = '\0'; } if (user && host && - (sql = switch_mprintf("select user,host,'Registered','unknown','' from sip_registrations where user='%q' and host='%q'", user, host))) { + (sql = switch_mprintf("select user,host,status,rpid,'' from sip_registrations where user='%q' and host='%q'", user, host))) { switch_mutex_lock(profile->ireg_mutex); switch_core_db_exec(db, sql, resub_callback, profile, &errmsg); switch_mutex_unlock(profile->ireg_mutex);