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

Freeswitch SVN anthm at freeswitch.org
Fri Nov 30 16:02:42 EST 2007


Author: anthm
Date: Fri Nov 30 16:02:41 2007
New Revision: 6451

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

Log:
add some vars

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 Nov 30 16:02:41 2007
@@ -1526,7 +1526,7 @@
 			*host++ = '\0';
 			if (sofia_reg_find_reg_url(profile, dest, host, buf, sizeof(buf))) {
 				tech_pvt->dest = switch_core_session_strdup(nsession, buf);
-
+				tech_pvt->local_url = switch_core_session_sprintf(nsession, "%s@%s", dest, host);
 			} else {
 				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Cannot locate registered user %s@%s\n", dest, host);
 				cause = SWITCH_CAUSE_NO_ROUTE_DESTINATION;
@@ -1539,7 +1539,7 @@
 			tech_pvt->e_dest = switch_core_session_strdup(nsession, dest);
 			if (sofia_reg_find_reg_url(profile, dest, profile_name, buf, sizeof(buf))) {
 				tech_pvt->dest = switch_core_session_strdup(nsession, buf);
-
+				tech_pvt->local_url = switch_core_session_sprintf(nsession, "%s@%s", dest, profile_name);
 			} else {
 				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Cannot locate registered user %s@%s\n", dest, profile_name);
 				cause = SWITCH_CAUSE_NO_ROUTE_DESTINATION;
@@ -1558,8 +1558,13 @@
 	}
 
 	sofia_glue_attach_private(nsession, profile, tech_pvt, dest);
-
+	
 	nchannel = switch_core_session_get_channel(nsession);
+	if (tech_pvt->local_url) {
+		switch_channel_set_variable(nchannel, "sip_local_url", tech_pvt->local_url);
+	}
+	switch_channel_set_variable(nchannel, "sip_destination_url", tech_pvt->dest);
+	
 	caller_profile = switch_caller_profile_clone(nsession, outbound_profile);
 	switch_channel_set_caller_profile(nchannel, caller_profile);
 	switch_channel_set_flag(nchannel, CF_OUTBOUND);

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	Fri Nov 30 16:02:41 2007
@@ -317,6 +317,7 @@
 	char *e_dest;
 	char *call_id;
 	char *invite_contact;
+	char *local_url;
 	unsigned long rm_rate;
 	switch_payload_t pt;
 	switch_mutex_t *flag_mutex;



More information about the Freeswitch-trunk mailing list