[Freeswitch-branches] [commit] r3005 - in freeswitch/branches/mishehu: . libs/win32 libs/win32/pthread libs/win32/sofia src src/dotnet src/dotnet/Marshaling/Types src/dotnet/Modules src/include src/mod/applications/mod_bridgecall src/mod/applications/mod_commands src/mod/applications/mod_conference src/mod/applications/mod_dptools src/mod/dialplans/mod_dialplan_xml src/mod/endpoints/mod_dingaling src/mod/endpoints/mod_portaudio src/mod/endpoints/mod_sofia src/mod/event_handlers/mod_cdr src/mod/languages/mod_spidermonkey src/mod/loggers/mod_console w32/Setup

Freeswitch SVN mishehu at freeswitch.org
Sun Oct 8 20:25:35 EDT 2006


Author: mishehu
Date: Sun Oct  8 20:25:31 2006
New Revision: 3005

Modified:
   freeswitch/branches/mishehu/Freeswitch.sln
   freeswitch/branches/mishehu/libs/win32/Download SOFIA.vcproj
   freeswitch/branches/mishehu/libs/win32/pthread/pthread.vcproj
   freeswitch/branches/mishehu/libs/win32/sofia/libsofia_sip_ua_static.vcproj
   freeswitch/branches/mishehu/src/dotnet/Marshaling/Types/ApiInterfaceMarshal.cs
   freeswitch/branches/mishehu/src/dotnet/Module.cs
   freeswitch/branches/mishehu/src/dotnet/Modules/Api.cs
   freeswitch/branches/mishehu/src/include/switch_channel.h
   freeswitch/branches/mishehu/src/include/switch_ivr.h
   freeswitch/branches/mishehu/src/include/switch_module_interfaces.h
   freeswitch/branches/mishehu/src/include/switch_types.h
   freeswitch/branches/mishehu/src/include/switch_utils.h
   freeswitch/branches/mishehu/src/mod/applications/mod_bridgecall/mod_bridgecall.c
   freeswitch/branches/mishehu/src/mod/applications/mod_commands/mod_commands.c
   freeswitch/branches/mishehu/src/mod/applications/mod_conference/mod_conference.c
   freeswitch/branches/mishehu/src/mod/applications/mod_dptools/mod_dptools.c
   freeswitch/branches/mishehu/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c
   freeswitch/branches/mishehu/src/mod/endpoints/mod_dingaling/mod_dingaling.c
   freeswitch/branches/mishehu/src/mod/endpoints/mod_portaudio/mod_portaudio.c
   freeswitch/branches/mishehu/src/mod/endpoints/mod_sofia/Makefile
   freeswitch/branches/mishehu/src/mod/endpoints/mod_sofia/mod_sofia.c
   freeswitch/branches/mishehu/src/mod/endpoints/mod_sofia/mod_sofia.vcproj
   freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/basecdr.cpp
   freeswitch/branches/mishehu/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c
   freeswitch/branches/mishehu/src/mod/loggers/mod_console/mod_console.c
   freeswitch/branches/mishehu/src/switch_caller.c
   freeswitch/branches/mishehu/src/switch_channel.c
   freeswitch/branches/mishehu/src/switch_console.c
   freeswitch/branches/mishehu/src/switch_core.c
   freeswitch/branches/mishehu/src/switch_ivr.c
   freeswitch/branches/mishehu/src/switch_loadable_module.c
   freeswitch/branches/mishehu/src/switch_log.c
   freeswitch/branches/mishehu/src/switch_rtp.c
   freeswitch/branches/mishehu/src/switch_utils.c
   freeswitch/branches/mishehu/w32/Setup/Setup.vdproj

Log:
Made a change to basecdr.cpp that removed the number from BaseCDR::clid.  BaseCDR::clid is now just the caller id name, removing the redundant data as per request.  Merged to trunk r3004.

