[Freeswitch-svn] [commit] r9659 - freeswitch/trunk/src/mod/endpoints/mod_sofia

Freeswitch SVN anthm at freeswitch.org
Fri Sep 26 13:00:31 EDT 2008


Author: anthm
Date: Fri Sep 26 13:00:30 2008
New Revision: 9659

Modified:
   freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c

Log:
expand notify thing to let you pick a certian call_id instead of user at host

Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c	(original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c	Fri Sep 26 13:00:30 2008
@@ -2166,20 +2166,31 @@
 			const char *es = switch_event_get_header(event, "event-string");
 			const char *user = switch_event_get_header(event, "user");
 			const char *host = switch_event_get_header(event, "host");
+			const char *call_id = switch_event_get_header(event, "call-id");
 			const char *body = switch_event_get_body(event);
 			sofia_profile_t *profile;
 
 			if (profile_name && ct && es && user && host && (profile = sofia_glue_find_profile(profile_name))) {
-				char *sql = switch_mprintf("select sip_user,sip_host,contact,profile_name,'%q','%q','%q' "
-										   "from sip_registrations where sip_user='%s' and sip_host='%q'",
-										   ct, es, body, user, host
-										   );
+				char *sql;
+
+				if (call_id) {
+					sql = switch_mprintf("select sip_user,sip_host,contact,profile_name,'%q','%q','%q' "
+										 "from sip_registrations where call_id='%q'", ct, es, body, call_id
+										 );
+				} else {
+					sql = switch_mprintf("select sip_user,sip_host,contact,profile_name,'%q','%q','%q' "
+										 "from sip_registrations where sip_user='%s' and sip_host='%q'",
+										 ct, es, body, user, host
+										 );
+				}
 				
 
 				switch_mutex_lock(profile->ireg_mutex);
 				sofia_glue_execute_sql_callback(profile, SWITCH_TRUE, NULL, sql, notify_callback, profile);
 				switch_mutex_unlock(profile->ireg_mutex);
 				sofia_glue_release_profile(profile);
+
+				free(sql);
 			}
 			
 		}



More information about the Freeswitch-svn mailing list