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

FreeSWITCH SVN anthm at freeswitch.org
Mon Apr 27 16:36:03 PDT 2009


Author: anthm
Date: Mon Apr 27 18:36:03 2009
New Revision: 13173

Log:
parse out alert-info and call-info from infos

Modified:
   freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c
   freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h
   freeswitch/trunk/src/mod/endpoints/mod_sofia/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	Mon Apr 27 18:36:03 2009
@@ -2908,6 +2908,8 @@
 			const char *to_uri = switch_event_get_header(event, "to-uri");
 			const char *local_user_full = switch_event_get_header(event, "local-user");
 			const char *from_uri = switch_event_get_header(event, "from-uri");
+			const char *call_info = switch_event_get_header(event, "call-info");
+			const char *alert_info = switch_event_get_header(event, "alert-info");
 			const char *body = switch_event_get_body(event);
 			sofia_profile_t *profile = NULL;
 			nua_handle_t *nh;
@@ -2972,7 +2974,9 @@
 
 			nua_info(nh,
 					 NUTAG_WITH_THIS(profile->nua),
-					 TAG_IF(ct, SIPTAG_CONTENT_TYPE_STR(ct)), 
+					 TAG_IF(ct, SIPTAG_CONTENT_TYPE_STR(ct)),
+					 TAG_IF(alert_info, SIPTAG_ALERT_INFO_STR(alert_info)),
+					 TAG_IF(call_info, SIPTAG_ALERT_INFO_STR(call_info)),
 					 TAG_IF(!switch_strlen_zero(body), SIPTAG_PAYLOAD_STR(body)),
 					 TAG_END());
 

Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h	(original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h	Mon Apr 27 18:36:03 2009
@@ -107,6 +107,10 @@
 #include <sofia-sip/tport_tag.h>
 #include <sofia-sip/sip_extra.h>
 #include "nua_stack.h"
+#include "sofia-sip/msg_parser.h"
+#include "sofia-sip/sip_parser.h"
+#include "sofia-sip/tport_tag.h"
+
 
 typedef enum {
 	DTMF_2833,

Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c	(original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c	Mon Apr 27 18:36:03 2009
@@ -35,9 +35,7 @@
  *
  */
 #include "mod_sofia.h"
-#include "sofia-sip/msg_parser.h"
-#include "sofia-sip/sip_extra.h"
-#include "sofia-sip/tport_tag.h"
+
 
 extern su_log_t tport_log[];
 extern su_log_t iptsec_log[];
@@ -4010,7 +4008,8 @@
 
 
 	if (switch_event_create(&event, SWITCH_EVENT_RECV_INFO) == SWITCH_STATUS_SUCCESS) {
-		
+		sip_alert_info_t *alert_info = sip_alert_info(sip);
+
 		if (sip && sip->sip_content_type) {
 			switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "SIP-Content-Type", sip->sip_content_type->c_type);
 		}
@@ -4046,6 +4045,16 @@
 			}
 		}
 
+
+		if (sip->sip_call_info) {
+			switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Call-Info", sip_header_as_string(nua_handle_home(nh), (void *) sip->sip_call_info));
+		}
+
+		if (alert_info) {
+			switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Alert-Info", sip_header_as_string(nua_handle_home(nh), (void *) alert_info));
+		}
+
+
 		if (sip->sip_payload && sip->sip_payload->pl_data) {
 			switch_event_add_body(event, "%s", sip->sip_payload->pl_data);
 		}



More information about the Freeswitch-svn mailing list