Modified: freeswitch/branches/mishehu/Freeswitch.sln
==============================================================================
--- freeswitch/branches/mishehu/Freeswitch.sln	(original)
+++ freeswitch/branches/mishehu/Freeswitch.sln	Sun Oct  8 20:25:31 2006
@@ -891,8 +891,8 @@
 		{8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|Win32.Build.0 = Debug|Win32
 		{8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|Win32.ActiveCfg = Release|Win32
 		{8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|Win32.Build.0 = Release|Win32
-		{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|Win32.ActiveCfg = Debug|Win32
-		{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|Win32.Build.0 = Debug|Win32
+		{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|Win32.ActiveCfg = Debug DLL|Win32
+		{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|Win32.Build.0 = Debug DLL|Win32
 		{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|Win32.ActiveCfg = Release DLL|Win32
 		{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|Win32.Build.0 = Release DLL|Win32
 		{FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|Win32.ActiveCfg = Debug Passthrough|Win32
@@ -936,9 +936,9 @@
 		{C24FB505-05D7-4319-8485-7540B44C8603} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
 		{B5881A85-FE70-4F64-8607-2CAAE52669C6} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
 		{2740F45C-475A-4DE0-BCED-6E2E5F6C4B8B} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
-		{3A5B9131-F20C-4A85-9447-6C1610941CEE} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
 		{5FD31A25-5D83-4794-8BEE-904DAD84CE71} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
 		{FE3540C5-3303-46E0-A69E-D92F775687F1} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
+		{3A5B9131-F20C-4A85-9447-6C1610941CEE} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
 		{FFAA4C52-3A53-4F99-90C1-D59D1F0427F3} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
 		{0DF3ABD0-DDC0-4265-B778-07C66780979B} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
 		{DCC13474-28DF-47CA-A8EB-72F8CE9A78C5} = {2D57D093-3F8D-4729-AD9A-68E945C200A5}

Modified: freeswitch/branches/mishehu/libs/win32/Download SOFIA.vcproj
==============================================================================
--- freeswitch/branches/mishehu/libs/win32/Download SOFIA.vcproj	(original)
+++ freeswitch/branches/mishehu/libs/win32/Download SOFIA.vcproj	Sun Oct  8 20:25:31 2006
@@ -76,8 +76,8 @@
 				<Tool
 					Name="VCCustomBuildTool"
 					Description="Downloading SOFIA."
-					CommandLine="if not exist &quot;$(ProjectDir)..\sofia-sip-1.12.3&quot; cscript /nologo &quot;$(ProjectDir)util.vbs&quot; GetUnzip http://svn.freeswitch.org/downloads/libs/sofia-sip-1.12.3.tar.gz &quot;$(ProjectDir)..&quot;&#x0D;&#x0A;"
-					Outputs="$(ProjectDir)..\sofia-sip-1.12.3"
+					CommandLine="if not exist &quot;$(ProjectDir)..\sofia-sip-1.12.3.2&quot; cscript /nologo &quot;$(ProjectDir)util.vbs&quot; GetUnzip http://svn.freeswitch.org/downloads/libs/sofia-sip-1.12.3.2.tar.gz &quot;$(ProjectDir)..&quot;&#x0D;&#x0A;"
+					Outputs="$(ProjectDir)..\sofia-sip-1.12.3.2"
 				/>
 			</FileConfiguration>
 			<FileConfiguration
@@ -86,8 +86,8 @@
 				<Tool
 					Name="VCCustomBuildTool"
 					Description="Downloading SOFIA."
-					CommandLine="if not exist &quot;$(ProjectDir)..\sofia-sip-1.12.3&quot; cscript /nologo &quot;$(ProjectDir)util.vbs&quot; GetUnzip http://svn.freeswitch.org/downloads/libs/sofia-sip-1.12.3.tar.gz &quot;$(ProjectDir)..&quot;&#x0D;&#x0A;"
-					Outputs="$(ProjectDir)..\sofia-sip-1.12.3"
+					CommandLine="if not exist &quot;$(ProjectDir)..\sofia-sip-1.12.3.2&quot; cscript /nologo &quot;$(ProjectDir)util.vbs&quot; GetUnzip http://svn.freeswitch.org/downloads/libs/sofia-sip-1.12.3.2.tar.gz &quot;$(ProjectDir)..&quot;&#x0D;&#x0A;"
+					Outputs="$(ProjectDir)..\sofia-sip-1.12.3.2"
 				/>
 			</FileConfiguration>
 		</File>

Modified: freeswitch/branches/mishehu/libs/win32/pthread/pthread.vcproj
==============================================================================
--- freeswitch/branches/mishehu/libs/win32/pthread/pthread.vcproj	(original)
+++ freeswitch/branches/mishehu/libs/win32/pthread/pthread.vcproj	Sun Oct  8 20:25:31 2006
@@ -131,8 +131,8 @@
 				Optimization="0"
 				AdditionalIncludeDirectories="../../pthreads-w32-2-7-0-release/"
 				PreprocessorDefinitions="__CLEANUP_C;WIN32;_DEBUG;_WINDOWS;_USRDLL;PTW32_BUILD;_CRT_SECURE_NO_DEPRECATE;PTW32_STATIC_LIB"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
+				MinimalRebuild="false"
+				BasicRuntimeChecks="0"
 				RuntimeLibrary="3"
 				PrecompiledHeaderFile=".\./pthread.pch"
 				AssemblerListingLocation="$(IntDir)\"
@@ -178,7 +178,7 @@
 		</Configuration>
 		<Configuration
 			Name="Debug DLL|Win32"
-			OutputDirectory="$(ConfigurationName)"
+			OutputDirectory="$(SolutionDir)Debug"
 			IntermediateDirectory="$(ConfigurationName)"
 			ConfigurationType="2"
 			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
@@ -239,7 +239,7 @@
 			<Tool
 				Name="VCLinkerTool"
 				AdditionalDependencies="ws2_32.lib"
-				OutputFile=".\pthreadVC2.dll"
+				OutputFile="$(OutDir)\pthreadVC2.dll"
 				LinkIncremental="2"
 				SuppressStartupBanner="true"
 				GenerateDebugInformation="true"
@@ -278,7 +278,7 @@
 		</Configuration>
 		<Configuration
 			Name="Release DLL|Win32"
-			OutputDirectory="$(ConfigurationName)"
+			OutputDirectory="$(SolutionDir)Debug"
 			IntermediateDirectory="$(ConfigurationName)"
 			ConfigurationType="2"
 			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
@@ -339,7 +339,7 @@
 			<Tool
 				Name="VCLinkerTool"
 				AdditionalDependencies="ws2_32.lib"
-				OutputFile=".\pthreadVC2.dll"
+				OutputFile="$(OutDir)\pthreadVC2.dll"
 				LinkIncremental="1"
 				SuppressStartupBanner="true"
 				ImportLibrary=".\./pthreadVC2.lib"

Modified: freeswitch/branches/mishehu/libs/win32/sofia/libsofia_sip_ua_static.vcproj
==============================================================================
--- freeswitch/branches/mishehu/libs/win32/sofia/libsofia_sip_ua_static.vcproj	(original)
+++ freeswitch/branches/mishehu/libs/win32/sofia/libsofia_sip_ua_static.vcproj	Sun Oct  8 20:25:31 2006
@@ -26,7 +26,7 @@
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
-				CommandLine="if not exist &quot;$(ProjectDir)..\..\sofia-sip-1.12.3\win32\gawk.exe&quot; cscript /nologo &quot;$(ProjectDir)..\util.vbs&quot; Get http://svn.freeswitch.org/downloads/win32/gawk.exe &quot;$(ProjectDir)..\..\sofia-sip-1.12.3\win32\&quot;&#x0D;&#x0A;cd /D &quot;$(ProjectDir)..\..\sofia-sip-1.12.3\win32\&quot;&#x0D;&#x0A;&quot;autogen.cmd&quot;&#x0D;&#x0A;"
+				CommandLine="if not exist &quot;$(ProjectDir)..\..\sofia-sip-1.12.3.2\win32\gawk.exe&quot; cscript /nologo &quot;$(ProjectDir)..\util.vbs&quot; Get http://svn.freeswitch.org/downloads/win32/gawk.exe &quot;$(ProjectDir)..\..\sofia-sip-1.12.3.2\win32\&quot;&#x0D;&#x0A;cd /D &quot;$(ProjectDir)..\..\sofia-sip-1.12.3.2\win32\&quot;&#x0D;&#x0A;&quot;autogen.cmd&quot;&#x0D;&#x0A;"
 			/>
 			<Tool
 				Name="VCCustomBuildTool"
@@ -43,7 +43,7 @@
 			<Tool
 				Name="VCCLCompilerTool"
 				Optimization="0"
-				AdditionalIncludeDirectories="&quot;..\..\sofia-sip-1.12.3\win32&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\su&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\ipt&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\sresolv&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\bnf&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\url&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\nta&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\http&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\nth&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\nea&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\sdp&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\soa&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\stun&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\tport&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\features&quot;;&quot;..\..\pthreads-w32-2-7-0-release&quot;;."
+				AdditionalIncludeDirectories="&quot;..\..\sofia-sip-1.12.3.2\win32&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\ipt&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sresolv&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\bnf&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\url&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nta&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nth&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nea&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sdp&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\soa&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\stun&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\tport&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\features&quot;;&quot;..\..\pthreads-w32-2-7-0-release&quot;;."
 				PreprocessorDefinitions="WIN32;_DEBUG;_LIB;IN_LIBSOFIA_SIP_UA_STATIC;LIBSOFIA_SIP_UA_STATIC;LIBSRES_STATIC;PTW32_STATIC_LIB"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
@@ -103,7 +103,7 @@
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
-				CommandLine="if not exist &quot;$(ProjectDir)..\..\sofia-sip-1.12.3\win32\gawk.exe&quot; cscript /nologo &quot;$(ProjectDir)..\util.vbs&quot; Get http://svn.freeswitch.org/downloads/win32/gawk.exe &quot;$(ProjectDir)..\..\sofia-sip-1.12.3\win32\&quot;&#x0D;&#x0A;cd /D &quot;$(ProjectDir)..\..\sofia-sip-1.12.3\win32\&quot;&#x0D;&#x0A;&quot;autogen.cmd&quot;&#x0D;&#x0A;"
+				CommandLine="if not exist &quot;$(ProjectDir)..\..\sofia-sip-1.12.3.2\win32\gawk.exe&quot; cscript /nologo &quot;$(ProjectDir)..\util.vbs&quot; Get http://svn.freeswitch.org/downloads/win32/gawk.exe &quot;$(ProjectDir)..\..\sofia-sip-1.12.3.2\win32\&quot;&#x0D;&#x0A;cd /D &quot;$(ProjectDir)..\..\sofia-sip-1.12.3.2\win32\&quot;&#x0D;&#x0A;&quot;autogen.cmd&quot;&#x0D;&#x0A;"
 			/>
 			<Tool
 				Name="VCCustomBuildTool"
@@ -121,7 +121,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="2"
 				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="&quot;..\..\sofia-sip-1.12.3\win32&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\su&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\ipt&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\sresolv&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\bnf&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\url&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\nta&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\http&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\nth&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\nea&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\sdp&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\soa&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\stun&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\tport&quot;;&quot;..\..\sofia-sip-1.12.3\libsofia-sip-ua\features&quot;;&quot;..\..\pthreads-w32-2-7-0-release&quot;;."
+				AdditionalIncludeDirectories="&quot;..\..\sofia-sip-1.12.3.2\win32&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\ipt&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sresolv&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\bnf&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\url&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nta&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nth&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nea&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sdp&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\soa&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\stun&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\tport&quot;;&quot;..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\features&quot;;&quot;..\..\pthreads-w32-2-7-0-release&quot;;."
 				PreprocessorDefinitions="WIN32;NDEBUG;_LIB;IN_LIBSOFIA_SIP_UA_STATIC;LIBSOFIA_SIP_UA_STATIC;LIBSRES_STATIC;PTW32_STATIC_LIB"
 				StringPooling="true"
 				RuntimeLibrary="2"
@@ -181,7 +181,7 @@
 				Filter="su*.c"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\inet_ntop.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\inet_ntop.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -203,7 +203,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\inet_pton.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\inet_pton.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -225,7 +225,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -247,7 +247,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_addrinfo.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_addrinfo.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -269,7 +269,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_alloc.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_alloc.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -291,7 +291,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_alloc_lock.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_alloc_lock.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -313,7 +313,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_bm.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_bm.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -335,7 +335,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_default_log.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_default_log.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -357,7 +357,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_errno.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_errno.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -379,7 +379,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_global_log.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_global_log.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -401,7 +401,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_localinfo.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_localinfo.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -423,7 +423,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_log.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_log.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -445,7 +445,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_md5.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_md5.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -467,11 +467,11 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_os_nw.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_os_nw.c"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_port.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_port.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -493,7 +493,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_root.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_root.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -515,7 +515,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_sprintf.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_sprintf.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -537,7 +537,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_strdup.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_strdup.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -559,7 +559,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_strlst.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_strlst.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -581,7 +581,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_tag.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_tag.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -603,7 +603,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_tag_io.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_tag_io.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -625,7 +625,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_taglist.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_taglist.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -647,7 +647,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_time.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_time.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -669,7 +669,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_time0.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_time0.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -691,7 +691,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_timer.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_timer.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -713,7 +713,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_uniqueid.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_uniqueid.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -735,7 +735,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_vector.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_vector.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -757,7 +757,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_wait.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_wait.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -783,7 +783,7 @@
 				Name="ipt"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\ipt\base64.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\ipt\base64.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -805,7 +805,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\ipt\rc4.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\ipt\rc4.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -827,7 +827,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\ipt\string0.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\ipt\string0.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -849,7 +849,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\ipt\token64.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\ipt\token64.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -876,7 +876,7 @@
 				Filter="url*.c"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\url\url.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\url\url.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -898,7 +898,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\url\url_tag.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\url\url_tag.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -920,7 +920,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\url\url_tag_ref.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\url\url_tag_ref.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -947,7 +947,7 @@
 				Filter="features*.c"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\features\features.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\features\features.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -974,7 +974,7 @@
 				Filter="bnf*.c"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\bnf\bnf.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\bnf\bnf.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1001,7 +1001,7 @@
 				Filter="msg*.c"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\msg.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\msg.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1023,7 +1023,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\msg_auth.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\msg_auth.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1045,7 +1045,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\msg_basic.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\msg_basic.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1067,7 +1067,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\msg_date.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\msg_date.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1089,7 +1089,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\msg_generic.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\msg_generic.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1111,7 +1111,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\msg_header_copy.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\msg_header_copy.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1133,7 +1133,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\msg_header_make.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\msg_header_make.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1155,7 +1155,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\msg_mclass.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\msg_mclass.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1177,7 +1177,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\msg_mime.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\msg_mime.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1199,7 +1199,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\msg_mime_table.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\msg_mime_table.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1221,7 +1221,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\msg_parser.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\msg_parser.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1243,7 +1243,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\msg_parser_util.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\msg_parser_util.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1265,7 +1265,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\msg_tag.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\msg_tag.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1291,7 +1291,7 @@
 				Name="clib replacement"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\memcspn.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\memcspn.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1313,7 +1313,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\memmem.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\memmem.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1335,7 +1335,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\memspn.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\memspn.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1357,7 +1357,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\strcasestr.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\strcasestr.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1379,7 +1379,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\strtoull.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\strtoull.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1405,7 +1405,7 @@
 				Name="sip"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_basic.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_basic.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1427,7 +1427,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_caller_prefs.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_caller_prefs.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1449,7 +1449,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_event.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_event.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1471,7 +1471,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_extra.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_extra.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1493,7 +1493,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_feature.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_feature.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1515,7 +1515,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_header.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_header.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1537,7 +1537,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_mime.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_mime.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1559,7 +1559,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_parser.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_parser.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1581,7 +1581,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_parser_table.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_parser_table.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1603,7 +1603,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_prack.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_prack.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1625,7 +1625,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_pref_util.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_pref_util.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1647,7 +1647,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_reason.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_reason.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1669,7 +1669,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_refer.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_refer.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1691,7 +1691,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_security.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_security.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1713,7 +1713,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_session.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_session.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1735,7 +1735,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_status.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_status.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1757,7 +1757,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_tag.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_tag.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1779,7 +1779,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_tag_class.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_tag_class.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1801,7 +1801,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_tag_ref.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_tag_ref.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1823,7 +1823,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_time.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_time.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1845,7 +1845,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_util.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_util.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1871,7 +1871,7 @@
 				Name="http"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\http\http_basic.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http\http_basic.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1893,7 +1893,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\http\http_extra.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http\http_extra.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1915,7 +1915,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\http\http_header.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http\http_header.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1937,7 +1937,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\http\http_parser.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http\http_parser.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1959,7 +1959,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\http\http_parser_table.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http\http_parser_table.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -1981,7 +1981,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\http\http_status.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http\http_status.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2003,7 +2003,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\http\http_tag.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http\http_tag.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2025,7 +2025,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\http\http_tag_class.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http\http_tag_class.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2047,7 +2047,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\http\http_tag_ref.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http\http_tag_ref.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2073,7 +2073,7 @@
 				Name="nth"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nth\nth_client.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nth\nth_client.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2095,7 +2095,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nth\nth_server.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nth\nth_server.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2117,7 +2117,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nth\nth_tag.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nth\nth_tag.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2139,7 +2139,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nth\nth_tag_ref.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nth\nth_tag_ref.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2165,7 +2165,7 @@
 				Name="sresolv"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sresolv\sres.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sresolv\sres.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2187,7 +2187,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sresolv\sres_blocking.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sresolv\sres_blocking.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2209,7 +2209,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sresolv\sres_cache.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sresolv\sres_cache.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2231,7 +2231,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sresolv\sresolv.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sresolv\sresolv.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2257,7 +2257,7 @@
 				Name="nea"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nea\nea.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nea\nea.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2279,7 +2279,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nea\nea_debug.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nea\nea_debug.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2301,7 +2301,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nea\nea_event.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nea\nea_event.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2323,7 +2323,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nea\nea_server.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nea\nea_server.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2345,7 +2345,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nea\nea_tag.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nea\nea_tag.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2367,7 +2367,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nea\nea_tag_ref.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nea\nea_tag_ref.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2393,7 +2393,7 @@
 				Name="iptsec"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec\auth_client.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec\auth_client.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2415,7 +2415,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec\auth_common.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec\auth_common.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2437,7 +2437,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec\auth_digest.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec\auth_digest.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2459,7 +2459,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec\auth_module.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec\auth_module.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2481,7 +2481,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec\auth_module_http.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec\auth_module_http.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2503,7 +2503,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec\auth_module_sip.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec\auth_module_sip.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2525,7 +2525,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec\auth_plugin.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec\auth_plugin.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2547,7 +2547,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec\auth_plugin_delayed.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec\auth_plugin_delayed.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2569,7 +2569,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec\auth_tag.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec\auth_tag.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2591,7 +2591,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec\auth_tag_ref.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec\auth_tag_ref.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2613,7 +2613,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec\iptsec_debug.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec\iptsec_debug.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2639,7 +2639,7 @@
 				Name="stun"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\stun\stun.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\stun\stun.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2661,7 +2661,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\stun\stun_common.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\stun\stun_common.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2683,7 +2683,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\stun\stun_dns.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\stun\stun_dns.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2705,11 +2705,11 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\stun\stun_internal.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\stun\stun_internal.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\stun\stun_mini.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\stun\stun_mini.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2731,7 +2731,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\stun\stun_tag.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\stun\stun_tag.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2753,7 +2753,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\stun\stun_tag_ref.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\stun\stun_tag_ref.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2779,7 +2779,7 @@
 				Name="nua"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2801,7 +2801,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua_common.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua_common.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2823,7 +2823,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua_dialog.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua_dialog.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2845,11 +2845,11 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua_dialog.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua_dialog.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua_event_server.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua_event_server.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2871,7 +2871,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua_message.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua_message.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2893,11 +2893,11 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua_notifier.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua_notifier.c"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua_options.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua_options.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2919,7 +2919,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua_params.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua_params.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2941,11 +2941,11 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua_params.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua_params.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua_publish.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua_publish.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2967,7 +2967,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua_register.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua_register.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -2989,11 +2989,11 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua_registrar.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua_registrar.c"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua_session.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua_session.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3015,7 +3015,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua_stack.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua_stack.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3037,11 +3037,11 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua_stack.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua_stack.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua_subnotref.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua_subnotref.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3063,7 +3063,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua_tag.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua_tag.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3085,7 +3085,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\nua_tag_ref.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\nua_tag_ref.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3107,7 +3107,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\outbound.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\outbound.c"
 					>
 				</File>
 			</Filter>
@@ -3115,7 +3115,7 @@
 				Name="nta"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nta\nta.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nta\nta.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3137,7 +3137,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nta\nta_check.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nta\nta_check.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3159,7 +3159,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nta\nta_tag.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nta\nta_tag.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3181,7 +3181,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nta\nta_tag_ref.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nta\nta_tag_ref.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3203,7 +3203,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nta\sl_read_payload.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nta\sl_read_payload.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3225,7 +3225,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nta\sl_utils_log.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nta\sl_utils_log.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3247,7 +3247,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nta\sl_utils_print.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nta\sl_utils_print.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3273,7 +3273,7 @@
 				Name="tport"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\tport\tport.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\tport\tport.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3295,11 +3295,11 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\tport\tport_internal.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\tport\tport_internal.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\tport\tport_logging.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\tport\tport_logging.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3321,7 +3321,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\tport\tport_stub_sigcomp.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\tport\tport_stub_sigcomp.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3343,7 +3343,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\tport\tport_stub_stun.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\tport\tport_stub_stun.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3365,7 +3365,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\tport\tport_tag.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\tport\tport_tag.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3387,7 +3387,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\tport\tport_tag_ref.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\tport\tport_tag_ref.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3409,7 +3409,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\tport\tport_type_connect.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\tport\tport_type_connect.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3431,7 +3431,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\tport\tport_type_tcp.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\tport\tport_type_tcp.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3453,7 +3453,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\tport\tport_type_udp.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\tport\tport_type_udp.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3479,7 +3479,7 @@
 				Name="sdp"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sdp\sdp.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sdp\sdp.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3501,7 +3501,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sdp\sdp_parse.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sdp\sdp_parse.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3523,7 +3523,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sdp\sdp_print.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sdp\sdp_print.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3545,7 +3545,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sdp\sdp_tag.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sdp\sdp_tag.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3567,7 +3567,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sdp\sdp_tag_ref.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sdp\sdp_tag_ref.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3593,7 +3593,7 @@
 				Name="soa"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\soa\soa.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\soa\soa.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3615,11 +3615,11 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\soa\sofia-sip-1.12.3\soa_session.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\soa\sofia-sip-1.12.3.2\soa_session.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\soa\soa_static.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\soa\soa_static.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3641,7 +3641,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\soa\soa_tag.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\soa\soa_tag.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3663,7 +3663,7 @@
 					</FileConfiguration>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\soa\soa_tag_ref.c"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\soa\soa_tag_ref.c"
 					>
 					<FileConfiguration
 						Name="Debug|Win32"
@@ -3695,123 +3695,123 @@
 				Filter="su*.h"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\htable.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\htable.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\htable2.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\htable2.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\rbtree.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\rbtree.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_addrinfo.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_addrinfo.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_alloc.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_alloc.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_alloc_stat.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_alloc_stat.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_bm.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_bm.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_config.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_config.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_debug.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_debug.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_errno.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_errno.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_localinfo.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_localinfo.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_log.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_log.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_md5.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_md5.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_module_debug.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_module_debug.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_os_nw.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_os_nw.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\su_port.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\su_port.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_source.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_source.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_strlst.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_strlst.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_tag.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_tag.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_tag_class.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_tag_class.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_tag_inline.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_tag_inline.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_tag_io.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_tag_io.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_tagarg.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_tagarg.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_time.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_time.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_types.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_types.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_uniqueid.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_uniqueid.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_vector.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_vector.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\su_wait.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\su_wait.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\su\sofia-sip-1.12.3\tstdef.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\su\sofia-sip-1.12.3.2\tstdef.h"
 					>
 				</File>
 			</Filter>
@@ -3823,7 +3823,7 @@
 					>
 				</File>
 				<File
-					RelativePath="..\sofia-sip-1.12.3\su_configure.h"
+					RelativePath="..\sofia-sip-1.12.3.2\su_configure.h"
 					>
 				</File>
 				<File
@@ -3835,19 +3835,19 @@
 				Name="ipt headers"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\ipt\sofia-sip-1.12.3\base64.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\ipt\sofia-sip-1.12.3.2\base64.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\ipt\sofia-sip-1.12.3\rc4.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\ipt\sofia-sip-1.12.3.2\rc4.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\ipt\sofia-sip-1.12.3\string0.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\ipt\sofia-sip-1.12.3.2\string0.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\ipt\sofia-sip-1.12.3\token64.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\ipt\sofia-sip-1.12.3.2\token64.h"
 					>
 				</File>
 			</Filter>
@@ -3856,15 +3856,15 @@
 				Filter="url*.h"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\url\sofia-sip-1.12.3\url.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\url\sofia-sip-1.12.3.2\url.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\url\sofia-sip-1.12.3\url_tag.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\url\sofia-sip-1.12.3.2\url_tag.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\url\sofia-sip-1.12.3\url_tag_class.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\url\sofia-sip-1.12.3.2\url_tag_class.h"
 					>
 				</File>
 			</Filter>
@@ -3873,7 +3873,7 @@
 				Filter="features*.h"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\features\sofia-sip-1.12.3\sofia_features.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\features\sofia-sip-1.12.3.2\sofia_features.h"
 					>
 				</File>
 			</Filter>
@@ -3882,11 +3882,11 @@
 				Filter="bnf*.h"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\bnf\sofia-sip-1.12.3\bnf.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\bnf\sofia-sip-1.12.3.2\bnf.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\bnf\sofia-sip-1.12.3\hostdomain.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\bnf\sofia-sip-1.12.3.2\hostdomain.h"
 					>
 				</File>
 			</Filter>
@@ -3894,63 +3894,63 @@
 				Name="msg headers"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\sofia-sip-1.12.3\msg.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\sofia-sip-1.12.3.2\msg.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\sofia-sip-1.12.3\msg_addr.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\sofia-sip-1.12.3.2\msg_addr.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\msg_bnf.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\msg_bnf.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\sofia-sip-1.12.3\msg_buffer.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\sofia-sip-1.12.3.2\msg_buffer.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\sofia-sip-1.12.3\msg_date.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\sofia-sip-1.12.3.2\msg_date.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\sofia-sip-1.12.3\msg_header.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\sofia-sip-1.12.3.2\msg_header.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\msg_internal.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\msg_internal.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\sofia-sip-1.12.3\msg_mclass.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\sofia-sip-1.12.3.2\msg_mclass.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\sofia-sip-1.12.3\msg_mclass_hash.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\sofia-sip-1.12.3.2\msg_mclass_hash.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\sofia-sip-1.12.3\msg_mime.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\sofia-sip-1.12.3.2\msg_mime.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\sofia-sip-1.12.3\msg_mime_protos.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\sofia-sip-1.12.3.2\msg_mime_protos.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\sofia-sip-1.12.3\msg_parser.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\sofia-sip-1.12.3.2\msg_parser.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\sofia-sip-1.12.3\msg_protos.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\sofia-sip-1.12.3.2\msg_protos.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\sofia-sip-1.12.3\msg_tag_class.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\sofia-sip-1.12.3.2\msg_tag_class.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\msg\sofia-sip-1.12.3\msg_types.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\msg\sofia-sip-1.12.3.2\msg_types.h"
 					>
 				</File>
 			</Filter>
@@ -3958,47 +3958,47 @@
 				Name="sip headers"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sofia-sip-1.12.3\sip.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sofia-sip-1.12.3.2\sip.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_extensions.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_extensions.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sofia-sip-1.12.3\sip_hclasses.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sofia-sip-1.12.3.2\sip_hclasses.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sofia-sip-1.12.3\sip_header.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sofia-sip-1.12.3.2\sip_header.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sip_internal.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sip_internal.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sofia-sip-1.12.3\sip_parser.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sofia-sip-1.12.3.2\sip_parser.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sofia-sip-1.12.3\sip_protos.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sofia-sip-1.12.3.2\sip_protos.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sofia-sip-1.12.3\sip_status.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sofia-sip-1.12.3.2\sip_status.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sofia-sip-1.12.3\sip_tag.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sofia-sip-1.12.3.2\sip_tag.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sofia-sip-1.12.3\sip_tag_class.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sofia-sip-1.12.3.2\sip_tag_class.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sip\sofia-sip-1.12.3\sip_util.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sip\sofia-sip-1.12.3.2\sip_util.h"
 					>
 				</File>
 			</Filter>
@@ -4006,35 +4006,35 @@
 				Name="http headers"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\http\sofia-sip-1.12.3\http.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http\sofia-sip-1.12.3.2\http.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\http\sofia-sip-1.12.3\http_hclasses.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http\sofia-sip-1.12.3.2\http_hclasses.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\http\sofia-sip-1.12.3\http_header.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http\sofia-sip-1.12.3.2\http_header.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\http\sofia-sip-1.12.3\http_parser.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http\sofia-sip-1.12.3.2\http_parser.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\http\sofia-sip-1.12.3\http_protos.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http\sofia-sip-1.12.3.2\http_protos.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\http\sofia-sip-1.12.3\http_status.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http\sofia-sip-1.12.3.2\http_status.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\http\sofia-sip-1.12.3\http_tag.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http\sofia-sip-1.12.3.2\http_tag.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\http\sofia-sip-1.12.3\http_tag_class.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\http\sofia-sip-1.12.3.2\http_tag_class.h"
 					>
 				</File>
 			</Filter>
@@ -4042,11 +4042,11 @@
 				Name="nth headers"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nth\sofia-sip-1.12.3\nth.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nth\sofia-sip-1.12.3.2\nth.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nth\sofia-sip-1.12.3\nth_tag.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nth\sofia-sip-1.12.3.2\nth_tag.h"
 					>
 				</File>
 			</Filter>
@@ -4054,23 +4054,23 @@
 				Name="sresolv headers"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sresolv\sofia-resolv\sres.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sresolv\sofia-resolv\sres.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sresolv\sofia-resolv\sres_async.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sresolv\sofia-resolv\sres_async.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sresolv\sofia-resolv\sres_cache.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sresolv\sofia-resolv\sres_cache.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sresolv\sofia-resolv\sres_record.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sresolv\sofia-resolv\sres_record.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sresolv\sofia-sip-1.12.3\sresolv.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sresolv\sofia-sip-1.12.3.2\sresolv.h"
 					>
 				</File>
 			</Filter>
@@ -4078,15 +4078,15 @@
 				Name="nea headers"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nea\sofia-sip-1.12.3\nea.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nea\sofia-sip-1.12.3.2\nea.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nea\nea_debug.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nea\nea_debug.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nea\sofia-sip-1.12.3\nea_tag.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nea\sofia-sip-1.12.3.2\nea_tag.h"
 					>
 				</File>
 			</Filter>
@@ -4094,27 +4094,27 @@
 				Name="iptsec headers"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec\sofia-sip-1.12.3\auth_client.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec\sofia-sip-1.12.3.2\auth_client.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec\sofia-sip-1.12.3\auth_digest.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec\sofia-sip-1.12.3.2\auth_digest.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec\sofia-sip-1.12.3\auth_module.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec\sofia-sip-1.12.3.2\auth_module.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec\sofia-sip-1.12.3\auth_ntlm.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec\sofia-sip-1.12.3.2\auth_ntlm.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec\sofia-sip-1.12.3\auth_plugin.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec\sofia-sip-1.12.3.2\auth_plugin.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\iptsec\iptsec_debug.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec\iptsec_debug.h"
 					>
 				</File>
 			</Filter>
@@ -4122,15 +4122,15 @@
 				Name="stun headers"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\stun\sofia-sip-1.12.3\stun.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\stun\sofia-sip-1.12.3.2\stun.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\stun\sofia-sip-1.12.3\stun_common.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\stun\sofia-sip-1.12.3.2\stun_common.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\stun\sofia-sip-1.12.3\stun_tag.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\stun\sofia-sip-1.12.3.2\stun_tag.h"
 					>
 				</File>
 			</Filter>
@@ -4138,11 +4138,11 @@
 				Name="nua headers"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\sofia-sip-1.12.3\nua.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\sofia-sip-1.12.3.2\nua.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nua\sofia-sip-1.12.3\nua_tag.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nua\sofia-sip-1.12.3.2\nua_tag.h"
 					>
 				</File>
 			</Filter>
@@ -4150,27 +4150,27 @@
 				Name="nta headers"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nta\sofia-sip-1.12.3\nta.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nta\sofia-sip-1.12.3.2\nta.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nta\nta_internal.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nta\nta_internal.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nta\sofia-sip-1.12.3\nta_stateless.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nta\sofia-sip-1.12.3.2\nta_stateless.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nta\sofia-sip-1.12.3\nta_tag.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nta\sofia-sip-1.12.3.2\nta_tag.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nta\sofia-sip-1.12.3\nta_tport.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nta\sofia-sip-1.12.3.2\nta_tport.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\nta\sofia-sip-1.12.3\sl_utils.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\nta\sofia-sip-1.12.3.2\sl_utils.h"
 					>
 				</File>
 			</Filter>
@@ -4178,19 +4178,19 @@
 				Name="tport headers"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\tport\sofia-sip-1.12.3\tport.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\tport\sofia-sip-1.12.3.2\tport.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\tport\sofia-sip-1.12.3\tport_plugins.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\tport\sofia-sip-1.12.3.2\tport_plugins.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\tport\sofia-sip-1.12.3\tport_tag.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\tport\sofia-sip-1.12.3.2\tport_tag.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\tport\tport_tls.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\tport\tport_tls.h"
 					>
 				</File>
 			</Filter>
@@ -4198,11 +4198,11 @@
 				Name="sdp headers"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sdp\sofia-sip-1.12.3\sdp.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sdp\sofia-sip-1.12.3.2\sdp.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\sdp\sofia-sip-1.12.3\sdp_tag.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\sdp\sofia-sip-1.12.3.2\sdp_tag.h"
 					>
 				</File>
 			</Filter>
@@ -4210,15 +4210,15 @@
 				Name="soa headers"
 				>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\soa\sofia-sip-1.12.3\soa.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\soa\sofia-sip-1.12.3.2\soa.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\soa\sofia-sip-1.12.3\soa_add.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\soa\sofia-sip-1.12.3.2\soa_add.h"
 					>
 				</File>
 				<File
-					RelativePath="..\..\sofia-sip-1.12.3\libsofia-sip-ua\soa\sofia-sip-1.12.3\soa_tag.h"
+					RelativePath="..\..\sofia-sip-1.12.3.2\libsofia-sip-ua\soa\sofia-sip-1.12.3.2\soa_tag.h"
 					>
 				</File>
 			</Filter>

Modified: freeswitch/branches/mishehu/src/dotnet/Marshaling/Types/ApiInterfaceMarshal.cs
==============================================================================
--- freeswitch/branches/mishehu/src/dotnet/Marshaling/Types/ApiInterfaceMarshal.cs	(original)
+++ freeswitch/branches/mishehu/src/dotnet/Marshaling/Types/ApiInterfaceMarshal.cs	Sun Oct  8 20:25:31 2006
@@ -42,7 +42,8 @@
         internal IntPtr      interface_name;
         //[MarshalAs(UnmanagedType.LPStr)]
         internal IntPtr      desc;
-        internal ApiFunction function;
+        internal ApiFunction function;
+        internal IntPtr      syntax;
         internal IntPtr      next;
     }
 }

Modified: freeswitch/branches/mishehu/src/dotnet/Module.cs
==============================================================================
--- freeswitch/branches/mishehu/src/dotnet/Module.cs	(original)
+++ freeswitch/branches/mishehu/src/dotnet/Module.cs	Sun Oct  8 20:25:31 2006
@@ -130,6 +130,7 @@
             /* Allocate umanaged mem to to interface fields so GC doesn't disturb them */
             apiInterfaceMarshal.interface_name = Marshal.StringToHGlobalAnsi(apiInterface.Name);
             apiInterfaceMarshal.desc           = Marshal.StringToHGlobalAnsi(apiInterface.Description);
+            apiInterfaceMarshal.syntax         = Marshal.StringToHGlobalAnsi(apiInterface.Syntax);
             apiInterfaceMarshal.function       = new ApiFunction(apiInterface.ApiFunction);
             
             /* Set the handle of the managed object */

Modified: freeswitch/branches/mishehu/src/dotnet/Modules/Api.cs
==============================================================================
--- freeswitch/branches/mishehu/src/dotnet/Modules/Api.cs	(original)
+++ freeswitch/branches/mishehu/src/dotnet/Modules/Api.cs	Sun Oct  8 20:25:31 2006
@@ -41,6 +41,7 @@
     {
         private string name;
         private string description;
+        private string syntax;
         private ApiFunction apiFunction;
         public HandleRef handle;
 
@@ -54,6 +55,12 @@
         {
             set { description = value; }
             get { return description; }
+        }
+
+        public string Syntax
+        {
+            set { syntax = value; }
+            get { return syntax; }
         }
 
         public ApiFunction ApiFunction

Modified: freeswitch/branches/mishehu/src/include/switch_channel.h
==============================================================================
--- freeswitch/branches/mishehu/src/include/switch_channel.h	(original)
+++ freeswitch/branches/mishehu/src/include/switch_channel.h	Sun Oct  8 20:25:31 2006
@@ -400,6 +400,14 @@
 */
 SWITCH_DECLARE(void) switch_channel_event_set_data(switch_channel_t *channel, switch_event_t *event);
 
+/*!
+  \brief Expand varaibles in a string based on the variables in a paticular channel
+  \param channel channel to expand the variables from
+  \param in the original string
+  \return the original string if no expansion takes place otherwise a new string that must be freed
+  \note it's necessary to test if the return val is the same as the input and free the string if it is not.
+*/
+SWITCH_DECLARE(char *) switch_channel_expand_variables(switch_channel_t *channel, char *in);
 
 // These may go away
 SWITCH_DECLARE(switch_status_t) switch_channel_set_raw_mode (switch_channel_t *channel, int freq, int bits, int channels, int ms, int kbps);

Modified: freeswitch/branches/mishehu/src/include/switch_ivr.h
==============================================================================
--- freeswitch/branches/mishehu/src/include/switch_ivr.h	(original)
+++ freeswitch/branches/mishehu/src/include/switch_ivr.h	Sun Oct  8 20:25:31 2006
@@ -223,6 +223,13 @@
 																 void *session_data,
 																 void *peer_session_data);
 
+/*!
+  \brief Bridge Signalling from one session to another
+  \param session one session
+  \param peer_session the other session
+  \return SWITCH_STATUS_SUCCESS if all is well
+*/
+SWITCH_DECLARE(switch_status_t) switch_ivr_signal_bridge(switch_core_session_t *session, switch_core_session_t *peer_session);
 
 /*!
   \brief Transfer an existing session to another location

Modified: freeswitch/branches/mishehu/src/include/switch_module_interfaces.h
==============================================================================
--- freeswitch/branches/mishehu/src/include/switch_module_interfaces.h	(original)
+++ freeswitch/branches/mishehu/src/include/switch_module_interfaces.h	Sun Oct  8 20:25:31 2006
@@ -537,6 +537,8 @@
 	const char *desc;
 	/*! function the api call uses */
 	switch_api_function_t function;
+	/*! an example of the application syntax */
+	const char *syntax;
 	const struct switch_api_interface *next;
 };
 

Modified: freeswitch/branches/mishehu/src/include/switch_types.h
==============================================================================
--- freeswitch/branches/mishehu/src/include/switch_types.h	(original)
+++ freeswitch/branches/mishehu/src/include/switch_types.h	Sun Oct  8 20:25:31 2006
@@ -72,6 +72,11 @@
 #define SWITCH_HTDOCS_DIR SWITCH_PREFIX_DIR SWITCH_PATH_SEPARATOR "htdocs"
 #endif
 
+#define SWITCH_R_SDP_VARIABLE "_switch_r_sdp_"
+#define SWITCH_L_SDP_VARIABLE "_switch_l_sdp_"
+#define SWITCH_BRIDGE_VARIABLE "BRIDGETO"
+#define SWITCH_SIGNAL_BRIDGE_VARIABLE "SIGNAL_BRIDGETO"
+
 #define SWITCH_BITS_PER_BYTE 8
 typedef uint8_t switch_byte_t;
 
@@ -232,7 +237,8 @@
 	SWITCH_MESSAGE_TRANSMIT_TEXT      - A text message
 	SWITCH_MESSAGE_INDICATE_PROGRESS  - indicate progress 
 	SWITCH_MESSAGE_INDICATE_BRIDGE    - indicate a bridge starting
-	SWITCH_MESSAGE_INDICATE_UNBRIDGE    - indicate a bridge ending
+	SWITCH_MESSAGE_INDICATE_UNBRIDGE  - indicate a bridge ending
+	SWITCH_MESSAGE_INDICATE_TRANSFER  - indicate a transfer is taking place
 </pre>
  */
 typedef enum {
@@ -240,7 +246,8 @@
 	SWITCH_MESSAGE_TRANSMIT_TEXT,
 	SWITCH_MESSAGE_INDICATE_PROGRESS,
 	SWITCH_MESSAGE_INDICATE_BRIDGE,
-	SWITCH_MESSAGE_INDICATE_UNBRIDGE
+	SWITCH_MESSAGE_INDICATE_UNBRIDGE,
+	SWITCH_MESSAGE_INDICATE_TRANSFER
 } switch_core_session_message_types_t;
 
 
@@ -392,6 +399,7 @@
 CF_TAGGED		= (1 << 10) - Channel is tagged
 CF_WINNER		= (1 << 11) - Channel is the winner
 CF_CONTROLLED	= (1 << 12) - Channel is under control
+CF_NOMEDIA		= (1 << 13) - Channel has no media
 </pre>
  */
 
@@ -408,7 +416,8 @@
 	CF_SERVICE		= (1 <<  9),
 	CF_TAGGED		= (1 << 10),
 	CF_WINNER		= (1 << 11),
-	CF_CONTROLLED	= (1 << 12)
+	CF_CONTROLLED	= (1 << 12),
+	CF_NOMEDIA		= (1 << 13)
 } switch_channel_flag_t;
 
 

Modified: freeswitch/branches/mishehu/src/include/switch_utils.h
==============================================================================
--- freeswitch/branches/mishehu/src/include/switch_utils.h	(original)
+++ freeswitch/branches/mishehu/src/include/switch_utils.h	Sun Oct  8 20:25:31 2006
@@ -151,7 +151,7 @@
 
 
 /*!
-  \brief Free a pointer and set it to NULL unles it already is NULL
+  \brief Free a pointer and set it to NULL unless it already is NULL
   \param it the pointer
 */
 #define switch_safe_free(it) if (it) {free(it);it=NULL;}
@@ -191,6 +191,16 @@
   \return the number of elements added to the array
 */
 SWITCH_DECLARE(unsigned int) switch_separate_string(char *buf, char delim, char **array, int arraylen);
+
+/*!
+  \brief Escape a string by prefixing a list of characters with an escape character
+  \param pool a memory pool to use
+  \param in the string
+  \param delim the list of characters to escape
+  \param esc the escape character
+  \return the escaped string
+*/
+SWITCH_DECLARE(char *) switch_escape_char(switch_memory_pool_t *pool, char *in, char *delim, char esc);
 
 /*!
   \brief Create a set of file descriptors to poll

Modified: freeswitch/branches/mishehu/src/mod/applications/mod_bridgecall/mod_bridgecall.c
==============================================================================
--- freeswitch/branches/mishehu/src/mod/applications/mod_bridgecall/mod_bridgecall.c	(original)
+++ freeswitch/branches/mishehu/src/mod/applications/mod_bridgecall/mod_bridgecall.c	Sun Oct  8 20:25:31 2006
@@ -51,22 +51,31 @@
 		timelimit = atoi(var);
 	}
 
+	if ((var = switch_channel_get_variable(caller_channel, "no_media"))) {
+		switch_channel_set_flag(caller_channel, CF_NOMEDIA);		
+	}
+
 	if (switch_ivr_originate(session, &peer_session, &cause, data, timelimit, NULL, NULL, NULL, NULL) != SWITCH_STATUS_SUCCESS) {
 		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot Create Outgoing Channel!\n");
 		/* Hangup the channel with the cause code from the failed originate.*/
 		switch_channel_hangup(caller_channel, cause);
 		return;
 	} else {
-		switch_ivr_multi_threaded_bridge(session, peer_session, NULL, NULL, NULL);
+		if (switch_channel_test_flag(caller_channel, CF_NOMEDIA)) {
+			switch_ivr_signal_bridge(session, peer_session);			
+		} else {
+			switch_ivr_multi_threaded_bridge(session, peer_session, NULL, NULL, NULL);
+		}
 	}
 }
 
-
 static const switch_application_interface_t bridge_application_interface = {
 	/*.interface_name */ "bridge",
-	/*.application_function */ audio_bridge_function
+	/*.application_function */ audio_bridge_function,
+	/* long_desc */ "Bridge the audio between two sessions",
+	/* short_desc */ "Bridge Audio",
+	/* syntax */ "<channel_url>",
 };
-
 
 static const switch_loadable_module_interface_t mod_bridgecall_module_interface = {
 	/*.module_name = */ modname,

Modified: freeswitch/branches/mishehu/src/mod/applications/mod_commands/mod_commands.c
==============================================================================
--- freeswitch/branches/mishehu/src/mod/applications/mod_commands/mod_commands.c	(original)
+++ freeswitch/branches/mishehu/src/mod/applications/mod_commands/mod_commands.c	Sun Oct  8 20:25:31 2006
@@ -34,6 +34,16 @@
 #include <switch.h>
 
 static const char modname[] = "mod_commands";
+static switch_api_interface_t ctl_api_interface;
+static switch_api_interface_t uuid_bridge_api_interface;
+static switch_api_interface_t status_api_interface;
+static switch_api_interface_t show_api_interface;
+static switch_api_interface_t pause_api_interface;
+static switch_api_interface_t transfer_api_interface;
+static switch_api_interface_t load_api_interface;
+static switch_api_interface_t reload_api_interface;
+static switch_api_interface_t kill_api_interface;
+static switch_api_interface_t originate_api_interface;
 
 static switch_status_t status_function(char *cmd, switch_core_session_t *session, switch_stream_handle_t *stream)
 {
@@ -94,7 +104,7 @@
 	uint32_t arg = 0;
 
 	if (switch_strlen_zero(data)) {
-		stream->write_function(stream, "USAGE: fsctl [hupall|pause|resume|shutdown]\n");
+		stream->write_function(stream, "USAGE: %s\n", ctl_api_interface.syntax);
 		return SWITCH_STATUS_SUCCESS;
 	}
 
@@ -114,7 +124,7 @@
 			arg = 0;
 			switch_core_session_ctl(SCSC_SHUTDOWN, &arg);
 		} else {
-			stream->write_function(stream, "INVALID COMMAND [%s]\n", argv[0]);
+			stream->write_function(stream, "INVALID COMMAND [%s]\nUSAGE: fsctl [hupall|pause|resume|shutdown]\n", argv[0]);
 			goto end;
 		} 
 
@@ -136,6 +146,10 @@
 	if (session) {
 		return SWITCH_STATUS_FALSE;
 	}
+	if (switch_strlen_zero(mod)) {
+		stream->write_function(stream, "USAGE: %s\n", load_api_interface.syntax);
+		return SWITCH_STATUS_SUCCESS;
+	}
 	switch_loadable_module_load_module((char *) SWITCH_GLOBAL_dirs.mod_dir, (char *) mod);
 	stream->write_function(stream, "OK\n");
 	return SWITCH_STATUS_SUCCESS;
@@ -167,7 +181,9 @@
 		return SWITCH_STATUS_FALSE;
 	}
 
-	if (dest && (session = switch_core_session_locate(dest))) {
+	if (!dest) {
+		stream->write_function(stream, "USAGE: %s\n", kill_api_interface.syntax);
+	} else if ((session = switch_core_session_locate(dest))) {
 		switch_channel_t *channel = switch_core_session_get_channel(session);
 		switch_channel_hangup(channel, SWITCH_CAUSE_NORMAL_CLEARING);
 		switch_core_session_rwunlock(session);
@@ -193,7 +209,7 @@
 	argc = switch_separate_string(cmd, ' ', argv, (sizeof(argv) / sizeof(argv[0])));
 
 	if (argc < 2 || argc > 4) {
-		stream->write_function(stream, "USAGE: transfer <uuid> <dest-exten> [<dialplan>] [<context>]\n");
+		stream->write_function(stream, "USAGE: %s\n", transfer_api_interface.syntax);
 	} else {
 		char *uuid = argv[0];
 		char *dest = argv[1];
@@ -232,9 +248,11 @@
 	argc = switch_separate_string(cmd, ' ', argv, (sizeof(argv) / sizeof(argv[0])));
 
 	if (argc != 2) {
-		stream->write_function(stream, "Invalid Parameters\nUsage: uuid_bridge <uuid> <other_uuid>\n");
+		stream->write_function(stream, "USAGE: %s\n", uuid_bridge_api_interface.syntax);
 	} else {
-		switch_ivr_uuid_bridge(argv[0], argv[1]);
+		if (switch_ivr_uuid_bridge(argv[0], argv[1]) != SWITCH_STATUS_SUCCESS) {
+			stream->write_function(stream, "Invalid uuid\n");
+		}
 	}
 
 	return SWITCH_STATUS_SUCCESS;
@@ -255,7 +273,7 @@
 	argc = switch_separate_string(cmd, ' ', argv, (sizeof(argv) / sizeof(argv[0])));
 
 	if (argc < 2) {
-		stream->write_function(stream, "USAGE: pause <uuid> <on|off>\n");
+		stream->write_function(stream, "USAGE: %s\n", pause_api_interface.syntax);
 	} else {
 		char *uuid = argv[0];
 		char *dest = argv[1];
@@ -293,13 +311,13 @@
 		return SWITCH_STATUS_SUCCESS;
 	}
 
-	if (switch_strlen_zero(cmd)) {
-		stream->write_function(stream, "Usage: originate <call url> <exten> [<dialplan>] [<context>] [<cid_name>] [<cid_num>] [<timeout_sec>]\n");
+	argc = switch_separate_string(cmd, ' ', argv, (sizeof(argv) / sizeof(argv[0])));
+
+	if (switch_strlen_zero(cmd) || argc < 2 || argc > 7) {
+		stream->write_function(stream, "USAGE: %s\n", originate_api_interface.syntax);
 		return SWITCH_STATUS_SUCCESS;
 	}
 
-	argc = switch_separate_string(cmd, ' ', argv, (sizeof(argv) / sizeof(argv[0])));
-
 	for(x = 0; x < argc; x++) {
 		if (!strcasecmp(argv[x], "undef")) {
 			argv[x] = NULL;
@@ -325,11 +343,6 @@
 		timeout = atoi(argv[6]);
 	}
 
-	if (!aleg || !exten) {
-		stream->write_function(stream, "Invalid Arguements\n");
-		return SWITCH_STATUS_SUCCESS;
-	}
-
 	if (switch_ivr_originate(NULL, &caller_session, &cause, aleg, timeout, &noop_state_handler, cid_name, cid_num, NULL) != SWITCH_STATUS_SUCCESS) {
 		stream->write_function(stream, "Cannot Create Outgoing Channel! [%s]\n", aleg);
 		return SWITCH_STATUS_SUCCESS;
@@ -339,7 +352,6 @@
 	assert(caller_channel != NULL);
 	switch_channel_clear_state_handler(caller_channel, NULL);
 
-
 	if (*exten == '&') {
 		switch_caller_extension_t *extension = NULL;
 		char *app_name = switch_core_session_strdup(caller_session, (exten + 1));
@@ -372,6 +384,7 @@
 	switch_stream_handle_t *stream;
 	char *http;
 	uint32_t count;
+	int print_title;
 };
 
 static int show_callback(void *pArg, int argc, char **argv, char **columnNames){
@@ -379,7 +392,7 @@
 	int x;
 
 
-	if (holder->count == 0) {
+	if (holder->print_title && holder->count == 0) {
 		if (holder->http) {
 			holder->stream->write_function(holder->stream, "\n<tr>");
 		}
@@ -420,6 +433,7 @@
 	char *errmsg;
 	switch_core_db_t *db = switch_core_db_handle();
 	struct holder holder = {0};
+	int help = 0;
 
 	if (session) {
 		return SWITCH_STATUS_FALSE;
@@ -429,13 +443,17 @@
         holder.http = switch_event_get_header(stream->event, "http-host");
     } 
 
+	holder.print_title = 1;
+
     if (!cmd) {
         sprintf (sql, "select * from interfaces");
     }
-    else if ( !strcmp(cmd,"codec") || !strcmp(cmd,"application") || 
-              !strcmp(cmd,"api") || !strcmp(cmd,"dialplan") || 
+    else if ( !strcmp(cmd,"codec") || !strcmp(cmd,"dialplan") || 
               !strcmp(cmd,"file") || !strcmp(cmd,"timer") 
             ) {
+        sprintf (sql, "select type, name from interfaces where type = '%s'", cmd);
+    }
+    else if (!strcmp(cmd,"application") || !strcmp(cmd,"api")) {
         sprintf (sql, "select * from interfaces where type = '%s'", cmd);
     }
     else if ( !strcmp(cmd,"calls")) {
@@ -444,10 +462,19 @@
     else if ( !strcmp(cmd,"channels")) {
         sprintf (sql, "select * from channels");
     }
+    else if (!strncasecmp(cmd, "help", 4)) {
+		char *cmdname = NULL;
+		help = 1;
+		holder.print_title = 0;
+		if ((cmdname = strchr(cmd, ' ')) != 0) {
+			*cmdname++ = '\0';
+	        sprintf (sql, "select name, description, syntax from interfaces where type = 'api' and name = '%s'", cmdname);
+		} else {
+	        sprintf (sql, "select name, description, syntax from interfaces where type = 'api'");
+		}
+    }
     else {
-        stream->write_function(stream, "Invalid interfaces type!\n");
-        stream->write_function(stream, "Example:\n");
-        stream->write_function(stream, "show <blank>|codec|application|api|dialplan|file|timer|calls|channels\n");
+		stream->write_function(stream, "USAGE: %s\n", show_api_interface.syntax);
         return SWITCH_STATUS_SUCCESS;
     }
     
@@ -464,11 +491,13 @@
 		holder.stream->write_function(holder.stream, "</table>");
 	}
 
-
 	if (errmsg) {
 		stream->write_function(stream, "SQL ERR [%s]\n",errmsg);
 		switch_core_db_free(errmsg);
 		errmsg = NULL;
+	} else if (help) {
+		if (holder.count == 0)
+			stream->write_function(stream, "No such command.\n");
 	} else {
 		stream->write_function(stream, "\n%u total.\n", holder.count);
 	}
@@ -477,19 +506,46 @@
 	return SWITCH_STATUS_SUCCESS;
 }
 
+static switch_status_t help_function(char *cmd, switch_core_session_t *session, switch_stream_handle_t *stream)
+{
+	char showcmd[1024];
+	int all = 0;
+	if (switch_strlen_zero(cmd)) {
+		sprintf (showcmd, "help");
+		all = 1;
+	} else {
+		sprintf (showcmd, "help %s", cmd);
+	}
 
+	if (all)
+		stream->write_function(stream, "\nValid Commands:\n\n");
+	show_function(showcmd, session, stream);
+	if (all)
+		stream->write_function(stream, "version\n" "shutdown - stop the program\n");
+	return SWITCH_STATUS_SUCCESS;
+}
 
+static switch_api_interface_t help_api_interface = {
+	/*.interface_name */ "help",
+	/*.desc */ "Show help for all the api commands",
+	/*.function */ help_function,
+	/*.syntax */ "help",
+	/*.next */ NULL
+};
+
 static switch_api_interface_t ctl_api_interface = {
 	/*.interface_name */ "fsctl",
 	/*.desc */ "control messages",
 	/*.function */ ctl_function,
-	/*.next */ 
+	/*.syntax */ "fsctl [hupall|pause|resume|shutdown]",
+	/*.next */ &help_api_interface
 };
 
 static switch_api_interface_t uuid_bridge_api_interface = {
 	/*.interface_name */ "uuid_bridge",
 	/*.desc */ "uuid_bridge",
 	/*.function */ uuid_bridge_function,
+	/*.syntax */ "uuid_bridge <uuid> <other_uuid>",
 	/*.next */ &ctl_api_interface
 };
 
@@ -497,6 +553,7 @@
 	/*.interface_name */ "status",
 	/*.desc */ "status",
 	/*.function */ status_function,
+	/*.syntax */ "status",
 	/*.next */ &uuid_bridge_api_interface
 };
 
@@ -504,6 +561,7 @@
 	/*.interface_name */ "show",
 	/*.desc */ "Show",
 	/*.function */ show_function,
+	/*.syntax */ "show <blank>|codec|application|api|dialplan|file|timer|calls|channels",
 	/*.next */ &status_api_interface
 };
 
@@ -511,6 +569,7 @@
 	/*.interface_name */ "pause",
 	/*.desc */ "Pause",
 	/*.function */ pause_function,
+	/*.syntax */ "pause <uuid> <on|off>",
 	/*.next */ &show_api_interface
 };
 
@@ -518,6 +577,7 @@
 	/*.interface_name */ "transfer",
 	/*.desc */ "Transfer",
 	/*.function */ transfer_function,
+	/*.syntax */ "transfer <uuid> <dest-exten> [<dialplan>] [<context>]",
 	/*.next */ &pause_api_interface
 };
 
@@ -525,6 +585,7 @@
 	/*.interface_name */ "load",
 	/*.desc */ "Load Module",
 	/*.function */ load_function,
+	/*.syntax */ "load <mod_name>",
 	/*.next */ &transfer_api_interface
 };
 
@@ -532,14 +593,16 @@
 	/*.interface_name */ "reloadxml",
 	/*.desc */ "Reload XML",
 	/*.function */ reload_function,
+	/*.syntax */ "reloadxml",
 	/*.next */ &load_api_interface,
 
 };
 
-static switch_api_interface_t commands_api_interface = {
+static switch_api_interface_t kill_api_interface = {
 	/*.interface_name */ "killchan",
 	/*.desc */ "Kill Channel",
 	/*.function */ kill_function,
+	/*.syntax */ "killchan <uuid>",
 	/*.next */ &reload_api_interface
 };
 
@@ -547,7 +610,8 @@
 	/*.interface_name */ "originate",
 	/*.desc */ "Originate a Call",
 	/*.function */ originate_function,
-	/*.next */ &commands_api_interface
+	/*.syntax */ "originate <call url> <exten>|&<application_name>(<app_args>) [<dialplan>] [<context>] [<cid_name>] [<cid_num>] [<timeout_sec>]",
+	/*.next */ &kill_api_interface
 };
 
 

Modified: freeswitch/branches/mishehu/src/mod/applications/mod_conference/mod_conference.c
==============================================================================
--- freeswitch/branches/mishehu/src/mod/applications/mod_conference/mod_conference.c	(original)
+++ freeswitch/branches/mishehu/src/mod/applications/mod_conference/mod_conference.c	Sun Oct  8 20:25:31 2006
@@ -34,6 +34,7 @@
 static const char modname[] = "mod_conference";
 static const char global_app_name[] = "conference";
 static char *global_cf_name = "conference.conf";
+static switch_api_interface_t conf_api_interface;
 
 /* Size to allocate for audio buffers */
 #define CONF_BUFFER_SIZE 1024 * 128 
@@ -1317,29 +1318,6 @@
 	char *lbuf = NULL;
 	switch_status_t status = SWITCH_STATUS_SUCCESS;
 	char *http = NULL;
-	char *topusage = "Available Commands:\n"
-		"--------------------------------------------------------------------------------\n"
-		"conference commands\n"
-		"conference list [delim <string>]\n"
-		"conference <confname> list [delim <string>]\n"
-		"conference <confname> energy <member_id> [<newval>]\n"
-		"conference <confname> volume_in <member_id> [<newval>]\n"
-		"conference <confname> volume_out <member_id> [<newval>]\n"
-		"conference <confname> play <file_path> [<member_id>]\n"
-		"conference <confname> say <text>\n"
-		"conference <confname> saymember <member_id><text>\n"
-		"conference <confname> stop <[current|all]> [<member_id>]\n"
-		"conference <confname> kick <member_id>\n"
-		"conference <confname> mute <member_id>\n"
-		"conference <confname> unmute <member_id>\n"
-		"conference <confname> deaf <member_id>\n"
-		"conference <confname> undef <member_id>\n"
-		"conference <confname> relate <member_id> <other_member_id> [nospeak|nohear]\n"
-		"conference <confname> lock\n"
-		"conference <confname> unlock\n"
-		"conference <confname> dial <endpoint_module_name>/<destination>\n"
-		"conference <confname> transfer <member_id> <conference_name>\n"
-		;
 
 	if (session) {
 		return SWITCH_STATUS_FALSE;
@@ -1355,7 +1333,7 @@
 	}
 
 	if (!buf) {
-		stream->write_function(stream, topusage);
+		stream->write_function(stream, "%s", conf_api_interface.syntax);
 		return status;
 	}
 
@@ -1370,7 +1348,7 @@
 		/* Figure out what conference */
 		if (argc) {
 			if (!strcasecmp(argv[0], "commands")) {
-				stream->write_function(stream, topusage);
+				stream->write_function(stream, "%s", conf_api_interface.syntax);
 				goto done;
 			} else if (!strcasecmp(argv[0], "list")) {
 				switch_hash_index_t *hi;
@@ -2020,7 +1998,7 @@
 				goto done;
 			}
 		} else {
-			stream->write_function(stream, topusage);
+			stream->write_function(stream, "USAGE: %s\n", conf_api_interface.syntax);
 		}
 	} else {
 		stream->write_function(stream, "Memory Error!\n");
@@ -2665,7 +2643,28 @@
 static switch_api_interface_t conf_api_interface = {
 	/*.interface_name */ "conference",
 	/*.desc */ "Conference",
-	/*.function */ conf_function
+	/*.function */ conf_function,
+	/*.syntax */ 
+		"conference commands\n"
+		"conference list [delim <string>]\n"
+		"conference <confname> list [delim <string>]\n"
+		"conference <confname> energy <member_id> [<newval>]\n"
+		"conference <confname> volume_in <member_id> [<newval>]\n"
+		"conference <confname> volume_out <member_id> [<newval>]\n"
+		"conference <confname> play <file_path> [<member_id>]\n"
+		"conference <confname> say <text>\n"
+		"conference <confname> saymember <member_id><text>\n"
+		"conference <confname> stop <[current|all]> [<member_id>]\n"
+		"conference <confname> kick <member_id>\n"
+		"conference <confname> mute <member_id>\n"
+		"conference <confname> unmute <member_id>\n"
+		"conference <confname> deaf <member_id>\n"
+		"conference <confname> undef <member_id>\n"
+		"conference <confname> relate <member_id> <other_member_id> [nospeak|nohear]\n"
+		"conference <confname> lock\n"
+		"conference <confname> unlock\n"
+		"conference <confname> dial <endpoint_module_name>/<destination>\n"
+		"conference <confname> transfer <member_id> <conference_name>\n",
 	/*.next */ 
 };
 

Modified: freeswitch/branches/mishehu/src/mod/applications/mod_dptools/mod_dptools.c
==============================================================================
--- freeswitch/branches/mishehu/src/mod/applications/mod_dptools/mod_dptools.c	(original)
+++ freeswitch/branches/mishehu/src/mod/applications/mod_dptools/mod_dptools.c	Sun Oct  8 20:25:31 2006
@@ -33,7 +33,6 @@
 
 static const char modname[] = "mod_dptools";
 
-
 static void transfer_function(switch_core_session_t *session, char *data)
 {
 	int argc;
@@ -133,6 +132,7 @@
 	/*.interface_name */ "strftime",
 	/*.desc */ "strftime",
 	/*.function */ strftime_api_function,
+	/*.syntax */ "strftime <format_string>",
 	/*.next */ NULL
 };
 

Modified: freeswitch/branches/mishehu/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c
==============================================================================
--- freeswitch/branches/mishehu/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c	(original)
+++ freeswitch/branches/mishehu/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c	Sun Oct  8 20:25:31 2006
@@ -174,17 +174,16 @@
 				char *cmd = switch_core_session_strdup(session, field + 1);
 				char *arg;
 				
+				SWITCH_STANDARD_STREAM(stream);
+				
 				if (cmd) {
 					if ((arg = strchr(cmd, ' '))) {
 						*arg++ = '\0';
 					}
-					stream.data = retbuf;
-					stream.end = stream.data;
-					stream.data_size = sizeof(retbuf);
-					stream.write_function = switch_console_stream_write;
 					if (switch_api_execute(cmd, arg, session, &stream) == SWITCH_STATUS_SUCCESS) {
 						field_data = retbuf;
 					}
+					free(stream.data);
 				}
 			} else {
 				field_data = switch_caller_get_field_by_name(caller_profile, field);

Modified: freeswitch/branches/mishehu/src/mod/endpoints/mod_dingaling/mod_dingaling.c
==============================================================================
--- freeswitch/branches/mishehu/src/mod/endpoints/mod_dingaling/mod_dingaling.c	(original)
+++ freeswitch/branches/mishehu/src/mod/endpoints/mod_dingaling/mod_dingaling.c	Sun Oct  8 20:25:31 2006
@@ -1071,6 +1071,7 @@
 	/*.interface_name */ "dl_logout",
 	/*.desc */ "DingaLing Logout",
 	/*.function */ dl_logout,
+	/*.syntax */ "dl_logout <profile_name>",
 	/*.next */ NULL
 };
 
@@ -1078,6 +1079,7 @@
 	/*.interface_name */ "dl_login",
 	/*.desc */ "DingaLing Login",
 	/*.function */ dl_login,
+	/*.syntax */ "dl_login <profile_name>",
 	/*.next */ &logout_api_interface
 };
 
@@ -1398,7 +1400,7 @@
 	}
 
 	if (!profile_name) {
-		stream->write_function(stream, "NO PROFILE NAME SPECIFIED\n");
+		stream->write_function(stream, "USAGE: %s\n", logout_api_interface.syntax);
 		return SWITCH_STATUS_SUCCESS;
 	}
 
@@ -1424,14 +1426,14 @@
 		return SWITCH_STATUS_FALSE;
 	}
 
-	if (switch_strlen_zero(arg)) {
-		stream->write_function(stream, "FAIL\n");
-		return SWITCH_STATUS_SUCCESS;
-	}
-
 	myarg = strdup(arg);
 
 	argc = switch_separate_string(myarg, ';', argv, (sizeof(argv) / sizeof(argv[0])));
+
+	if (switch_strlen_zero(arg) || argc != 1) {
+		stream->write_function(stream, "USAGE: %s\n", login_api_interface.syntax);
+		return SWITCH_STATUS_SUCCESS;
+	}
 
 	if (!strncasecmp(argv[0], "profile=", 8)) {
 		char *profile_name = argv[0] + 8;

Modified: freeswitch/branches/mishehu/src/mod/endpoints/mod_portaudio/mod_portaudio.c
==============================================================================
--- freeswitch/branches/mishehu/src/mod/endpoints/mod_portaudio/mod_portaudio.c	(original)
+++ freeswitch/branches/mishehu/src/mod/endpoints/mod_portaudio/mod_portaudio.c	Sun Oct  8 20:25:31 2006
@@ -440,6 +440,7 @@
 	/*.interface_name */ "padtmf",
 	/*.desc */ "PortAudio Dial DTMF",
 	/*.function */ send_dtmf,
+	/*.syntax */ "padtmf <callid> <dtmf_digits>",
 	/*.next */ NULL
 };
 
@@ -447,6 +448,7 @@
 	/*.interface_name */ "paoffhook",
 	/*.desc */ "PortAudio Answer Call",
 	/*.function */ answer_call,
+	/*.syntax */ "paoffhook",
 	/*.next */ &send_dtmf_interface
 };
 
@@ -454,6 +456,7 @@
 	/*.interface_name */ "painfo",
 	/*.desc */ "PortAudio Call Info",
 	/*.function */ call_info,
+	/*.syntax */ "painfo",
 	/*.next */ &answer_call_interface
 };
 
@@ -461,6 +464,7 @@
 	/*.interface_name */ "pahup",
 	/*.desc */ "PortAudio Hangup Call",
 	/*.function */ hup_call,
+	/*.syntax */ "pahup [call_number]",
 	/*.next */ &channel_info_interface
 };
 
