Revision
17502
Author
anthm
Date
2010-05-06 17:18:26 -0500 (Thu, 06 May 2010)

Log Message

FSCORE-607 doh

Modified Paths

Diff

Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c (17501 => 17502)


--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c	2010-05-06 21:25:41 UTC (rev 17501)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c	2010-05-06 22:18:26 UTC (rev 17502)
@@ -5749,7 +5749,11 @@
 	const char *gw_name = NULL;
 	char *call_info_str = NULL;
 	nua_handle_t *bnh = NULL;
+	char sip_acl_authed_by[512] = "";
+	char sip_acl_token[512] = "";
 
+
+
 	profile->ib_calls++;
 
 	if (sess_count >= sess_max || !sofia_test_pflag(profile, PFLAG_RUNNING)) {
@@ -5830,10 +5834,8 @@
 			if (sofia_test_pflag(profile, PFLAG_AUTH_CALLS)) {
 				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "IP %s Approved by acl \"%s[%s]\". Access Granted.\n",
 								  network_ip, switch_str_nil(last_acl), acl_token);
-				switch_channel_set_variable(channel, "sip_acl_authed_by", last_acl);
-				if (token) {
-					switch_channel_set_variable(channel, "sip_acl_token", acl_token);
-				}
+				switch_set_string(sip_acl_authed_by, last_acl);
+				switch_set_string(sip_acl_token, acl_token);			
 				is_auth = 1;
 			}
 		} else {
@@ -5891,11 +5893,11 @@
 				if (sofia_test_pflag(profile, PFLAG_AUTH_CALLS)) {
 					switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "IP %s Approved by acl \"%s[%s]\". Access Granted.\n",
 									  proxied_client_ip, switch_str_nil(last_acl), acl_token);
+					switch_set_string(sip_acl_authed_by, last_acl);
+					switch_set_string(sip_acl_token, acl_token);
+					
 					is_auth = 1;
-					switch_channel_set_variable(channel, "sip_acl_authed_by", last_acl);
-					if (token) {
-						switch_channel_set_variable(channel, "sip_acl_token", acl_token);
-					}
+					
 				}
 			}
 		}
@@ -5994,6 +5996,15 @@
 
 	if (is_auth) {
 		switch_channel_set_variable(channel, "sip_authorized", "true");
+
+		if (!zstr(sip_acl_authed_by)) {
+			switch_channel_set_variable(channel, "sip_acl_authed_by", sip_acl_authed_by);
+		}
+
+		if (!zstr(sip_acl_token)) {
+			switch_channel_set_variable(channel, "sip_acl_token", sip_acl_token);
+		}
+
 	}
 
 	if (calling_myself) {