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

FreeSWITCH SVN brian at freeswitch.org
Fri Jun 26 10:33:20 PDT 2009


Author: brian
Date: Fri Jun 26 12:33:19 2009
New Revision: 13977

Log:
mod_sofia: BOUNTY-7 and MODENDP-146

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

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	Fri Jun 26 12:33:19 2009
@@ -4695,6 +4695,10 @@
 	if ((rpid = sip_remote_party_id(sip))) {
 		if (rpid->rpid_url && rpid->rpid_url->url_user) {
 			from_user = rpid->rpid_url->url_user;
+                        if (!switch_strlen_zero(from_user)) {
+                                switch_channel_set_variable(channel, SOFIA_SIP_HEADER_PREFIX "Remote-Party-ID", from_user);
+                        }
+
 		}
 		if (!switch_strlen_zero(rpid->rpid_display)) {
 			displayname = rpid->rpid_display;
@@ -4705,6 +4709,9 @@
 	if ((passerted = sip_p_asserted_identity(sip))) {
 		if (passerted->paid_url && passerted->paid_url->url_user) {
 			from_user = passerted->paid_url->url_user;
+			if (!switch_strlen_zero(from_user)) {
+                        	switch_channel_set_variable(channel, SOFIA_SIP_HEADER_PREFIX "P-Asserted-Identity", from_user);
+                        }
 		}
 		if (!switch_strlen_zero(passerted->paid_display)) {
 			displayname = passerted->paid_display;
@@ -4715,6 +4722,10 @@
 	if ((ppreferred = sip_p_preferred_identity(sip))) {
 		if (ppreferred->ppid_url && ppreferred->ppid_url->url_user) {
 			from_user = ppreferred->ppid_url->url_user;
+                        if (!switch_strlen_zero(from_user)) {
+                                switch_channel_set_variable(channel, SOFIA_SIP_HEADER_PREFIX "P-Preferred-Identity", from_user);
+                        }
+
 		}
 		if (!switch_strlen_zero(ppreferred->ppid_display)) {
 			displayname = ppreferred->ppid_display;
@@ -5082,6 +5093,11 @@
 		}
 
 		if ((privacy = sip_privacy(sip))) {
+			char *full_priv_header = sip_header_as_string(nh->nh_home, (void *) privacy); 
+			if (!switch_strlen_zero(full_priv_header)) {
+				switch_channel_set_variable(channel, SOFIA_SIP_HEADER_PREFIX "Privacy", full_priv_header);
+			}
+
 			if (msg_params_find(privacy->priv_values, "id")) {
 				switch_set_flag(tech_pvt->caller_profile, SWITCH_CPF_HIDE_NAME | SWITCH_CPF_HIDE_NUMBER);
 			}



More information about the Freeswitch-svn mailing list