@@ -468,6 +472,7 @@
 	/*.interface_name */ "pacall",
 	/*.desc */ "PortAudio Call",
 	/*.function */ place_call,
+	/*.syntax */ "pacall <exten>",
 	/*.next */ &channel_hup_interface
 };
 
@@ -832,11 +837,9 @@
 	}
 
 	if (!dest) {
-		stream->write_function(stream, "Usage: pacall <exten>");
+		stream->write_function(stream, "Usage: %s\n", channel_api_interface.syntax);
 		return SWITCH_STATUS_FALSE;
 	}
-
-	stream->write_function(stream, "FAIL");
 	
 	if ((session = switch_core_session_request(&channel_endpoint_interface, NULL)) != 0) {
 		struct private_object *tech_pvt;
@@ -873,6 +876,8 @@
 			switch_channel_set_state(channel, CS_INIT);
 			switch_core_session_thread_launch(tech_pvt->session);
 			stream->write_function(stream, "SUCCESS:%s:%s", tech_pvt->call_id, switch_core_session_get_uuid(tech_pvt->session));
+		} else {
+			stream->write_function(stream, "FAIL\n");
 		}
 	}
 	return status;
@@ -931,16 +936,17 @@
 {
 	struct private_object *tech_pvt = NULL;
 	switch_channel_t *channel = NULL;
-	char *dtmf;
+	char *dtmf = NULL;
 
 	if (session) {
 		return SWITCH_STATUS_FALSE;
 	}
 
-	if ((dtmf = strchr(callid, ' ')) != 0) {
-		*dtmf++ = '\0';
+	if (switch_strlen_zero(callid) || (dtmf = strchr(callid, ' ')) == 0) {
+		stream->write_function(stream, "USAGE: %s\n", send_dtmf_interface.syntax);
+		return SWITCH_STATUS_SUCCESS;
 	} else {
-		dtmf = "";
+		*dtmf++ = '\0';
 	}
 
 	if ((tech_pvt = switch_core_hash_find(globals.call_hash, callid)) != 0) {

Modified: freeswitch/branches/mishehu/src/mod/endpoints/mod_sofia/Makefile
==============================================================================
--- freeswitch/branches/mishehu/src/mod/endpoints/mod_sofia/Makefile	(original)
+++ freeswitch/branches/mishehu/src/mod/endpoints/mod_sofia/Makefile	Sun Oct  8 20:25:31 2006
@@ -1,6 +1,6 @@
 OS_ARCH         := $(subst /,_,$(shell uname -s | sed /\ /s//_/))
 VERSION = sofia-sip-1.12
-TARBALL = sofia-sip-1.12.3.tar.gz
+TARBALL = sofia-sip-1.12.3.2.tar.gz
 CFLAGS += -I. -I$(PREFIX)/include/$(VERSION)
 LDFLAGS += -lsofia-sip-ua
 LINKER=$(CC)

Modified: freeswitch/branches/mishehu/src/mod/endpoints/mod_sofia/mod_sofia.c
==============================================================================
--- freeswitch/branches/mishehu/src/mod/endpoints/mod_sofia/mod_sofia.c	(original)
+++ freeswitch/branches/mishehu/src/mod/endpoints/mod_sofia/mod_sofia.c	Sun Oct  8 20:25:31 2006
@@ -62,6 +62,7 @@
 #define MULTICAST_EVENT "multicast::event"
 #define SOFIA_REPLACES_HEADER "_sofia_replaces_"
 
+
 #include <sofia-sip/nua.h>
 #include <sofia-sip/sip_status.h>
 #include <sofia-sip/sdp.h>
@@ -131,7 +132,10 @@
 	TFLAG_TIMER = (1 << 14),
 	TFLAG_READY = (1 << 15),
 	TFLAG_REINVITE = (1 << 16),
-	TFLAG_REFER = (1 << 17)
+	TFLAG_REFER = (1 << 17),
+	TFLAG_NOHUP = (1 << 18),
+	TFLAG_XFER = (1 << 19),
+	TFLAG_NOMEDIA = (1 << 20)
 } TFLAGS;
 
 static struct {
@@ -250,11 +254,14 @@
 	char *local_sdp_str;
 	char *dest;
 	char *key;
+	char *xferto;
+	char *kick;
 	unsigned long rm_rate;
 	switch_payload_t pt;
 	switch_mutex_t *flag_mutex;
 	switch_payload_t te;
 	nua_handle_t *nh;
+	nua_handle_t *nh2;
 	su_home_t *home;
 	sip_contact_t *contact;
 };
@@ -594,8 +601,10 @@
 	char buf[1024];
 	switch_time_t now = switch_time_now();
 
-	assert(tech_pvt != NULL);
-	
+	if (switch_test_flag(tech_pvt, TFLAG_NOMEDIA)) {
+		return;
+	}
+
 	snprintf(buf, sizeof(buf), 
 			 "v=0\n"
 			 "o=FreeSWITCH %d%"APR_TIME_T_FMT" %d%"APR_TIME_T_FMT" IN IP4 %s\n"
@@ -653,6 +662,11 @@
 
 static void tech_set_codecs(private_object_t *tech_pvt)
 {
+
+	if (switch_test_flag(tech_pvt, TFLAG_NOMEDIA)) {
+		return;
+	}
+
 	if (tech_pvt->num_codecs) {
 		return;
 	}
@@ -734,11 +748,11 @@
 	char *ip = tech_pvt->profile->rtpip;
 	switch_port_t sdp_port;
 	char *err;
-	
-	if (tech_pvt->adv_sdp_audio_port) {
+
+	if (switch_test_flag(tech_pvt, TFLAG_NOMEDIA) || tech_pvt->adv_sdp_audio_port) {
 		return SWITCH_STATUS_SUCCESS;
 	}
-
+	
 	tech_pvt->local_sdp_audio_ip = ip;
 	tech_pvt->local_sdp_audio_port = switch_rtp_request_port();
 	sdp_port = tech_pvt->local_sdp_audio_port;
@@ -787,6 +801,8 @@
 
 	caller_profile = switch_channel_get_caller_profile(channel);
 
+	
+
 	if ((tech_pvt->from_str = switch_core_db_mprintf("\"%s\" <sip:%s@%s>", 
 													 (char *) caller_profile->caller_id_name, 
 													 (char *) caller_profile->caller_id_number,
@@ -794,21 +810,75 @@
 													 ))) {
 
 		char *rep = switch_channel_get_variable(channel, SOFIA_REPLACES_HEADER);
-
+		
 		tech_choose_port(tech_pvt);
 		set_local_sdp(tech_pvt);
+
 		switch_set_flag_locked(tech_pvt, TFLAG_READY);
 
-		tech_pvt->nh = nua_handle(tech_pvt->profile->nua, NULL,
+		if (!tech_pvt->nh) {
+			tech_pvt->nh = nua_handle(tech_pvt->profile->nua, NULL,
+									  SIPTAG_TO_STR(tech_pvt->dest),
+									  SIPTAG_FROM_STR(tech_pvt->from_str),
+									  SIPTAG_CONTACT_STR(tech_pvt->profile->url),
+									  TAG_END());
+
+			tech_pvt->sofia_private.session = session;
+			nua_handle_bind(tech_pvt->nh, &tech_pvt->sofia_private);
+
+		}
+
+		nua_invite(tech_pvt->nh,
+				   SOATAG_USER_SDP_STR(tech_pvt->local_sdp_str),
+				   SOATAG_RTP_SORT(SOA_RTP_SORT_REMOTE),
+				   SOATAG_RTP_SELECT(SOA_RTP_SELECT_ALL),
+				   TAG_IF(rep, SIPTAG_REPLACES_STR(rep)),
+				   TAG_END());
+	} else {
+		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Memory Error!\n");
+	}
+	
+}
+
+
+
+static void do_xfer_invite(switch_core_session_t *session)
+{
+	private_object_t *tech_pvt;
+    switch_channel_t *channel = NULL;
+	switch_caller_profile_t *caller_profile;
+
+    channel = switch_core_session_get_channel(session);
+    assert(channel != NULL);
+
+    tech_pvt = (private_object_t *) switch_core_session_get_private(session);
+    assert(tech_pvt != NULL);
+
+	caller_profile = switch_channel_get_caller_profile(channel);
+
+	
+
+	if ((tech_pvt->from_str = switch_core_db_mprintf("\"%s\" <sip:%s@%s>", 
+													 (char *) caller_profile->caller_id_name, 
+													 (char *) caller_profile->caller_id_number,
+													 tech_pvt->profile->sipip
+													 ))) {
+
+		char *rep = switch_channel_get_variable(channel, SOFIA_REPLACES_HEADER);
+		
+
+		tech_pvt->nh2 = nua_handle(tech_pvt->profile->nua, NULL,
 								  SIPTAG_TO_STR(tech_pvt->dest),
 								  SIPTAG_FROM_STR(tech_pvt->from_str),
 								  SIPTAG_CONTACT_STR(tech_pvt->profile->url),
 								  TAG_END());
+			
 
-		tech_pvt->sofia_private.session = session;
-		nua_handle_bind(tech_pvt->nh, &tech_pvt->sofia_private);
-		
-		nua_invite(tech_pvt->nh,
+		nua_handle_bind(tech_pvt->nh2, &tech_pvt->sofia_private);
+
+
+
+		nua_invite(tech_pvt->nh2,
 				   SOATAG_USER_SDP_STR(tech_pvt->local_sdp_str),
 				   SOATAG_RTP_SORT(SOA_RTP_SORT_REMOTE),
 				   SOATAG_RTP_SELECT(SOA_RTP_SELECT_ALL),
@@ -829,6 +899,7 @@
 {
 	private_object_t *tech_pvt;
 	switch_channel_t *channel = NULL;
+	char *sdp;
 
 	channel = switch_core_session_get_channel(session);
 	assert(channel != NULL);
@@ -841,6 +912,16 @@
 	switch_channel_set_variable(channel, "endpoint_disposition", "INIT");
 	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "SOFIA INIT\n");
 
+	if (switch_channel_test_flag(channel, CF_NOMEDIA)) {
+		switch_set_flag_locked(tech_pvt, TFLAG_NOMEDIA);
+	}
+	
+	if ((sdp = switch_channel_get_variable(channel, SWITCH_L_SDP_VARIABLE))) {
+		tech_pvt->local_sdp_str = switch_core_session_strdup(session, sdp);
+		switch_set_flag(tech_pvt, TFLAG_NOMEDIA);
+		switch_channel_set_flag(channel, CF_NOMEDIA);
+	}
+
 	if (switch_test_flag(tech_pvt, TFLAG_OUTBOUND)) {
 		do_invite(session);
 	}
@@ -937,6 +1018,7 @@
 
 static switch_status_t sofia_on_hangup(switch_core_session_t *session)
 {
+	switch_core_session_t *asession;
 	private_object_t *tech_pvt;
 	switch_channel_t *channel = NULL;
 	switch_call_cause_t cause;
@@ -958,6 +1040,13 @@
 	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Channel %s hanging up, cause: %s\n", 
 			  switch_channel_get_name(channel), switch_channel_cause2str(cause), sip_cause);
 
+
+	if (tech_pvt->kick && (asession = switch_core_session_locate(tech_pvt->kick))) {
+		switch_channel_t *a_channel = switch_core_session_get_channel(asession);
+		switch_channel_hangup(a_channel, switch_channel_get_cause(channel));
+		switch_core_session_rwunlock(asession);
+	}
+
 	if (tech_pvt->nh) {
 		if (!switch_test_flag(tech_pvt, TFLAG_BYE)) {
 			if (switch_test_flag(tech_pvt, TFLAG_ANS)) {
@@ -1088,6 +1177,9 @@
 	channel = switch_core_session_get_channel(tech_pvt->session);
 	assert(channel != NULL);
 
+	if (switch_test_flag(tech_pvt, TFLAG_NOMEDIA)) {
+		return SWITCH_STATUS_SUCCESS;
+	}
 
 	if (switch_rtp_ready(tech_pvt->rtp_session) && !switch_test_flag(tech_pvt, TFLAG_REINVITE)) {
 		return SWITCH_STATUS_SUCCESS;
@@ -1168,7 +1260,8 @@
 {
 	private_object_t *tech_pvt;
 	switch_channel_t *channel = NULL;
-
+	char *sdp;
+	
 	assert(session != NULL);
 
 	channel = switch_core_session_get_channel(session);
@@ -1177,13 +1270,25 @@
 	tech_pvt = (private_object_t *) switch_core_session_get_private(session);
 	assert(tech_pvt != NULL);
 
+	if ((sdp = switch_channel_get_variable(channel, SWITCH_L_SDP_VARIABLE))) {
+		tech_pvt->local_sdp_str = switch_core_session_strdup(session, sdp);
+		switch_set_flag(tech_pvt, TFLAG_NOMEDIA);
+		switch_channel_set_flag(channel, CF_NOMEDIA);
+	}
+
+
 	if (!switch_test_flag(tech_pvt, TFLAG_ANS) && !switch_channel_test_flag(channel, CF_OUTBOUND)) {
 		switch_set_flag_locked(tech_pvt, TFLAG_ANS);
+
+
 		tech_choose_port(tech_pvt);
 		set_local_sdp(tech_pvt);
 		activate_rtp(tech_pvt);
+		
 		if (tech_pvt->nh) {
-			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Local SDP:\n%s\n", tech_pvt->local_sdp_str);
+			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Local SDP %s:\n%s\n",
+							  switch_channel_get_name(channel),
+							  tech_pvt->local_sdp_str);
 			nua_respond(tech_pvt->nh, SIP_200_OK, 
 						SOATAG_USER_SDP_STR(tech_pvt->local_sdp_str),
 						SOATAG_AUDIO_AUX("cn telephone-event"),
@@ -1203,10 +1308,6 @@
 	switch_channel_t *channel = NULL;
 	int payload = 0;
 
-	//switch_time_t now, started = switch_time_now(), last_act = switch_time_now();
-	//unsigned int elapsed;
-	//uint32_t hard_timeout = 60000 * 3;
-
 	channel = switch_core_session_get_channel(session);
 	assert(channel != NULL);
 
@@ -1246,7 +1347,6 @@
 
 
 		while (!switch_test_flag(tech_pvt, TFLAG_BYE) && switch_test_flag(tech_pvt, TFLAG_IO) && tech_pvt->read_frame.datalen == 0) {
-			//now = switch_time_now();
 			tech_pvt->read_frame.flags = SFF_NONE;
 
 			status = switch_rtp_zerocopy_read_frame(tech_pvt->rtp_session, &tech_pvt->read_frame);
@@ -1448,6 +1548,34 @@
 
 	switch (msg->message_id) {
 	case SWITCH_MESSAGE_INDICATE_BRIDGE:
+
+		if (switch_test_flag(tech_pvt, TFLAG_XFER)) {
+			switch_clear_flag_locked(tech_pvt, TFLAG_XFER);
+			if (msg->pointer_arg) {
+				switch_core_session_t *asession, *bsession = msg->pointer_arg;
+
+				if ((asession = switch_core_session_locate(tech_pvt->xferto))) {
+					private_object_t *a_tech_pvt = switch_core_session_get_private(asession);
+					private_object_t *b_tech_pvt = switch_core_session_get_private(bsession);
+
+					switch_set_flag_locked(a_tech_pvt, TFLAG_REINVITE);
+					a_tech_pvt->remote_sdp_audio_ip = switch_core_session_strdup(asession, b_tech_pvt->remote_sdp_audio_ip);
+					a_tech_pvt->remote_sdp_audio_port = b_tech_pvt->remote_sdp_audio_port;
+					a_tech_pvt->local_sdp_audio_ip = switch_core_session_strdup(asession, b_tech_pvt->local_sdp_audio_ip);
+					a_tech_pvt->local_sdp_audio_port = b_tech_pvt->local_sdp_audio_port;
+					activate_rtp(a_tech_pvt);
+					
+					b_tech_pvt->kick = switch_core_session_strdup(bsession, tech_pvt->xferto);
+					
+
+					switch_core_session_rwunlock(asession);
+				}
+
+
+				msg->pointer_arg = NULL;
+				return SWITCH_STATUS_FALSE;
+			}
+		}
 		if (tech_pvt->rtp_session && switch_test_flag(tech_pvt, TFLAG_TIMER)) {
 			switch_rtp_clear_flag(tech_pvt->rtp_session, SWITCH_RTP_FLAG_USE_TIMER);
 			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "De-activate timed RTP!\n");
@@ -1462,17 +1590,26 @@
 	case SWITCH_MESSAGE_INDICATE_PROGRESS: {
 		struct private_object *tech_pvt;
 	    switch_channel_t *channel = NULL;
-		  
+		char *sdp;
+
 	    channel = switch_core_session_get_channel(session);
 	    assert(channel != NULL);
 
 	    tech_pvt = switch_core_session_get_private(session);
 	    assert(tech_pvt != NULL);
-		
+
 	    if (!switch_test_flag(tech_pvt, TFLAG_EARLY_MEDIA)) {
 			switch_set_flag_locked(tech_pvt, TFLAG_EARLY_MEDIA);
 			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Asked to send early media by %s\n", msg->from);
 
+
+			if ((sdp = switch_channel_get_variable(channel, SWITCH_L_SDP_VARIABLE))) {
+				tech_pvt->local_sdp_str = switch_core_session_strdup(session, sdp);
+				switch_set_flag(tech_pvt, TFLAG_NOMEDIA);
+				switch_channel_set_flag(channel, CF_NOMEDIA);
+			}
+
+
 			/* Transmit 183 Progress with SDP */
 			tech_choose_port(tech_pvt);
 			set_local_sdp(tech_pvt);
@@ -1539,7 +1676,7 @@
 	sofia_profile_t *profile;
 	switch_caller_profile_t *caller_profile = NULL;
 	private_object_t *tech_pvt = NULL;
-	switch_channel_t *channel;
+	switch_channel_t *nchannel;
 	char *host;
 
 	*new_session = NULL;
@@ -1586,19 +1723,25 @@
 		tech_pvt->dest = switch_core_session_alloc(nsession, strlen(dest) + 5);
 		snprintf(tech_pvt->dest, strlen(dest) + 5, "sip:%s", dest);
 	}
+	attach_private(nsession, profile, tech_pvt, dest);
 
-	channel = switch_core_session_get_channel(nsession);
-	attach_private(nsession, profile, tech_pvt, dest);	
+	nchannel = switch_core_session_get_channel(nsession);
 	caller_profile = switch_caller_profile_clone(nsession, outbound_profile);
-	switch_channel_set_caller_profile(channel, caller_profile);
-	switch_channel_set_flag(channel, CF_OUTBOUND);
+	switch_channel_set_caller_profile(nchannel, caller_profile);
+	switch_channel_set_flag(nchannel, CF_OUTBOUND);
 	switch_set_flag_locked(tech_pvt, TFLAG_OUTBOUND);
-	switch_channel_set_state(channel, CS_INIT);
-	switch_channel_set_variable(channel, "endpoint_disposition", "OUTBOUND");
+	switch_channel_set_state(nchannel, CS_INIT);
+	switch_channel_set_variable(nchannel, "endpoint_disposition", "OUTBOUND");
 	*new_session = nsession;
 	status = SWITCH_STATUS_SUCCESS;
 	if (session) {
+		char *val;
+		switch_channel_t *channel = switch_core_session_get_channel(session);
 		switch_ivr_transfer_variable(session, nsession, SOFIA_REPLACES_HEADER);
+
+		if (switch_channel_test_flag(channel, CF_NOMEDIA) && (val = switch_channel_get_variable(channel, SWITCH_R_SDP_VARIABLE))) {
+			switch_channel_set_variable(nchannel, SWITCH_L_SDP_VARIABLE, val);
+		}
 	}
 
  done:
@@ -1723,7 +1866,6 @@
 	 
 {
 	char const *l_sdp = NULL, *r_sdp = NULL;
-	//int audio = nua_active_inactive, video = nua_active_inactive, chat = nua_active_inactive;
 	int offer_recv = 0, answer_recv = 0, offer_sent = 0, answer_sent = 0;
 	int ss_state = nua_callstate_init;
 	switch_channel_t *channel = NULL;
@@ -1758,6 +1900,7 @@
 		if (r_sdp) {
 			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Remote SDP:\n%s\n", r_sdp);			
 			tech_pvt->remote_sdp_str = switch_core_session_strdup(session, (char *)r_sdp);
+			switch_channel_set_variable(channel, SWITCH_R_SDP_VARIABLE, (char *) r_sdp);
 		}
 	}
 
@@ -1772,34 +1915,38 @@
 	case nua_callstate_proceeding:
 		if (channel) {
 			if (r_sdp) {
-				sdp_parser_t *parser = sdp_parse(tech_pvt->home, r_sdp, (int)strlen(r_sdp), 0);
-				sdp_session_t *sdp;
-				uint8_t match = 0;
+				if (switch_test_flag(tech_pvt, TFLAG_NOMEDIA)) {
+					switch_set_flag_locked(tech_pvt, TFLAG_EARLY_MEDIA);
+					return;
+				} else {
+					sdp_parser_t *parser = sdp_parse(tech_pvt->home, r_sdp, (int)strlen(r_sdp), 0);
+					sdp_session_t *sdp;
+					uint8_t match = 0;
 
-				if (tech_pvt->num_codecs) {
-					if ((sdp = sdp_session(parser))) {
-						match = negotiate_sdp(session, sdp);
+					if (tech_pvt->num_codecs) {
+						if ((sdp = sdp_session(parser))) {
+							match = negotiate_sdp(session, sdp);
+						}
 					}
-				}
 
-				if (parser) {
-					sdp_parser_free(parser);
-				}
+					if (parser) {
+						sdp_parser_free(parser);
+					}
 
 
-				if (match) {
-					tech_choose_port(tech_pvt);
-					activate_rtp(tech_pvt);
-					switch_channel_set_variable(channel, "endpoint_disposition", "EARLY MEDIA");
-					switch_channel_pre_answer(channel);
-					return;
+					if (match) {
+						tech_choose_port(tech_pvt);
+						activate_rtp(tech_pvt);
+						switch_channel_set_variable(channel, "endpoint_disposition", "EARLY MEDIA");
+						switch_set_flag_locked(tech_pvt, TFLAG_EARLY_MEDIA);
+						return;
+					}
+					switch_channel_set_variable(channel, "endpoint_disposition", "NO CODECS");
+					nua_respond(nh, SIP_488_NOT_ACCEPTABLE, 
+								TAG_END());
 				}
-				switch_channel_set_variable(channel, "endpoint_disposition", "NO CODECS");
-				nua_respond(nh, SIP_488_NOT_ACCEPTABLE, 
-							TAG_END());
 			}
 		}
-
 		break;
 	case nua_callstate_completing:
 		nua_ack(nh, TAG_END());
@@ -1807,60 +1954,69 @@
 	case nua_callstate_received: 
 		if (channel) {
 			if (r_sdp) {
-				sdp_parser_t *parser = sdp_parse(tech_pvt->home, r_sdp, (int)strlen(r_sdp), 0);
-				sdp_session_t *sdp;
-				uint8_t match = 0;
+				if (switch_test_flag(tech_pvt, TFLAG_NOMEDIA)) {
+					switch_channel_set_variable(channel, "endpoint_disposition", "RECEIVED_NOMEDIA");
+					switch_channel_set_state(channel, CS_INIT);
+					switch_set_flag_locked(tech_pvt, TFLAG_READY);
+					switch_core_session_thread_launch(session);
+					return;
+				} else {
+					sdp_parser_t *parser = sdp_parse(tech_pvt->home, r_sdp, (int)strlen(r_sdp), 0);
+					sdp_session_t *sdp;
+					uint8_t match = 0;
 				
-				if (tech_pvt->num_codecs) {
-					if ((sdp = sdp_session(parser))) {
-						match = negotiate_sdp(session, sdp);
+					if (tech_pvt->num_codecs) {
+						if ((sdp = sdp_session(parser))) {
+							match = negotiate_sdp(session, sdp);
+						}
 					}
-				}
 
-				if (parser) {
-					sdp_parser_free(parser);
-				}
+					if (parser) {
+						sdp_parser_free(parser);
+					}
 
-				if (match) {
-					nua_handle_t *bnh;
-					sip_replaces_t *replaces;
+					if (match) {
+						nua_handle_t *bnh;
+						sip_replaces_t *replaces;
 					
-					switch_channel_set_variable(channel, "endpoint_disposition", "RECEIVED");
-					switch_channel_set_state(channel, CS_INIT);
-					switch_set_flag_locked(tech_pvt, TFLAG_READY);
-					switch_core_session_thread_launch(session);
+						switch_channel_set_variable(channel, "endpoint_disposition", "RECEIVED");
+						switch_channel_set_state(channel, CS_INIT);
+						switch_set_flag_locked(tech_pvt, TFLAG_READY);
+						switch_core_session_thread_launch(session);
 
-					if (replaces_str && (replaces = sip_replaces_make(tech_pvt->home, replaces_str)) && (bnh = nua_handle_by_replaces(nua, replaces))) {
-						sofia_private_t *b_private;
+						if (replaces_str && (replaces = sip_replaces_make(tech_pvt->home, replaces_str)) && (bnh = nua_handle_by_replaces(nua, replaces))) {
+							sofia_private_t *b_private;
 
-						switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Processing Attended Transfer\n");
-						while (switch_channel_get_state(channel) < CS_EXECUTE) {
-							switch_yield(10000);
-						}
+							switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Processing Replaces Attended Transfer\n");
+							while (switch_channel_get_state(channel) < CS_EXECUTE) {
+								switch_yield(10000);
+							}
 
-						if ((b_private = nua_handle_fetch(bnh))) {
-							char *br_b = switch_channel_get_variable(channel, "BRIDGETO");
-							char *br_a = switch_core_session_get_uuid(b_private->session);
+							if ((b_private = nua_handle_magic(bnh))) {
+								char *br_b = switch_channel_get_variable(channel, SWITCH_BRIDGE_VARIABLE);
+								char *br_a = switch_core_session_get_uuid(b_private->session);
 
-							if (br_b) {
-								switch_ivr_uuid_bridge(br_a, br_b);
-								switch_channel_set_variable(channel, "endpoint_disposition", "ATTENDED_TRANSFER");
-								switch_channel_hangup(channel, SWITCH_CAUSE_ATTENDED_TRANSFER);
+								if (br_b) {
+									switch_ivr_uuid_bridge(br_a, br_b);
+									switch_channel_set_variable(channel, "endpoint_disposition", "ATTENDED_TRANSFER");
+									switch_channel_hangup(channel, SWITCH_CAUSE_ATTENDED_TRANSFER);
+								} else {
+									switch_channel_set_variable(channel, "endpoint_disposition", "ATTENDED_TRANSFER_ERROR");
+									switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
+								}
 							} else {
 								switch_channel_set_variable(channel, "endpoint_disposition", "ATTENDED_TRANSFER_ERROR");
 								switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
 							}
-						} else {
-							switch_channel_set_variable(channel, "endpoint_disposition", "ATTENDED_TRANSFER_ERROR");
-							switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
+							nua_handle_unref(bnh);
 						}
+						return;
 					}
-					return;
-				}
 
-				switch_channel_set_variable(channel, "endpoint_disposition", "NO CODECS");
-				nua_respond(nh, SIP_488_NOT_ACCEPTABLE, 
-							TAG_END());
+					switch_channel_set_variable(channel, "endpoint_disposition", "NO CODECS");
+					nua_respond(nh, SIP_488_NOT_ACCEPTABLE, 
+								TAG_END());
+				}
 			}
 		}
 
@@ -1869,77 +2025,104 @@
 		break;
 	case nua_callstate_completed:
 		if (tech_pvt && r_sdp) {
-			sdp_parser_t *parser = sdp_parse(tech_pvt->home, r_sdp, (int)strlen(r_sdp), 0);
-			sdp_session_t *sdp;
-			uint8_t match = 0;
+			if (r_sdp) {
+				if (switch_test_flag(tech_pvt, TFLAG_NOMEDIA)) {
+					switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "What should i do?\n%s\n", r_sdp);
+					return;
+				} else {
+					sdp_parser_t *parser = sdp_parse(tech_pvt->home, r_sdp, (int)strlen(r_sdp), 0);
+					sdp_session_t *sdp;
+					uint8_t match = 0;
 
-			if (tech_pvt->num_codecs) {
-				if ((sdp = sdp_session(parser))) {
-					match = negotiate_sdp(session, sdp);
+					if (tech_pvt->num_codecs) {
+						if ((sdp = sdp_session(parser))) {
+							match = negotiate_sdp(session, sdp);
+						}
+					}
+					tech_choose_port(tech_pvt);
+					set_local_sdp(tech_pvt);
+					tech_set_codec(tech_pvt);
+					switch_set_flag_locked(tech_pvt, TFLAG_REINVITE);
+					activate_rtp(tech_pvt);
+					switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Processing Reinvite\n");
+					if (parser) {
+						sdp_parser_free(parser);
+					}
 				}
 			}
-			tech_choose_port(tech_pvt);
-			set_local_sdp(tech_pvt);
-			tech_set_codec(tech_pvt);
-			switch_set_flag_locked(tech_pvt, TFLAG_REINVITE);
-			activate_rtp(tech_pvt);
-			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Processing Reinvite\n");
-			if (parser) {
-				sdp_parser_free(parser);
-			}
 		}
 		break;
 	case nua_callstate_ready:
+		if (nh == tech_pvt->nh2) {
+			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Cheater Reinvite!\n");
+			switch_set_flag_locked(tech_pvt, TFLAG_REINVITE);
+			tech_pvt->nh = tech_pvt->nh2;
+			tech_pvt->nh2 = NULL;
+			tech_choose_port(tech_pvt);
+			activate_rtp(tech_pvt);
+			return;
+		}
+
 		if (channel) {
 			if (r_sdp) {
-				sdp_parser_t *parser = sdp_parse(tech_pvt->home, r_sdp, (int)strlen(r_sdp), 0);
-				sdp_session_t *sdp;
-				uint8_t match = 0;
+				if (switch_test_flag(tech_pvt, TFLAG_NOMEDIA)) {
+					switch_set_flag_locked(tech_pvt, TFLAG_ANS);
+					switch_channel_set_flag(channel, CF_ANSWERED);
+					return;
+				} else {
+					sdp_parser_t *parser = sdp_parse(tech_pvt->home, r_sdp, (int)strlen(r_sdp), 0);
+					sdp_session_t *sdp;
+					uint8_t match = 0;
 
-				if (tech_pvt->num_codecs) {
-					if ((sdp = sdp_session(parser))) {
-						match = negotiate_sdp(session, sdp);
+					if (tech_pvt->num_codecs) {
+						if ((sdp = sdp_session(parser))) {
+							match = negotiate_sdp(session, sdp);
+						}
 					}
-				}
 
-				if (parser) {
-					sdp_parser_free(parser);
-				}
+					if (parser) {
+						sdp_parser_free(parser);
+					}
 
 
-				if (match) {
-					switch_set_flag_locked(tech_pvt, TFLAG_ANS);
-					switch_channel_set_variable(channel, "endpoint_disposition", "ANSWER");
-					tech_choose_port(tech_pvt);
-					activate_rtp(tech_pvt);
-					switch_channel_answer(channel);
-					return;
+					if (match) {
+						switch_set_flag_locked(tech_pvt, TFLAG_ANS);
+						switch_channel_set_variable(channel, "endpoint_disposition", "ANSWER");
+						tech_choose_port(tech_pvt);
+						activate_rtp(tech_pvt);
+						switch_channel_set_flag(channel, CF_ANSWERED);
+						return;
+					}
+					
+					switch_channel_set_variable(channel, "endpoint_disposition", "NO CODECS");
+					nua_respond(nh, SIP_488_NOT_ACCEPTABLE, TAG_END());
 				}
-
-				switch_channel_set_variable(channel, "endpoint_disposition", "NO CODECS");
-				nua_respond(nh, SIP_488_NOT_ACCEPTABLE, 
-							TAG_END());
 			} else if (switch_test_flag(tech_pvt, TFLAG_EARLY_MEDIA)) {
 				switch_set_flag_locked(tech_pvt, TFLAG_ANS);
 				switch_channel_set_variable(channel, "endpoint_disposition", "ANSWER");
-				switch_channel_answer(channel);
+				switch_channel_set_flag(channel, CF_ANSWERED);
 				return;
 			} //else probably an ack
-
 		}
-
+		
 		break;
 	case nua_callstate_terminating:
 		break;
-	case nua_callstate_terminated:
+	case nua_callstate_terminated: 
 		if (session) {
 			switch_set_flag_locked(tech_pvt, TFLAG_BYE);
-			terminate_session(&session, sip_cause_to_freeswitch(status), __LINE__);
+			if (switch_test_flag(tech_pvt, TFLAG_NOHUP)) {
+				switch_clear_flag_locked(tech_pvt, TFLAG_NOHUP);
+				nua_handle_destroy(tech_pvt->nh);
+				tech_pvt->nh = NULL;
+			} else {
+				terminate_session(&session, sip_cause_to_freeswitch(status), __LINE__);
+			}
 		}
 		break;
 	}
+	
 
-
 }
 
 
@@ -2235,9 +2418,27 @@
 
 	if (session) {
 		private_object_t *tech_pvt = NULL;
-		char *exten = NULL;
+		char *etmp = NULL, *exten = NULL;
+		switch_channel_t *channel_a = NULL, *channel_b = NULL;
 
 		tech_pvt = switch_core_session_get_private(session);
+		channel_a = switch_core_session_get_channel(session);
+
+		
+		if (!sip->sip_cseq || !(etmp = switch_core_db_mprintf("refer;id=%u", sip->sip_cseq->cs_seq))) {
+			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Memory Error!\n");
+			goto done;
+		}
+
+
+		if (switch_channel_test_flag(channel_a, CF_NOMEDIA)) {
+			nua_notify(tech_pvt->nh, SIPTAG_CONTENT_TYPE_STR("message/sipfrag"),
+					   SIPTAG_PAYLOAD_STR("SIP/2.0 403 Forbidden"),
+					   SIPTAG_EVENT_STR(etmp),
+					   TAG_END());
+			goto done;
+		}
+		
 		from = sip->sip_from;
 		to = sip->sip_to;
 
@@ -2256,12 +2457,11 @@
 				char *rep;
 
 				if ((rep = strchr(refer_to->r_url->url_headers, '='))) {
-					switch_channel_t *channel_a = NULL, *channel_b = NULL;
 					char *br_a = NULL, *br_b = NULL;
 					char *buf;
 					rep++;
 
-					channel_a = switch_core_session_get_channel(session);
+					
 
 					if ((buf = switch_core_session_alloc(session, strlen(rep) + 1))) {
 						rep = url_unescape(buf, (const char *) rep); 
@@ -2272,45 +2472,86 @@
 					}
 					if ((replaces = sip_replaces_make(tech_pvt->home, rep)) && (bnh = nua_handle_by_replaces(nua, replaces))) {
 						sofia_private_t *b_private;
-						
-						if ((b_private = nua_handle_fetch(bnh))) {
+					
+						switch_channel_set_variable(channel_a, SOFIA_REPLACES_HEADER, rep);	
+						if ((b_private = nua_handle_magic(bnh))) {
 							channel_b = switch_core_session_get_channel(b_private->session);
 				
-							br_a = switch_channel_get_variable(channel_a, "BRIDGETO");
-							br_b = switch_channel_get_variable(channel_b, "BRIDGETO");
+							br_a = switch_channel_get_variable(channel_a, SWITCH_BRIDGE_VARIABLE);
+							br_b = switch_channel_get_variable(channel_b, SWITCH_BRIDGE_VARIABLE);
 
 							switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Attended Transfer [%s][%s]\n", br_a, br_b);
 
 							if (br_a && br_b) {
 								switch_ivr_uuid_bridge(br_a, br_b);
 								switch_channel_set_variable(channel_b, "endpoint_disposition", "ATTENDED_TRANSFER");
-								switch_channel_hangup(channel_b, SWITCH_CAUSE_ATTENDED_TRANSFER);
-								switch_channel_set_variable(channel_a, "endpoint_disposition", "ATTENDED_TRANSFER");
-								switch_channel_hangup(channel_a, SWITCH_CAUSE_ATTENDED_TRANSFER);
+									
+								nua_notify(tech_pvt->nh, SIPTAG_CONTENT_TYPE_STR("message/sipfrag"),
+										   SIPTAG_PAYLOAD_STR("SIP/2.0 200 OK"),
+										   SIPTAG_EVENT_STR(etmp),
+										   TAG_END());
+								
 							} else {
-								switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid Transfer! [%s][%s]\n", br_a, br_b);
-								switch_channel_set_variable(channel_b, "endpoint_disposition", "ATTENDED_TRANSFER_ERROR");
-								switch_channel_hangup(channel_b, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
-								switch_channel_set_variable(channel_a, "endpoint_disposition", "ATTENDED_TRANSFER_ERROR");
-								switch_channel_hangup(channel_a, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
+								private_object_t *tech_pvt_b = (private_object_t *) switch_core_session_get_private(b_private->session);
+
+								if (!br_a && !br_b) {
+									switch_set_flag_locked(tech_pvt, TFLAG_NOHUP);
+									switch_set_flag_locked(tech_pvt_b, TFLAG_XFER);
+									tech_pvt_b->xferto = switch_core_session_strdup(b_private->session, switch_core_session_get_uuid(session));
+								} else if (!br_a && br_b) {
+									switch_core_session_t *bsession;
+
+									if ((bsession = switch_core_session_locate(br_b))) {
+										private_object_t *b_tech_pvt = switch_core_session_get_private(bsession);
+										switch_channel_t *b_channel = switch_core_session_get_channel(bsession);
+										private_object_t *bp_tech_pvt = switch_core_session_get_private(b_private->session);
+
+										switch_core_session_get_uuid(b_private->session);
+										switch_set_flag_locked(tech_pvt, TFLAG_NOHUP);
+										
+										switch_channel_clear_state_handler(b_channel, NULL);
+										switch_channel_set_state_flag(b_channel, CF_TRANSFER);
+										switch_channel_set_state(b_channel, CS_TRANSMIT);
+
+										switch_set_flag_locked(tech_pvt, TFLAG_REINVITE);
+										tech_pvt->local_sdp_audio_ip = switch_core_session_strdup(session, bp_tech_pvt->local_sdp_audio_ip);
+										tech_pvt->local_sdp_audio_port = bp_tech_pvt->local_sdp_audio_port;
+
+										tech_pvt->remote_sdp_audio_ip = switch_core_session_strdup(session, b_tech_pvt->remote_sdp_audio_ip);
+										tech_pvt->remote_sdp_audio_port = b_tech_pvt->remote_sdp_audio_port;
+										activate_rtp(tech_pvt);
+	
+										b_tech_pvt->kick = switch_core_session_strdup(bsession, switch_core_session_get_uuid(session));
+										
+
+										switch_core_session_rwunlock(bsession);
+									}
+
+									switch_channel_hangup(channel_b, SWITCH_CAUSE_ATTENDED_TRANSFER);
+								}
+
+								nua_notify(tech_pvt->nh, SIPTAG_CONTENT_TYPE_STR("message/sipfrag"),
+										   SIPTAG_PAYLOAD_STR("SIP/2.0 200 OK"),
+										   SIPTAG_EVENT_STR(etmp),
+										   TAG_END());
+
 							}
 						}
-					
 						nua_handle_unref(bnh);
 					} else { /* the other channel is on a different box, we have to go find them */
-						if (exten && (br_a = switch_channel_get_variable(channel_a, "BRIDGETO"))) {
-							switch_core_session_t *bsession;
+						if (exten && (br_a = switch_channel_get_variable(channel_a, SWITCH_BRIDGE_VARIABLE))) {
+							switch_core_session_t *asession;
 							switch_channel_t *channel = switch_core_session_get_channel(session);
 							
-							if ((bsession = switch_core_session_locate(br_a))) {
+							if ((asession = switch_core_session_locate(br_a))) {
 								switch_core_session_t *tsession;
 								switch_call_cause_t cause = SWITCH_CAUSE_NORMAL_CLEARING;
 								uint32_t timeout = 60;
 								char *tuuid_str;
 
-								channel = switch_core_session_get_channel(bsession);
+								channel = switch_core_session_get_channel(asession);
 
-								exten = switch_core_db_mprintf("sofia/%s/%s@%s:%d", 
+								exten = switch_core_db_mprintf("sofia/%s/%s@%s:%s", 
 															   profile->name,
 															   (char *) refer_to->r_url->url_user,
 															   (char *) refer_to->r_url->url_host,
@@ -2319,7 +2560,7 @@
 
 								switch_channel_set_variable(channel, SOFIA_REPLACES_HEADER, rep);
 								
-								if (switch_ivr_originate(bsession,
+								if (switch_ivr_originate(asession,
 														 &tsession,
 														 &cause,
 														 exten,
@@ -2329,14 +2570,21 @@
 														 NULL,
 														 NULL) != SWITCH_STATUS_SUCCESS) {
 									switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot Create Outgoing Channel! [%s]\n", exten);
+									nua_notify(tech_pvt->nh, SIPTAG_CONTENT_TYPE_STR("message/sipfrag"),
+											   SIPTAG_PAYLOAD_STR("SIP/2.0 403 Forbidden"),
+											   SIPTAG_EVENT_STR(etmp),
+											   TAG_END());
 									goto done;
 								} 
 
-								switch_core_session_rwunlock(bsession);
+								switch_core_session_rwunlock(asession);
 								tuuid_str = switch_core_session_get_uuid(tsession);
 								switch_ivr_uuid_bridge(br_a, tuuid_str);
 								switch_channel_set_variable(channel_a, "endpoint_disposition", "ATTENDED_TRANSFER");
-								switch_channel_hangup(channel_a, SWITCH_CAUSE_ATTENDED_TRANSFER);
+								nua_notify(tech_pvt->nh, SIPTAG_CONTENT_TYPE_STR("message/sipfrag"),
+										   SIPTAG_PAYLOAD_STR("SIP/2.0 200 OK"),
+										   SIPTAG_EVENT_STR(etmp),
+										   TAG_END());
 							} else {
 								goto error;
 							}
@@ -2344,7 +2592,10 @@
 						} else { error:
 							switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid Transfer! [%s]\n", br_a);
 							switch_channel_set_variable(channel_a, "endpoint_disposition", "ATTENDED_TRANSFER_ERROR");
-							switch_channel_hangup(channel_a, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
+							nua_notify(tech_pvt->nh, SIPTAG_CONTENT_TYPE_STR("message/sipfrag"),
+									   SIPTAG_PAYLOAD_STR("SIP/2.0 403 Forbidden"),
+									   SIPTAG_EVENT_STR(etmp),
+									   TAG_END());
 						}
 					}
 				} else {
@@ -2362,26 +2613,50 @@
 			switch_channel_t *channel = switch_core_session_get_channel(session);
 			char *br;
 				
-			switch_channel_set_variable(channel, "endpoint_disposition", "BLIND_TRANSFER");
-			switch_channel_hangup(channel, SWITCH_CAUSE_BLIND_TRANSFER);
-
-			if ((br = switch_channel_get_variable(channel, "BRIDGETO"))) {
+			if ((br = switch_channel_get_variable(channel, SWITCH_BRIDGE_VARIABLE))) {
 				switch_core_session_t *bsession;
-					
+				
 				if ((bsession = switch_core_session_locate(br))) {
 					channel = switch_core_session_get_channel(bsession);
 					switch_channel_set_variable(channel, "TRANSFER_FALLBACK", (char *) from->a_user);
 					switch_ivr_session_transfer(bsession, exten, profile->dialplan, profile->context);
 					switch_core_session_rwunlock(bsession);
 				} 
-			}
 				
+				switch_channel_set_variable(channel, "endpoint_disposition", "BLIND_TRANSFER");
+				
+				nua_notify(tech_pvt->nh, SIPTAG_CONTENT_TYPE_STR("message/sipfrag"),
+						   SIPTAG_PAYLOAD_STR("SIP/2.0 200 OK"),
+						   SIPTAG_EVENT_STR(etmp),
+						   TAG_END());
+			} else {
+				exten = switch_core_db_mprintf("sip:%s@%s:%s", 
+											   (char *) refer_to->r_url->url_user,
+											   (char *) refer_to->r_url->url_host,
+											   refer_to->r_url->url_port);
+				tech_pvt->dest = switch_core_session_strdup(session, exten);
+				
+				
+				switch_set_flag_locked(tech_pvt, TFLAG_NOHUP);
+
+
+				nua_notify(tech_pvt->nh, SIPTAG_CONTENT_TYPE_STR("message/sipfrag"),
+						   SIPTAG_PAYLOAD_STR("SIP/2.0 200 OK"),
+						   SIPTAG_EVENT_STR(etmp),
+						   TAG_END());
+
+				do_xfer_invite(session);
+
+			}
 		}
 
 	done:
-		if (strchr(exten, '@')) {
+		if (exten && strchr(exten, '@')) {
 			switch_core_db_free(exten);
 		}
+		if (etmp) {
+			switch_core_db_free(etmp);
+		}
 	}
 
 }
@@ -2394,11 +2669,11 @@
 						 tagi_t tags[])
 {
 	switch_core_session_t *session = sofia_private ? sofia_private->session : NULL;
-	//refer_handle_t *refer = sofia_private ? sofia_private->refer : NULL;
 	char key[128] = "";
 
-	if (!session) {
 
+	if (!session) {
+		
 		if ((profile->pflags & PFLAG_AUTH_CALLS)) {
 			if (handle_register(nua, profile, nh, sip, REG_INVITE, key, sizeof(key))) {
 				return;
@@ -2510,7 +2785,6 @@
 						   sip_t const *sip,
 						   tagi_t tags[])
 {
-	//switch_core_session_t *session = sofia_private ? sofia_private->session : NULL;
 	handle_register(nua, profile, nh, sip, REG_REGISTER, NULL, 0);
 }
 
@@ -2547,15 +2821,11 @@
 		if ((tech_pvt = switch_core_session_get_private(session)) && switch_test_flag(tech_pvt, TFLAG_REFER)) {
 			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "received reply from refer\n");
 			
-			if (status == 200) {
-				//crap
-			}
 			return;
 		}
 	}
 	
 	if (!oreg) {
-		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "No authentication available!\n");
 		if (sofia_private->oreg) {
 			nua_handle_destroy(nh); 
 		}
@@ -2906,9 +3176,7 @@
 		}
 
 		su_root_step(profile->s_root, 1000);
-		//su_root_run(profile->s_root);
 	}
-
 	
 	if (switch_event_create(&s_event, SWITCH_EVENT_UNPUBLISH) == SWITCH_STATUS_SUCCESS) {
 		switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "service", "_sip._udp");

Modified: freeswitch/branches/mishehu/src/mod/endpoints/mod_sofia/mod_sofia.vcproj
==============================================================================
--- freeswitch/branches/mishehu/src/mod/endpoints/mod_sofia/mod_sofia.vcproj	(original)
+++ freeswitch/branches/mishehu/src/mod/endpoints/mod_sofia/mod_sofia.vcproj	Sun Oct  8 20:25:31 2006
@@ -42,7 +42,7 @@
 			<Tool
 				Name="VCCLCompilerTool"
 				Optimization="0"
-				AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\su&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\nua&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\win32&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\url&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\sip&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\msg&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\sdp&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\nta&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\nea&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\soa&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\iptsec&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\bnf&quot;"
+				AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\su&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\nua&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\win32&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\url&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\sip&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\msg&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\sdp&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\nta&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\nea&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\soa&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\bnf&quot;"
 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;LIBSOFIA_SIP_UA_STATIC;PTW32_STATIC_LIB"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
@@ -126,7 +126,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\su&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\nua&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\win32&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\url&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\sip&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\msg&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\sdp&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\nta&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\nea&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\soa&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\iptsec&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3\libsofia-sip-ua\bnf&quot;"
+				AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\su&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\nua&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\win32&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\url&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\sip&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\msg&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\sdp&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\nta&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\nea&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\soa&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\iptsec&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.2\libsofia-sip-ua\bnf&quot;"
 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;LIBSOFIA_SIP_UA_STATIC;PTW32_STATIC_LIB"
 				RuntimeLibrary="2"
 				UsePrecompiledHeader="0"

Modified: freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/basecdr.cpp
==============================================================================
--- freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/basecdr.cpp	(original)
+++ freeswitch/branches/mishehu/src/mod/event_handlers/mod_cdr/basecdr.cpp	Sun Oct  8 20:25:31 2006
@@ -87,10 +87,10 @@
 			if(newchannel->callerprofile->caller_id_name != 0)
 			{
 				strncpy(clid,newchannel->callerprofile->caller_id_name,sizeof(clid));
-				strncat(clid," <",2);
-				if(newchannel->callerprofile->caller_id_number != 0 )
-					strncat(clid,newchannel->callerprofile->caller_id_number,79-(strlen(clid)+strlen(newchannel->callerprofile->caller_id_number)));
-				strncat(clid,">",1);
+				//strncat(clid," <",2);
+				//if(newchannel->callerprofile->caller_id_number != 0 )
+				//	strncat(clid,newchannel->callerprofile->caller_id_number,79-(strlen(clid)+strlen(newchannel->callerprofile->caller_id_number)));
+				//strncat(clid,">",1);
 			}
 			
 			// Get the ANI information if it's set

Modified: freeswitch/branches/mishehu/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c
==============================================================================
--- freeswitch/branches/mishehu/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c	(original)
+++ freeswitch/branches/mishehu/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c	Sun Oct  8 20:25:31 2006
@@ -69,6 +69,7 @@
 static int eval_some_js(char *code, JSContext *cx, JSObject *obj, jsval *rval);
 static void session_destroy(JSContext *cx, JSObject *obj);
 static JSBool session_construct(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
+static switch_api_interface_t js_run_interface;
 
 static struct {
 	size_t gStackChunkSize;
@@ -2675,12 +2676,12 @@
 {
 
 	if (switch_strlen_zero(text)) {
-		stream->write_function(stream, "INVALID");
+		stream->write_function(stream, "USAGE: %s\n", js_run_interface.syntax);
 		return SWITCH_STATUS_SUCCESS;
 	}
 
 	js_thread_launch(text);
-	stream->write_function(stream, "OK");
+	stream->write_function(stream, "OK\n");
 	return SWITCH_STATUS_SUCCESS;
 }
 
@@ -2696,6 +2697,7 @@
 	/*.interface_name */ "jsrun",
 	/*.desc */ "run a script",
 	/*.function */ launch_async,
+	/*.syntax */ "jsrun <script>",
 	/*.next */ NULL
 };
 

Modified: freeswitch/branches/mishehu/src/mod/loggers/mod_console/mod_console.c
==============================================================================
--- freeswitch/branches/mishehu/src/mod/loggers/mod_console/mod_console.c	(original)
+++ freeswitch/branches/mishehu/src/mod/loggers/mod_console/mod_console.c	Sun Oct  8 20:25:31 2006
@@ -128,7 +128,7 @@
 		} 
 
 		if (!log_hash || (((all_level > - 1) || lookup) && level >= node->level)) {
-			fprintf(handle, node->data);
+			fprintf(handle, "%s", node->data);
 		}
 	} else {
 		fprintf(stderr, "HELP I HAVE NO CONSOLE TO LOG TO!\n");

Modified: freeswitch/branches/mishehu/src/switch_caller.c
==============================================================================
--- freeswitch/branches/mishehu/src/switch_caller.c	(original)
+++ freeswitch/branches/mishehu/src/switch_caller.c	Sun Oct  8 20:25:31 2006
@@ -145,55 +145,55 @@
 
 	if (caller_profile->username) {
 		snprintf(header_name, sizeof(header_name), "%s-Username", prefix);
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->username);
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, "%s", caller_profile->username);
 	}
 	if (caller_profile->dialplan) {
 		snprintf(header_name, sizeof(header_name), "%s-Dialplan", prefix);
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->dialplan);
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, "%s", caller_profile->dialplan);
 	}
 	if (caller_profile->caller_id_name) {
 		snprintf(header_name, sizeof(header_name), "%s-Caller-ID-Name", prefix);
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->caller_id_name);
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, "%s", caller_profile->caller_id_name);
 	}
 	if (caller_profile->caller_id_number) {
 		snprintf(header_name, sizeof(header_name), "%s-Caller-ID-Number", prefix);
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->caller_id_number);
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, "%s", caller_profile->caller_id_number);
 	}
 	if (caller_profile->network_addr) {
 		snprintf(header_name, sizeof(header_name), "%s-Network-Addr", prefix);
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->network_addr);
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, "%s", caller_profile->network_addr);
 	}
 	if (caller_profile->ani) {
 		snprintf(header_name, sizeof(header_name), "%s-ANI", prefix);
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->ani);
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, "%s", caller_profile->ani);
 	}
 	if (caller_profile->ani2) {
 		snprintf(header_name, sizeof(header_name), "%s-ANI2", prefix);
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->ani2);
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, "%s", caller_profile->ani2);
 	}
 	if (caller_profile->destination_number) {
 		snprintf(header_name, sizeof(header_name), "%s-Destination-Number", prefix);
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->destination_number);
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, "%s", caller_profile->destination_number);
 	}
 	if (caller_profile->uuid) {
 		snprintf(header_name, sizeof(header_name), "%s-Unique-ID", prefix);
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->uuid);
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, "%s", caller_profile->uuid);
 	}
 	if (caller_profile->source) {
 		snprintf(header_name, sizeof(header_name), "%s-Source", prefix);
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->source);
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, "%s", caller_profile->source);
 	}
 	if (caller_profile->context) {
 		snprintf(header_name, sizeof(header_name), "%s-Context", prefix);
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->context);
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, "%s", caller_profile->context);
 	}
 	if (caller_profile->rdnis) {
 		snprintf(header_name, sizeof(header_name), "%s-RDNIS", prefix);
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->rdnis);
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, "%s", caller_profile->rdnis);
 	}
 	if (caller_profile->chan_name) {
 		snprintf(header_name, sizeof(header_name), "%s-Channel-Name", prefix);
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, caller_profile->chan_name);
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, header_name, "%s", caller_profile->chan_name);
 	}
 
 }

Modified: freeswitch/branches/mishehu/src/switch_channel.c
==============================================================================
--- freeswitch/branches/mishehu/src/switch_channel.c	(original)
+++ freeswitch/branches/mishehu/src/switch_channel.c	Sun Oct  8 20:25:31 2006
@@ -950,6 +950,10 @@
 		return SWITCH_STATUS_SUCCESS;
 	}
 
+	if (switch_channel_test_flag(channel, CF_EARLY_MEDIA)) {
+		return SWITCH_STATUS_SUCCESS;
+	}
+
 	msg.message_id = SWITCH_MESSAGE_INDICATE_PROGRESS;
 	msg.from = channel->name;
 	status = switch_core_session_message_send(uuid, &msg);
@@ -998,4 +1002,126 @@
 
 	return SWITCH_STATUS_FALSE;
 
+}
+
+SWITCH_DECLARE(char *) switch_channel_expand_variables(switch_channel_t *channel, char *in)
+{
+	char *p, *c;
+	char *data, *indup;
+	size_t sp = 0, len = 0, olen = 0, vtype = 0, br = 0, vnamepos, vvalpos, cpos, ppos, block = 128;
+	char *sub_val = NULL, *func_val = NULL;
+
+	if (!strchr(in, '$') && !strchr(in, '&')) {
+		return in;
+	}
+
+	olen = strlen(in);
+	indup = strdup(in);
+
+	if ((data = malloc(olen))) {
+		memset(data, 0, olen);
+		c = data;
+		for(p = indup; *p; p++) {
+			vtype = 0;
+
+			if (*p == '$') {
+				vtype = 1;
+			}
+			if (*p == '&') {
+				vtype = 2;
+			}
+			
+			if (vtype) {
+				char *s = p, *e, *vname, *vval = NULL;
+				size_t nlen;
+				s++;
+				if (*s == '{') {
+					br = 1;
+					s++;
+				}
+
+				e = s;
+				vname = s;
+				while (*e) {
+					if (!br && *e == ' ') {
+						*e++ = '\0';
+						sp++;
+						break;
+					}
+					if (br == 1 && *e == '}') {
+						br = 0;
+						*e++ = '\0';
+						break;
+					}
+					if (vtype == 2) {
+						if (*e == '(') {
+							*e++ = '\0';
+							vval = e;
+							br = 2;
+						}
+						if (br == 2 && *e == ')') {
+							*e++ = '\0';
+							br = 0;
+							break;
+						}
+					}
+					e++;
+				}
+				p = e;
+				
+				if (vtype == 1) {
+					sub_val = switch_channel_get_variable(channel, vname);
+				} else {
+					switch_stream_handle_t stream = {0};
+
+					SWITCH_STANDARD_STREAM(stream);
+					
+					if (stream.data) {
+						if (switch_api_execute(vname, vval, channel->session, &stream) == SWITCH_STATUS_SUCCESS) {
+							func_val = stream.data;
+							sub_val = func_val;
+						} else {
+							free(stream.data);
+						}
+					} else {
+						switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Memory Error!\n");
+						free(data);
+						free(indup);
+						return in;
+					}
+				}
+				nlen = strlen(sub_val);
+				if (len + nlen >= olen) {
+					olen += block;
+					cpos = c - data;
+					ppos = p - data;
+					vnamepos = vname - data;
+					vvalpos = vval - data;
+					data = realloc(data, olen);
+
+					c = data + cpos;
+					p = data + ppos;
+					vname = data + vnamepos;
+					vname = data + vvalpos;
+				}
+
+				len += nlen;
+				strcat(c, sub_val);
+				c += nlen;
+
+				if (func_val) {
+					free(func_val);
+					func_val = NULL;
+				}
+			}
+			if (sp) {
+				*c++ = ' ';
+				sp = 0;
+			}
+			*c++ = *p;
+			len++;
+		}
+	}
+	free(indup);
+	return data;
 }

Modified: freeswitch/branches/mishehu/src/switch_console.c
==============================================================================
--- freeswitch/branches/mishehu/src/switch_console.c	(original)
+++ freeswitch/branches/mishehu/src/switch_console.c	Sun Oct  8 20:25:31 2006
@@ -88,7 +88,7 @@
 			ret = -1;
 		} else {
 			ret = 0;
-			snprintf(end, remaining, data);
+			snprintf(end, remaining, "%s", data);
 			handle->data_len = strlen(buf);
 			handle->end = (uint8_t *)(handle->data) + handle->data_len;
 		}
@@ -112,14 +112,6 @@
 		switch_log_printf(SWITCH_CHANNEL_LOG_CLEAN, SWITCH_LOG_CONSOLE, "FreeSwitch Version %s\n", SWITCH_VERSION_FULL);
 		return 1;
 	}
-	if (!strcmp(cmd, "help")) {
-		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE,
-							  "\n"
-							  "Valid Commands:\n\n"
-							  "version\n" "help - umm yeah..\n" "shutdown - stop the program\n\n");
-		return 1;
-	}
-
 	if ((arg = strchr(cmd, '\r')) != 0  || (arg = strchr(cmd, '\n')) != 0 )  {
 		*arg = '\0';
 		arg = NULL;

Modified: freeswitch/branches/mishehu/src/switch_core.c
==============================================================================
--- freeswitch/branches/mishehu/src/switch_core.c	(original)
+++ freeswitch/branches/mishehu/src/switch_core.c	Sun Oct  8 20:25:31 2006
@@ -2435,6 +2435,7 @@
 	}
 
 	while (switch_channel_get_state(session->channel) == CS_EXECUTE && extension->current_application) {
+		char *expanded;
 		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Execute %s(%s)\n",
 							  extension->current_application->application_name,
 							  extension->current_application->application_data);
@@ -2454,13 +2455,25 @@
 			return;
 		}
 		
+		if ((expanded = switch_channel_expand_variables(session->channel, extension->current_application->application_data)) != 
+			extension->current_application->application_data) {
+			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Expanded String %s(%s)\n",
+							  extension->current_application->application_name,
+							  expanded);
+		}
+
 		if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_EXECUTE) == SWITCH_STATUS_SUCCESS) {
 			switch_channel_event_set_data(session->channel, event);
-			switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Application", extension->current_application->application_name);
-			switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Application-Data", extension->current_application->application_data);
+			switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Application", "%s", extension->current_application->application_name);
+			switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Application-Data-Orig", "%s", extension->current_application->application_data);
+			switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Application-Data", "%s", expanded);
 			switch_event_fire(&event);
 		}
-		application_interface->application_function(session, extension->current_application->application_data);
+		application_interface->application_function(session, expanded);
+
+		if (expanded != extension->current_application->application_data) {
+			free(expanded);
+		}
 		extension->current_application = extension->current_application->next;
 	}
 	
