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

FreeSWITCH SVN anthm at freeswitch.org
Tue Apr 28 20:37:31 PDT 2009


Author: anthm
Date: Tue Apr 28 22:37:30 2009
New Revision: 13187

Log:
arbitrary notify

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	Tue Apr 28 22:37:30 2009
@@ -2803,8 +2803,34 @@
 			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);
+			const char *to_uri = switch_event_get_header(event, "to-uri");
+			const char *from_uri = switch_event_get_header(event, "from-uri");
 			sofia_profile_t *profile;
 
+			if (to_uri && from_uri && ct && es && profile_name && (profile = sofia_glue_find_profile(profile_name))) {
+				nua_handle_t *nh = nua_handle(profile->nua, 
+											  NULL, 
+											  NUTAG_URL(to_uri), 
+											  SIPTAG_FROM_STR(from_uri), 
+											  SIPTAG_TO_STR(to_uri), 
+											  SIPTAG_CONTACT_STR(profile->url), 
+											  TAG_END());
+				
+				nua_handle_bind(nh, &mod_sofia_globals.destroy_private);
+				
+				nua_info(nh,
+						 NUTAG_WITH_THIS(profile->nua),
+						 TAG_IF(ct, SIPTAG_CONTENT_TYPE_STR(ct)),
+						 TAG_IF(!switch_strlen_zero(body), SIPTAG_PAYLOAD_STR(body)),
+						 TAG_END());
+				
+
+
+				sofia_glue_release_profile(profile);
+				return;
+				
+			}
+			
 			if (uuid && ct && es) {
 				switch_core_session_t *session;
 				private_object_t *tech_pvt;



More information about the Freeswitch-svn mailing list