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

FreeSWITCH SVN mikej at freeswitch.org
Thu Dec 11 12:24:31 PST 2008


Author: mikej
Date: Thu Dec 11 15:24:31 2008
New Revision: 10717

Log:
SFSIP-92 add support to send a notify in the invite dialog by specifying the uuid of the call.

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

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	Thu Dec 11 15:24:31 2008
@@ -2598,10 +2598,26 @@
 			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 *uuid = switch_event_get_header(event, "uuid");
 			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))) {
+			if (uuid && ct && es) {
+				switch_core_session_t *session;
+				private_object_t *tech_pvt;
+
+				if ((session = switch_core_session_locate(uuid))) {
+					if ((tech_pvt = switch_core_session_get_private(session))) {
+						nua_notify(tech_pvt->nh,
+								   NUTAG_NEWSUB(1),
+								   SIPTAG_EVENT_STR(es), 
+								   SIPTAG_CONTENT_TYPE_STR(ct), 
+								   TAG_IF(!switch_strlen_zero(body), SIPTAG_PAYLOAD_STR(body)),
+								   TAG_END());
+					}
+					switch_core_session_rwunlock(session);
+				}
+			} else if (profile_name && ct && es && user && host && (profile = sofia_glue_find_profile(profile_name))) {
 				char *sql;
 
 				if (call_id) {



More information about the Freeswitch-svn mailing list