@@ -3401,9 +3414,11 @@
 	case SWITCH_EVENT_LOG:
 		return;
 	case SWITCH_EVENT_MODULE_LOAD:
-		sql = switch_core_db_mprintf("insert into interfaces (type,name) values('%q','%q')",
+		sql = switch_core_db_mprintf("insert into interfaces (type,name,description,syntax) values('%q','%q','%q','%q')",
 									 switch_event_get_header(event, "type"),
-									 switch_event_get_header(event, "name")
+									 switch_event_get_header(event, "name"),
+									 switch_event_get_header(event, "description"),
+									 switch_event_get_header(event, "syntax")
 									 );
 		break;
 	default:
@@ -3648,7 +3663,9 @@
 		char create_interfaces_sql[] =
 			"CREATE TABLE interfaces (\n"
 			"   type             VARCHAR(255),\n"
-			"   name             VARCHAR(255)\n"
+			"   name             VARCHAR(255),\n"
+			"   description      VARCHAR(255),\n"
+			"   syntax           VARCHAR(255)\n"
 			");\n";
 
 		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Opening DB\n");

Modified: freeswitch/branches/mishehu/src/switch_ivr.c
==============================================================================
--- freeswitch/branches/mishehu/src/switch_ivr.c	(original)
+++ freeswitch/branches/mishehu/src/switch_ivr.c	Sun Oct  8 20:25:31 2006
@@ -1372,7 +1372,7 @@
 	msg.from = __FILE__;
 	switch_core_session_receive_message(session_a, &msg);
 
-	switch_channel_set_variable(chan_a, "BRIDGETO", NULL);
+	switch_channel_set_variable(chan_a, SWITCH_BRIDGE_VARIABLE, NULL);
 	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "BRIDGE THREAD DONE [%s]\n", switch_channel_get_name(chan_a));
 
 	switch_channel_clear_flag(chan_a, CF_BRIDGED);
