From 2973776b6480309a5fe95aa8b2a3ba5151288c6b Mon Sep 17 00:00:00 2001
From: David Yat Sin <dyatsin@sangoma.com>
Date: Thu, 25 Nov 2010 16:36:49 -0500
Subject: [PATCH] changed set_facility_ie

---
 Freeswitch.2008.sln                           | 20 +++++--------------
 .../ftmod_sangoma_isdn_support.c              | 12 +++++------
 2 files changed, 10 insertions(+), 22 deletions(-)

diff --git a/Freeswitch.2008.sln b/Freeswitch.2008.sln
index 01a4cf43c1..4ffd66abac 100644
--- a/Freeswitch.2008.sln
+++ b/Freeswitch.2008.sln
@@ -36,7 +36,6 @@ EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Default", "Default", "{3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}"
 	ProjectSection(SolutionItems) = preProject
 		conf\freeswitch.xml = conf\freeswitch.xml
-		conf\vars.xml = conf\vars.xml
 	EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Release", "Release", "{7BFD517E-7F8F-4A40-A78E-8D3632738227}"
@@ -57,7 +56,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Build System", "_Build Sys
 		bootstrap.sh = bootstrap.sh
 		build\buildlib.sh = build\buildlib.sh
 		configure.in = configure.in
-		Makefile.am = Makefile.am
 		build\modmake.rules.in = build\modmake.rules.in
 		build\modules.conf.in = build\modules.conf.in
 		libs\win32\util.vbs = libs\win32\util.vbs
@@ -92,15 +90,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "autoload_configs", "autoloa
 		conf\autoload_configs\limit.conf.xml = conf\autoload_configs\limit.conf.xml
 		conf\autoload_configs\local_stream.conf.xml = conf\autoload_configs\local_stream.conf.xml
 		conf\autoload_configs\logfile.conf.xml = conf\autoload_configs\logfile.conf.xml
-		conf\autoload_configs\modules.conf.xml = conf\autoload_configs\modules.conf.xml
 		conf\autoload_configs\openmrcp.conf.xml = conf\autoload_configs\openmrcp.conf.xml
 		conf\autoload_configs\portaudio.conf.xml = conf\autoload_configs\portaudio.conf.xml
 		conf\autoload_configs\rss.conf.xml = conf\autoload_configs\rss.conf.xml
 		conf\autoload_configs\sofia.conf.xml = conf\autoload_configs\sofia.conf.xml
 		conf\autoload_configs\spidermonkey.conf.xml = conf\autoload_configs\spidermonkey.conf.xml
-		conf\autoload_configs\switch.conf.xml = conf\autoload_configs\switch.conf.xml
 		conf\autoload_configs\syslog.conf.xml = conf\autoload_configs\syslog.conf.xml
-		conf\autoload_configs\voicemail.conf.xml = conf\autoload_configs\voicemail.conf.xml
 		conf\autoload_configs\wanpipe.conf.xml = conf\autoload_configs\wanpipe.conf.xml
 		conf\autoload_configs\woomera.conf.xml = conf\autoload_configs\woomera.conf.xml
 		conf\autoload_configs\xml_cdr.conf.xml = conf\autoload_configs\xml_cdr.conf.xml
@@ -111,7 +106,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "autoload_configs", "autoloa
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dialplan", "dialplan", "{C7E2382E-2C22-4D18-BF93-80C6A1FFA7AC}"
 	ProjectSection(SolutionItems) = preProject
-		conf\dialplan\default.xml = conf\dialplan\default.xml
 		conf\dialplan\public.xml = conf\dialplan\public.xml
 	EndProjectSection
 EndProject
@@ -123,7 +117,6 @@ EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sip_profiles", "sip_profiles", "{8E2E8798-8B6F-4A55-8E4F-4E6FDE40ED26}"
 	ProjectSection(SolutionItems) = preProject
 		conf\sip_profiles\external.xml = conf\sip_profiles\external.xml
-		conf\sip_profiles\internal.xml = conf\sip_profiles\internal.xml
 		conf\sip_profiles\nat.xml = conf\sip_profiles\nat.xml
 	EndProjectSection
 EndProject
@@ -308,9 +301,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "autoload_configs", "autoloa
 	EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dialplan", "dialplan", "{23874F4B-C0AF-4587-9F7E-DB0F06DE8CB4}"
-	ProjectSection(SolutionItems) = preProject
-		conf\dialplan\default.xml = conf\dialplan\default.xml
-	EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "directory", "directory", "{19ED97F6-30D8-4FCE-AE1D-8B7FCB170D40}"
 	ProjectSection(SolutionItems) = preProject
@@ -1271,15 +1261,15 @@ Global
 		{89385C74-5860-4174-9CAF-A39E7C48909C}.Release|Win32.Build.0 = Release|Win32
 		{89385C74-5860-4174-9CAF-A39E7C48909C}.Release|x64.ActiveCfg = Release|x64
 		{89385C74-5860-4174-9CAF-A39E7C48909C}.Release|x64.Build.0 = Release|x64
-		{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|Win32.ActiveCfg = Release|x64
-		{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x64.ActiveCfg = Release|x64
-		{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x64.Build.0 = Release|x64
+		{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|Win32.ActiveCfg = Release|Win32
+		{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|Win32.Build.0 = Release|Win32
+		{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x64.ActiveCfg = Release|Win32
 		{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|Win32.ActiveCfg = Debug|Win32
 		{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|Win32.Build.0 = Debug|Win32
-		{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|x64.ActiveCfg = Debug|x64
+		{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|x64.ActiveCfg = Debug|Win32
 		{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|Win32.ActiveCfg = Release|Win32
 		{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|Win32.Build.0 = Release|Win32
-		{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x64.ActiveCfg = Release|x64
+		{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x64.ActiveCfg = Release|Win32
 		{692F6330-4D87-4C82-81DF-40DB5892636E}.All|Win32.ActiveCfg = Release|x64
 		{692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.ActiveCfg = Release|x64
 		{692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.Build.0 = Release|x64
diff --git a/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c
index 4ddb90bbd3..c9aa3f035c 100644
--- a/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c
+++ b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c
@@ -412,14 +412,12 @@ ftdm_status_t set_calling_name(ConEvnt *conEvnt, ftdm_channel_t *ftdmchan)
 }
 
 ftdm_status_t set_facility_ie(ftdm_channel_t *ftdmchan, FacilityStr *facilityStr)
-{
-	const char *facility_str = NULL;
-	
-	facility_str = ftdm_channel_get_var(ftdmchan, "isdn.facility.val");
-	if (facility_str) {
+{	
+	if (ftdmchan->caller_data.raw_data_len && 
+	    ftdmchan->caller_data.raw_data[0] == 0x1C) {
 		facilityStr->eh.pres = PRSNT_NODEF;
-		facilityStr->facilityStr.len = strlen(facility_str);
-		memcpy(facilityStr->facilityStr.val, facility_str, facilityStr->facilityStr.len);
+		facilityStr->facilityStr.len = ftdmchan->caller_data.raw_data_len-2;
+		memcpy(facilityStr->facilityStr.val, &ftdmchan->caller_data.raw_data[2], facilityStr->facilityStr.len);
 		return FTDM_SUCCESS;
 	}
 	return FTDM_FAIL;