@@ -1514,14 +1514,14 @@
 		if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_EXECUTE) == SWITCH_STATUS_SUCCESS) {
 			switch_channel_event_set_data(channel, event);
 			switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Application", "uuid_bridge");
-			switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Application-Data", switch_core_session_get_uuid(other_session));
+			switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Application-Data", "%s", switch_core_session_get_uuid(other_session));
 			switch_event_fire(&event);
 		}
 
 		if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_EXECUTE) == SWITCH_STATUS_SUCCESS) {
 			switch_channel_event_set_data(other_channel, event);
 			switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Application", "uuid_bridge");
-			switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Application-Data", switch_core_session_get_uuid(session));
+			switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Application-Data", "%s", switch_core_session_get_uuid(session));
 			switch_event_fire(&event);
 		}
 
@@ -1698,6 +1698,10 @@
 													 )
 										  
 {
+	char *pipe_names[MAX_PEERS] = {0};
+	char *data = NULL;
+	switch_status_t status = SWITCH_STATUS_SUCCESS;
+	switch_channel_t *caller_channel = NULL;
 	char *peer_names[MAX_PEERS] = {0};
 	switch_core_session_t *peer_session, *peer_sessions[MAX_PEERS] = {0};
 	switch_caller_profile_t *caller_profiles[MAX_PEERS] = {0}, *caller_caller_profile;
@@ -1705,11 +1709,8 @@
 	switch_channel_t *peer_channel = NULL, *peer_channels[MAX_PEERS] = {0};
 	time_t start;
 	switch_frame_t *read_frame = NULL;
-	switch_status_t status = SWITCH_STATUS_SUCCESS;
-	switch_channel_t *caller_channel = NULL;
 	switch_memory_pool_t *pool = NULL;
-	char *data = NULL;
-	int i, argc = 0;
+	int r = 0, i, and_argc = 0, or_argc = 0;
 	int32_t idx = -1;
 	switch_codec_t write_codec = {0};
 	switch_frame_t write_frame = {0};
@@ -1762,283 +1763,405 @@
 		file = NULL;
 	}
 
-	argc = switch_separate_string(data, '&', peer_names, (sizeof(peer_names) / sizeof(peer_names[0])));
-	
-	for (i = 0; i < argc; i++) {
+	or_argc = switch_separate_string(data, '|', pipe_names, (sizeof(pipe_names) / sizeof(pipe_names[0])));
+
+	for (r = 0; r < or_argc; r++) {
+		memset(peer_names, 0, sizeof(peer_names));
+		peer_session = NULL;
+		memset(peer_sessions, 0, sizeof(peer_sessions));
+		memset(peer_channels, 0, sizeof(peer_channels));
+		memset(caller_profiles, 0, sizeof(caller_profiles));
+		chan_type = NULL;
+		chan_data = NULL;
+		peer_channel = NULL;
+		start = 0;
+		read_frame = NULL;
+		pool = NULL;
+		pass = 0;
+		file = NULL;
+		key = NULL;
+		var = NULL;
 		
-		chan_type = peer_names[i];
-		if ((chan_data = strchr(chan_type, '/')) != 0) {
-			*chan_data = '\0';
-			chan_data++;
-		}
+		and_argc = switch_separate_string(pipe_names[r], '&', peer_names, (sizeof(peer_names) / sizeof(peer_names[0])));
 	
-		if (session) {
-			if (!switch_channel_ready(caller_channel)) {
-				status = SWITCH_STATUS_FALSE;
-				goto done;
+		for (i = 0; i < and_argc; i++) {
+		
+			chan_type = peer_names[i];
+			if ((chan_data = strchr(chan_type, '/')) != 0) {
+				*chan_data = '\0';
+				chan_data++;
 			}
+	
+			if (session) {
+				if (!switch_channel_ready(caller_channel)) {
+					status = SWITCH_STATUS_FALSE;
+					goto done;
+				}
 
-			caller_caller_profile = caller_profile_override ? caller_profile_override : switch_channel_get_caller_profile(caller_channel);
+				caller_caller_profile = caller_profile_override ? caller_profile_override : switch_channel_get_caller_profile(caller_channel);
 			
-			if (!cid_name_override) {
-				cid_name_override = caller_caller_profile->caller_id_name;
+				if (!cid_name_override) {
+					cid_name_override = caller_caller_profile->caller_id_name;
+				}
+				if (!cid_num_override) {
+					cid_num_override = caller_caller_profile->caller_id_number;
+				}
+
+				caller_profiles[i] = switch_caller_profile_new(switch_core_session_get_pool(session),
+															   caller_caller_profile->username,
+															   caller_caller_profile->dialplan,
+															   cid_name_override,
+															   cid_num_override,
+															   caller_caller_profile->network_addr, 
+															   NULL,
+															   NULL, 
+															   caller_caller_profile->rdnis,
+															   caller_caller_profile->source,
+															   caller_caller_profile->context,
+															   chan_data);
+				pool = NULL;
+			} else {
+				if (!cid_name_override) {
+					cid_name_override = "FreeSWITCH";
+				}
+				if (!cid_num_override) {
+					cid_num_override = "0000000000";
+				}
+
+				if (switch_core_new_memory_pool(&pool) != SWITCH_STATUS_SUCCESS) {
+					switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "OH OH no pool\n");
+					status = SWITCH_STATUS_TERM;
+					goto done;
+				}
+
+				if (caller_profile_override) {
+					caller_profiles[i] = switch_caller_profile_new(pool,
+																   caller_profile_override->username,
+																   caller_profile_override->dialplan,
+																   caller_profile_override->caller_id_name,
+																   caller_profile_override->caller_id_number,
+																   caller_profile_override->network_addr, 
+																   caller_profile_override->ani,
+																   caller_profile_override->ani2,
+																   caller_profile_override->rdnis,
+																   caller_profile_override->source,
+																   caller_profile_override->context,
+																   chan_data);
+				} else {
+					caller_profiles[i] = switch_caller_profile_new(pool,
+																   NULL,
+																   NULL,
+																   cid_name_override,
+																   cid_num_override,
+																   NULL,
+																   NULL, 
+																   NULL,
+																   NULL,
+																   __FILE__,
+																   NULL,
+																   chan_data);
+				}
 			}
-			if (!cid_num_override) {
-				cid_num_override = caller_caller_profile->caller_id_number;
+
+			if (switch_core_session_outgoing_channel(session, chan_type, caller_profiles[i], &peer_sessions[i], pool) != SWITCH_STATUS_SUCCESS) {
+				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot Create Outgoing Channel!\n");
+				if (pool) {
+					switch_core_destroy_memory_pool(&pool);
+				}
+				caller_profiles[i] = NULL;
+				peer_channels[i] = NULL;
+				peer_sessions[i] = NULL;
+				continue;
 			}
 
-			caller_profiles[i] = switch_caller_profile_new(switch_core_session_get_pool(session),
-														   caller_caller_profile->username,
-														   caller_caller_profile->dialplan,
-														   cid_name_override,
-														   cid_num_override,
-														   caller_caller_profile->network_addr, 
-														   NULL,
-														   NULL, 
-														   caller_caller_profile->rdnis,
-														   caller_caller_profile->source,
-														   caller_caller_profile->context,
-														   chan_data);
+			switch_core_session_read_lock(peer_sessions[i]);
 			pool = NULL;
-		} else {
-			if (!cid_name_override) {
-				cid_name_override = "FreeSWITCH";
+	
+			peer_channels[i] = switch_core_session_get_channel(peer_sessions[i]);
+			assert(peer_channels[i] != NULL);
+		
+			if (table == &noop_state_handler) {
+				table = NULL;
+			} else if (!table) {
+				table = &audio_bridge_peer_state_handlers;
 			}
-			if (!cid_num_override) {
-				cid_num_override = "0000000000";
-			}
 
-			if (switch_core_new_memory_pool(&pool) != SWITCH_STATUS_SUCCESS) {
-				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "OH OH no pool\n");
-				status = SWITCH_STATUS_TERM;
-				goto done;
+			if (table) {
+				switch_channel_add_state_handler(peer_channels[i], table);
 			}
 
-			if (caller_profile_override) {
-				caller_profiles[i] = switch_caller_profile_new(pool,
-															   caller_profile_override->username,
-															   caller_profile_override->dialplan,
-															   caller_profile_override->caller_id_name,
-															   caller_profile_override->caller_id_number,
-															   caller_profile_override->network_addr, 
-															   caller_profile_override->ani,
-															   caller_profile_override->ani2,
-															   caller_profile_override->rdnis,
-															   caller_profile_override->source,
-															   caller_profile_override->context,
-															   chan_data);
+			if (switch_core_session_running(peer_sessions[i])) {
+				switch_channel_set_state(peer_channels[i], CS_RING);
 			} else {
-				caller_profiles[i] = switch_caller_profile_new(pool,
-															   NULL,
-															   NULL,
-															   cid_name_override,
-															   cid_num_override,
-															   NULL,
-															   NULL, 
-															   NULL,
-															   NULL,
-															   __FILE__,
-															   NULL,
-															   chan_data);
+				switch_core_session_thread_launch(peer_sessions[i]);
 			}
 		}
 
-		if (switch_core_session_outgoing_channel(session, chan_type, caller_profiles[i], &peer_sessions[i], pool) != SWITCH_STATUS_SUCCESS) {
-			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot Create Outgoing Channel!\n");
-			if (pool) {
-				switch_core_destroy_memory_pool(&pool);
-			}
-			caller_profiles[i] = NULL;
-			peer_channels[i] = NULL;
-			peer_sessions[i] = NULL;
-			continue;
-		}
+		time(&start);
 
-		switch_core_session_read_lock(peer_sessions[i]);
-		pool = NULL;
-	
-		peer_channels[i] = switch_core_session_get_channel(peer_sessions[i]);
-		assert(peer_channels[i] != NULL);
+		for (;;) {
+			uint32_t valid_channels = 0;
+			for (i = 0; i < and_argc; i++) {
+				int state;
+
+				if (!peer_channels[i]) {
+					continue;
+				}
+				valid_channels++;
+				state = switch_channel_get_state(peer_channels[i]);
+			
+				if (state >= CS_RING) {
+					goto endfor1;
+				}
 		
-		if (table == &noop_state_handler) {
-			table = NULL;
-		} else if (!table) {
-			table = &audio_bridge_peer_state_handlers;
-		}
+				if (caller_channel && !switch_channel_ready(caller_channel)) {
+					break;
+				}
+		
+				if ((time(NULL) - start) > (time_t)timelimit_sec) {
+					break;
+				}
+				switch_yield(1000);
+			}
 
-		if (table) {
-			switch_channel_add_state_handler(peer_channels[i], table);
-		}
+			if (valid_channels == 0) {
+				status = SWITCH_STATUS_GENERR;
+				goto done;
+			}
 
-		if (switch_core_session_running(peer_sessions[i])) {
-			switch_channel_set_state(peer_channels[i], CS_RING);
-		} else {
-			switch_core_session_thread_launch(peer_sessions[i]);
 		}
-	}
+	endfor1:
 
-	time(&start);
+		if (session && !switch_channel_test_flag(caller_channel, CF_NOMEDIA)) {
+			switch_codec_t *read_codec = NULL;
 
-	for (;;) {
-		uint32_t valid_channels = 0;
-		for (i = 0; i < argc; i++) {
-			int state;
+			switch_channel_pre_answer(caller_channel);
+			read_codec = switch_core_session_get_read_codec(session);
 
-			if (!peer_channels[i]) {
-				continue;
+			assert(read_codec != NULL);
+			if (!(pass = (uint8_t)switch_test_flag(read_codec, SWITCH_CODEC_FLAG_PASSTHROUGH))) {
+				if (switch_core_codec_init(&write_codec,
+										   "L16",
+										   read_codec->implementation->samples_per_second,
+										   read_codec->implementation->microseconds_per_frame / 1000,
+										   1,
+										   SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE,
+										   NULL,
+										   pool) == SWITCH_STATUS_SUCCESS) {
+					switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Raw Codec Activation Success L16@%uhz 1 channel %dms\n",
+									  read_codec->implementation->samples_per_second,
+									  read_codec->implementation->microseconds_per_frame / 1000);
+					write_frame.codec = &write_codec;
+					write_frame.datalen = read_codec->implementation->bytes_per_frame;
+					write_frame.samples = write_frame.datalen / 2;
+					memset(write_frame.data, 255, write_frame.datalen);
+				} else {
+					switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Codec Error!");
+					switch_channel_hangup(caller_channel, SWITCH_CAUSE_NORMAL_TEMPORARY_FAILURE);
+				}
 			}
-			valid_channels++;
-			state = switch_channel_get_state(peer_channels[i]);
+		}
+
+		while ((!caller_channel || switch_channel_ready(caller_channel)) && 
+			   check_channel_status(peer_channels, peer_sessions, and_argc, &idx, file, key) && ((time(NULL) - start) < (time_t)timelimit_sec)) {
+
+			/* read from the channel while we wait if the audio is up on it */
+			if (session && !switch_channel_test_flag(caller_channel, CF_NOMEDIA) && 
+				(switch_channel_test_flag(caller_channel, CF_ANSWERED) || switch_channel_test_flag(caller_channel, CF_EARLY_MEDIA))) {
+				switch_status_t status = switch_core_session_read_frame(session, &read_frame, 1000, 0);
 			
-			if (state >= CS_RING) {
-				goto endfor1;
+				if (!SWITCH_READ_ACCEPTABLE(status)) {
+					break;
+				}
+				if (read_frame && !pass) {
+					if (switch_core_session_write_frame(session, &write_frame, 1000, 0) != SWITCH_STATUS_SUCCESS) {
+						break;
+					}
+				}
+
+			} else {
+				switch_yield(1000);
 			}
 		
-			if (caller_channel && !switch_channel_ready(caller_channel)) {
-				break;
+		}
+
+		if (session && !switch_channel_test_flag(caller_channel, CF_NOMEDIA)) {
+			switch_core_session_reset(session);
+		}
+
+		for (i = 0; i < and_argc; i++) {
+			if (!peer_channels[i]) {
+				continue;
 			}
-		
-			if ((time(NULL) - start) > (time_t)timelimit_sec) {
-				break;
+			if (i != idx) {
+				switch_channel_hangup(peer_channels[i], SWITCH_CAUSE_LOSE_RACE);
 			}
-			switch_yield(1000);
 		}
 
-		if (valid_channels == 0) {
-			status = SWITCH_STATUS_GENERR;
+
+		if (idx > -1) {
+			peer_session = peer_sessions[idx];
+			peer_channel = peer_channels[idx];
+		} else {
+			status = SWITCH_STATUS_FALSE;
 			goto done;
 		}
 
-	}
- endfor1:
+		if (caller_channel && switch_channel_test_flag(peer_channel, CF_ANSWERED)) {
+			char *val;
 
-	if (session) {
-		switch_codec_t *read_codec = NULL;
-
-		switch_channel_pre_answer(caller_channel);
-		read_codec = switch_core_session_get_read_codec(session);
-
-		assert(read_codec != NULL);
-		if (!(pass = (uint8_t)switch_test_flag(read_codec, SWITCH_CODEC_FLAG_PASSTHROUGH))) {
-			if (switch_core_codec_init(&write_codec,
-									   "L16",
-									   read_codec->implementation->samples_per_second,
-									   read_codec->implementation->microseconds_per_frame / 1000,
-									   1,
-									   SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE,
-									   NULL,
-									   pool) == SWITCH_STATUS_SUCCESS) {
-				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Raw Codec Activation Success L16@%uhz 1 channel %dms\n",
-								  read_codec->implementation->samples_per_second,
-								  read_codec->implementation->microseconds_per_frame / 1000);
-				write_frame.codec = &write_codec;
-				write_frame.datalen = read_codec->implementation->bytes_per_frame;
-				write_frame.samples = write_frame.datalen / 2;
-				memset(write_frame.data, 255, write_frame.datalen);
-			} else {
-				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Codec Error!");
-				switch_channel_hangup(caller_channel, SWITCH_CAUSE_NORMAL_TEMPORARY_FAILURE);
+			if (switch_channel_test_flag(peer_channel, CF_NOMEDIA) && (val = switch_channel_get_variable(peer_channel, SWITCH_R_SDP_VARIABLE))) {
+				switch_channel_set_variable(caller_channel, SWITCH_L_SDP_VARIABLE, val);
 			}
+			switch_channel_answer(caller_channel);
 		}
-	}
 
-	while ((!caller_channel || switch_channel_ready(caller_channel)) && 
-		   check_channel_status(peer_channels, peer_sessions, argc, &idx, file, key) && ((time(NULL) - start) < (time_t)timelimit_sec)) {
+		if (switch_channel_test_flag(peer_channel, CF_ANSWERED) || switch_channel_test_flag(peer_channel, CF_EARLY_MEDIA)) {
+			*bleg = peer_session;
+			status = SWITCH_STATUS_SUCCESS;
+		} else {
+			status = SWITCH_STATUS_FALSE;
+		}
 
-		/* read from the channel while we wait if the audio is up on it */
-		if (session && (switch_channel_test_flag(caller_channel, CF_ANSWERED) || switch_channel_test_flag(caller_channel, CF_EARLY_MEDIA))) {
-			switch_status_t status = switch_core_session_read_frame(session, &read_frame, 1000, 0);
-			
-			if (!SWITCH_READ_ACCEPTABLE(status)) {
-				break;
+	done:
+		*cause = SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER;
+
+		if (status == SWITCH_STATUS_SUCCESS) {
+			if (caller_channel) {
+				switch_channel_set_variable(caller_channel, "originate_disposition", "call accepted");
 			}
-			if (read_frame && !pass) {
-				if (switch_core_session_write_frame(session, &write_frame, 1000, 0) != SWITCH_STATUS_SUCCESS) {
+			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Originate Resulted in Success: [%s]\n", switch_channel_get_name(peer_channel));
+		} else {
+			if (peer_channel) {
+				*cause = switch_channel_get_cause(peer_channel);
+			} else {
+				for (i = 0; i < and_argc; i++) {
+					if (!peer_channels[i]) {
+						continue;
+					}
+				
+					*cause = switch_channel_get_cause(peer_channels[i]);
 					break;
 				}
 			}
+			if (caller_channel) {
+				switch_channel_set_variable(caller_channel, "originate_disposition", switch_channel_cause2str(*cause));
+			}
+			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Originate Resulted in Error Cause: %d [%s]\n", *cause, switch_channel_cause2str(*cause));
+		}
 
-		} else {
-			switch_yield(1000);
+		if (!pass && write_codec.implementation) {
+			switch_core_codec_destroy(&write_codec);
 		}
-		
-	}
 
-	if (session) {
-		switch_core_session_reset(session);
-	}
+		for (i = 0; i < and_argc; i++) {
+			if (!peer_channels[i]) {
+				continue;
+			}
+			switch_core_session_rwunlock(peer_sessions[i]);
+		}
 
-	for (i = 0; i < argc; i++) {
-		if (!peer_channels[i]) {
-			continue;
+		if (status == SWITCH_STATUS_SUCCESS) {
+			break;
 		}
-		if (i != idx) {
-			switch_channel_hangup(peer_channels[i], SWITCH_CAUSE_LOSE_RACE);
-		}
 	}
 
+	switch_safe_free(odata);
+	return status;
+}
 
-	if (idx > -1) {
-		peer_session = peer_sessions[idx];
-		peer_channel = peer_channels[idx];
-	} else {
-		status = SWITCH_STATUS_FALSE;
-		goto done;
-	}
 
-	if (caller_channel && switch_channel_test_flag(peer_channel, CF_ANSWERED)) {
-		switch_channel_answer(caller_channel);
+static switch_status_t signal_bridge_on_hangup(switch_core_session_t *session)
+{
+	char *uuid;
+	switch_channel_t *channel = NULL;
+    switch_core_session_t *other_session;
+	switch_event_t *event;
+
+    channel = switch_core_session_get_channel(session);
+    assert(channel != NULL);
+
+	if (switch_channel_test_flag(channel, CF_ORIGINATOR)) {
+		switch_channel_clear_flag(channel, CF_ORIGINATOR);
+		if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_UNBRIDGE) == SWITCH_STATUS_SUCCESS) {
+			switch_channel_event_set_data(channel, event);
+			switch_event_fire(&event);
+		}
 	}
 
-	if (switch_channel_test_flag(peer_channel, CF_ANSWERED) || switch_channel_test_flag(peer_channel, CF_EARLY_MEDIA)) {
-		*bleg = peer_session;
-		status = SWITCH_STATUS_SUCCESS;
-	} else {
-		status = SWITCH_STATUS_FALSE;
+
+	if ((uuid = switch_channel_get_variable(channel, SWITCH_SIGNAL_BRIDGE_VARIABLE)) && (other_session = switch_core_session_locate(uuid))) {
+		switch_channel_t *other_channel = NULL;
+
+		other_channel = switch_core_session_get_channel(other_session);
+		assert(other_channel != NULL);
+
+		switch_channel_hangup(other_channel, switch_channel_get_cause(channel));
+		switch_core_session_rwunlock(other_session);
 	}
 
- done:
-	*cause = SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER;
+	return SWITCH_STATUS_SUCCESS;
+}
 
-	if (status == SWITCH_STATUS_SUCCESS) {
-		if (caller_channel) {
-			switch_channel_set_variable(caller_channel, "originate_disposition", "call accepted");
-		}
-		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Originate Resulted in Success: [%s]\n", switch_channel_get_name(peer_channel));
-	} else {
-		if (peer_channel) {
-			*cause = switch_channel_get_cause(peer_channel);
-		} else {
-			for (i = 0; i < argc; i++) {
-				if (!peer_channels[i]) {
-					continue;
-				}
-				
-				*cause = switch_channel_get_cause(peer_channels[i]);
-				break;
-			}
-		}
-		if (caller_channel) {
-			switch_channel_set_variable(caller_channel, "originate_disposition", switch_channel_cause2str(*cause));
-		}
-		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Originate Resulted in Error Cause: %d [%s]\n", *cause, switch_channel_cause2str(*cause));
+static const switch_state_handler_table_t signal_bridge_state_handlers = {
+	/*.on_init */ NULL,
+	/*.on_ring */ NULL,
+	/*.on_execute */ NULL,
+	/*.on_hangup */ signal_bridge_on_hangup,
+	/*.on_loopback */ NULL,
+	/*.on_transmit */ NULL,
+	/*.on_hold */ NULL
+};
+
+
+
+SWITCH_DECLARE(switch_status_t) switch_ivr_signal_bridge(switch_core_session_t *session, switch_core_session_t *peer_session)
+{
+	switch_channel_t *caller_channel, *peer_channel;
+	switch_event_t *event;
+
+	caller_channel = switch_core_session_get_channel(session);
+	assert(caller_channel != NULL);
+
+	switch_channel_set_flag(caller_channel, CF_ORIGINATOR);
+
+	peer_channel = switch_core_session_get_channel(peer_session);
+	assert(peer_channel != NULL);
+
+	switch_channel_set_variable(caller_channel, SWITCH_SIGNAL_BRIDGE_VARIABLE, switch_core_session_get_uuid(peer_session));
+	switch_channel_set_variable(peer_channel, SWITCH_SIGNAL_BRIDGE_VARIABLE, switch_core_session_get_uuid(session));
+
+	switch_channel_clear_state_handler(caller_channel, NULL);
+	switch_channel_clear_state_handler(peer_channel, NULL);
+
+	switch_channel_add_state_handler(caller_channel, &signal_bridge_state_handlers);
+	switch_channel_add_state_handler(peer_channel, &signal_bridge_state_handlers);
+
+
+	/* fire events that will change the data table from "show channels" */
+	if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_EXECUTE) == SWITCH_STATUS_SUCCESS) {
+		switch_channel_event_set_data(caller_channel, event);
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Application", "signal_bridge");
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Application-Data", "%s", switch_core_session_get_uuid(peer_session));
+		switch_event_fire(&event);
 	}
 
-	if (odata) {
-		free(odata);
+	if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_EXECUTE) == SWITCH_STATUS_SUCCESS) {
+		switch_channel_event_set_data(peer_channel, event);
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Application", "signal_bridge");
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Application-Data", "%s", switch_core_session_get_uuid(session));
+		switch_event_fire(&event);
 	}
-	if (!pass && write_codec.implementation) {
-		switch_core_codec_destroy(&write_codec);
-	}
 
-	for (i = 0; i < argc; i++) {
-		if (!peer_channels[i]) {
-			continue;
-		}
-		switch_core_session_rwunlock(peer_sessions[i]);
+	if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_BRIDGE) == SWITCH_STATUS_SUCCESS) {
+		switch_channel_event_set_data(caller_channel, event);
+		switch_event_fire(&event);
 	}
+	
+	switch_channel_set_state(caller_channel, CS_TRANSMIT);
+	switch_channel_set_state(peer_channel, CS_TRANSMIT);
 
-	return status;
+	return SWITCH_STATUS_SUCCESS;
 }
 
 
@@ -2102,18 +2225,32 @@
 			switch_event_fire(&event);
 		}
 		
-		msg.message_id = SWITCH_MESSAGE_INDICATE_BRIDGE;
-		msg.from = __FILE__;
-		msg.pointer_arg = session;
+		if (switch_core_session_read_lock(peer_session) == SWITCH_STATUS_SUCCESS) {
+			switch_channel_set_variable(caller_channel, SWITCH_BRIDGE_VARIABLE, switch_core_session_get_uuid(peer_session));
+			switch_channel_set_variable(peer_channel, SWITCH_BRIDGE_VARIABLE, switch_core_session_get_uuid(session));
 
-		switch_core_session_receive_message(peer_session, &msg);
-		msg.pointer_arg = peer_session;
-		switch_core_session_receive_message(session, &msg);
+			msg.message_id = SWITCH_MESSAGE_INDICATE_BRIDGE;
+			msg.from = __FILE__;
+			msg.pointer_arg = session;
 
-		if (switch_core_session_read_lock(peer_session) == SWITCH_STATUS_SUCCESS) {
-			switch_channel_set_variable(caller_channel, "BRIDGETO", switch_core_session_get_uuid(peer_session));
-			switch_channel_set_variable(peer_channel, "BRIDGETO", switch_core_session_get_uuid(session));
+			switch_core_session_receive_message(peer_session, &msg);
 
+			if (!msg.pointer_arg) {
+				status = SWITCH_STATUS_FALSE;
+				switch_core_session_rwunlock(peer_session);
+				goto done;
+			}
+
+			msg.pointer_arg = peer_session;
+			switch_core_session_receive_message(session, &msg);
+
+			if (!msg.pointer_arg) {
+				status = SWITCH_STATUS_FALSE;
+				switch_core_session_rwunlock(peer_session);
+				goto done;
+			}
+
+			
 			switch_channel_set_private(peer_channel, "_bridge_", other_audio_thread);
 			switch_channel_set_state(peer_channel, CS_LOOPBACK);
 			audio_bridge_thread(NULL, (void *) this_audio_thread);
@@ -2164,6 +2301,7 @@
 		switch_channel_hangup(peer_channel, SWITCH_CAUSE_NO_ANSWER);
 	}
 
+ done:
 	return status;
 }
 
@@ -2205,10 +2343,13 @@
 			switch_channel_set_state(originator_channel, CS_TRANSMIT);
 			switch_channel_set_state(originatee_channel, CS_TRANSMIT);
 			
+			status = SWITCH_STATUS_SUCCESS;
 		} else {
 			switch_core_session_rwunlock(originator_session);
-			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "no channel for uuid %s\n", originatee_uuid);
+			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "no channel for originatee uuid %s\n", originatee_uuid);
 		}
+	} else {
+		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "no channel for originator uuid %s\n", originator_uuid);
 	}
 
 	return status;
@@ -2219,6 +2360,7 @@
 {
 	switch_channel_t *channel;
 	switch_caller_profile_t *profile, *new_profile;
+	switch_core_session_message_t msg = {0};
 
 	assert(session != NULL);
 	assert(extension != NULL);
@@ -2245,6 +2387,11 @@
 		switch_channel_set_caller_profile(channel, new_profile);
 		switch_channel_set_flag(channel, CF_TRANSFER);
 		switch_channel_set_state(channel, CS_RING);
+
+		msg.message_id = SWITCH_MESSAGE_INDICATE_TRANSFER;
+		msg.from = __FILE__;
+		switch_core_session_receive_message(session, &msg);
+
 		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Transfer %s to %s[%s@%s]\n", 
 						  switch_channel_get_name(channel), dialplan, extension, context); 
 		return SWITCH_STATUS_SUCCESS;

Modified: freeswitch/branches/mishehu/src/switch_loadable_module.c
==============================================================================
--- freeswitch/branches/mishehu/src/switch_loadable_module.c	(original)
+++ freeswitch/branches/mishehu/src/switch_loadable_module.c	Sun Oct  8 20:25:31 2006
@@ -161,6 +161,8 @@
 			if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) {
 				switch_event_add_header(event, SWITCH_STACK_BOTTOM, "type", "application");
 				switch_event_add_header(event, SWITCH_STACK_BOTTOM, "name", "%s", ptr->interface_name);
+				switch_event_add_header(event, SWITCH_STACK_BOTTOM, "description", "%s", ptr->short_desc);
+				switch_event_add_header(event, SWITCH_STACK_BOTTOM, "syntax", "%s", ptr->syntax);
 				switch_event_fire(&event);
 			}
 			switch_core_hash_insert(loadable_modules.application_hash,
@@ -176,6 +178,8 @@
 			if (switch_event_create(&event, SWITCH_EVENT_MODULE_LOAD) == SWITCH_STATUS_SUCCESS) {
 				switch_event_add_header(event, SWITCH_STACK_BOTTOM, "type", "api");
 				switch_event_add_header(event, SWITCH_STACK_BOTTOM, "name", "%s", ptr->interface_name);
+				switch_event_add_header(event, SWITCH_STACK_BOTTOM, "description", "%s", ptr->desc);
+				switch_event_add_header(event, SWITCH_STACK_BOTTOM, "syntax", "%s", ptr->syntax);
 				switch_event_fire(&event);
 			}
 			switch_core_hash_insert(loadable_modules.api_hash, (char *) ptr->interface_name, (void *) ptr);

Modified: freeswitch/branches/mishehu/src/switch_log.c
==============================================================================
--- freeswitch/branches/mishehu/src/switch_log.c	(original)
+++ freeswitch/branches/mishehu/src/switch_log.c	Sun Oct  8 20:25:31 2006
@@ -223,7 +223,7 @@
 				}
 		} else {
 			if (level == SWITCH_LOG_CONSOLE || !LOG_QUEUE || !THREAD_RUNNING) {
-				fprintf(handle, data);
+				fprintf(handle, "%s", data);
 				free(data);
 			} else if (level <= MAX_LEVEL) {
 				switch_log_node_t *node;

Modified: freeswitch/branches/mishehu/src/switch_rtp.c
==============================================================================
--- freeswitch/branches/mishehu/src/switch_rtp.c	(original)
+++ freeswitch/branches/mishehu/src/switch_rtp.c	Sun Oct  8 20:25:31 2006
@@ -329,6 +329,11 @@
 		return SWITCH_STATUS_SOCKERR;
 	}
 
+	if (switch_socket_opt_set(rtp_session->sock, SWITCH_SO_REUSEADDR, 1) != SWITCH_STATUS_SUCCESS) {
+		*err = "Socket Error!";
+		return SWITCH_STATUS_FALSE;
+	}
+
 	if (switch_socket_bind(rtp_session->sock, rtp_session->local_addr) != SWITCH_STATUS_SUCCESS) {
 		*err = "Bind Error!";
 		return SWITCH_STATUS_FALSE;

Modified: freeswitch/branches/mishehu/src/switch_utils.c
==============================================================================
--- freeswitch/branches/mishehu/src/switch_utils.c	(original)
+++ freeswitch/branches/mishehu/src/switch_utils.c	Sun Oct  8 20:25:31 2006
@@ -72,6 +72,45 @@
     return '\0';
 }
 
+SWITCH_DECLARE(char *) switch_escape_char(switch_memory_pool_t *pool, char *in, char *delim, char esc)
+{
+    char *data, *p, *d;
+    int count = 1, i = 0;
+
+    p = in;
+    while(*p) {
+        d = delim;
+        while (*d) {
+            if (*p == *d) {
+                count++;
+            }
+            d++;
+        }
+        p++;
+    }
+
+	if (count == 1) {
+		return in;
+	}
+
+	data = switch_core_alloc(pool, strlen(in) + count);
+	
+    p = in;
+    while(*p) {
+        d = delim;
+        while (*d) {
+            if (*p == *d) {
+                data[i++] = esc;
+            }
+            d++;
+        }
+        data[i++] = *p;
+        p++;
+    }
+    return data;
+}
+
+
 SWITCH_DECLARE(unsigned int) switch_separate_string(char *buf, char delim, char **array, int arraylen)
 {
 	int argc;

Modified: freeswitch/branches/mishehu/w32/Setup/Setup.vdproj
==============================================================================
--- freeswitch/branches/mishehu/w32/Setup/Setup.vdproj	(original)
+++ freeswitch/branches/mishehu/w32/Setup/Setup.vdproj	Sun Oct  8 20:25:31 2006
@@ -63,222 +63,240 @@
         }
         "Entry"
         {
-        "MsmKey" = "8:_329D8DAE6C01FCF026E9DFB48B932203"
-        "OwnerKey" = "8:_28FBC5A60B44423B8A2CC378347483CE"
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "OwnerKey" = "8:_1CFB1AB04E024FC993E0EB4859DF8408"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_3FBEFE0119944C6781F81104ECEF37CA"
-        "OwnerKey" = "8:_UNDEFINED"
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "OwnerKey" = "8:_3E37631016BC45B2B672FE23257D542B"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_4A285D260C3748A4BEFA6E5A9004D128"
-        "OwnerKey" = "8:_UNDEFINED"
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "OwnerKey" = "8:_FBB0E565B1DE49CE9C827ACAC337AC5B"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"
-        "OwnerKey" = "8:_UNDEFINED"
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_5A636BB90F7F4B86ACB8839EA2C899AA"
-        "OwnerKey" = "8:_UNDEFINED"
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "OwnerKey" = "8:_EF14CB99F3414BB689D0CB0E6D6B8AB8"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_684D96FA2BDD46909367E651099D8C4E"
-        "OwnerKey" = "8:_UNDEFINED"
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_69EB1A147CC2428435BDCA35014C96E1"
-        "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "OwnerKey" = "8:_D1269F1E49D442CF8EAC96C23E60325D"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_6E5C001E7A314DCEA0A4BF52BF74BCAD"
-        "OwnerKey" = "8:_UNDEFINED"
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "OwnerKey" = "8:_BB649A2C1ABE4895859025B09A240323"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_72A8732C0C0C4D0EAAE89DBB82073335"
-        "OwnerKey" = "8:_UNDEFINED"
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "OwnerKey" = "8:_B20769E090034897B32E3EA4EC1BA8A0"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_7358123D2D064AD1BC517911A8B23D1B"
-        "OwnerKey" = "8:_UNDEFINED"
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "OwnerKey" = "8:_A944ADCEDF884574A23F7BA5420A6BA1"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_83062AA0528B40A59202BC7668F7132A"
-        "OwnerKey" = "8:_UNDEFINED"
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "OwnerKey" = "8:_A0D5F714A0F94250A1C39603B699AB82"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_83C1B93AD71B4F8F9E074F9607B60DF1"
-        "OwnerKey" = "8:_UNDEFINED"
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "OwnerKey" = "8:_83C1B93AD71B4F8F9E074F9607B60DF1"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87768631363249B2B301143C193612F7"
-        "OwnerKey" = "8:_UNDEFINED"
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "OwnerKey" = "8:_4A285D260C3748A4BEFA6E5A9004D128"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
         "OwnerKey" = "8:_3FBEFE0119944C6781F81104ECEF37CA"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"
-        "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "OwnerKey" = "8:_318FCC99E8D143D6B4F9F534E63009B3"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"
-        "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "OwnerKey" = "8:_2F2FEC549F02436EB87961BD1B9E5783"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"
-        "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "OwnerKey" = "8:_28FBC5A60B44423B8A2CC378347483CE"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "OwnerKey" = "8:_1CFB1AB04E024FC993E0EB4859DF8408"
+        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "OwnerKey" = "8:_2814E641538B42EFA83525986A9D5AC1"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "OwnerKey" = "8:_FBB0E565B1DE49CE9C827ACAC337AC5B"
+        "MsmKey" = "8:_329D8DAE6C01FCF026E9DFB48B932203"
+        "OwnerKey" = "8:_28FBC5A60B44423B8A2CC378347483CE"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"
+        "MsmKey" = "8:_3E37631016BC45B2B672FE23257D542B"
+        "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "OwnerKey" = "8:_EF14CB99F3414BB689D0CB0E6D6B8AB8"
+        "MsmKey" = "8:_3FBEFE0119944C6781F81104ECEF37CA"
+        "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"
+        "MsmKey" = "8:_4A285D260C3748A4BEFA6E5A9004D128"
+        "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "OwnerKey" = "8:_D1269F1E49D442CF8EAC96C23E60325D"
+        "MsmKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"
+        "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "OwnerKey" = "8:_BB649A2C1ABE4895859025B09A240323"
+        "MsmKey" = "8:_5A636BB90F7F4B86ACB8839EA2C899AA"
+        "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "OwnerKey" = "8:_B20769E090034897B32E3EA4EC1BA8A0"
+        "MsmKey" = "8:_684D96FA2BDD46909367E651099D8C4E"
+        "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "OwnerKey" = "8:_A944ADCEDF884574A23F7BA5420A6BA1"
+        "MsmKey" = "8:_69EB1A147CC2428435BDCA35014C96E1"
+        "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "OwnerKey" = "8:_A0D5F714A0F94250A1C39603B699AB82"
+        "MsmKey" = "8:_6E5C001E7A314DCEA0A4BF52BF74BCAD"
+        "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "OwnerKey" = "8:_83C1B93AD71B4F8F9E074F9607B60DF1"
+        "MsmKey" = "8:_72A8732C0C0C4D0EAAE89DBB82073335"
+        "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"
+        "MsmKey" = "8:_7358123D2D064AD1BC517911A8B23D1B"
+        "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "OwnerKey" = "8:_4A285D260C3748A4BEFA6E5A9004D128"
+        "MsmKey" = "8:_83062AA0528B40A59202BC7668F7132A"
+        "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "OwnerKey" = "8:_3FBEFE0119944C6781F81104ECEF37CA"
+        "MsmKey" = "8:_83C1B93AD71B4F8F9E074F9607B60DF1"
+        "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "OwnerKey" = "8:_318FCC99E8D143D6B4F9F534E63009B3"
+        "MsmKey" = "8:_87768631363249B2B301143C193612F7"
+        "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "OwnerKey" = "8:_2F2FEC549F02436EB87961BD1B9E5783"
+        "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"
+        "OwnerKey" = "8:_3FBEFE0119944C6781F81104ECEF37CA"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "OwnerKey" = "8:_28FBC5A60B44423B8A2CC378347483CE"
+        "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"
+        "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "OwnerKey" = "8:_2814E641538B42EFA83525986A9D5AC1"
+        "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"
+        "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
+        "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"
+        "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
         "MsmKey" = "8:_91BA2668F87764F53188E93BC8D363D7"
         "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
+        "MsmKey" = "8:_98CF7609810C41BABC219DFBA0A6075D"
+        "OwnerKey" = "8:_327123955D614480BF2995F2C39195DD"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
         "MsmKey" = "8:_9A293E8A356A4959BB6E541B7DC213CD"
         "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
@@ -387,12 +405,6 @@
         }
         "Entry"
         {
-        "MsmKey" = "8:_E0FBD4D007C74B368ED03D076D7C1D75"
-        "OwnerKey" = "8:_87C07635A76B4C5D85C78D91ED64A537"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
         "MsmKey" = "8:_E1CC91FCF87955D17FC3C0A8E875B690"
         "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"
         "MsmSig" = "8:_UNDEFINED"
@@ -1598,7 +1610,7 @@
         }
         "MergeModule"
         {
-            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_87C07635A76B4C5D85C78D91ED64A537"
+            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_327123955D614480BF2995F2C39195DD"
             {
             "UseDynamicProperties" = "11:TRUE"
             "IsDependency" = "11:TRUE"
@@ -1612,7 +1624,7 @@
             "Feature" = "8:"
             "IsolateTo" = "8:"
             }
-            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_E0FBD4D007C74B368ED03D076D7C1D75"
+            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_98CF7609810C41BABC219DFBA0A6075D"
             {
             "UseDynamicProperties" = "11:TRUE"
             "IsDependency" = "11:TRUE"
@@ -1792,6 +1804,34 @@
             "OutputConfiguration" = "8:"
             "OutputGroupCanonicalName" = "8:Built"
             "OutputProjectGuid" = "8:{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}"
+            "ShowKeyOutput" = "11:TRUE"
+                "ExcludeFilters"
+                {
+                }
+            }
+            "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_3E37631016BC45B2B672FE23257D542B"
+            {
+            "SourcePath" = "8:..\\..\\debug\\pthreadVC2.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            "ProjectOutputGroupRegister" = "3:1"
+            "OutputConfiguration" = "8:"
+            "OutputGroupCanonicalName" = "8:Built"
+            "OutputProjectGuid" = "8:{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}"
             "ShowKeyOutput" = "11:TRUE"
                 "ExcludeFilters"
                 {



More information about the Freeswitch-branches mailing list