Revision
16719
Author
brian
Date
2010-02-22 09:43:43 -0600 (Mon, 22 Feb 2010)

Log Message

bump rev to upstream r1401

Modified Paths

Added Paths

Diff

Modified: freeswitch/trunk/libs/unimrcp/.update (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/.update	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/.update	2010-02-22 15:43:43 UTC (rev 16719)
@@ -1 +1 @@
-Mon Nov 23 10:00:46 CST 2009
+Mon Feb 22 09:40:01 CST 2010

Modified: freeswitch/trunk/libs/unimrcp/INSTALL (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/INSTALL	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/INSTALL	2010-02-22 15:43:43 UTC (rev 16719)
@@ -63,14 +63,23 @@
 For example
 $ ./configure --with-sofia-sip=/usr/local/sofia-sip
 
+To cross-compile for 64-bit platform use
+CFLAGS=-m64 CXXFLAGS=-m64 LDFLAGS=-m64 ./configure
+
+To cross-compile for 32-bit platform use
+CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 ./configure
+
 To install the default configuration use
+$ cd conf
 $ make def-conf
 
-To generate doxygen documentation from the sources use
+To install the default data use
+$ cd data
+$ make def-data
+
+To generate doxygen documentation from the source use
 $ make dox
 
-To build distribution tarball use
-$ make dist
 
 
 WINDOWS BUILD
@@ -100,7 +109,10 @@
 	/>
 
 Build procedure
-Open unimrcp.sln solution file and build the solution (Build -> Build Solution).
+- open unimrcp.sln solution file
+- choose an appropriate solution platform (Build -> Configuration Manager) either win32 or x64
+- choose an appropriate solution configuration (Build -> Configuration Manager) either Debug or Release
+- build the solution (Build -> Build Solution)
 
 One-time pre-run output directory preparation
 Build prepare.vcproj utility project (right click on tools -> prebuild in 
@@ -112,5 +124,6 @@
 bin      - binaries (unimrcpserver, unimrcpclient) and all the required dlls
 conf     - configuration files
 data     - data files
+lib      - libraries
 log      - log files
 plugin   - run-time loadable modules

Modified: freeswitch/trunk/libs/unimrcp/Makefile.am (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/Makefile.am	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/Makefile.am	2010-02-22 15:43:43 UTC (rev 16719)
@@ -14,29 +14,13 @@
 
 ACLOCAL			= aclocal -I $(macrodir)
 
-SUBDIRS                 = libs modules plugins platforms build
+SUBDIRS                 = conf data libs modules plugins platforms build
 if TEST_SUITES
 SUBDIRS                += tests
 endif
 
 dox:
 	doxygen $(top_srcdir)/docs/doxygen.conf
-
-def-conf:
-	test -d $(confdir) || $(mkinstalldirs) $(confdir)
-	for conffile in `find conf -name \*.xml` ; do \
-	    filename=`echo $$conffile | sed -e 's|^.*/||'`; \
-	    $(INSTALL) -m 644 conf/$$filename $(confdir); \
-	done
-
-def-data:
-	test -d $(datadir) || $(mkinstalldirs) $(datadir)
-	for datafile in `find data -name *.pcm -o -name *.xml -o -name *.jsgf -o -name *.txt` ; do \
-	    filename=`echo $$datafile | sed -e 's|^.*/||'`; \
-	    $(INSTALL) -m 644 data/$$filename $(datadir); \
-	done
-           
+ 
 install-data-local:
-	test -d $(confdir) || $(MAKE) def-conf
-	test -d $(datadir) || $(MAKE) def-data
 	test -d $(logdir)  || $(mkinstalldirs) $(logdir)

Modified: freeswitch/trunk/libs/unimrcp/README (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/README	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/README	2010-02-22 15:43:43 UTC (rev 16719)
@@ -1,6 +1,6 @@
 INTRODUCTION
 ============
-UniMRCP - Open Source Media Resource Control Protocol Stack.
+UniMRCP is an open source MRCP Project.
 
 
 INSTALLATION
@@ -21,7 +21,7 @@
    http://www.unimrcp.org
 
 Project Home:
-   http://code.google.com/p/unimrcp/
+   http://code.google.com/p/unimrcp
 
 Wiki:
    http://code.google.com/p/unimrcp/w/list
@@ -33,7 +33,7 @@
    http://groups.google.com/group/unimrcp
 
 Version Control Repository (SVN):
-   http://unimrcp.googlecode.com/svn/trunk/
+   http://unimrcp.googlecode.com/svn/trunk
 
 UML Documentation File (Enterpise Architect):
    http://unimrcp.googlecode.com/svn/misc/unimrcp.eap
@@ -48,4 +48,4 @@
 UniMRCP is licensed under terms of the Apache 2.0 license.
 See the file "LICENSE" for more information.
 
-Copyright 2008 Arsen Chaloyan
+Copyright 2008 - 2010 Arsen Chaloyan

Modified: freeswitch/trunk/libs/unimrcp/build/Makefile.am (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/Makefile.am	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/Makefile.am	2010-02-22 15:43:43 UTC (rev 16719)
@@ -1,3 +1,5 @@
 MAINTAINERCLEANFILES   = Makefile.in
 
 SUBDIRS                = pkgconfig
+
+include_HEADERS        = uni_version.h

Modified: freeswitch/trunk/libs/unimrcp/build/tools/prepare.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/tools/prepare.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/tools/prepare.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -25,7 +28,7 @@
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
-				CommandLine="xcopy &quot;$(AprDir)\$(ConfigurationName)\libapr-1.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;xcopy &quot;$(AprUtilDir)\$(ConfigurationName)\libaprutil-1.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;&#x0D;&#x0A;if exist &quot;$(AprIconvDir)\$(ConfigurationName)\libapriconv-1.dll&quot; (&#x0D;&#x0A; xcopy &quot;$(AprIconvDir)\$(ConfigurationName)\libapriconv-1.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A; if exist &quot;$(AprIconvDir)\$(ConfigurationName)\iconv&quot; (&#x0D;&#x0A;  if not exist &quot;$(SolutionDir)$(ConfigurationName)\bin\iconv&quot; mkdir &quot;$(SolutionDir)$(ConfigurationName)\bin\iconv&quot;&#x0D;&#x0A;  xcopy &quot;$(AprIconvDir)\$(ConfigurationName)\iconv\*.so&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\iconv\&quot; /Y&#x0D;&#x0A;  )&#x0D;&#x0A;)&#x0D;&#x0A;&#x0D;&#x0A;xcopy &quot;$(SofiaDir)\win32\libsofia-sip-ua\$(ConfigurationName)\libsofia_sip_ua.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;xcopy &quot;$(SofiaDir)\win32\pthread\pthreadVC2.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(ConfigurationName)\conf&quot; xcopy &quot;$(SolutionDir)conf\*.xml&quot; &quot;$(SolutionDir)$(ConfigurationName)\conf\&quot; /Y&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(ConfigurationName)\data&quot; xcopy &quot;$(SolutionDir)data\*&quot; &quot;$(SolutionDir)$(ConfigurationName)\data\&quot; /Y&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(ConfigurationName)\log&quot; mkdir &quot;$(SolutionDir)$(ConfigurationName)\log\&quot;&#x0D;&#x0A;"
+				CommandLine="xcopy &quot;$(AprDir)\$(ConfigurationName)\libapr-1.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;xcopy &quot;$(AprUtilDir)\$(ConfigurationName)\libaprutil-1.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;&#x0D;&#x0A;if exist &quot;$(AprIconvDir)\$(ConfigurationName)\libapriconv-1.dll&quot; (&#x0D;&#x0A;xcopy &quot;$(AprIconvDir)\$(ConfigurationName)\libapriconv-1.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;if exist &quot;$(AprIconvDir)\$(ConfigurationName)\iconv&quot; (&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(ConfigurationName)\bin\iconv&quot; mkdir &quot;$(SolutionDir)$(ConfigurationName)\bin\iconv&quot;&#x0D;&#x0A;xcopy &quot;$(AprIconvDir)\$(ConfigurationName)\iconv\*.so&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\iconv\&quot; /Y&#x0D;&#x0A;)&#x0D;&#x0A;)&#x0D;&#x0A;&#x0D;&#x0A;xcopy &quot;$(SofiaDir)\win32\libsofia-sip-ua\$(ConfigurationName)\libsofia_sip_ua.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;xcopy &quot;$(SofiaDir)\win32\pthread\pthreadVC2.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(ConfigurationName)\conf&quot; xcopy &quot;$(SolutionDir)conf\*.xml&quot; &quot;$(SolutionDir)$(ConfigurationName)\conf\&quot; /Y&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(ConfigurationName)\data&quot; xcopy &quot;$(SolutionDir)data\*&quot; &quot;$(SolutionDir)$(ConfigurationName)\data\&quot; /Y&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(ConfigurationName)\log&quot; mkdir &quot;$(SolutionDir)$(ConfigurationName)\log\&quot;&#x0D;&#x0A;"
 				ExcludedFromBuild="false"
 			/>
 			<Tool
@@ -40,6 +43,8 @@
 		</Configuration>
 		<Configuration
 			Name="Release|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
 			ConfigurationType="10"
 			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\apr.vsprops;$(ProjectDir)..\..\build\vsprops\sofiasip.vsprops"
 			CharacterSet="1"
@@ -47,7 +52,7 @@
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
-				CommandLine="xcopy &quot;$(AprDir)\$(ConfigurationName)\libapr-1.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;xcopy &quot;$(AprUtilDir)\$(ConfigurationName)\libaprutil-1.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;&#x0D;&#x0A;if exist &quot;$(AprIconvDir)\$(ConfigurationName)\libapriconv-1.dll&quot; (&#x0D;&#x0A; xcopy &quot;$(AprIconvDir)\$(ConfigurationName)\libapriconv-1.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A; if exist &quot;$(AprIconvDir)\$(ConfigurationName)\iconv&quot; (&#x0D;&#x0A;  if not exist &quot;$(SolutionDir)$(ConfigurationName)\bin\iconv&quot; mkdir &quot;$(SolutionDir)$(ConfigurationName)\bin\iconv&quot;&#x0D;&#x0A;  xcopy &quot;$(AprIconvDir)\$(ConfigurationName)\iconv\*.so&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\iconv\&quot; /Y&#x0D;&#x0A;  )&#x0D;&#x0A;)&#x0D;&#x0A;&#x0D;&#x0A;xcopy &quot;$(SofiaDir)\win32\libsofia-sip-ua\$(ConfigurationName)\libsofia_sip_ua.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;xcopy &quot;$(SofiaDir)\win32\pthread\pthreadVC2.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(ConfigurationName)\conf&quot; xcopy &quot;$(SolutionDir)conf\*.xml&quot; &quot;$(SolutionDir)$(ConfigurationName)\conf\&quot; /Y&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(ConfigurationName)\data&quot; xcopy &quot;$(SolutionDir)data\*&quot; &quot;$(SolutionDir)$(ConfigurationName)\data\&quot; /Y&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(ConfigurationName)\log&quot; mkdir &quot;$(SolutionDir)$(ConfigurationName)\log\&quot;&#x0D;&#x0A;"
+				CommandLine="xcopy &quot;$(AprDir)\$(ConfigurationName)\libapr-1.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;xcopy &quot;$(AprUtilDir)\$(ConfigurationName)\libaprutil-1.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;&#x0D;&#x0A;if exist &quot;$(AprIconvDir)\$(ConfigurationName)\libapriconv-1.dll&quot; (&#x0D;&#x0A;xcopy &quot;$(AprIconvDir)\$(ConfigurationName)\libapriconv-1.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;if exist &quot;$(AprIconvDir)\$(ConfigurationName)\iconv&quot; (&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(ConfigurationName)\bin\iconv&quot; mkdir &quot;$(SolutionDir)$(ConfigurationName)\bin\iconv&quot;&#x0D;&#x0A;xcopy &quot;$(AprIconvDir)\$(ConfigurationName)\iconv\*.so&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\iconv\&quot; /Y&#x0D;&#x0A;)&#x0D;&#x0A;)&#x0D;&#x0A;&#x0D;&#x0A;xcopy &quot;$(SofiaDir)\win32\libsofia-sip-ua\$(ConfigurationName)\libsofia_sip_ua.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;xcopy &quot;$(SofiaDir)\win32\pthread\pthreadVC2.dll&quot; &quot;$(SolutionDir)$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(ConfigurationName)\conf&quot; xcopy &quot;$(SolutionDir)conf\*.xml&quot; &quot;$(SolutionDir)$(ConfigurationName)\conf\&quot; /Y&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(ConfigurationName)\data&quot; xcopy &quot;$(SolutionDir)data\*&quot; &quot;$(SolutionDir)$(ConfigurationName)\data\&quot; /Y&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(ConfigurationName)\log&quot; mkdir &quot;$(SolutionDir)$(ConfigurationName)\log\&quot;&#x0D;&#x0A;"
 			/>
 			<Tool
 				Name="VCCustomBuildTool"
@@ -59,6 +64,54 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="10"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\apr.vsprops;$(ProjectDir)..\..\build\vsprops\sofiasip.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+				CommandLine="xcopy &quot;$(AprDir)\$(PlatformName)\$(ConfigurationName)\libapr-1.dll&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;xcopy &quot;$(AprUtilDir)\$(PlatformName)\$(ConfigurationName)\libaprutil-1.dll&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;&#x0D;&#x0A;if exist &quot;$(AprIconvDir)\$(PlatformName)\$(ConfigurationName)\libapriconv-1.dll&quot; (&#x0D;&#x0A;xcopy &quot;$(AprIconvDir)\$(PlatformName)\$(ConfigurationName)\libapriconv-1.dll&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;if exist &quot;$(AprIconvDir)\$(PlatformName)\$(ConfigurationName)\iconv&quot; (&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\iconv&quot; mkdir &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\iconv&quot;&#x0D;&#x0A;xcopy &quot;$(AprIconvDir)\$(PlatformName)\$(ConfigurationName)\iconv\*.so&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\iconv\&quot; /Y&#x0D;&#x0A;)&#x0D;&#x0A;)&#x0D;&#x0A;&#x0D;&#x0A;xcopy &quot;$(SofiaDir)\win32\libsofia-sip-ua\$(PlatformName)\$(ConfigurationName)\libsofia_sip_ua.dll&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;xcopy &quot;$(SofiaDir)\win32\pthread\$(PlatformName)\pthreadVC2.dll&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\conf&quot; xcopy &quot;$(SolutionDir)conf\*.xml&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\conf\&quot; /Y&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\data&quot; xcopy &quot;$(SolutionDir)data\*&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\data\&quot; /Y&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\log&quot; mkdir &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\log\&quot;&#x0D;&#x0A;"
+				ExcludedFromBuild="false"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="10"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\apr.vsprops;$(ProjectDir)..\..\build\vsprops\sofiasip.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+				CommandLine="xcopy &quot;$(AprDir)\$(PlatformName)\$(ConfigurationName)\libapr-1.dll&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;xcopy &quot;$(AprUtilDir)\$(PlatformName)\$(ConfigurationName)\libaprutil-1.dll&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;&#x0D;&#x0A;if exist &quot;$(AprIconvDir)\$(PlatformName)\$(ConfigurationName)\libapriconv-1.dll&quot; (&#x0D;&#x0A;xcopy &quot;$(AprIconvDir)\$(PlatformName)\$(ConfigurationName)\libapriconv-1.dll&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;if exist &quot;$(AprIconvDir)\$(PlatformName)\$(ConfigurationName)\iconv&quot; (&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\iconv&quot; mkdir &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\iconv&quot;&#x0D;&#x0A;xcopy &quot;$(AprIconvDir)\$(PlatformName)\$(ConfigurationName)\iconv\*.so&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\iconv\&quot; /Y&#x0D;&#x0A;)&#x0D;&#x0A;)&#x0D;&#x0A;&#x0D;&#x0A;xcopy &quot;$(SofiaDir)\win32\libsofia-sip-ua\$(PlatformName)\$(ConfigurationName)\libsofia_sip_ua.dll&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;xcopy &quot;$(SofiaDir)\win32\pthread\$(PlatformName)\pthreadVC2.dll&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\conf&quot; xcopy &quot;$(SolutionDir)conf\*.xml&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\conf\&quot; /Y&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\data&quot; xcopy &quot;$(SolutionDir)data\*&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\data\&quot; /Y&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\log&quot; mkdir &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\log\&quot;&#x0D;&#x0A;"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/build/tools/preparesphinx.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/tools/preparesphinx.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/tools/preparesphinx.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -59,6 +62,54 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="10"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\pocketsphinx.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+				CommandLine="xcopy &quot;$(PocketSphinxDir)\bin\$(PlatformName)\$(ConfigurationName)\pocketsphinx.dll&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;xcopy &quot;$(SphinxBaseDir)\lib\$(PlatformName)\$(ConfigurationName)\sphinxbase.dll&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;&#x0D;&#x0A;xcopy &quot;$(PocketSphinxDir)\model\hmm\wsj1\*&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\data\wsj1\&quot; /Y&#x0D;&#x0A;copy &quot;$(PocketSphinxDir)\model\lm\cmudict.0.6d&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\data\default.dic&quot;&#x0D;&#x0A;&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\conf\pocketsphinx.xml&quot; xcopy &quot;$(SolutionDir)plugins\mrcp-pocketsphinx\conf\pocketsphinx.xml&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\conf\&quot; /Y&#x0D;&#x0A;"
+				ExcludedFromBuild="false"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
+			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+			ConfigurationType="10"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\pocketsphinx.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+				CommandLine="xcopy &quot;$(PocketSphinxDir)\bin\$(PlatformName)\$(ConfigurationName)\pocketsphinx.dll&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;xcopy &quot;$(SphinxBaseDir)\lib\$(PlatformName)\$(ConfigurationName)\sphinxbase.dll&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin\&quot; /Y&#x0D;&#x0A;&#x0D;&#x0A;xcopy &quot;$(PocketSphinxDir)\model\hmm\wsj1\*&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\data\wsj1\&quot; /Y&#x0D;&#x0A;copy &quot;$(PocketSphinxDir)\model\lm\cmudict.0.6d&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\data\default.dic&quot;&#x0D;&#x0A;&#x0D;&#x0A;if not exist &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\conf\pocketsphinx.xml&quot; xcopy &quot;$(SolutionDir)plugins\mrcp-pocketsphinx\conf\pocketsphinx.xml&quot; &quot;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\conf\&quot; /Y&#x0D;&#x0A;"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/build/tools/unimrcpservice.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/tools/unimrcpservice.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/tools/unimrcpservice.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -10,6 +10,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -17,7 +20,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -79,7 +82,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -139,6 +142,134 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="libaprutil-1.lib libapr-1.lib"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+				AdditionalManifestFiles="unimrcpservice.exe.manifest"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="libaprutil-1.lib libapr-1.lib"
+				LinkTimeCodeGeneration="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+				AdditionalManifestFiles="unimrcpservice.exe.manifest"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/build/uni_version.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/uni_version.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/uni_version.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -39,7 +39,7 @@
  * Minor API changes that do not cause binary compatibility problems.
  * Reset to 0 when upgrading UNI_MAJOR_VERSION
  */
-#define UNI_MINOR_VERSION   8
+#define UNI_MINOR_VERSION   9
 
 /** patch level 
  * The Patch Level never includes API changes, simply bug fixes.

Modified: freeswitch/trunk/libs/unimrcp/build/vsprops/apr.vsprops (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/apr.vsprops	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/apr.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -9,10 +9,6 @@
 		Name="VCCLCompilerTool"
 		AdditionalIncludeDirectories="&quot;$(AprDir)\include&quot;;&quot;$(AprUtilDir)\include&quot;"
 	/>
-	<Tool
-		Name="VCLinkerTool"
-		AdditionalLibraryDirectories="&quot;$(AprDir)\$(ConfigurationName)&quot;;&quot;$(AprUtilDir)\$(ConfigurationName)&quot;"
-	/>
 	<UserMacro
 		Name="AprDir"
 		Value="$(LibRootDir)libs\apr"

Modified: freeswitch/trunk/libs/unimrcp/build/vsprops/apt.vsprops (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/apt.vsprops	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/apt.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -10,8 +10,4 @@
 		AdditionalIncludeDirectories="&quot;$(ProjectRootDir)libs\apr-toolkit\include&quot;"
 		PreprocessorDefinitions="APT_STATIC_LIB"
 	/>
-	<Tool
-		Name="VCLinkerTool"
-		AdditionalLibraryDirectories="&quot;$(OutDir)&quot;"
-	/>
 </VisualStudioPropertySheet>

Modified: freeswitch/trunk/libs/unimrcp/build/vsprops/mpf.vsprops (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/mpf.vsprops	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/mpf.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -10,8 +10,4 @@
 		AdditionalIncludeDirectories="&quot;$(ProjectRootDir)libs\mpf\include&quot;"
 		PreprocessorDefinitions="MPF_STATIC_LIB"
 	/>
-	<Tool
-		Name="VCLinkerTool"
-		AdditionalLibraryDirectories="&quot;$(OutDir)&quot;"
-	/>
 </VisualStudioPropertySheet>

Modified: freeswitch/trunk/libs/unimrcp/build/vsprops/mrcp.vsprops (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/mrcp.vsprops	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/mrcp.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -10,8 +10,4 @@
 		AdditionalIncludeDirectories="&quot;$(ProjectRootDir)libs\mrcp\include&quot;;&quot;$(ProjectRootDir)libs\mrcp\message\include&quot;;&quot;$(ProjectRootDir)libs\mrcp\control\include&quot;;&quot;$(ProjectRootDir)libs\mrcp\resources\include&quot;"
 		PreprocessorDefinitions="MRCP_STATIC_LIB"
 	/>
-	<Tool
-		Name="VCLinkerTool"
-		AdditionalLibraryDirectories="&quot;$(OutDir)&quot;"
-	/>
 </VisualStudioPropertySheet>

Modified: freeswitch/trunk/libs/unimrcp/build/vsprops/mrcpclient.vsprops (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/mrcpclient.vsprops	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/mrcpclient.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -9,8 +9,4 @@
 		Name="VCCLCompilerTool"
 		AdditionalIncludeDirectories="&quot;$(ProjectRootDir)libs\mrcp-client\include&quot;"
 	/>
-	<Tool
-		Name="VCLinkerTool"
-		AdditionalLibraryDirectories="&quot;$(OutDir)&quot;"
-	/>
 </VisualStudioPropertySheet>

Modified: freeswitch/trunk/libs/unimrcp/build/vsprops/mrcpengine.vsprops (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/mrcpengine.vsprops	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/mrcpengine.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -9,8 +9,4 @@
 		Name="VCCLCompilerTool"
 		AdditionalIncludeDirectories="&quot;$(ProjectRootDir)libs\mrcp-engine\include&quot;"
 	/>
-	<Tool
-		Name="VCLinkerTool"
-		AdditionalLibraryDirectories="&quot;$(OutDir)&quot;"
-	/>
 </VisualStudioPropertySheet>

Modified: freeswitch/trunk/libs/unimrcp/build/vsprops/mrcpserver.vsprops (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/mrcpserver.vsprops	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/mrcpserver.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -9,8 +9,4 @@
 		Name="VCCLCompilerTool"
 		AdditionalIncludeDirectories="&quot;$(ProjectRootDir)libs\mrcp-server\include&quot;"
 	/>
-	<Tool
-		Name="VCLinkerTool"
-		AdditionalLibraryDirectories="&quot;$(OutDir)&quot;"
-	/>
 </VisualStudioPropertySheet>

Modified: freeswitch/trunk/libs/unimrcp/build/vsprops/mrcpsignaling.vsprops (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/mrcpsignaling.vsprops	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/mrcpsignaling.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -9,8 +9,4 @@
 		Name="VCCLCompilerTool"
 		AdditionalIncludeDirectories="&quot;$(ProjectRootDir)libs\mrcp-signaling\include&quot;"
 	/>
-	<Tool
-		Name="VCLinkerTool"
-		AdditionalLibraryDirectories="&quot;$(OutDir)&quot;"
-	/>
 </VisualStudioPropertySheet>

Modified: freeswitch/trunk/libs/unimrcp/build/vsprops/mrcpv2transport.vsprops (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/mrcpv2transport.vsprops	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/mrcpv2transport.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -9,8 +9,4 @@
 		Name="VCCLCompilerTool"
 		AdditionalIncludeDirectories="&quot;$(ProjectRootDir)libs\mrcpv2-transport\include&quot;"
 	/>
-	<Tool
-		Name="VCLinkerTool"
-		AdditionalLibraryDirectories="&quot;$(OutDir)&quot;"
-	/>
 </VisualStudioPropertySheet>

Modified: freeswitch/trunk/libs/unimrcp/build/vsprops/sofiasip.vsprops (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/sofiasip.vsprops	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/sofiasip.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -9,10 +9,6 @@
 		Name="VCCLCompilerTool"
 		AdditionalIncludeDirectories="&quot;$(SofiaDir)\win32&quot;;&quot;$(SofiaDir)\libsofia-sip-ua\su&quot;;&quot;$(SofiaDir)\libsofia-sip-ua\nua&quot;;&quot;$(SofiaDir)\libsofia-sip-ua\url&quot;;&quot;$(SofiaDir)\libsofia-sip-ua\sip&quot;;&quot;$(SofiaDir)\libsofia-sip-ua\msg&quot;;&quot;$(SofiaDir)\libsofia-sip-ua\sdp&quot;;&quot;$(SofiaDir)\libsofia-sip-ua\nta&quot;;&quot;$(SofiaDir)\libsofia-sip-ua\nea&quot;;&quot;$(SofiaDir)\libsofia-sip-ua\soa&quot;;&quot;$(SofiaDir)\libsofia-sip-ua\iptsec&quot;;&quot;$(SofiaDir)\libsofia-sip-ua\bnf&quot;;&quot;$(SofiaDir)\libsofia-sip-ua\features&quot;"
 	/>
-	<Tool
-		Name="VCLinkerTool"
-		AdditionalLibraryDirectories="&quot;$(SofiaDir)\win32\libsofia-sip-ua\$(ConfigurationName)&quot;"
-	/>
 	<UserMacro
 		Name="SofiaDir"
 		Value="$(LibRootDir)libs\sofia-sip"

Modified: freeswitch/trunk/libs/unimrcp/build/vsprops/unibase.vsprops (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/unibase.vsprops	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/unibase.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -3,8 +3,6 @@
 	ProjectType="Visual C++"
 	Version="8.00"
 	Name="unibase"
-	OutputDirectory="$(SolutionDir)$(ConfigurationName)\bin"
-	IntermediateDirectory="$(ConfigurationName)"
 	>
 	<Tool
 		Name="VCCLCompilerTool"
@@ -13,10 +11,6 @@
 		WarnAsError="true"
 		DisableSpecificWarnings="4100"
 	/>
-	<Tool
-		Name="VCLinkerTool"
-		AdditionalLibraryDirectories="&quot;$(OutDir)&quot;"
-	/>
 	<UserMacro
 		Name="ProjectRootDir"
 		Value="$(ProjectDir)..\..\"

Added: freeswitch/trunk/libs/unimrcp/build/vsprops/unibin-x64.vsprops (0 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/unibin-x64.vsprops	                        (rev 0)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/unibin-x64.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioPropertySheet
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="unibin-x64"
+	OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin"
+	IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+	InheritedPropertySheets="apr.vsprops;sofiasip.vsprops"
+	>
+	<Tool
+		Name="VCLinkerTool"
+		AdditionalLibraryDirectories="$(AprDir)\$(PlatformName)\$(ConfigurationName);$(AprUtilDir)\$(PlatformName)\$(ConfigurationName);$(SofiaDir)\win32\libsofia-sip-ua\$(PlatformName)\$(ConfigurationName);$(SolutionDir)$(PlatformName)\$(ConfigurationName)\lib;$(SolutionDir)$(PlatformName)\$(ConfigurationName)\bin"
+		TargetMachine="17"
+	/>
+</VisualStudioPropertySheet>

Added: freeswitch/trunk/libs/unimrcp/build/vsprops/unibin.vsprops (0 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/unibin.vsprops	                        (rev 0)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/unibin.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioPropertySheet
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="unibin"
+	OutputDirectory="$(SolutionDir)$(ConfigurationName)\bin"
+	IntermediateDirectory="$(ConfigurationName)"
+	InheritedPropertySheets="apr.vsprops;sofiasip.vsprops"
+	>
+	<Tool
+		Name="VCLinkerTool"
+		AdditionalLibraryDirectories="$(AprDir)\$(ConfigurationName);$(AprUtilDir)\$(ConfigurationName);$(SofiaDir)\win32\libsofia-sip-ua\$(ConfigurationName);$(SolutionDir)$(ConfigurationName)\lib;$(SolutionDir)$(ConfigurationName)\bin"
+		TargetMachine="1"
+	/>
+</VisualStudioPropertySheet>

Modified: freeswitch/trunk/libs/unimrcp/build/vsprops/unidebug.vsprops (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/unidebug.vsprops	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/unidebug.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -13,12 +13,11 @@
 		BasicRuntimeChecks="3"
 		RuntimeLibrary="3"
 		UsePrecompiledHeader="0"
-		DebugInformationFormat="4"
+		DebugInformationFormat="3"
 	/>
 	<Tool
 		Name="VCLinkerTool"
 		LinkIncremental="2"
 		GenerateDebugInformation="true"
-		TargetMachine="1"
 	/>
 </VisualStudioPropertySheet>

Added: freeswitch/trunk/libs/unimrcp/build/vsprops/unilib-x64.vsprops (0 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/unilib-x64.vsprops	                        (rev 0)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/unilib-x64.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioPropertySheet
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="unilib-x64"
+	OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\lib"
+	IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+	>
+	<Tool
+		Name="VCLinkerTool"
+		TargetMachine="17"
+	/>
+</VisualStudioPropertySheet>

Added: freeswitch/trunk/libs/unimrcp/build/vsprops/unilib.vsprops (0 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/unilib.vsprops	                        (rev 0)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/unilib.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioPropertySheet
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="unilib"
+	OutputDirectory="$(SolutionDir)$(ConfigurationName)\lib"
+	IntermediateDirectory="$(ConfigurationName)"
+	>
+	<Tool
+		Name="VCLinkerTool"
+		TargetMachine="1"
+	/>
+</VisualStudioPropertySheet>

Modified: freeswitch/trunk/libs/unimrcp/build/vsprops/unimrcpclient.vsprops (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/unimrcpclient.vsprops	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/unimrcpclient.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -9,10 +9,6 @@
 		Name="VCCLCompilerTool"
 		AdditionalIncludeDirectories="&quot;$(ProjectRootDir)platforms\libunimrcp-client\include&quot;;&quot;$(ProjectRootDir)build&quot;"
 	/>
-	<Tool
-		Name="VCLinkerTool"
-		AdditionalLibraryDirectories="&quot;$(OutDir)&quot;"
-	/>
 	<UserMacro
 		Name="UniMRCPClientLibs"
 		Value="libunimrcpclient.lib mrcpclient.lib mrcpsignaling.lib mrcp.lib aprtoolkit.lib libaprutil-1.lib libapr-1.lib libsofia_sip_ua.lib ws2_32.lib winmm.lib"

Modified: freeswitch/trunk/libs/unimrcp/build/vsprops/unimrcpserver.vsprops (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/unimrcpserver.vsprops	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/unimrcpserver.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -9,10 +9,6 @@
 		Name="VCCLCompilerTool"
 		AdditionalIncludeDirectories="&quot;$(ProjectRootDir)platforms\libunimrcp-server\include&quot;;&quot;$(ProjectRootDir)build&quot;"
 	/>
-	<Tool
-		Name="VCLinkerTool"
-		AdditionalLibraryDirectories="&quot;$(OutDir)&quot;"
-	/>
 	<UserMacro
 		Name="UniMRCPServerLibs"
 		Value="libunimrcpserver.lib mrcpserver.lib mrcpsignaling.lib mrcpengine.lib mrcp.lib aprtoolkit.lib libaprutil-1.lib libapr-1.lib libsofia_sip_ua.lib ws2_32.lib winmm.lib"

Added: freeswitch/trunk/libs/unimrcp/build/vsprops/uniplugin-x64.vsprops (0 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/uniplugin-x64.vsprops	                        (rev 0)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/uniplugin-x64.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioPropertySheet
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="uniplugin-x64"
+	OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\plugin"
+	IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+	InheritedPropertySheets="apr.vsprops;mrcpengine.vsprops"
+	>
+	<Tool
+		Name="VCLinkerTool"
+		AdditionalLibraryDirectories="$(AprDir)\$(PlatformName)\$(ConfigurationName);$(AprUtilDir)\$(PlatformName)\$(ConfigurationName);$(SolutionDir)$(PlatformName)\$(ConfigurationName)\lib"
+		AdditionalDependencies="mrcpengine.lib mrcp.lib mpf.lib aprtoolkit.lib libaprutil-1.lib libapr-1.lib ws2_32.lib"
+		TargetMachine="17"
+	/>
+</VisualStudioPropertySheet>

Added: freeswitch/trunk/libs/unimrcp/build/vsprops/uniplugin.vsprops (0 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/uniplugin.vsprops	                        (rev 0)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/uniplugin.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioPropertySheet
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="uniplugin"
+	OutputDirectory="$(SolutionDir)$(ConfigurationName)\plugin"
+	IntermediateDirectory="$(ConfigurationName)"
+	InheritedPropertySheets="apr.vsprops;mrcpengine.vsprops"
+	>
+	<Tool
+		Name="VCLinkerTool"
+		AdditionalLibraryDirectories="$(AprDir)\$(ConfigurationName);$(AprUtilDir)\$(ConfigurationName);$(SolutionDir)$(ConfigurationName)\lib"
+		AdditionalDependencies="mrcpengine.lib mrcp.lib mpf.lib aprtoolkit.lib libaprutil-1.lib libapr-1.lib ws2_32.lib"
+		TargetMachine="1"
+	/>
+</VisualStudioPropertySheet>

Modified: freeswitch/trunk/libs/unimrcp/build/vsprops/unirtsp.vsprops (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/build/vsprops/unirtsp.vsprops	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/build/vsprops/unirtsp.vsprops	2010-02-22 15:43:43 UTC (rev 16719)
@@ -10,8 +10,4 @@
 		AdditionalIncludeDirectories="&quot;$(ProjectRootDir)libs\uni-rtsp\include&quot;"
 		PreprocessorDefinitions="RTSP_STATIC_LIB"
 	/>
-	<Tool
-		Name="VCLinkerTool"
-		AdditionalLibraryDirectories="&quot;$(OutDir)&quot;"
-	/>
 </VisualStudioPropertySheet>

Added: freeswitch/trunk/libs/unimrcp/conf/Makefile.am (0 => 16719)


--- freeswitch/trunk/libs/unimrcp/conf/Makefile.am	                        (rev 0)
+++ freeswitch/trunk/libs/unimrcp/conf/Makefile.am	2010-02-22 15:43:43 UTC (rev 16719)
@@ -0,0 +1,11 @@
+MAINTAINERCLEANFILES   = Makefile.in
+
+def-conf:
+	test -d $(confdir) || $(mkinstalldirs) $(confdir)
+	for conffile in `find ./ -name \*.xml` ; do \
+	    filename=`echo $$conffile | sed -e 's|^.*/||'`; \
+	    $(INSTALL) -m 644 $$filename $(confdir); \
+	done
+
+install-data-local:
+	test -d $(confdir) || $(MAKE) def-conf

Modified: freeswitch/trunk/libs/unimrcp/conf/umcscenarios.xml (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/conf/umcscenarios.xml	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/conf/umcscenarios.xml	2010-02-22 15:43:43 UTC (rev 16719)
@@ -6,6 +6,7 @@
 2. class="Recognizer"
 3. class="Recorder"
 4. class="DtmfRecofnizer"
+5. class="Params"
 
 More than one scenario of the same type (class) can be defined.
 The name (not class) of the scenario is used to run it from console.
@@ -88,6 +89,8 @@
     -->
   </scenario>
 
+  <scenario name="params" class="Params" profile="MRCPv2-Default"/>
+
   <!-- It'd be great to have scriptable custom scenarios as well.
   <scenario name="custom" class="UmcXml">
   </scenario>

Modified: freeswitch/trunk/libs/unimrcp/conf/unimrcpclient.xml (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/conf/unimrcpclient.xml	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/conf/unimrcpclient.xml	2010-02-22 15:43:43 UTC (rev 16719)
@@ -48,7 +48,7 @@
 
     <!-- Media engines -->
     <media>
-      <engine name="Media-Engine-1"/>
+      <engine name="Media-Engine-1" realtime-rate="1"/>
       <rtp name="RTP-Factory-1">
         <param name="rtp-ip" value="auto"/>
         <!-- <param name="rtp-ext-ip" value="auto"/> -->

Modified: freeswitch/trunk/libs/unimrcp/conf/unimrcpserver.xml (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/conf/unimrcpserver.xml	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/conf/unimrcpserver.xml	2010-02-22 15:43:43 UTC (rev 16719)
@@ -44,7 +44,7 @@
 
     <!-- Media engines -->
     <media>
-      <engine name="Media-Engine-1"/>
+      <engine name="Media-Engine-1" realtime-rate="1"/>
       <rtp name="RTP-Factory-1">
         <param name="rtp-ip" value="auto"/>
         <!-- <param name="rtp-ext-ip" value="auto"/> -->

Modified: freeswitch/trunk/libs/unimrcp/configure.ac (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/configure.ac	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/configure.ac	2010-02-22 15:43:43 UTC (rev 16719)
@@ -3,7 +3,7 @@
 
 AC_PREREQ(2.57)
 
-AC_INIT([unimrcp],[0.8.0])
+AC_INIT([unimrcp],[0.9.0])
 
 AC_CONFIG_AUX_DIR([build])
 AC_CONFIG_MACRO_DIR([build/acmacros])
@@ -216,6 +216,8 @@
   build/pkgconfig/unimrcpclient.pc
   build/pkgconfig/unimrcpserver.pc
   build/pkgconfig/unimrcpplugin.pc
+  conf/Makefile
+  data/Makefile
 ])
 
 AC_OUTPUT

Added: freeswitch/trunk/libs/unimrcp/data/Makefile.am (0 => 16719)


--- freeswitch/trunk/libs/unimrcp/data/Makefile.am	                        (rev 0)
+++ freeswitch/trunk/libs/unimrcp/data/Makefile.am	2010-02-22 15:43:43 UTC (rev 16719)
@@ -0,0 +1,11 @@
+MAINTAINERCLEANFILES   = Makefile.in
+
+def-data:
+	test -d $(datadir) || $(mkinstalldirs) $(datadir)
+	for datafile in `find ./ -name \*.pcm -o -name \*.xml -o -name \*.jsgf -o -name \*.txt` ; do \
+	    filename=`echo $$datafile | sed -e 's|^.*/||'`; \
+	    $(INSTALL) -m 644 $$filename $(datadir); \
+	done
+           
+install-data-local:
+	test -d $(datadir) || $(MAKE) def-data

Modified: freeswitch/trunk/libs/unimrcp/docs/doxygen.conf (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/docs/doxygen.conf	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/docs/doxygen.conf	2010-02-22 15:43:43 UTC (rev 16719)
@@ -21,6 +21,7 @@
 FULL_PATH_NAMES=NO
 CASE_SENSE_NAMES=NO
 
+EXCLUDE=platforms/umc platforms/libasr-client platforms/asr-client
 EXCLUDE_PATTERNS="*/acconfig.h" \
                  "*/test/*" \
                  "*/arch/*"

Modified: freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/aprtoolkit.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/aprtoolkit.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/aprtoolkit.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -70,7 +73,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -120,6 +123,111 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/include/apt_log.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/include/apt_log.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/include/apt_log.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -77,7 +77,7 @@
 typedef enum {
 	APT_LOG_OUTPUT_NONE     = 0x00, /**< disable logging */
 	APT_LOG_OUTPUT_CONSOLE  = 0x01, /**< enable console output */
-	APT_LOG_OUTPUT_FILE     = 0x02, /**< enable log file output */
+	APT_LOG_OUTPUT_FILE     = 0x02  /**< enable log file output */
 } apt_log_output_e;
 
 /** Opaque logger declaration */

Modified: freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/include/apt_pair.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/include/apt_pair.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/include/apt_pair.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -22,7 +22,7 @@
  * @brief Generic Name-Value Pair
  */ 
 
-#include "apr_tables.h"
+#include <apr_tables.h>
 #include "apt_string.h"
 
 APT_BEGIN_EXTERN_C

Modified: freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/include/apt_string.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/include/apt_string.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/include/apt_string.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -26,6 +26,9 @@
 
 APT_BEGIN_EXTERN_C
 
+/** Empty string */
+#define APT_EMPTY_STRING ""
+
 /** String declaration */
 typedef struct apt_str_t apt_str_t;
 
@@ -44,6 +47,27 @@
 	str->length = 0;
 }
 
+/** Get string buffer. */
+static APR_INLINE const char* apt_string_buffer_get(const apt_str_t *str)
+{
+	if(str->buf) {
+		return str->buf;
+	}
+	return APT_EMPTY_STRING;
+}
+
+/** Get string length. */
+static APR_INLINE apr_size_t apt_string_length_get(const apt_str_t *str)
+{
+	return str->length;
+}
+
+/** Check whether string is empty. */
+static APR_INLINE apr_size_t apt_string_is_empty(const apt_str_t *str)
+{
+	return str->length ? TRUE : FALSE;
+}
+
 /**
  * Set NULL terminated string. 
  * @param str the destination string

Modified: freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/include/apt_text_stream.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/include/apt_text_stream.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/include/apt_text_stream.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -42,16 +42,21 @@
 /** Text stream is used for message parsing and generation */
 struct apt_text_stream_t {
 	/** Text stream */
-	apt_str_t text;
-	/** Current position in the buffer */
-	char     *pos;
+	apt_str_t   text;
+
+	/** Current position in the stream */
+	char       *pos;
+	/** End of stream pointer */
+	const char *end;
+	/** Is end of stream reached */
+	apt_bool_t  is_eos;
 };
 
 /**
  * Navigate through the lines of the text stream (message).
  * @param stream the text stream to navigate
  * @param line the read line to return
- * @return TRUE if the length of the line > 0, otherwise FALSE
+ * @return TRUE if the line is successfully read, otherwise FALSE
  */
 APT_DECLARE(apt_bool_t) apt_text_line_read(apt_text_stream_t *stream, apt_str_t *line);
 
@@ -59,7 +64,7 @@
  * Navigate through the headers (name:value pairs) of the text stream (message).
  * @param stream the text stream to navigate
  * @param pair the read pair to return
- * @return TRUE if the length of the read name > 0, otherwise FALSE
+ * @return TRUE if the header is successfully read, otherwise FALSE
  */
 APT_DECLARE(apt_bool_t) apt_text_header_read(apt_text_stream_t *stream, apt_pair_t *pair);
 
@@ -115,12 +120,20 @@
 	return TRUE;
 }
 
+/** Reset navigation related data of the text stream */
+static APR_INLINE void apt_text_stream_reset(apt_text_stream_t *stream)
+{
+	stream->pos = stream->text.buf;
+	stream->end = stream->text.buf + stream->text.length;
+	stream->is_eos = FALSE;
+}
+
 /** Initialize text stream */
 static APR_INLINE void apt_text_stream_init(apt_text_stream_t *stream, char *buffer, apr_size_t size)
 {
 	stream->text.buf = buffer;
 	stream->text.length = size;
-	stream->pos = stream->text.buf;
+	apt_text_stream_reset(stream);
 }
 
 /** Insert end of the line symbol(s) */
@@ -159,8 +172,7 @@
 /** Check whether end of stream is reached */
 static APR_INLINE apt_bool_t apt_text_is_eos(const apt_text_stream_t *stream)
 {
-	const char *end = stream->text.buf + stream->text.length;
-	return (stream->pos >= end) ? TRUE : FALSE;
+	return (stream->pos >= stream->end || stream->is_eos == TRUE) ? TRUE : FALSE;
 }
 
 /** Scroll text stream */

Modified: freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/src/apt_log.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/src/apt_log.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/src/apt_log.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -227,33 +227,34 @@
 static apt_bool_t apt_do_log(const char *file, int line, apt_log_priority_e priority, const char *format, va_list arg_ptr)
 {
 	char log_entry[MAX_LOG_ENTRY_SIZE];
+	apr_size_t max_size = MAX_LOG_ENTRY_SIZE - 2;
 	apr_size_t offset = 0;
 	apr_time_exp_t result;
 	apr_time_t now = apr_time_now();
 	apr_time_exp_lt(&result,now);
 
 	if(apt_logger->header & APT_LOG_HEADER_DATE) {
-		offset += apr_snprintf(log_entry+offset,MAX_LOG_ENTRY_SIZE-offset,"%4d-%02d-%02d ",
+		offset += apr_snprintf(log_entry+offset,max_size-offset,"%4d-%02d-%02d ",
 							result.tm_year+1900,
 							result.tm_mon+1,
 							result.tm_mday);
 	}
 	if(apt_logger->header & APT_LOG_HEADER_TIME) {
-		offset += apr_snprintf(log_entry+offset,MAX_LOG_ENTRY_SIZE-offset,"%02d:%02d:%02d:%06d ",
+		offset += apr_snprintf(log_entry+offset,max_size-offset,"%02d:%02d:%02d:%06d ",
 							result.tm_hour,
 							result.tm_min,
 							result.tm_sec,
 							result.tm_usec);
 	}
 	if(apt_logger->header & APT_LOG_HEADER_MARK) {
-		offset += apr_snprintf(log_entry+offset,MAX_LOG_ENTRY_SIZE-offset,"%s:%03d ",file,line);
+		offset += apr_snprintf(log_entry+offset,max_size-offset,"%s:%03d ",file,line);
 	}
 	if(apt_logger->header & APT_LOG_HEADER_PRIORITY) {
 		memcpy(log_entry+offset,priority_snames[priority],MAX_PRIORITY_NAME_LENGTH);
 		offset += MAX_PRIORITY_NAME_LENGTH;
 	}
 
-	offset += apr_vsnprintf(log_entry+offset,MAX_LOG_ENTRY_SIZE-offset,format,arg_ptr);
+	offset += apr_vsnprintf(log_entry+offset,max_size-offset,format,arg_ptr);
 	log_entry[offset++] = '\n';
 	log_entry[offset] = '\0';
 	if((apt_logger->mode & APT_LOG_OUTPUT_CONSOLE) == APT_LOG_OUTPUT_CONSOLE) {
@@ -269,7 +270,7 @@
 static const char* apt_log_file_path_make(apt_log_file_data_t *file_data)
 {
 	char *log_file_path = NULL;
-	const char *log_file_name = apr_psprintf(file_data->pool,"%s-%d.log",file_data->log_file_name,file_data->cur_file_index);
+	const char *log_file_name = apr_psprintf(file_data->pool,"%s-%"APR_SIZE_T_FMT".log",file_data->log_file_name,file_data->cur_file_index);
 	apr_filepath_merge(&log_file_path,file_data->log_dir_path,log_file_name,0,file_data->pool);
 	return log_file_path;
 }

Modified: freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/src/apt_pair.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/src/apt_pair.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/src/apt_pair.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -80,7 +80,7 @@
 APT_DECLARE(const apt_pair_t*) apt_pair_array_get(const apt_pair_arr_t *arr, int id)
 {
 	if(id < arr->nelts) {
-		return (apt_pair_t*)arr->elts + id;
+		return &APR_ARRAY_IDX(arr,id,apt_pair_t);
 	}
 	return NULL;
 }

Modified: freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/src/apt_task.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/src/apt_task.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/src/apt_task.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -363,9 +363,17 @@
 	while(elem) {
 		child_task = apt_list_elem_object_get(elem);
 		if(child_task) {
+#ifdef ENABLE_SIMULT_TASK_TERMINATION
+			if(child_task->thread_handle) {
+				apr_thread_detach(child_task->thread_handle);
+				child_task->thread_handle = NULL;
+			}
 			if(apt_task_terminate(child_task,FALSE) == TRUE) {
 				task->pending_term++;
 			}
+#else
+			apt_task_terminate(child_task,TRUE);
+#endif
 		}
 		elem = apt_list_next_elem_get(task->child_tasks,elem);
 	}
@@ -375,6 +383,7 @@
 		if(task->vtable.on_terminate_complete) {
 			task->vtable.on_terminate_complete(task);
 		}
+#ifdef ENABLE_SIMULT_TASK_TERMINATION
 		if(task->parent_task) {
 			if(task->msg_pool) {
 				apt_task_msg_t *msg = apt_task_msg_acquire(task->msg_pool);
@@ -384,6 +393,7 @@
 				apt_task_msg_signal(task->parent_task,msg);
 			}
 		}
+#endif
 	}
 	return TRUE;
 }
@@ -434,5 +444,7 @@
 	if(task->vtable.on_post_run) {
 		task->vtable.on_post_run(task);
 	}
+
+	apr_thread_exit(thread_handle,APR_SUCCESS);
 	return NULL;
 }

Modified: freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/src/apt_text_stream.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/src/apt_text_stream.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/apr-toolkit/src/apt_text_stream.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -29,34 +29,40 @@
 APT_DECLARE(apt_bool_t) apt_text_line_read(apt_text_stream_t *stream, apt_str_t *line)
 {
 	char *pos = stream->pos;
-	const char *end = stream->text.buf + stream->text.length;
-	apt_bool_t eol = FALSE;
+	apt_bool_t status = FALSE;
 	line->length = 0;
 	line->buf = pos;
 	/* while not end of stream */
-	while(pos < end) {
+	while(pos < stream->end) {
 		if(*pos == APT_TOKEN_CR) {
 			/* end of line detected */
 			line->length = pos - line->buf;
 			pos++;
-			if(pos < end && *pos == APT_TOKEN_LF) {
+			if(pos < stream->end && *pos == APT_TOKEN_LF) {
 				pos++;
 			}
-			eol = TRUE;
+			status = TRUE;
 			break;
 		}
 		else if(*pos == APT_TOKEN_LF) {
 			/* end of line detected */
 			line->length = pos - line->buf;
 			pos++;
-			eol = TRUE;
+			status = TRUE;
 			break;
 		}
 		pos++;
 	}
 
-	stream->pos = pos;
-	return eol;
+	if(status == TRUE) {
+		/* advance stream pos */
+		stream->pos = pos;
+	}
+	else {
+		/* end of stream is reached, do not advance stream pos, but set is_eos flag */
+		stream->is_eos = TRUE;
+	}
+	return status;
 }
 
 /** Navigate through the headers (name:value pairs) of the text stream (message) 
@@ -74,12 +80,11 @@
 APT_DECLARE(apt_bool_t) apt_text_header_read(apt_text_stream_t *stream, apt_pair_t *pair)
 {
 	char *pos = stream->pos;
-	const char *end = stream->text.buf + stream->text.length;
-	apt_bool_t eol = FALSE;
+	apt_bool_t status = FALSE;
 	apt_string_reset(&pair->name);
 	apt_string_reset(&pair->value);
 	/* while not end of stream */
-	while(pos < end) {
+	while(pos < stream->end) {
 		if(*pos == APT_TOKEN_CR) {
 			/* end of line detected */
 			if(pair->value.buf) {
@@ -87,10 +92,10 @@
 				pair->value.length = pos - pair->value.buf;
 			}
 			pos++;
-			if(pos < end && *pos == APT_TOKEN_LF) {
+			if(pos < stream->end && *pos == APT_TOKEN_LF) {
 				pos++;
 			}
-			eol = TRUE;
+			status = TRUE;
 			break;
 		}
 		else if(*pos == APT_TOKEN_LF) {
@@ -100,7 +105,7 @@
 				pair->value.length = pos - pair->value.buf;
 			}
 			pos++;
-			eol = TRUE;
+			status = TRUE;
 			break;
 		}
 		else if(!pair->name.length) {
@@ -122,9 +127,21 @@
 		pos++;
 	}
 
-	stream->pos = pos;
-	/* if length == 0 && buf -> header is malformed */
-	return (eol && (pair->name.length || !pair->name.buf));
+	if(status == TRUE) {
+		/* advance stream pos regardless it's a valid header or not */
+		stream->pos = pos;
+		
+		/* if length == 0 && buf => header is malformed */
+		if(!pair->name.length && pair->name.buf) {
+			status = FALSE;
+		}
+	}
+	else {
+		/* end of stream is reached, do not advance stream pos, but set is_eos flag */
+		stream->is_eos = TRUE;
+	}
+
+	return status;
 }
 
 
@@ -132,17 +149,16 @@
 APT_DECLARE(apt_bool_t) apt_text_field_read(apt_text_stream_t *stream, char separator, apt_bool_t skip_spaces, apt_str_t *field)
 {
 	char *pos = stream->pos;
-	const char *end = stream->text.buf + stream->text.length;
 	if(skip_spaces == TRUE) {
-		while(pos < end && *pos == APT_TOKEN_SP) pos++;
+		while(pos < stream->end && *pos == APT_TOKEN_SP) pos++;
 	}
 
 	field->buf = pos;
 	field->length = 0;
-	while(pos < end && *pos != separator) pos++;
+	while(pos < stream->end && *pos != separator) pos++;
 
 	field->length = pos - field->buf;
-	if(pos < end) {
+	if(pos < stream->end) {
 		/* skip the separator */
 		pos++;
 	}
@@ -216,16 +232,19 @@
 static apt_bool_t apt_pair_parse(apt_pair_t *pair, const apt_str_t *field, apr_pool_t *pool)
 {
 	apt_text_stream_t stream;
+	apt_str_t item;
 	stream.text = *field;
-	stream.pos = stream.text.buf;
+	apt_text_stream_reset(&stream);
 
 	/* read name */
-	if(apt_text_field_read(&stream,'=',TRUE,&pair->name) == FALSE) {
+	if(apt_text_field_read(&stream,'=',TRUE,&item) == FALSE) {
 		return FALSE;
 	}
+	apt_string_copy(&pair->name,&item,pool);
 
 	/* read value */
-	apt_text_field_read(&stream,';',TRUE,&pair->value);
+	apt_text_field_read(&stream,';',TRUE,&item);
+	apt_string_copy(&pair->value,&item,pool);
 	return TRUE;
 }
 
@@ -240,7 +259,7 @@
 	}
 
 	stream.text = *value;
-	stream.pos = stream.text.buf;
+	apt_text_stream_reset(&stream);
 	/* read name-value pairs */
 	while(apt_text_field_read(&stream,';',TRUE,&field) == TRUE) {
 		pair = apr_array_push(arr);
@@ -342,7 +361,7 @@
 	}
 
 	/* remove trailing 0s (if any) */
-	end = stream->pos + length -1;
+	end = stream->pos + length - 1;
 	while(*end == 0x30 && end != stream->pos) end--;
 
 	stream->pos = end + 1;

Modified: freeswitch/trunk/libs/unimrcp/libs/mpf/include/mpf_dtmf_generator.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mpf/include/mpf_dtmf_generator.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mpf/include/mpf_dtmf_generator.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -60,8 +60,8 @@
 MPF_DECLARE(struct mpf_dtmf_generator_t *) mpf_dtmf_generator_create_ex(
 								const struct mpf_audio_stream_t *stream,
 								enum mpf_dtmf_generator_band_e band,
-								apr_size_t tone_ms,
-								apr_size_t silence_ms,
+								apr_uint32_t tone_ms,
+								apr_uint32_t silence_ms,
 								struct apr_pool_t *pool);
 
 /**

Modified: freeswitch/trunk/libs/unimrcp/libs/mpf/include/mpf_frame.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mpf/include/mpf_frame.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mpf/include/mpf_frame.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -40,7 +40,7 @@
 	MPF_MARKER_NONE,           /**< none */
 	MPF_MARKER_START_OF_EVENT, /**< start of event */
 	MPF_MARKER_END_OF_EVENT,   /**< end of event */
-	MPF_MARKER_NEW_SEGMENT,    /**< start of new segment (long-lasting events) */
+	MPF_MARKER_NEW_SEGMENT     /**< start of new segment (long-lasting events) */
 } mpf_frame_marker_e;
 
 /** Media frame declaration */

Modified: freeswitch/trunk/libs/unimrcp/libs/mpf/include/mpf_rtcp_packet.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mpf/include/mpf_rtcp_packet.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mpf/include/mpf_rtcp_packet.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -87,9 +87,9 @@
 struct rtcp_sdes_item_t {
 	/** type of item (rtcp_sdes_type_t) */
 	apr_byte_t type;
-	/* length of item (in octets) */
+	/** length of item (in octets) */
 	apr_byte_t length;
-	/* text, not null-terminated */
+	/** text, not null-terminated */
 	char       data[1];
 };
 
@@ -97,6 +97,7 @@
 struct rtcp_packet_t {
 	/** common header */
 	rtcp_header_t header;
+	/** union of RTCP reports */
 	union {
 		/** sender report (SR) */
 		struct {

Modified: freeswitch/trunk/libs/unimrcp/libs/mpf/include/mpf_rtp_descriptor.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mpf/include/mpf_rtp_descriptor.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mpf/include/mpf_rtp_descriptor.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -97,10 +97,11 @@
 	apr_byte_t adaptive;
 };
 
+/** RTCP BYE transmission policy */
 typedef enum {
 	RTCP_BYE_DISABLE,       /**< disable RTCP BYE transmission */
 	RTCP_BYE_PER_SESSION,   /**< transmit RTCP BYE at the end of session */
-	RTCP_BYE_PER_TALKSPURT, /**< transmit RTCP BYE at the end of each talkspurt (input) */
+	RTCP_BYE_PER_TALKSPURT  /**< transmit RTCP BYE at the end of each talkspurt (input) */
 } rtcp_bye_policy_e;
 
 /** RTP config */

Modified: freeswitch/trunk/libs/unimrcp/libs/mpf/include/mpf_rtp_stat.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mpf/include/mpf_rtp_stat.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mpf/include/mpf_rtp_stat.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -64,9 +64,9 @@
 	apr_uint32_t ntp_frac;
 	/** RTP timestamp */
 	apr_uint32_t rtp_ts;
-	/* packets sent */
+	/** packets sent */
 	apr_uint32_t sent_packets;
-	/* octets (bytes) sent */
+	/** octets (bytes) sent */
 	apr_uint32_t sent_octets;
 };
 

Modified: freeswitch/trunk/libs/unimrcp/libs/mpf/mpf.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mpf/mpf.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mpf/mpf.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\mpf.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\mpf.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -71,7 +74,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\mpf.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\mpf.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -122,6 +125,116 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mpf.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="codecs"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mpf.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="codecs"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_activity_detector.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_activity_detector.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_activity_detector.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -122,7 +122,7 @@
 		/* first, calculate current activity level of processed frame */
 		level = mpf_activity_detector_level_calculate(frame);
 #if 0
-		apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Activity Detector [%d]",level);
+		apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Activity Detector [%"APR_SIZE_T_FMT"]",level);
 #endif
 	}
 

Modified: freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_dtmf_generator.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_dtmf_generator.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_dtmf_generator.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -114,21 +114,21 @@
 	/** Higher frequency generator */
 	struct sine_state_t              sine2;
 	/** Sampling rate of audio in Hz; used in tone generator */
-	apr_size_t                       sample_rate_audio;
+	apr_uint32_t                     sample_rate_audio;
 	/** Sampling rate of telephone-events in Hz; used for timing */
-	apr_size_t                       sample_rate_events;
+	apr_uint32_t                     sample_rate_events;
 	/** How often to issue event packet */
-	apr_size_t                       events_ptime;
+	apr_uint32_t                     events_ptime;
 	/** Milliseconds elapsed since last event packet */
-	apr_size_t                       since_last_event;
+	apr_uint32_t                     since_last_event;
 };
 
 
 MPF_DECLARE(struct mpf_dtmf_generator_t *) mpf_dtmf_generator_create_ex(
 								const struct mpf_audio_stream_t *stream,
 								enum mpf_dtmf_generator_band_e band,
-								apr_size_t tone_ms,
-								apr_size_t silence_ms,
+								apr_uint32_t tone_ms,
+								apr_uint32_t silence_ms,
 								struct apr_pool_t *pool)
 {
 	struct mpf_dtmf_generator_t *gen;
@@ -170,8 +170,8 @@
 	qlen = strlen(generator->queue);
 	if (qlen + dlen > MPF_DTMFGEN_QUEUE_LEN) {
 		ret = FALSE;
-		apt_log(APT_LOG_MARK, APT_PRIO_WARNING, "DTMF queue too short (%d), "
-			"cannot add %d digit%s, already has %d", MPF_DTMFGEN_QUEUE_LEN,
+		apt_log(APT_LOG_MARK, APT_PRIO_WARNING, "DTMF queue too short (%"APR_SIZE_T_FMT"), "
+			"cannot add %d digit%s, already has %"APR_SIZE_T_FMT, MPF_DTMFGEN_QUEUE_LEN,
 			dlen, dlen > 1 ? "s" : "", qlen);
 	} else {
 		strcpy(generator->queue + qlen, digits);

Modified: freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_jitter_buffer.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_jitter_buffer.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_jitter_buffer.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -36,12 +36,12 @@
 	/* number of frames */
 	apr_size_t       frame_count;
 	/* frame timestamp units (samples) */
-	apr_size_t       frame_ts;
+	apr_uint32_t    frame_ts;
 	/* frame size in bytes */
 	apr_size_t       frame_size;
 
 	/* playout delay in timetsamp units */
-	apr_size_t       playout_delay_ts;
+	apr_uint32_t     playout_delay_ts;
 
 	/* write should be synchronized (offset calculated) */
 	apr_byte_t       write_sync;
@@ -49,14 +49,14 @@
 	int              write_ts_offset;
 	
 	/* write pointer in timestamp units */
-	apr_size_t       write_ts;
+	apr_uint32_t     write_ts;
 	/* read pointer in timestamp units */
-	apr_size_t       read_ts;
+	apr_uint32_t     read_ts;
 
 	/* timestamp event starts at */
-	apr_size_t              event_write_base_ts;
+	apr_uint32_t                   event_write_base_ts;
 	/* the first (base) frame of the event */
-	mpf_named_event_frame_t event_write_base;
+	mpf_named_event_frame_t        event_write_base;
 	/* the last received update for the event */
 	const mpf_named_event_frame_t *event_write_update;
 };
@@ -90,7 +90,7 @@
 	jb->config = jb_config;
 	jb->codec = codec;
 
-	jb->frame_ts = mpf_codec_frame_samples_calculate(descriptor);
+	jb->frame_ts = (apr_uint32_t)mpf_codec_frame_samples_calculate(descriptor);
 	jb->frame_size = mpf_codec_frame_size_calculate(descriptor,codec->attribs);
 	jb->frame_count = jb->config->max_playout_delay / CODEC_FRAME_TIME_BASE;
 	jb->raw_data = apr_palloc(pool,jb->frame_size*jb->frame_count);
@@ -102,8 +102,8 @@
 		frame->codec_frame.buffer = jb->raw_data + i*jb->frame_size;
 	}
 
-	jb->playout_delay_ts = jb->config->initial_playout_delay *
-		descriptor->channel_count * descriptor->sampling_rate / 1000;
+	jb->playout_delay_ts = (apr_uint32_t)(jb->config->initial_playout_delay *
+		descriptor->channel_count * descriptor->sampling_rate / 1000);
 
 	jb->write_sync = 1;
 	jb->write_ts_offset = 0;
@@ -139,7 +139,7 @@
 	return &jb->frames[index];
 }
 
-static APR_INLINE jb_result_t mpf_jitter_buffer_write_prepare(mpf_jitter_buffer_t *jb, apr_uint32_t ts, apr_size_t *write_ts)
+static APR_INLINE jb_result_t mpf_jitter_buffer_write_prepare(mpf_jitter_buffer_t *jb, apr_uint32_t ts, apr_uint32_t *write_ts)
 {
 	if(jb->write_sync) {
 		jb->write_ts_offset = ts - jb->write_ts;
@@ -157,7 +157,7 @@
 jb_result_t mpf_jitter_buffer_write(mpf_jitter_buffer_t *jb, void *buffer, apr_size_t size, apr_uint32_t ts)
 {
 	mpf_frame_t *media_frame;
-	apr_size_t write_ts;
+	apr_uint32_t write_ts;
 	apr_size_t available_frame_count;
 	jb_result_t result = mpf_jitter_buffer_write_prepare(jb,ts,&write_ts);
 	if(result != JB_OK) {
@@ -176,18 +176,18 @@
 		}
 		else {
 			/* too late */
-			JB_TRACE("JB write ts=%d too late\n",write_ts);
+			JB_TRACE("JB write ts=%"APR_SIZE_T_FMT" too late\n",write_ts);
 			return JB_DISCARD_TOO_LATE;
 		}
 	}
 	available_frame_count = jb->frame_count - (write_ts - jb->read_ts)/jb->frame_ts;
 	if(available_frame_count <= 0) {
 		/* too early */
-		JB_TRACE("JB write ts=%d too early\n",write_ts);
+		JB_TRACE("JB write ts=%"APR_SIZE_T_FMT" too early\n",write_ts);
 		return JB_DISCARD_TOO_EARLY;
 	}
 
-	JB_TRACE("JB write ts=%d size=%d\n",write_ts,size);
+	JB_TRACE("JB write ts=%"APR_SIZE_T_FMT" size=%"APR_SIZE_T_FMT"\n",write_ts,size);
 	while(available_frame_count && size) {
 		media_frame = mpf_jitter_buffer_frame_get(jb,write_ts);
 		media_frame->codec_frame.size = jb->frame_size;
@@ -213,7 +213,7 @@
 jb_result_t mpf_jitter_buffer_event_write(mpf_jitter_buffer_t *jb, const mpf_named_event_frame_t *named_event, apr_uint32_t ts, apr_byte_t marker)
 {
 	mpf_frame_t *media_frame;
-	apr_size_t write_ts;
+	apr_uint32_t write_ts;
 	jb_result_t result = mpf_jitter_buffer_write_prepare(jb,ts,&write_ts);
 	if(result != JB_OK) {
 		return result;
@@ -221,7 +221,7 @@
 
 	/* new event detection */
 	if(!marker) {
-		if(jb->event_write_base.event_id != named_event->event_id) {
+		if(jb->event_write_base.event_id != named_event->event_id || !jb->event_write_update) {
 			/* new event detected, marker is missing though */
 			marker = 1;
 		}
@@ -259,18 +259,18 @@
 
 	if(write_ts < jb->read_ts) {
 		/* too late */
-		JB_TRACE("JB write ts=%d event=%d duration=%d too late\n",
+		JB_TRACE("JB write ts=%"APR_SIZE_T_FMT" event=%d duration=%d too late\n",
 			write_ts,named_event->event_id,named_event->duration);
 		return JB_DISCARD_TOO_LATE;
 	}
 	else if( (write_ts - jb->read_ts)/jb->frame_ts >= jb->frame_count) {
 		/* too early */
-		JB_TRACE("JB write ts=%d event=%d duration=%d too early\n",
+		JB_TRACE("JB write ts=%"APR_SIZE_T_FMT" event=%d duration=%d too early\n",
 			write_ts,named_event->event_id,named_event->duration);
 		return JB_DISCARD_TOO_EARLY;
 	}
 
-	JB_TRACE("JB write ts=%d event=%d duration=%d\n",
+	JB_TRACE("JB write ts=%"APR_SIZE_T_FMT" event=%d duration=%d\n",
 		write_ts,named_event->event_id,named_event->duration);
 	media_frame = mpf_jitter_buffer_frame_get(jb,write_ts);
 	media_frame->event_frame = *named_event;
@@ -295,7 +295,7 @@
 	mpf_frame_t *src_media_frame = mpf_jitter_buffer_frame_get(jb,jb->read_ts);
 	if(jb->write_ts > jb->read_ts) {
 		/* normal read */
-		JB_TRACE("JB read ts=%d\n",	jb->read_ts);
+		JB_TRACE("JB read ts=%"APR_SIZE_T_FMT"\n",	jb->read_ts);
 		media_frame->type = src_media_frame->type;
 		media_frame->marker = src_media_frame->marker;
 		if(media_frame->type & MEDIA_FRAME_TYPE_AUDIO) {
@@ -308,7 +308,7 @@
 	}
 	else {
 		/* underflow */
-		JB_TRACE("JB read ts=%d underflow\n", jb->read_ts);
+		JB_TRACE("JB read ts=%"APR_SIZE_T_FMT" underflow\n", jb->read_ts);
 		media_frame->type = MEDIA_FRAME_TYPE_NONE;
 		media_frame->marker = MPF_MARKER_NONE;
 		jb->write_ts += jb->frame_ts;

Modified: freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_mixer.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_mixer.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_mixer.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -115,9 +115,7 @@
 		source = mixer->source_arr[i];
 		if(source) {
 			mpf_audio_stream_trace(source,STREAM_DIRECTION_RECEIVE,&output);
-			if(apt_text_is_eos(&output) == FALSE) {
-				*output.pos++ = ';';
-			}
+			apt_text_char_insert(&output,';');
 		}
 	}
 

Modified: freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_multiplier.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_multiplier.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_multiplier.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -100,9 +100,7 @@
 		sink = multiplier->sink_arr[i];
 		if(sink) {
 			mpf_audio_stream_trace(sink,STREAM_DIRECTION_SEND,&output);
-			if(apt_text_is_eos(&output) == FALSE) {
-				*output.pos++ = ';';
-			}
+			apt_text_char_insert(&output,';');
 		}
 	}
 

Modified: freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_rtp_stream.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_rtp_stream.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_rtp_stream.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -177,6 +177,7 @@
 			}
 		} while((is_port_ok == FALSE) && (first_port_in_search != rtp_stream->config->rtp_port_cur));
 		if(is_port_ok == FALSE) {
+			apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Find Free RTP Port");
 			local_media->state = MPF_MEDIA_DISABLED;
 			status = FALSE;
 		}
@@ -455,7 +456,7 @@
 						codec,
 						rtp_stream->pool);
 
-	apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Open RTP Receiver %s:%hu <- %s:%hu playout [%d ms]",
+	apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Open RTP Receiver %s:%hu <- %s:%hu playout [%"APR_SIZE_T_FMT" ms]",
 			rtp_stream->rtp_l_sockaddr->hostname,
 			rtp_stream->rtp_l_sockaddr->port,
 			rtp_stream->rtp_r_sockaddr->hostname,
@@ -909,7 +910,7 @@
 					transmitter->packet_data,
 					&transmitter->packet_size) == APR_SUCCESS) {
 			transmitter->sr_stat.sent_packets++;
-			transmitter->sr_stat.sent_octets += transmitter->packet_size - sizeof(rtp_header_t);
+			transmitter->sr_stat.sent_octets += (apr_uint32_t)transmitter->packet_size - sizeof(rtp_header_t);
 		}
 		else {
 			status = FALSE;
@@ -1033,11 +1034,11 @@
 		0,
 		pool);
 	if(!*l_sockaddr) {
-		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Get Sockaddr %s:%hu",ip,port);
+		apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Failed to Get Sockaddr %s:%hu",ip,port);
 		return NULL;
 	}
 	if(apr_socket_create(&socket,(*l_sockaddr)->family,SOCK_DGRAM,0,pool) != APR_SUCCESS) {
-		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Create Socket %s:%hu", ip,port);
+		apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Failed to Create Socket %s:%hu", ip,port);
 		return NULL;
 	}
 	
@@ -1046,7 +1047,7 @@
 	apr_socket_opt_set(socket,APR_SO_REUSEADDR,1);
 
 	if(apr_socket_bind(socket,*l_sockaddr) != APR_SUCCESS) {
-		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Bind Socket to %s:%hu", ip,port);
+		apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Failed to Bind Socket to %s:%hu", ip,port);
 		apr_socket_close(socket);
 		return NULL;
 	}
@@ -1057,13 +1058,13 @@
 {
 	stream->rtp_socket = mpf_socket_create(&stream->rtp_l_sockaddr,local_media->ip.buf,local_media->port,stream->pool);
 	if(!stream->rtp_socket) {
-		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Create RTP Socket");
+		apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Failed to Create RTP Socket");
 		return FALSE;
 	}
 
 	stream->rtcp_socket = mpf_socket_create(&stream->rtcp_l_sockaddr,local_media->ip.buf,local_media->port+1,stream->pool);
 	if(!stream->rtcp_socket) {
-		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Create RTCP Socket");
+		apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Failed to Create RTCP Socket");
 	}
 	return TRUE;
 }
@@ -1226,7 +1227,7 @@
 	rtcp_packet = (rtcp_packet_t*) (buffer + length);
 	length += rtcp_sdes_generate(rtp_stream,rtcp_packet,sizeof(buffer)-length);
 	
-	apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Send Compound RTCP Packet [%d bytes] %s:%hu -> %s:%hu",
+	apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Send Compound RTCP Packet [%"APR_SIZE_T_FMT" bytes] %s:%hu -> %s:%hu",
 		length,
 		rtp_stream->rtcp_l_sockaddr->hostname,
 		rtp_stream->rtcp_l_sockaddr->port,
@@ -1238,7 +1239,7 @@
 				0,
 				buffer,
 				&length) != APR_SUCCESS) {
-		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Send Compound RTCP Packet [%d bytes] %s:%hu -> %s:%hu",
+		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Send Compound RTCP Packet [%"APR_SIZE_T_FMT" bytes] %s:%hu -> %s:%hu",
 			length,
 			rtp_stream->rtcp_l_sockaddr->hostname,
 			rtp_stream->rtcp_l_sockaddr->port,
@@ -1275,7 +1276,7 @@
 	rtcp_packet = (rtcp_packet_t*) (buffer + length);
 	length += rtcp_bye_generate(rtp_stream,rtcp_packet,sizeof(buffer)-length,reason);
 
-	apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Send Compound RTCP Packet [BYE] [%d bytes] %s:%hu -> %s:%hu",
+	apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Send Compound RTCP Packet [BYE] [%"APR_SIZE_T_FMT" bytes] %s:%hu -> %s:%hu",
 		length,
 		rtp_stream->rtcp_l_sockaddr->hostname,
 		rtp_stream->rtcp_l_sockaddr->port,
@@ -1287,7 +1288,7 @@
 				0,
 				buffer,
 				&length) != APR_SUCCESS) {
-		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Send Compound RTCP Packet [BYE] [%d bytes] %s:%hu -> %s:%hu",
+		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Send Compound RTCP Packet [BYE] [%"APR_SIZE_T_FMT" bytes] %s:%hu -> %s:%hu",
 			length,
 			rtp_stream->rtcp_l_sockaddr->hostname,
 			rtp_stream->rtcp_l_sockaddr->port,
@@ -1384,7 +1385,7 @@
 		apr_size_t length = sizeof(buffer);
 		
 		if(apr_socket_recv(rtp_stream->rtcp_socket,buffer,&length) == APR_SUCCESS) {
-			apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Receive Compound RTCP Packet [%d bytes] %s:%hu <- %s:%hu",
+			apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Receive Compound RTCP Packet [%"APR_SIZE_T_FMT" bytes] %s:%hu <- %s:%hu",
 					length,
 					rtp_stream->rtcp_l_sockaddr->hostname,
 					rtp_stream->rtcp_l_sockaddr->port,

Modified: freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_scheduler.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_scheduler.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_scheduler.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -226,6 +226,7 @@
 #endif
 	}
 	
+	apr_thread_exit(thread,APR_SUCCESS);
 	return NULL;
 }
 

Modified: freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_timer_manager.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_timer_manager.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mpf/src/mpf_timer_manager.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -57,7 +57,7 @@
 	mpf_timer_manager_t *timer_manager = apr_palloc(pool,sizeof(mpf_timer_manager_t));
 	APR_RING_INIT(&timer_manager->head, mpf_timer_t, link);
 	timer_manager->elapsed_time = 0;
-	timer_manager->resolution = 100; // 100 ms
+	timer_manager->resolution = 100; /* 100 ms */
 
 	mpf_scheduler_timer_clock_set(scheduler,timer_manager->resolution,mpf_scheduler_proc,timer_manager);
 	return timer_manager;
@@ -108,7 +108,7 @@
 	
 	/* calculate time to elapse */
 	timer->scheduled_time = manager->elapsed_time + timeout;
-	apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Set Timer 0x%x [%d]",timer,timer->scheduled_time);
+	apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Set Timer 0x%x [%lu]",timer,timer->scheduled_time);
 
 	if(APR_RING_EMPTY(&timer->manager->head, mpf_timer_t, link)) {
 		APR_RING_INSERT_TAIL(&manager->head,timer,mpf_timer_t,link);
@@ -126,7 +126,7 @@
 		return FALSE;
 	}
 
-	apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Kill Timer 0x%x [%d]",timer,timer->scheduled_time);
+	apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Kill Timer 0x%x [%lu]",timer,timer->scheduled_time);
 	/* remove node (timer) from the list */
 	APR_RING_REMOVE(timer,link);
 	timer->scheduled_time = 0;
@@ -163,7 +163,7 @@
 	/* increment elapsed time */
 	manager->elapsed_time += manager->resolution;
 	if(manager->elapsed_time >= 0xFFFF) {
-		apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Reschedule Timers [%d]",manager->elapsed_time);
+		apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Reschedule Timers [%lu]",manager->elapsed_time);
 		mpf_timers_reschedule(manager);
 	}
 
@@ -177,7 +177,7 @@
 			break;
 		}
 		
-		apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Timer Elapsed 0x%x [%d]",timer,timer->scheduled_time);
+		apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Timer Elapsed 0x%x [%lu]",timer,timer->scheduled_time);
 		/* remove the elapsed timer from the list */
 		APR_RING_REMOVE(timer, link);
 		timer->scheduled_time = 0;

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp/control/include/mrcp_stream.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp/control/include/mrcp_stream.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp/control/include/mrcp_stream.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -27,12 +27,12 @@
 
 APT_BEGIN_EXTERN_C
 
-/** Result of MRCP stream processing (parse/generate) */
+/** Status of MRCP stream processing (parse/generate) */
 typedef enum {
-	MRCP_STREAM_MESSAGE_COMPLETE,
-	MRCP_STREAM_MESSAGE_TRUNCATED,
-	MRCP_STREAM_MESSAGE_INVALID
-} mrcp_stream_result_e;
+	MRCP_STREAM_STATUS_COMPLETE,
+	MRCP_STREAM_STATUS_INCOMPLETE,
+	MRCP_STREAM_STATUS_INVALID
+} mrcp_stream_status_e;
 
 /** Opaque MRCP parser declaration */
 typedef struct mrcp_parser_t mrcp_parser_t;
@@ -40,7 +40,7 @@
 typedef struct mrcp_generator_t mrcp_generator_t;
 
 /** MRCP message handler */
-typedef apt_bool_t (*mrcp_message_handler_f)(void *obj, mrcp_message_t *message, mrcp_stream_result_e result);
+typedef apt_bool_t (*mrcp_message_handler_f)(void *obj, mrcp_message_t *message, mrcp_stream_status_e status);
 
 /** Parse MRCP message (excluding message body) */
 MRCP_DECLARE(apt_bool_t) mrcp_message_parse(mrcp_resource_factory_t *resource_factory, mrcp_message_t *message, apt_text_stream_t *stream);
@@ -56,7 +56,7 @@
 MRCP_DECLARE(void) mrcp_parser_resource_name_set(mrcp_parser_t *parser, const apt_str_t *resource_name);
 
 /** Parse MRCP stream */
-MRCP_DECLARE(mrcp_stream_result_e) mrcp_parser_run(mrcp_parser_t *parser, apt_text_stream_t *stream);
+MRCP_DECLARE(mrcp_stream_status_e) mrcp_parser_run(mrcp_parser_t *parser, apt_text_stream_t *stream);
 
 /** Get parsed MRCP message */
 MRCP_DECLARE(mrcp_message_t*) mrcp_parser_message_get(const mrcp_parser_t *parser);
@@ -69,7 +69,7 @@
 MRCP_DECLARE(apt_bool_t) mrcp_generator_message_set(mrcp_generator_t *generator, mrcp_message_t *message);
 
 /** Generate MRCP stream */
-MRCP_DECLARE(mrcp_stream_result_e) mrcp_generator_run(mrcp_generator_t *generator, apt_text_stream_t *stream);
+MRCP_DECLARE(mrcp_stream_status_e) mrcp_generator_run(mrcp_generator_t *generator, apt_text_stream_t *stream);
 
 /** Walk through MRCP stream and call message handler for each parsed message */
 MRCP_DECLARE(apt_bool_t) mrcp_stream_walk(mrcp_parser_t *parser, apt_text_stream_t *stream, mrcp_message_handler_f handler, void *obj);

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp/control/src/mrcp_stream.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp/control/src/mrcp_stream.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp/control/src/mrcp_stream.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -20,12 +20,20 @@
 #include "mrcp_resource_factory.h"
 #include "apt_log.h"
 
+/** Stage of MRCP stream processing (parse/generate) */
+typedef enum {
+	MRCP_STREAM_STAGE_NONE,
+	MRCP_STREAM_STAGE_START_LINE,
+	MRCP_STREAM_STAGE_RESOURCE,
+	MRCP_STREAM_STAGE_HEADER,
+	MRCP_STREAM_STAGE_BODY
+} mrcp_stream_stage_e;
+
 /** MRCP parser */
 struct mrcp_parser_t {
 	mrcp_resource_factory_t *resource_factory;
 	apt_str_t                resource_name;
-	mrcp_stream_result_e     result;
-	char                    *pos;
+	mrcp_stream_stage_e      stage;
 	apt_bool_t               skip_lf;
 	mrcp_message_t          *message;
 	apr_pool_t              *pool;
@@ -34,17 +42,16 @@
 /** MRCP generator */
 struct mrcp_generator_t {
 	mrcp_resource_factory_t *resource_factory;
-	mrcp_stream_result_e     result;
-	char                    *pos;
+	mrcp_stream_stage_e      stage;
 	mrcp_message_t          *message;
 	apr_pool_t              *pool;
 };
 
 
 /** Read MRCP message-body */
-static mrcp_stream_result_e mrcp_message_body_read(mrcp_message_t *message, apt_text_stream_t *stream)
+static apt_bool_t mrcp_message_body_read(mrcp_message_t *message, apt_text_stream_t *stream)
 {
-	mrcp_stream_result_e result = MRCP_STREAM_MESSAGE_COMPLETE;
+	apt_bool_t status = TRUE;
 	if(message->body.buf) {
 		mrcp_generic_header_t *generic_header = mrcp_generic_header_get(message);
 		/* stream length available to read */
@@ -54,7 +61,7 @@
 		if(required_length > stream_length) {
 			required_length = stream_length;
 			/* not complete */
-			result = MRCP_STREAM_MESSAGE_TRUNCATED;
+			status = FALSE;
 		}
 		memcpy(message->body.buf+message->body.length,stream->pos,required_length);
 		message->body.length += required_length;
@@ -62,28 +69,13 @@
 		message->body.buf[message->body.length] = '\0';
 	}
 
-	return result;
+	return status;
 }
 
-/** Parse MRCP message-body */
-static mrcp_stream_result_e mrcp_message_body_parse(mrcp_message_t *message, apt_text_stream_t *stream, apr_pool_t *pool)
-{
-	if(mrcp_generic_header_property_check(message,GENERIC_HEADER_CONTENT_LENGTH) == TRUE) {
-		mrcp_generic_header_t *generic_header = mrcp_generic_header_get(message);
-		if(generic_header && generic_header->content_length) {
-			apt_str_t *body = &message->body;
-			body->buf = apr_palloc(pool,generic_header->content_length+1);
-			body->length = 0;
-			return mrcp_message_body_read(message,stream);
-		}
-	}
-	return MRCP_STREAM_MESSAGE_COMPLETE;
-}
-
 /** Write MRCP message-body */
-static mrcp_stream_result_e mrcp_message_body_write(mrcp_message_t *message, apt_text_stream_t *stream)
+static apt_bool_t mrcp_message_body_write(mrcp_message_t *message, apt_text_stream_t *stream)
 {
-	mrcp_stream_result_e result = MRCP_STREAM_MESSAGE_COMPLETE;
+	apt_bool_t status = TRUE;
 	mrcp_generic_header_t *generic_header = mrcp_generic_header_get(message);
 	if(generic_header && message->body.length < generic_header->content_length) {
 		/* stream length available to write */
@@ -93,7 +85,7 @@
 		if(required_length > stream_length) {
 			required_length = stream_length;
 			/* not complete */
-			result = MRCP_STREAM_MESSAGE_TRUNCATED;
+			status = FALSE;
 		}
 
 		memcpy(stream->pos,message->body.buf+message->body.length,required_length);
@@ -101,23 +93,9 @@
 		stream->pos += required_length;
 	}
 
-	return result;
+	return status;
 }
 
-/** Generate MRCP message-body */
-static mrcp_stream_result_e mrcp_message_body_generate(mrcp_message_t *message, apt_text_stream_t *stream)
-{
-	if(mrcp_generic_header_property_check(message,GENERIC_HEADER_CONTENT_LENGTH) == TRUE) {
-		mrcp_generic_header_t *generic_header = mrcp_generic_header_get(message);
-		if(generic_header && generic_header->content_length) {
-			apt_str_t *body = &message->body;
-			body->length = 0;
-			return mrcp_message_body_write(message,stream);
-		}
-	}
-	return MRCP_STREAM_MESSAGE_COMPLETE;
-}
-
 /** Parse MRCP message (excluding message body) */
 MRCP_DECLARE(apt_bool_t) mrcp_message_parse(mrcp_resource_factory_t *resource_factory, mrcp_message_t *message, apt_text_stream_t *stream)
 {
@@ -187,8 +165,7 @@
 	mrcp_parser_t *parser = apr_palloc(pool,sizeof(mrcp_parser_t));
 	parser->resource_factory = resource_factory;
 	apt_string_reset(&parser->resource_name);
-	parser->result = MRCP_STREAM_MESSAGE_INVALID;
-	parser->pos = NULL;
+	parser->stage = MRCP_STREAM_STAGE_NONE;
 	parser->skip_lf = FALSE;
 	parser->message = NULL;
 	parser->pool = pool;
@@ -203,54 +180,90 @@
 	}
 }
 
-static mrcp_stream_result_e mrcp_parser_break(mrcp_parser_t *parser, apt_text_stream_t *stream)
+static mrcp_stream_status_e mrcp_parser_break(mrcp_parser_t *parser, apt_text_stream_t *stream)
 {
-	/* failed to parse either start-line or header */
+	/* failed to parse message */
 	if(apt_text_is_eos(stream) == TRUE) {
-		/* end of stream reached, rewind/restore stream */
-		stream->pos = parser->pos;
-		parser->result = MRCP_STREAM_MESSAGE_TRUNCATED;
-		parser->message = NULL;
+		/* end of stream reached */
+		return MRCP_STREAM_STATUS_INCOMPLETE;
 	}
-	else {
-		/* error case */
-		parser->result = MRCP_STREAM_MESSAGE_INVALID;
-	}
-	return parser->result;
+
+	/* error case */
+	parser->stage = MRCP_STREAM_STAGE_NONE;
+	return MRCP_STREAM_STATUS_INVALID;
 }
 
 /** Parse MRCP stream */
-MRCP_DECLARE(mrcp_stream_result_e) mrcp_parser_run(mrcp_parser_t *parser, apt_text_stream_t *stream)
+MRCP_DECLARE(mrcp_stream_status_e) mrcp_parser_run(mrcp_parser_t *parser, apt_text_stream_t *stream)
 {
 	mrcp_message_t *message = parser->message;
-	if(message && parser->result == MRCP_STREAM_MESSAGE_TRUNCATED) {
-		/* process continuation data */
-		parser->result = mrcp_message_body_read(message,stream);
-		return parser->result;
+	if(parser->stage == MRCP_STREAM_STAGE_NONE || !message) {
+		/* create new MRCP message */
+		message = mrcp_message_create(parser->pool);
+		message->channel_id.resource_name = parser->resource_name;
+		parser->message = message;
+		parser->stage = MRCP_STREAM_STAGE_START_LINE;
 	}
-	
-	/* create new MRCP message */
-	message = mrcp_message_create(parser->pool);
-	message->channel_id.resource_name = parser->resource_name;
-	parser->message = message;
-	/* store current position to be able to rewind/restore stream if needed */
-	parser->pos = stream->pos;
 
-	/* parse start-line and header */
-	if(mrcp_message_parse(parser->resource_factory,message,stream) == FALSE) {
-		return mrcp_parser_break(parser,stream);
+	if(parser->stage == MRCP_STREAM_STAGE_START_LINE) {
+		/* parse start-line */
+		if(mrcp_start_line_parse(&message->start_line,stream,message->pool) == FALSE) {
+			return mrcp_parser_break(parser,stream);
+		}
+		parser->stage = MRCP_STREAM_STAGE_RESOURCE;
 	}
 
-	/* parse body */
-	parser->result = mrcp_message_body_parse(message,stream,message->pool);
+	if(parser->stage == MRCP_STREAM_STAGE_RESOURCE) {
+		mrcp_resource_t *resource;
+		
+		if(message->start_line.version == MRCP_VERSION_2) {
+			mrcp_channel_id_parse(&message->channel_id,stream,message->pool);
+		}
 
+		/* find resource */
+		resource = mrcp_resource_find(parser->resource_factory,&message->channel_id.resource_name);
+		if(!resource) {
+			return mrcp_parser_break(parser,stream);
+		}
+
+		if(mrcp_message_resource_set(message,resource) == FALSE) {
+			return mrcp_parser_break(parser,stream);
+		}
+		parser->stage = MRCP_STREAM_STAGE_HEADER;
+	}
+
+	if(parser->stage == MRCP_STREAM_STAGE_HEADER) {
+		/* parse header */
+		if(mrcp_message_header_parse(&message->header,stream,message->pool) == FALSE) {
+			return mrcp_parser_break(parser,stream);
+		}
+		
+		parser->stage = MRCP_STREAM_STAGE_NONE;
+		if(mrcp_generic_header_property_check(message,GENERIC_HEADER_CONTENT_LENGTH) == TRUE) {
+			mrcp_generic_header_t *generic_header = mrcp_generic_header_get(message);
+			if(generic_header && generic_header->content_length) {
+				apt_str_t *body = &message->body;
+				body->buf = apr_palloc(message->pool,generic_header->content_length+1);
+				body->length = 0;
+				parser->stage = MRCP_STREAM_STAGE_BODY;
+			}
+		}
+	}
+
+	if(parser->stage == MRCP_STREAM_STAGE_BODY) {
+		if(mrcp_message_body_read(message,stream) == FALSE) {
+			return mrcp_parser_break(parser,stream);
+		}
+		parser->stage = MRCP_STREAM_STAGE_NONE;
+	}
+
 	/* in the worst case message segmentation may occur between <CR> and <LF> 
 	   of the final empty header */
 	if(!message->body.length && *(stream->pos-1)== APT_TOKEN_CR) {
 		/* if this is the case be prepared to skip <LF> */
 		parser->skip_lf = TRUE;
 	}
-	return parser->result;
+	return MRCP_STREAM_STATUS_COMPLETE;
 }
 
 /** Get parsed MRCP message */
@@ -265,8 +278,7 @@
 {
 	mrcp_generator_t *generator = apr_palloc(pool,sizeof(mrcp_generator_t));
 	generator->resource_factory = resource_factory;
-	generator->result = MRCP_STREAM_MESSAGE_INVALID;
-	generator->pos = NULL;
+	generator->stage = MRCP_STREAM_STAGE_NONE;
 	generator->message = NULL;
 	generator->pool = pool;
 	return generator;
@@ -282,64 +294,96 @@
 	return TRUE;
 }
 
-static mrcp_stream_result_e mrcp_generator_break(mrcp_generator_t *generator, apt_text_stream_t *stream)
+static mrcp_stream_status_e mrcp_generator_break(mrcp_generator_t *generator, apt_text_stream_t *stream)
 {
-	/* failed to generate either start-line or header */
+	/* failed to generate message */
 	if(apt_text_is_eos(stream) == TRUE) {
-		/* end of stream reached, rewind/restore stream */
-		stream->pos = generator->pos;
-		generator->result = MRCP_STREAM_MESSAGE_TRUNCATED;
+		/* end of stream reached */
+		return MRCP_STREAM_STATUS_INCOMPLETE;
 	}
-	else {
-		/* error case */
-		generator->result = MRCP_STREAM_MESSAGE_INVALID;
-	}
-	return generator->result;
+
+	/* error case */
+	generator->stage = MRCP_STREAM_STAGE_NONE;
+	return MRCP_STREAM_STATUS_INVALID;
 }
 
 /** Generate MRCP stream */
-MRCP_DECLARE(mrcp_stream_result_e) mrcp_generator_run(mrcp_generator_t *generator, apt_text_stream_t *stream)
+MRCP_DECLARE(mrcp_stream_status_e) mrcp_generator_run(mrcp_generator_t *generator, apt_text_stream_t *stream)
 {
 	mrcp_message_t *message = generator->message;
 	if(!message) {
-		return MRCP_STREAM_MESSAGE_INVALID;
+		return MRCP_STREAM_STATUS_INVALID;
 	}
 
-	if(message && generator->result == MRCP_STREAM_MESSAGE_TRUNCATED) {
-		/* process continuation data */
-		generator->result = mrcp_message_body_write(message,stream);
-		return generator->result;
+	if(generator->stage == MRCP_STREAM_STAGE_NONE) {
+		/* validate message */
+		if(mrcp_message_validate(message) == FALSE) {
+			return MRCP_STREAM_STATUS_INVALID;
+		}
+		generator->stage = MRCP_STREAM_STAGE_START_LINE;
 	}
+	
+	if(generator->stage == MRCP_STREAM_STAGE_START_LINE) {
+		/* generate start-line */
+		if(mrcp_start_line_generate(&message->start_line,stream) == FALSE) {
+			return mrcp_generator_break(generator,stream);
+		}
+		
+		if(message->start_line.version == MRCP_VERSION_2) {
+			mrcp_channel_id_generate(&message->channel_id,stream);
+		}
 
-	/* generate start-line and header */
-	if(mrcp_message_generate(generator->resource_factory,message,stream) == FALSE) {
-		return mrcp_generator_break(generator,stream);
+		/* generate header */
+		if(mrcp_message_header_generate(&message->header,stream) == FALSE) {
+			return mrcp_generator_break(generator,stream);
+		}
+
+		/* finalize start-line generation */
+		if(mrcp_start_line_finalize(&message->start_line,message->body.length,stream) == FALSE) {
+			return mrcp_generator_break(generator,stream);
+		}
+		
+		generator->stage = MRCP_STREAM_STAGE_NONE;
+		if(mrcp_generic_header_property_check(message,GENERIC_HEADER_CONTENT_LENGTH) == TRUE) {
+			mrcp_generic_header_t *generic_header = mrcp_generic_header_get(message);
+			if(generic_header && generic_header->content_length) {
+				apt_str_t *body = &message->body;
+				body->length = 0;
+				generator->stage = MRCP_STREAM_STAGE_BODY;
+			}
+		}
 	}
 
-	/* generate body */
-	generator->result = mrcp_message_body_generate(message,stream);
-	return generator->result;
+	if(generator->stage == MRCP_STREAM_STAGE_BODY) {
+		if(mrcp_message_body_write(message,stream) == FALSE) {
+			return mrcp_generator_break(generator,stream);
+		}
+		
+		generator->stage = MRCP_STREAM_STAGE_NONE;
+	}
+
+	return MRCP_STREAM_STATUS_COMPLETE;
 }
 
 
 /** Walk through MRCP stream and invoke message handler for each parsed message */
 MRCP_DECLARE(apt_bool_t) mrcp_stream_walk(mrcp_parser_t *parser, apt_text_stream_t *stream, mrcp_message_handler_f handler, void *obj)
 {
-	mrcp_stream_result_e result;
+	mrcp_stream_status_e status;
 	if(parser->skip_lf == TRUE) {
 		/* skip <LF> occurred as a result of message segmentation between <CR> and <LF> */
 		apt_text_char_skip(stream,APT_TOKEN_LF);
 		parser->skip_lf = FALSE;
 	}
 	do {
-		result = mrcp_parser_run(parser,stream);
-		if(result == MRCP_STREAM_MESSAGE_COMPLETE) {
+		status = mrcp_parser_run(parser,stream);
+		if(status == MRCP_STREAM_STATUS_COMPLETE) {
 			/* message is completely parsed */
 			apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Parsed MRCP Message [%lu]", stream->pos - stream->text.buf);
 			/* invoke message handler */
-			handler(obj,parser->message,result);
+			handler(obj,parser->message,status);
 		}
-		else if(result == MRCP_STREAM_MESSAGE_TRUNCATED) {
+		else if(status == MRCP_STREAM_STATUS_INCOMPLETE) {
 			/* message is partially parsed, to be continued */
 			apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Truncated MRCP Message [%lu]", stream->pos - stream->text.buf);
 			/* prepare stream for further processing */
@@ -348,11 +392,11 @@
 			}
 			return TRUE;
 		}
-		else if(result == MRCP_STREAM_MESSAGE_INVALID){
+		else if(status == MRCP_STREAM_STATUS_INVALID){
 			/* error case */
 			apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Parse MRCP Message");
 			/* invoke message handler */
-			handler(obj,parser->message,result);
+			handler(obj,parser->message,status);
 			/* reset stream pos */
 			stream->pos = stream->text.buf;
 			return FALSE;
@@ -361,6 +405,6 @@
 	while(apt_text_is_eos(stream) == FALSE);
 
 	/* reset stream pos */
-	stream->pos = stream->text.buf;
+	apt_text_stream_reset(stream);
 	return TRUE;
 }

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp/message/include/mrcp_header_accessor.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp/message/include/mrcp_header_accessor.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp/message/include/mrcp_header_accessor.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -149,6 +149,10 @@
 /** Add name only property */
 MRCP_DECLARE(void) mrcp_header_name_property_add(mrcp_header_accessor_t *accessor, apr_size_t id);
 
+
+/** Generate completion-cause */
+MRCP_DECLARE(apt_bool_t) mrcp_completion_cause_generate(const apt_str_table_item_t table[], apr_size_t size, apr_size_t cause, apt_text_stream_t *stream);
+
 APT_END_EXTERN_C
 
 #endif /*__MRCP_HEADER_ACCESSOR_H__*/

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp/message/src/mrcp_generic_header.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp/message/src/mrcp_generic_header.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp/message/src/mrcp_generic_header.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -43,7 +43,7 @@
 	apt_str_t field;
 	apt_text_stream_t stream;
 	stream.text = *value;
-	stream.pos = stream.text.buf;
+	apt_text_stream_reset(&stream);
 	request_id_list->count = 0;
 	while(request_id_list->count < MAX_ACTIVE_REQUEST_ID_COUNT) {
 		if(apt_text_field_read(&stream,',',TRUE,&field) == FALSE) {

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp/message/src/mrcp_header_accessor.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp/message/src/mrcp_header_accessor.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp/message/src/mrcp_header_accessor.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 
+#include <stdio.h>
 #include "mrcp_header_accessor.h"
 
 typedef enum {
@@ -191,3 +192,22 @@
 
 	return TRUE;
 }
+
+/** Generate completion-cause */
+MRCP_DECLARE(apt_bool_t) mrcp_completion_cause_generate(const apt_str_table_item_t table[], apr_size_t size, apr_size_t cause, apt_text_stream_t *stream)
+{
+	int length;
+	const apt_str_t *name = apt_string_table_str_get(table,size,cause);
+	if(!name) {
+		return FALSE;
+	}
+	length = sprintf(stream->pos,"%03"APR_SIZE_T_FMT" ",cause);
+	if(length <= 0) {
+		return FALSE;
+	}
+	stream->pos += length;
+
+	memcpy(stream->pos,name->buf,name->length);
+	stream->pos += name->length;
+	return TRUE;
+}

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp/message/src/mrcp_start_line.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp/message/src/mrcp_start_line.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp/message/src/mrcp_start_line.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -328,8 +328,8 @@
 		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Cannot parse MRCP start-line");
 		return FALSE;
 	}
-	line.pos = line.text.buf;
-
+	
+	apt_text_stream_reset(&line);
 	if(apt_text_field_read(&line,APT_TOKEN_SP,TRUE,&field) == FALSE) {
 		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Cannot read the first field in start-line");
 		return FALSE;

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp/mrcp.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp/mrcp.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp/mrcp.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\mrcp.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\mrcp.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -71,7 +74,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\mrcp.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\mrcp.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -122,6 +125,116 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mrcp.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories=""
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mrcp.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories=""
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp/resources/src/mrcp_recog_header.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp/resources/src/mrcp_recog_header.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp/resources/src/mrcp_recog_header.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -14,7 +14,6 @@
  * limitations under the License.
  */
 
-#include <stdio.h>
 #include "mrcp_recog_header.h"
 
 /** String table of MRCPv1 recognizer headers (mrcp_recog_header_id) */
@@ -134,23 +133,6 @@
 	{{"grammar-definition-failure", 26},9}
 };
 
-/** Generate MRCP recognizer completion-cause */
-static apt_bool_t mrcp_completion_cause_generate(mrcp_recog_completion_cause_e completion_cause, const apt_str_t *name, apt_text_stream_t *stream)
-{
-	int length = sprintf(stream->pos,"%03"APR_SIZE_T_FMT" ",completion_cause);
-	if(length <= 0) {
-		return FALSE;
-	}
-	stream->pos += length;
-
-	if(name) {
-		memcpy(stream->pos,name->buf,name->length);
-		stream->pos += name->length;
-	}
-	return TRUE;
-}
-
-
 /** Initialize recognizer header */
 static void mrcp_recog_header_init(mrcp_recog_header_t *recog_header)
 {
@@ -461,11 +443,11 @@
 		return apt_size_value_generate_from_float(recog_header->speed_vs_accuracy,value);
 	}
 	else if(id == RECOGNIZER_HEADER_COMPLETION_CAUSE) {
-		const apt_str_t *name = apt_string_table_str_get(
+		return mrcp_completion_cause_generate(
 			v1_completion_cause_string_table,
 			RECOGNIZER_COMPLETION_CAUSE_COUNT,
-			recog_header->completion_cause);
-		return mrcp_completion_cause_generate(recog_header->completion_cause,name,value);
+			recog_header->completion_cause,
+			value);
 	}
 	return mrcp_recog_header_generate(recog_header,id,value);
 }
@@ -484,11 +466,11 @@
 		return apt_float_value_generate(recog_header->speed_vs_accuracy,value);
 	}
 	else if(id == RECOGNIZER_HEADER_COMPLETION_CAUSE) {
-		const apt_str_t *name = apt_string_table_str_get(
+		return mrcp_completion_cause_generate(
 			v2_completion_cause_string_table,
 			RECOGNIZER_COMPLETION_CAUSE_COUNT,
-			recog_header->completion_cause);
-		return mrcp_completion_cause_generate(recog_header->completion_cause,name,value);
+			recog_header->completion_cause,
+			value);
 	}
 	return mrcp_recog_header_generate(recog_header,id,value);
 }

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp/resources/src/mrcp_recorder_header.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp/resources/src/mrcp_recorder_header.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp/resources/src/mrcp_recorder_header.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -14,7 +14,6 @@
  * limitations under the License.
  */
 
-#include <stdio.h>
 #include "mrcp_recorder_header.h"
 
 /** String table of recorder headers (mrcp_recorder_header_id) */
@@ -45,26 +44,7 @@
 	{{"error",             5},0}
 };
 
-/** Generate MRCP recorder completion-cause */
-static apt_bool_t mrcp_completion_cause_generate(
-						mrcp_recorder_completion_cause_e completion_cause, 
-						const apt_str_t *name, 
-						apt_text_stream_t *stream)
-{
-	int length = sprintf(stream->pos,"%03"APR_SIZE_T_FMT" ",completion_cause);
-	if(length <= 0) {
-		return FALSE;
-	}
-	stream->pos += length;
 
-	if(name) {
-		memcpy(stream->pos,name->buf,name->length);
-		stream->pos += name->length;
-	}
-	return TRUE;
-}
-
-
 /** Initialize recorder header */
 static void mrcp_recorder_header_init(mrcp_recorder_header_t *recorder_header)
 {
@@ -164,11 +144,11 @@
 			break;
 		case RECORDER_HEADER_COMPLETION_CAUSE:
 		{
-			const apt_str_t *name = apt_string_table_str_get(
+			mrcp_completion_cause_generate(
 				completion_cause_string_table,
 				RECORDER_COMPLETION_CAUSE_COUNT,
-				recorder_header->completion_cause);
-			mrcp_completion_cause_generate(recorder_header->completion_cause,name,value);
+				recorder_header->completion_cause,
+				value);
 			break;
 		}
 		case RECORDER_HEADER_COMPLETION_REASON:

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp/resources/src/mrcp_synth_header.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp/resources/src/mrcp_synth_header.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp/resources/src/mrcp_synth_header.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -14,7 +14,6 @@
  * limitations under the License.
  */
 
-#include <stdio.h>
 #include "mrcp_synth_header.h"
 
 /** String table of MRCP synthesizer headers (mrcp_synthesizer_header_id) */
@@ -214,7 +213,7 @@
 		apt_str_t str;
 		apt_text_stream_t stream;
 		stream.text = *value;
-		stream.pos = stream.text.buf;
+		apt_text_stream_reset(&stream);
 		stream.pos++;
 		if(apt_text_field_read(&stream,APT_TOKEN_SP,TRUE,&str) == FALSE) {
 			return FALSE;
@@ -253,25 +252,6 @@
 	return TRUE;
 }
 
-/** Generate MRCP synthesizer completion-cause */
-static apt_bool_t mrcp_completion_cause_generate(mrcp_synth_completion_cause_e completion_cause, apt_text_stream_t *stream)
-{
-	int length;
-	const apt_str_t *name = apt_string_table_str_get(completion_cause_string_table,SYNTHESIZER_COMPLETION_CAUSE_COUNT,completion_cause);
-	if(!name) {
-		return FALSE;
-	}
-	length = sprintf(stream->pos,"%03"APR_SIZE_T_FMT" ",completion_cause);
-	if(length <= 0) {
-		return FALSE;
-	}
-	stream->pos += length;
-
-	memcpy(stream->pos,name->buf,name->length);
-	stream->pos += name->length;
-	return TRUE;
-}
-
 /** Initialize synthesizer header */
 static void mrcp_synth_header_init(mrcp_synth_header_t *synth_header)
 {
@@ -398,7 +378,11 @@
 			apt_string_value_generate(&synth_header->speaker_profile,value);
 			break;
 		case SYNTHESIZER_HEADER_COMPLETION_CAUSE:
-			mrcp_completion_cause_generate(synth_header->completion_cause,value);
+			mrcp_completion_cause_generate(
+				completion_cause_string_table,
+				SYNTHESIZER_COMPLETION_CAUSE_COUNT,
+				synth_header->completion_cause,
+				value);
 			break;
 		case SYNTHESIZER_HEADER_COMPLETION_REASON:
 			apt_string_value_generate(&synth_header->completion_reason,value);

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp-client/include/mrcp_application.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp-client/include/mrcp_application.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp-client/include/mrcp_application.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -67,7 +67,6 @@
 
 /** Enumeration of MRCP signaling events */
 typedef enum {
-	MRCP_SIG_EVENT_READY,
 	MRCP_SIG_EVENT_TERMINATE
 } mrcp_sig_event_e;
 
@@ -126,9 +125,6 @@
 	/** Response (event) to mrcp_application_message_send() request */
 	apt_bool_t (*on_message_receive)(mrcp_application_t *application, mrcp_session_t *session, mrcp_channel_t *channel, mrcp_message_t *message);
 
-	/** Event indicating client stack is started and ready to process requests from the application */
-	apt_bool_t (*on_ready)(mrcp_application_t *application, mrcp_sig_status_code_e status);
-
 	/** Event indicating unexpected session/channel termination */
 	apt_bool_t (*on_terminate_event)(mrcp_application_t *application, mrcp_session_t *session, mrcp_channel_t *channel);
 

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp-client/include/mrcp_client.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp-client/include/mrcp_client.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp-client/include/mrcp_client.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -27,6 +27,9 @@
 
 APT_BEGIN_EXTERN_C
 
+/** Event handler used in case of asynchronous start */
+typedef void (*mrcp_client_handler_f)(apt_bool_t status);
+
 /**
  * Create MRCP client instance.
  * @return the created client instance
@@ -34,6 +37,14 @@
 MRCP_DECLARE(mrcp_client_t*) mrcp_client_create(apt_dir_layout_t *dir_layout);
 
 /**
+ * Set asynchronous start mode.
+ * @param client the MRCP client to set mode for
+ * @param handler the event handler to signal start completion
+ */
+MRCP_DECLARE(void) mrcp_client_async_start_set(mrcp_client_t *client, mrcp_client_handler_f handler);
+
+
+/**
  * Start message processing loop.
  * @param client the MRCP client to start
  * @return the created client instance

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp-client/mrcpclient.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp-client/mrcpclient.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp-client/mrcpclient.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpclient.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpclient.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -70,7 +73,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpclient.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpclient.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -120,6 +123,114 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpclient.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpclient.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp-client/src/mrcp_client.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp-client/src/mrcp_client.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp-client/src/mrcp_client.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 
+#include <apr_thread_cond.h>
 #include <apr_hash.h>
 #include "mrcp_client.h"
 #include "mrcp_resource_factory.h"
@@ -59,6 +60,14 @@
 
 	/** Connection task message pool */
 	apt_task_msg_pool_t     *cnt_msg_pool;
+	
+	/** Event handler used in case of async start  */
+	mrcp_client_handler_f    on_start_complete;
+	/** Wait object used in case of synch start  */
+	apr_thread_cond_t       *sync_start_object;
+	/** Mutex to protect sync start routine */
+	apr_thread_mutex_t      *sync_start_mutex;
+	
 	/** Dir layout structure */
 	apt_dir_layout_t        *dir_layout;
 	/** Memory pool */
@@ -197,22 +206,58 @@
 	client->app_table = apr_hash_make(client->pool);
 	
 	client->session_table = apr_hash_make(client->pool);
+
+	client->on_start_complete = NULL;
+	client->sync_start_object = NULL;
+	client->sync_start_mutex = NULL;
 	return client;
 }
 
+/** Set asynchronous start mode */
+MRCP_DECLARE(void) mrcp_client_async_start_set(mrcp_client_t *client, mrcp_client_handler_f handler)
+{
+	if(client) {
+		client->on_start_complete = handler;
+	}
+}
+
 /** Start message processing loop */
 MRCP_DECLARE(apt_bool_t) mrcp_client_start(mrcp_client_t *client)
 {
+	apt_bool_t sync_start = TRUE;
 	apt_task_t *task;
 	if(!client || !client->task) {
 		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Invalid Client");
 		return FALSE;
 	}
 	task = apt_consumer_task_base_get(client->task);
+
+	if(client->on_start_complete) {
+		sync_start = FALSE;
+	}
+
+	if(sync_start == TRUE) {
+		/* get prepared to start stack synchronously */
+		apr_thread_mutex_create(&client->sync_start_mutex,APR_THREAD_MUTEX_DEFAULT,client->pool);
+		apr_thread_cond_create(&client->sync_start_object,client->pool);
+		
+		apr_thread_mutex_lock(client->sync_start_mutex);
+	}
+
 	if(apt_task_start(task) == FALSE) {
+		if(sync_start == TRUE) {
+			apr_thread_mutex_unlock(client->sync_start_mutex);
+		}
 		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Start Client Task");
 		return FALSE;
 	}
+	
+	if(sync_start == TRUE) {
+		/* wait for start complete */
+		apr_thread_cond_wait(client->sync_start_object,client->sync_start_mutex);
+		apr_thread_mutex_unlock(client->sync_start_mutex);
+	}
+
 	return TRUE;
 }
 
@@ -230,6 +275,16 @@
 		return FALSE;
 	}
 	client->session_table = NULL;
+
+	if(client->sync_start_object) {
+		apr_thread_cond_destroy(client->sync_start_object);
+		client->sync_start_object = NULL;
+	}
+	if(client->sync_start_mutex) {
+		apr_thread_mutex_destroy(client->sync_start_mutex);
+		client->sync_start_mutex = NULL;
+	}
+
 	return TRUE;
 }
 
@@ -860,23 +915,18 @@
 {
 	apt_consumer_task_t *consumer_task = apt_task_object_get(task);
 	mrcp_client_t *client = apt_consumer_task_object_get(consumer_task);
-	void *val;
-	mrcp_application_t *application;
-	mrcp_app_message_t *app_message;
-	apr_hash_index_t *it;
+	
 	apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,CLIENT_TASK_NAME" Started");
-	it = apr_hash_first(client->pool,client->app_table);
-	for(; it; it = apr_hash_next(it)) {
-		apr_hash_this(it,NULL,NULL,&val);
-		application = val;
-		if(!application) continue;
-
-		/* raise one-time application-ready event */
-		app_message = mrcp_client_app_signaling_event_create(MRCP_SIG_EVENT_READY,client->pool);
-		app_message->sig_message.status = MRCP_SIG_STATUS_CODE_SUCCESS;
-		app_message->application = application;
-		application->handler(app_message);
+	if(client->on_start_complete) {
+		/* async start */
+		client->on_start_complete(TRUE);
 	}
+	else {
+		/* sync start */
+		apr_thread_mutex_lock(client->sync_start_mutex);
+		apr_thread_cond_signal(client->sync_start_object);
+		apr_thread_mutex_unlock(client->sync_start_mutex);
+	}
 }
 
 static void mrcp_client_on_terminate_complete(apt_task_t *task)

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp-client/src/mrcp_client_session.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp-client/src/mrcp_client_session.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp-client/src/mrcp_client_session.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -39,6 +39,7 @@
 static apt_bool_t mrcp_app_sig_response_raise(mrcp_client_session_t *session, apt_bool_t process_pending_requests);
 static apt_bool_t mrcp_app_sig_event_raise(mrcp_client_session_t *session, mrcp_channel_t *channel);
 static apt_bool_t mrcp_app_control_message_raise(mrcp_client_session_t *session, mrcp_channel_t *channel, mrcp_message_t *mrcp_message);
+static apt_bool_t mrcp_app_failure_message_raise(mrcp_client_session_t *session);
 static apt_bool_t mrcp_app_request_dispatch(mrcp_client_session_t *session, const mrcp_app_message_t *app_message);
 
 static apt_bool_t mrcp_client_resource_answer_process(mrcp_client_session_t *session, mrcp_session_descriptor_t *descriptor);
@@ -226,7 +227,7 @@
 	if(session->active_request) {
 		/* raise app response */
 		session->status = MRCP_SIG_STATUS_CODE_TERMINATE;
-		mrcp_app_sig_response_raise(session,FALSE);
+		mrcp_app_failure_message_raise(session);
 
 		/* cancel remaing requests, but do process session termination request (if any) */
 		do {
@@ -242,7 +243,7 @@
 
 				/* cancel pending request */
 				session->status = MRCP_SIG_STATUS_CODE_CANCEL;
-				mrcp_app_sig_response_raise(session,FALSE);
+				mrcp_app_failure_message_raise(session);
 			}
 		}
 		while(session->active_request);
@@ -521,6 +522,32 @@
 	return TRUE;
 }
 
+static apt_bool_t mrcp_app_failure_message_raise(mrcp_client_session_t *session)
+{
+	mrcp_app_message_t *response;
+	const mrcp_app_message_t *request = session->active_request;
+	if(!request) {
+		return FALSE;
+	}
+	session->active_request = NULL;
+	response = mrcp_client_app_response_create(request,session->status,session->base.pool);
+	if(response->message_type == MRCP_APP_MESSAGE_TYPE_SIGNALING) {
+		apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Raise App Response "APT_PTRSID_FMT" [%d] %s [%d]",
+			MRCP_SESSION_PTRSID(&session->base),
+			response->sig_message.command_id,
+			session->status == MRCP_SIG_STATUS_CODE_SUCCESS ? "SUCCESS" : "FAILURE",
+			session->status);
+	}
+	else if(response->control_message){
+		mrcp_message_t *mrcp_response = mrcp_response_create(response->control_message,response->control_message->pool);
+		mrcp_response->start_line.status_code = MRCP_STATUS_CODE_METHOD_FAILED;
+		response->control_message = mrcp_response;
+		apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Raise App MRCP Response "APT_PTRSID_FMT, MRCP_SESSION_PTRSID(&session->base));
+	}
+	session->application->handler(response);
+	return TRUE;
+}
+
 static apt_bool_t mrcp_client_channel_find(mrcp_client_session_t *session, mrcp_channel_t *channel, int *index)
 {
 	int i;
@@ -1264,13 +1291,6 @@
 			}
 			else if(app_message->sig_message.message_type == MRCP_SIG_MESSAGE_TYPE_EVENT) {
 				switch(app_message->sig_message.event_id) {
-					case MRCP_SIG_EVENT_READY:
-						if(dispatcher->on_ready) {
-							status = dispatcher->on_ready(
-										app_message->application,
-										app_message->sig_message.status);
-						}
-						break;
 					case MRCP_SIG_EVENT_TERMINATE:
 						if(dispatcher->on_terminate_event) {
 							status = dispatcher->on_terminate_event(

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp-engine/include/mrcp_engine_plugin.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp-engine/include/mrcp_engine_plugin.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp-engine/include/mrcp_engine_plugin.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -70,7 +70,7 @@
  * Minor API changes that do not cause binary compatibility problems.
  * Reset to 0 when upgrading PLUGIN_MAJOR_VERSION
  */
-#define PLUGIN_MINOR_VERSION   5
+#define PLUGIN_MINOR_VERSION   6
 
 /** patch level 
  * The Patch Level never includes API changes, simply bug fixes.

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp-engine/mrcpengine.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp-engine/mrcpengine.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp-engine/mrcpengine.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpengine.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpengine.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -70,7 +73,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpengine.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpengine.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -120,6 +123,114 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpengine.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpengine.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp-server/mrcpserver.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp-server/mrcpserver.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp-server/mrcpserver.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpserver.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpserver.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -70,7 +73,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpserver.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpserver.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -120,6 +123,114 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpserver.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpserver.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcp-signaling/mrcpsignaling.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcp-signaling/mrcpsignaling.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcp-signaling/mrcpsignaling.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpsignaling.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpsignaling.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -70,7 +73,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpsignaling.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpsignaling.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -120,6 +123,114 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpsignaling.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpsignaling.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcpv2-transport/mrcpv2transport.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcpv2-transport/mrcpv2transport.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcpv2-transport/mrcpv2transport.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpv2transport.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpv2transport.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -70,7 +73,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpv2transport.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpv2transport.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -120,6 +123,114 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpv2transport.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpv2transport.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcpv2-transport/src/mrcp_client_connection.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcpv2-transport/src/mrcp_client_connection.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcpv2-transport/src/mrcp_client_connection.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -77,7 +77,7 @@
 	apt_task_vtable_t *vtable;
 	mrcp_connection_agent_t *agent;
 	
-	apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Create "MRCPV2_CONNECTION_TASK_NAME" [%d]",max_connection_count);
+	apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Create "MRCPV2_CONNECTION_TASK_NAME" [%"APR_SIZE_T_FMT"]",max_connection_count);
 	agent = apr_palloc(pool,sizeof(mrcp_connection_agent_t));
 	agent->pool = pool;
 	agent->pollset = NULL;
@@ -424,7 +424,7 @@
 	apt_bool_t status = FALSE;
 	mrcp_connection_t *connection = channel->connection;
 	apt_text_stream_t *stream;
-	mrcp_stream_result_e result;
+	mrcp_stream_status_e result;
 
 	if(!connection || !connection->sock) {
 		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"No MRCPv2 Connection");
@@ -436,7 +436,7 @@
 	do {
 		apt_text_stream_init(&connection->tx_stream,connection->tx_buffer,sizeof(connection->tx_buffer)-1);
 		result = mrcp_generator_run(connection->generator,stream);
-		if(result == MRCP_STREAM_MESSAGE_COMPLETE || result == MRCP_STREAM_MESSAGE_TRUNCATED) {
+		if(result != MRCP_STREAM_STATUS_INVALID) {
 			stream->text.length = stream->pos - stream->text.buf;
 			*stream->pos = '\0';
 
@@ -455,7 +455,7 @@
 			apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Generate MRCPv2 Stream");
 		}
 	}
-	while(result == MRCP_STREAM_MESSAGE_TRUNCATED);
+	while(result == MRCP_STREAM_STATUS_INCOMPLETE);
 
 	if(status == FALSE) {
 		mrcp_message_t *response = mrcp_response_create(message,message->pool);
@@ -467,9 +467,9 @@
 	return TRUE;
 }
 
-static apt_bool_t mrcp_client_message_handler(void *obj, mrcp_message_t *message, mrcp_stream_result_e result)
+static apt_bool_t mrcp_client_message_handler(void *obj, mrcp_message_t *message, mrcp_stream_status_e status)
 {
-	if(result == MRCP_STREAM_MESSAGE_COMPLETE) {
+	if(status == MRCP_STREAM_STATUS_COMPLETE) {
 		/* message is completely parsed */
 		mrcp_connection_t *connection = obj;
 		mrcp_control_channel_t *channel;
@@ -528,8 +528,8 @@
 		stream->pos);
 
 	/* reset pos */
-	stream->pos = stream->text.buf;
-	/* walk through the stream parsing RTSP messages */
+	apt_text_stream_reset(stream);
+	/* walk through the stream parsing MRCP messages */
 	return mrcp_stream_walk(connection->parser,stream,mrcp_client_message_handler,connection);
 }
 

Modified: freeswitch/trunk/libs/unimrcp/libs/mrcpv2-transport/src/mrcp_server_connection.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/mrcpv2-transport/src/mrcp_server_connection.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/mrcpv2-transport/src/mrcp_server_connection.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -88,7 +88,8 @@
 		return NULL;
 	}
 	
-	apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Create "MRCPV2_CONNECTION_TASK_NAME" %s:%hu [%d]",listen_ip,listen_port,max_connection_count);
+	apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Create "MRCPV2_CONNECTION_TASK_NAME" %s:%hu [%"APR_SIZE_T_FMT"]",
+		listen_ip,listen_port,max_connection_count);
 	agent = apr_palloc(pool,sizeof(mrcp_connection_agent_t));
 	agent->pool = pool;
 	agent->sockaddr = NULL;
@@ -557,7 +558,7 @@
 {
 	apt_bool_t status = FALSE;
 	apt_text_stream_t *stream;
-	mrcp_stream_result_e result;
+	mrcp_stream_status_e result;
 	if(!connection || !connection->sock) {
 		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"No MRCPv2 Connection");
 		return FALSE;
@@ -568,7 +569,7 @@
 	do {
 		apt_text_stream_init(&connection->tx_stream,connection->tx_buffer,sizeof(connection->tx_buffer)-1);
 		result = mrcp_generator_run(connection->generator,stream);
-		if(result == MRCP_STREAM_MESSAGE_COMPLETE || result == MRCP_STREAM_MESSAGE_TRUNCATED) {
+		if(result != MRCP_STREAM_STATUS_INVALID) {
 			stream->text.length = stream->pos - stream->text.buf;
 			*stream->pos = '\0';
 
@@ -587,16 +588,16 @@
 			apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Generate MRCPv2 Stream");
 		}
 	}
-	while(result == MRCP_STREAM_MESSAGE_TRUNCATED);
+	while(result == MRCP_STREAM_STATUS_INCOMPLETE);
 
 	return status;
 }
 
-static apt_bool_t mrcp_server_message_handler(void *obj, mrcp_message_t *message, mrcp_stream_result_e result)
+static apt_bool_t mrcp_server_message_handler(void *obj, mrcp_message_t *message, mrcp_stream_status_e status)
 {
 	mrcp_connection_t *connection = obj;
 	mrcp_connection_agent_t *agent = connection->agent;
-	if(result == MRCP_STREAM_MESSAGE_COMPLETE) {
+	if(status == MRCP_STREAM_STATUS_COMPLETE) {
 		/* message is completely parsed */
 		mrcp_control_channel_t *channel = mrcp_connection_channel_associate(agent,connection,message);
 		if(channel) {
@@ -609,7 +610,7 @@
 				connection->id);
 		}
 	}
-	else if(result == MRCP_STREAM_MESSAGE_INVALID) {
+	else if(status == MRCP_STREAM_STATUS_INVALID) {
 		/* error case */
 		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Parse MRCPv2 Stream");
 		if(message->resource) {
@@ -655,8 +656,8 @@
 		stream->pos);
 
 	/* reset pos */
-	stream->pos = stream->text.buf;
-	/* walk through the stream parsing RTSP messages */
+	apt_text_stream_reset(stream);
+	/* walk through the stream parsing MRCP messages */
 	return mrcp_stream_walk(connection->parser,stream,mrcp_server_message_handler,connection);
 }
 

Modified: freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/include/rtsp_stream.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/include/rtsp_stream.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/include/rtsp_stream.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -26,12 +26,12 @@
 
 APT_BEGIN_EXTERN_C
 
-/** Result of RTSP stream processing (parse/generate) */
+/** Status of RTSP stream processing (parse/generate) */
 typedef enum {
-	RTSP_STREAM_MESSAGE_COMPLETE,
-	RTSP_STREAM_MESSAGE_TRUNCATED,
-	RTSP_STREAM_MESSAGE_INVALID
-} rtsp_stream_result_e;
+	RTSP_STREAM_STATUS_COMPLETE,
+	RTSP_STREAM_STATUS_INCOMPLETE,
+	RTSP_STREAM_STATUS_INVALID
+} rtsp_stream_status_e;
 
 /** Opaque RTSP parser declaration */
 typedef struct rtsp_parser_t rtsp_parser_t;
@@ -39,13 +39,13 @@
 typedef struct rtsp_generator_t rtsp_generator_t;
 
 /** RTSP message handler */
-typedef apt_bool_t (*rtsp_message_handler_f)(void *obj, rtsp_message_t *message, rtsp_stream_result_e result);
+typedef apt_bool_t (*rtsp_message_handler_f)(void *obj, rtsp_message_t *message, rtsp_stream_status_e status);
 
 /** Create RTSP stream parser */
 RTSP_DECLARE(rtsp_parser_t*) rtsp_parser_create(apr_pool_t *pool);
 
 /** Parse RTSP stream */
-RTSP_DECLARE(rtsp_stream_result_e) rtsp_parser_run(rtsp_parser_t *parser, apt_text_stream_t *stream);
+RTSP_DECLARE(rtsp_stream_status_e) rtsp_parser_run(rtsp_parser_t *parser, apt_text_stream_t *stream);
 
 /** Get parsed RTSP message */
 RTSP_DECLARE(rtsp_message_t*) rtsp_parser_message_get(const rtsp_parser_t *parser);
@@ -58,7 +58,7 @@
 RTSP_DECLARE(apt_bool_t) rtsp_generator_message_set(rtsp_generator_t *generator, rtsp_message_t *message);
 
 /** Generate RTSP stream */
-RTSP_DECLARE(rtsp_stream_result_e) rtsp_generator_run(rtsp_generator_t *generator, apt_text_stream_t *stream);
+RTSP_DECLARE(rtsp_stream_status_e) rtsp_generator_run(rtsp_generator_t *generator, apt_text_stream_t *stream);
 
 
 /** Walk through RTSP stream and call message handler for each parsed message */

Modified: freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/src/rtsp_client.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/src/rtsp_client.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/src/rtsp_client.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -138,7 +138,7 @@
 	apt_task_msg_pool_t *msg_pool;
 	rtsp_client_t *client;
 	
-	apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Create RTSP Client [%d]",max_connection_count);
+	apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Create RTSP Client [%"APR_SIZE_T_FMT"]",max_connection_count);
 	client = apr_palloc(pool,sizeof(rtsp_client_t));
 	client->pool = pool;
 	client->obj = obj;
@@ -307,8 +307,9 @@
 }
 
 /* Destroy RTSP connection */
-static apt_bool_t rtsp_client_connection_destroy(rtsp_client_t *client, rtsp_client_connection_t *rtsp_connection)
+static apt_bool_t rtsp_client_connection_destroy(rtsp_client_connection_t *rtsp_connection)
 {
+	rtsp_client_t *client = rtsp_connection->client;
 	apt_list_elem_remove(client->connection_list,rtsp_connection->it);
 	apt_net_client_disconnect(client->task,rtsp_connection->base);
 
@@ -328,10 +329,6 @@
 
 	session->term_state = TERMINATION_STATE_NONE;
 	client->vtable->on_session_terminate_response(client,session);
-	
-	if(apr_hash_count(rtsp_connection->handle_table) == 0) {
-		rtsp_client_connection_destroy(client,rtsp_connection);
-	}
 	return TRUE;
 }
 
@@ -378,6 +375,10 @@
 		/* respond immediately if no resources left */
 		if(apr_hash_count(session->resource_table) == 0) {
 			rtsp_client_session_terminate_respond(client,session);
+
+			if(apr_hash_count(rtsp_connection->handle_table) == 0) {
+				rtsp_client_connection_destroy(rtsp_connection);
+			}
 		}
 	}
 
@@ -407,7 +408,7 @@
 static apt_bool_t rtsp_client_request_push(rtsp_client_connection_t *rtsp_connection, rtsp_client_session_t *session, rtsp_message_t *message)
 {
 	/* add request to inprogress request queue */
-	apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Push RTSP Request to In-Progress Queue "APT_PTRSID_FMT" CSeq:%d",
+	apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Push RTSP Request to In-Progress Queue "APT_PTRSID_FMT" CSeq:%"APR_SIZE_T_FMT,
 		session,
 		message->header.session_id.buf ? message->header.session_id.buf : "new",
 		message->header.cseq);
@@ -429,7 +430,7 @@
 			if(ret_request) {
 				*ret_request = session->active_request;
 			}
-			apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Pop In-Progress RTSP Request "APT_PTR_FMT" CSeq:%d", 
+			apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Pop In-Progress RTSP Request "APT_PTR_FMT" CSeq:%"APR_SIZE_T_FMT, 
 				session, 
 				response->header.cseq);
 			apt_list_elem_remove(rtsp_connection->inprogress_request_queue,elem);
@@ -663,7 +664,7 @@
 	if(remaining_handles) {
 		void *val;
 		apr_hash_index_t *it;
-		apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Terminate Remaining RTSP Handles [%d]",remaining_handles);
+		apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Terminate Remaining RTSP Handles [%"APR_SIZE_T_FMT"]",remaining_handles);
 		it = apr_hash_first(rtsp_connection->base->pool,rtsp_connection->session_table);
 		for(; it; it = apr_hash_next(it)) {
 			apr_hash_this(it,NULL,NULL,&val);
@@ -676,7 +677,7 @@
 	}
 
 	if(!remaining_handles && !cancelled_requests) {
-		rtsp_client_connection_destroy(client,rtsp_connection);
+		rtsp_client_connection_destroy(rtsp_connection);
 	}
 	return TRUE;
 }
@@ -687,7 +688,7 @@
 	apt_bool_t status = FALSE;
 	rtsp_client_connection_t *rtsp_connection;
 	apt_text_stream_t *stream;
-	rtsp_stream_result_e result;
+	rtsp_stream_status_e result;
 
 	if(!connection || !connection->sock) {
 		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"No RTSP Connection");
@@ -699,9 +700,9 @@
 	rtsp_generator_message_set(rtsp_connection->generator,message);
 	do {
 		stream->text.length = sizeof(rtsp_connection->tx_buffer)-1;
-		stream->pos = stream->text.buf;
+		apt_text_stream_reset(stream);
 		result = rtsp_generator_run(rtsp_connection->generator,stream);
-		if(result == RTSP_STREAM_MESSAGE_COMPLETE || result == RTSP_STREAM_MESSAGE_TRUNCATED) {
+		if(result != RTSP_STREAM_STATUS_INVALID) {
 			stream->text.length = stream->pos - stream->text.buf;
 			*stream->pos = '\0';
 
@@ -720,15 +721,16 @@
 			apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Generate RTSP Stream");
 		}
 	}
-	while(result == RTSP_STREAM_MESSAGE_TRUNCATED);
+	while(result == RTSP_STREAM_STATUS_INCOMPLETE);
 
 	return status;
 }
 
-static apt_bool_t rtsp_client_message_handler(void *obj, rtsp_message_t *message, rtsp_stream_result_e result)
+/** return TRUE to proceed with the next message in the stream (if any) */
+static apt_bool_t rtsp_client_message_handler(void *obj, rtsp_message_t *message, rtsp_stream_status_e status)
 {
 	rtsp_client_connection_t *rtsp_connection = obj;
-	if(result != RTSP_STREAM_MESSAGE_COMPLETE) {
+	if(status != RTSP_STREAM_STATUS_COMPLETE) {
 		/* message is not completely parsed, nothing to do */
 		return TRUE;
 	}
@@ -738,8 +740,9 @@
 		rtsp_client_session_t *session;
 		/* at first, pop in-progress request/session */
 		if(rtsp_client_request_pop(rtsp_connection,message,&request,&session) == FALSE) {
-			apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Unexpected RTSP Response Received CSeq:%d",message->header.cseq);
-			return FALSE;
+			apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Unexpected RTSP Response Received CSeq:%"APR_SIZE_T_FMT,
+				message->header.cseq);
+			return TRUE;
 		}
 
 		/* next, process session response */
@@ -756,6 +759,12 @@
 				/* respond if no resources left */
 				if(apr_hash_count(session->resource_table) == 0) {
 					rtsp_client_session_terminate_respond(rtsp_connection->client,session);
+
+					if(apr_hash_count(rtsp_connection->handle_table) == 0) {
+						rtsp_client_connection_destroy(rtsp_connection);
+						/* return FALSE to indicate connection has been destroyed */
+						return FALSE;
+					}
 				}
 			}
 		}
@@ -801,7 +810,7 @@
 		stream->pos);
 
 	/* reset pos */
-	stream->pos = stream->text.buf;
+	apt_text_stream_reset(stream);
 	/* walk through the stream parsing RTSP messages */
 	return rtsp_stream_walk(rtsp_connection->parser,stream,rtsp_client_message_handler,rtsp_connection);
 }

Modified: freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/src/rtsp_header.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/src/rtsp_header.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/src/rtsp_header.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -117,7 +117,7 @@
 	apt_text_stream_t stream;
 
 	stream.text = *field;
-	stream.pos = stream.text.buf;
+	apt_text_stream_reset(&stream);
 
 	/* read attrib name */
 	if(apt_text_field_read(&stream,'=',TRUE,&name) == FALSE) {
@@ -160,7 +160,7 @@
 	apt_text_stream_t stream;
 
 	stream.text = *value;
-	stream.pos = stream.text.buf;
+	apt_text_stream_reset(&stream);
 
 	/* set the defaults */
 	transport->protocol = RTSP_TRANSPORT_RTP;
@@ -203,7 +203,7 @@
 	apt_text_stream_t stream;
 
 	stream.text = *line;
-	stream.pos = stream.text.buf;
+	apt_text_stream_reset(&stream);
 	/* read transport protocol (RTP/AVP[/UDP]) */
 	if(apt_text_field_read(&stream,';',TRUE,&field) == FALSE) {
 		return FALSE;

Modified: freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/src/rtsp_server.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/src/rtsp_server.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/src/rtsp_server.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -131,7 +131,8 @@
 		return NULL;
 	}
 	
-	apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Create RTSP Server %s:%hu [%d]",listen_ip,listen_port,max_connection_count);
+	apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Create RTSP Server %s:%hu [%"APR_SIZE_T_FMT"]",
+		listen_ip,listen_port,max_connection_count);
 	server = apr_palloc(pool,sizeof(rtsp_server_t));
 	server->pool = pool;
 	server->obj = obj;
@@ -513,7 +514,7 @@
 	apt_bool_t status = FALSE;
 	rtsp_server_connection_t *rtsp_connection;
 	apt_text_stream_t *stream;
-	rtsp_stream_result_e result;
+	rtsp_stream_status_e result;
 
 	if(!connection || !connection->sock) {
 		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"No RTSP Connection");
@@ -525,9 +526,9 @@
 	rtsp_generator_message_set(rtsp_connection->generator,message);
 	do {
 		stream->text.length = sizeof(rtsp_connection->tx_buffer)-1;
-		stream->pos = stream->text.buf;
+		apt_text_stream_reset(stream);
 		result = rtsp_generator_run(rtsp_connection->generator,stream);
-		if(result == RTSP_STREAM_MESSAGE_COMPLETE || result == RTSP_STREAM_MESSAGE_TRUNCATED) {
+		if(result != RTSP_STREAM_STATUS_INVALID) {
 			stream->text.length = stream->pos - stream->text.buf;
 			*stream->pos = '\0';
 
@@ -546,15 +547,15 @@
 			apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Generate RTSP Stream");
 		}
 	}
-	while(result == RTSP_STREAM_MESSAGE_TRUNCATED);
+	while(result == RTSP_STREAM_STATUS_INCOMPLETE);
 
 	return status;
 }
 
-static apt_bool_t rtsp_server_message_handler(void *obj, rtsp_message_t *message, rtsp_stream_result_e result)
+static apt_bool_t rtsp_server_message_handler(void *obj, rtsp_message_t *message, rtsp_stream_status_e status)
 {
 	rtsp_server_connection_t *rtsp_connection = obj;
-	if(result == RTSP_STREAM_MESSAGE_COMPLETE) {
+	if(status == RTSP_STREAM_STATUS_COMPLETE) {
 		/* message is completely parsed */
 		apt_str_t *destination;
 		rtsp_message_t *message = rtsp_parser_message_get(rtsp_connection->parser);
@@ -564,7 +565,7 @@
 		}
 		rtsp_server_session_request_process(rtsp_connection->server,rtsp_connection,message);
 	}
-	else if(result == RTSP_STREAM_MESSAGE_INVALID) {
+	else if(status == RTSP_STREAM_STATUS_INVALID) {
 		/* error case */
 		rtsp_message_t *response;
 		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Parse RTSP Stream");
@@ -614,7 +615,7 @@
 		stream->pos);
 
 	/* reset pos */
-	stream->pos = stream->text.buf;
+	apt_text_stream_reset(stream);
 	/* walk through the stream parsing RTSP messages */
 	return rtsp_stream_walk(rtsp_connection->parser,stream,rtsp_server_message_handler,rtsp_connection);
 }
@@ -657,7 +658,8 @@
 		rtsp_server_session_t *session;
 		void *val;
 		apr_hash_index_t *it;
-		apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Terminate Remaining RTSP Sessions [%d]",remaining_sessions);
+		apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Terminate Remaining RTSP Sessions [%"APR_SIZE_T_FMT"]",
+			remaining_sessions);
 		it = apr_hash_first(connection->pool,rtsp_connection->session_table);
 		for(; it; it = apr_hash_next(it)) {
 			apr_hash_this(it,NULL,NULL,&val);

Modified: freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/src/rtsp_start_line.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/src/rtsp_start_line.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/src/rtsp_start_line.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -156,8 +156,8 @@
 		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Cannot parse RTSP start-line");
 		return FALSE;
 	}
-	line.pos = line.text.buf;
 
+	apt_text_stream_reset(&line);
 	if(apt_text_field_read(&line,APT_TOKEN_SP,TRUE,&field) == FALSE) {
 		apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Cannot read the first field in start-line");
 		return FALSE;

Modified: freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/src/rtsp_stream.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/src/rtsp_stream.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/src/rtsp_stream.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -17,10 +17,17 @@
 #include "rtsp_stream.h"
 #include "apt_log.h"
 
+/** Stage of RTSP stream processing (parse/generate) */
+typedef enum {
+	RTSP_STREAM_STAGE_NONE,
+	RTSP_STREAM_STAGE_START_LINE,
+	RTSP_STREAM_STAGE_HEADER,
+	RTSP_STREAM_STAGE_BODY
+} rtsp_stream_stage_e;
+
 /** RTSP parser */
 struct rtsp_parser_t {
-	rtsp_stream_result_e result;
-	char                *pos;
+	rtsp_stream_stage_e  stage;
 	apt_bool_t           skip_lf;
 	rtsp_message_t      *message;
 	apr_pool_t          *pool;
@@ -28,16 +35,15 @@
 
 /** RTSP generator */
 struct rtsp_generator_t {
-	rtsp_stream_result_e result;
-	char                *pos;
+	rtsp_stream_status_e stage;
 	rtsp_message_t      *message;
 	apr_pool_t          *pool;
 };
 
 /** Read RTSP message-body */
-static rtsp_stream_result_e rtsp_message_body_read(rtsp_message_t *message, apt_text_stream_t *stream)
+static apt_bool_t rtsp_message_body_read(rtsp_message_t *message, apt_text_stream_t *stream)
 {
-	rtsp_stream_result_e result = RTSP_STREAM_MESSAGE_COMPLETE;
+	apt_bool_t status = TRUE;
 	if(message->body.buf) {
 		/* stream length available to read */
 		apr_size_t stream_length = stream->text.length - (stream->pos - stream->text.buf);
@@ -46,7 +52,7 @@
 		if(required_length > stream_length) {
 			required_length = stream_length;
 			/* not complete */
-			result = RTSP_STREAM_MESSAGE_TRUNCATED;
+			status = FALSE;
 		}
 		memcpy(message->body.buf+message->body.length,stream->pos,required_length);
 		message->body.length += required_length;
@@ -54,27 +60,13 @@
 		message->body.buf[message->body.length] = '\0';
 	}
 
-	return result;
+	return status;
 }
 
-/** Parse RTSP message-body */
-static rtsp_stream_result_e rtsp_message_body_parse(rtsp_message_t *message, apt_text_stream_t *stream, apr_pool_t *pool)
-{
-	if(rtsp_header_property_check(&message->header.property_set,RTSP_HEADER_FIELD_CONTENT_LENGTH) == TRUE) {
-		if(message->header.content_length) {
-			apt_str_t *body = &message->body;
-			body->buf = apr_palloc(pool,message->header.content_length+1);
-			body->length = 0;
-			return rtsp_message_body_read(message,stream);
-		}
-	}
-	return RTSP_STREAM_MESSAGE_COMPLETE;
-}
-
 /** Write RTSP message-body */
-static rtsp_stream_result_e rtsp_message_body_write(rtsp_message_t *message, apt_text_stream_t *stream)
+static apt_bool_t rtsp_message_body_write(rtsp_message_t *message, apt_text_stream_t *stream)
 {
-	rtsp_stream_result_e result = RTSP_STREAM_MESSAGE_COMPLETE;
+	apt_bool_t status = TRUE;
 	if(message->body.length < message->header.content_length) {
 		/* stream length available to write */
 		apr_size_t stream_length = stream->text.length - (stream->pos - stream->text.buf);
@@ -83,7 +75,7 @@
 		if(required_length > stream_length) {
 			required_length = stream_length;
 			/* not complete */
-			result = RTSP_STREAM_MESSAGE_TRUNCATED;
+			status = FALSE;
 		}
 
 		memcpy(stream->pos,message->body.buf+message->body.length,required_length);
@@ -91,83 +83,84 @@
 		stream->pos += required_length;
 	}
 
-	return result;
+	return status;
 }
 
-/** Generate RTSP message-body */
-static rtsp_stream_result_e rtsp_message_body_generate(rtsp_message_t *message, apt_text_stream_t *stream, apr_pool_t *pool)
-{
-	if(rtsp_header_property_check(&message->header.property_set,RTSP_HEADER_FIELD_CONTENT_LENGTH) == TRUE) {
-		if(message->header.content_length) {
-			apt_str_t *body = &message->body;
-			body->length = 0;
-			return rtsp_message_body_write(message,stream);
-		}
-	}
-	return RTSP_STREAM_MESSAGE_COMPLETE;
-}
-
 /** Create RTSP parser */
 RTSP_DECLARE(rtsp_parser_t*) rtsp_parser_create(apr_pool_t *pool)
 {
 	rtsp_parser_t *parser = apr_palloc(pool,sizeof(rtsp_parser_t));
-	parser->result = RTSP_STREAM_MESSAGE_INVALID;
-	parser->pos = NULL;
+	parser->stage = RTSP_STREAM_STAGE_NONE;
 	parser->skip_lf = FALSE;
 	parser->message = NULL;
 	parser->pool = pool;
 	return parser;
 }
 
-static rtsp_stream_result_e rtsp_parser_break(rtsp_parser_t *parser, apt_text_stream_t *stream)
+static rtsp_stream_status_e rtsp_parser_break(rtsp_parser_t *parser, apt_text_stream_t *stream)
 {
-	/* failed to parse either start-line or header */
+	/* failed to parse message */
 	if(apt_text_is_eos(stream) == TRUE) {
-		/* end of stream reached, rewind/restore stream */
-		stream->pos = parser->pos;
-		parser->result = RTSP_STREAM_MESSAGE_TRUNCATED;
-		parser->message = NULL;
+		/* end of stream reached */
+		return RTSP_STREAM_STATUS_INCOMPLETE;
 	}
-	else {
-		/* error case */
-		parser->result = RTSP_STREAM_MESSAGE_INVALID;
-	}
-	return parser->result;
+
+	/* error case */
+	parser->stage = RTSP_STREAM_STAGE_NONE;
+	return RTSP_STREAM_STATUS_INVALID;
 }
 
 /** Parse RTSP stream */
-RTSP_DECLARE(rtsp_stream_result_e) rtsp_parser_run(rtsp_parser_t *parser, apt_text_stream_t *stream)
+RTSP_DECLARE(rtsp_stream_status_e) rtsp_parser_run(rtsp_parser_t *parser, apt_text_stream_t *stream)
 {
 	rtsp_message_t *message = parser->message;
-	if(message && parser->result == RTSP_STREAM_MESSAGE_TRUNCATED) {
-		/* process continuation data */
-		parser->result = rtsp_message_body_read(message,stream);
-		return parser->result;
+	if(parser->stage == RTSP_STREAM_STAGE_NONE || !message) {
+		/* create new RTSP message */
+		message = rtsp_message_create(RTSP_MESSAGE_TYPE_UNKNOWN,parser->pool);
+		parser->message = message;
+		parser->stage = RTSP_STREAM_STAGE_START_LINE;
 	}
 
-	/* create new RTSP message */
-	message = rtsp_message_create(RTSP_MESSAGE_TYPE_UNKNOWN,parser->pool);
-	parser->message = message;
-	/* store current position to be able to rewind/restore stream if needed */
-	parser->pos = stream->pos;
-	/* parse start-line */
-	if(rtsp_start_line_parse(&message->start_line,stream,message->pool) == FALSE) {
-		return rtsp_parser_break(parser,stream);
+	if(parser->stage == RTSP_STREAM_STAGE_START_LINE) {
+		/* parse start-line */
+		if(rtsp_start_line_parse(&message->start_line,stream,message->pool) == FALSE) {
+			return rtsp_parser_break(parser,stream);
+		}
+		parser->stage = RTSP_STREAM_STAGE_HEADER;
 	}
-	/* parse header */
-	if(rtsp_header_parse(&message->header,stream,message->pool) == FALSE) {
-		return rtsp_parser_break(parser,stream);
+
+	if(parser->stage == RTSP_STREAM_STAGE_HEADER) {
+		/* parse header */
+		if(rtsp_header_parse(&message->header,stream,message->pool) == FALSE) {
+			return rtsp_parser_break(parser,stream);
+		}
+
+		parser->stage = RTSP_STREAM_STAGE_NONE;
+		if(rtsp_header_property_check(&message->header.property_set,RTSP_HEADER_FIELD_CONTENT_LENGTH) == TRUE) {
+			if(message->header.content_length) {
+				apt_str_t *body = &message->body;
+				body->buf = apr_palloc(message->pool,message->header.content_length+1);
+				body->length = 0;
+				parser->stage = RTSP_STREAM_STAGE_BODY;
+			}
+		}
 	}
-	/* parse body */
-	parser->result = rtsp_message_body_parse(message,stream,message->pool);
-	
+
+	if(parser->stage == RTSP_STREAM_STAGE_BODY) {
+		if(rtsp_message_body_read(message,stream) == FALSE) {
+			return rtsp_parser_break(parser,stream);
+		}
+		parser->stage = RTSP_STREAM_STAGE_NONE;
+	}
+
 	/* in the worst case message segmentation may occur between <CR> and <LF> 
 	   of the final empty header */
 	if(!message->body.length && *(stream->pos-1)== APT_TOKEN_CR) {
 		/* if this is the case be prepared to skip <LF> */
 		parser->skip_lf = TRUE;
 	}
-	return parser->result;
+
+	return RTSP_STREAM_STATUS_COMPLETE;
 }
 
 /** Get parsed RTSP message */
@@ -181,8 +174,7 @@
 RTSP_DECLARE(rtsp_generator_t*) rtsp_generator_create(apr_pool_t *pool)
 {
 	rtsp_generator_t *generator = apr_palloc(pool,sizeof(rtsp_generator_t));
-	generator->result = RTSP_STREAM_MESSAGE_INVALID;
-	generator->pos = NULL;
+	generator->stage = RTSP_STREAM_STAGE_NONE;
 	generator->message = NULL;
 	generator->pool = pool;
 	return generator;
@@ -198,69 +190,80 @@
 	return TRUE;
 }
 
-static rtsp_stream_result_e rtsp_generator_break(rtsp_generator_t *generator, apt_text_stream_t *stream)
+static rtsp_stream_status_e rtsp_generator_break(rtsp_generator_t *generator, apt_text_stream_t *stream)
 {
-	/* failed to generate either start-line or header */
+	/* failed to generate message */
 	if(apt_text_is_eos(stream) == TRUE) {
-		/* end of stream reached, rewind/restore stream */
-		stream->pos = generator->pos;
-		generator->result = RTSP_STREAM_MESSAGE_TRUNCATED;
+		/* end of stream reached */
+		return RTSP_STREAM_STATUS_INCOMPLETE;
 	}
-	else {
-		/* error case */
-		generator->result = RTSP_STREAM_MESSAGE_INVALID;
-	}
-	return generator->result;
+
+	/* error case */
+	generator->stage = RTSP_STREAM_STAGE_NONE;
+	return RTSP_STREAM_STATUS_INVALID;
 }
 
 /** Generate RTSP stream */
-RTSP_DECLARE(rtsp_stream_result_e) rtsp_generator_run(rtsp_generator_t *generator, apt_text_stream_t *stream)
+RTSP_DECLARE(rtsp_stream_status_e) rtsp_generator_run(rtsp_generator_t *generator, apt_text_stream_t *stream)
 {
 	rtsp_message_t *message = generator->message;
 	if(!message) {
-		return RTSP_STREAM_MESSAGE_INVALID;
+		return RTSP_STREAM_STATUS_INVALID;
 	}
 
-	if(message && generator->result == RTSP_STREAM_MESSAGE_TRUNCATED) {
-		/* process continuation data */
-		generator->result = rtsp_message_body_write(message,stream);
-		return generator->result;
-	}
+	if(generator->stage == RTSP_STREAM_STAGE_NONE) {
+		/* generate start-line */
+		if(rtsp_start_line_generate(&message->start_line,stream) == FALSE) {
+			return rtsp_generator_break(generator,stream);
+		}
 
-	/* generate start-line */
-	if(rtsp_start_line_generate(&message->start_line,stream) == FALSE) {
-		return rtsp_generator_break(generator,stream);
+		/* generate header */
+		if(rtsp_header_generate(&message->header,stream) == FALSE) {
+			return rtsp_generator_break(generator,stream);
+		}
+
+		generator->stage = RTSP_STREAM_STAGE_NONE;
+		if(rtsp_header_property_check(&message->header.property_set,RTSP_HEADER_FIELD_CONTENT_LENGTH) == TRUE) {
+			if(message->header.content_length) {
+				apt_str_t *body = &message->body;
+				body->length = 0;
+				generator->stage = RTSP_STREAM_STAGE_BODY;
+			}
+		}
 	}
 
-	/* generate header */
-	if(rtsp_header_generate(&message->header,stream) == FALSE) {
-		return rtsp_generator_break(generator,stream);
+	if(generator->stage == RTSP_STREAM_STAGE_BODY) {
+		if(rtsp_message_body_write(message,stream) == FALSE) {
+			return rtsp_generator_break(generator,stream);
+		}
+		
+		generator->stage = RTSP_STREAM_STAGE_NONE;
 	}
 
-	/* generate body */
-	generator->result = rtsp_message_body_generate(message,stream,message->pool);
-	return generator->result;
+	return RTSP_STREAM_STATUS_COMPLETE;
 }
 
 
 /** Walk through RTSP stream and invoke message handler for each parsed message */
 RTSP_DECLARE(apt_bool_t) rtsp_stream_walk(rtsp_parser_t *parser, apt_text_stream_t *stream, rtsp_message_handler_f handler, void *obj)
 {
-	rtsp_stream_result_e result;
+	rtsp_stream_status_e status;
 	if(parser->skip_lf == TRUE) {
 		/* skip <LF> occurred as a result of message segmentation between <CR> and <LF> */
 		apt_text_char_skip(stream,APT_TOKEN_LF);
 		parser->skip_lf = FALSE;
 	}
 	do {
-		result = rtsp_parser_run(parser,stream);
-		if(result == RTSP_STREAM_MESSAGE_COMPLETE) {
+		status = rtsp_parser_run(parser,stream);
+		if(status == RTSP_STREAM_STATUS_COMPLETE) {
 			/* message is completely parsed */
 			apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Parsed RTSP Message [%lu]", stream->pos - stream->text.buf);
-			/* invoke message handler */
-			handler(obj,parser->message,result);
+			/* connection has already been destroyed, if handler return FALSE  */
+			if(handler(obj,parser->message,status) == FALSE) {
+				return TRUE;
+			}
 		}
-		else if(result == RTSP_STREAM_MESSAGE_TRUNCATED) {
+		else if(status == RTSP_STREAM_STATUS_INCOMPLETE) {
 			/* message is partially parsed, to be continued */
 			apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Truncated RTSP Message [%lu]", stream->pos - stream->text.buf);
 			/* prepare stream for further processing */
@@ -269,19 +272,20 @@
 			}
 			return TRUE;
 		}
-		else if(result == RTSP_STREAM_MESSAGE_INVALID){
+		else if(status == RTSP_STREAM_STATUS_INVALID){
 			/* error case */
 			apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Parse RTSP Message");
 			/* invoke message handler */
-			handler(obj,parser->message,result);
-			/* reset stream pos */
-			stream->pos = stream->text.buf;
+			if(handler(obj,parser->message,status) == TRUE) {
+				/* reset stream pos */
+				stream->pos = stream->text.buf;
+			}
 			return FALSE;
 		}
 	}
 	while(apt_text_is_eos(stream) == FALSE);
 
 	/* reset stream pos */
-	stream->pos = stream->text.buf;
+	apt_text_stream_reset(stream);
 	return TRUE;
 }

Modified: freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/unirtsp.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/unirtsp.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/libs/uni-rtsp/unirtsp.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unirtsp.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\unirtsp.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -71,7 +74,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unirtsp.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\unirtsp.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -122,6 +125,116 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\unirtsp.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="codecs"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\unirtsp.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="codecs"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/modules/mrcp-sofiasip/mrcpsofiasip.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/modules/mrcp-sofiasip/mrcpsofiasip.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/modules/mrcp-sofiasip/mrcpsofiasip.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\sofiasip.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpv2transport.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpsignaling.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\sofiasip.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpv2transport.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpsignaling.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -71,7 +74,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\sofiasip.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpv2transport.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpsignaling.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\sofiasip.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpv2transport.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpsignaling.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -122,6 +125,116 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\sofiasip.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpv2transport.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpsignaling.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\sofiasip.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpv2transport.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpsignaling.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/modules/mrcp-sofiasip/src/mrcp_sdp.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/modules/mrcp-sofiasip/src/mrcp_sdp.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/modules/mrcp-sofiasip/src/mrcp_sdp.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -183,7 +183,7 @@
 			offset += snprintf(buffer+offset,size-offset,"a=ptime:%hu\r\n",audio_media->ptime);
 		}
 	}
-	offset += snprintf(buffer+offset,size-offset,"a=mid:%d\r\n",audio_media->mid);
+	offset += snprintf(buffer+offset,size-offset,"a=mid:%"APR_SIZE_T_FMT"\r\n",audio_media->mid);
 	return offset;
 }
 
@@ -248,7 +248,7 @@
 
 	for(i=0; i<control_media->cmid_arr->nelts; i++) {
 		offset += snprintf(buffer+offset,size-offset,
-			"a=cmid:%d\r\n",
+			"a=cmid:%"APR_SIZE_T_FMT"\r\n",
 			APR_ARRAY_IDX(control_media->cmid_arr,i,apr_size_t));
 
 	}

Modified: freeswitch/trunk/libs/unimrcp/modules/mrcp-unirtsp/mrcpunirtsp.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/modules/mrcp-unirtsp/mrcpunirtsp.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/modules/mrcp-unirtsp/mrcpunirtsp.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpsignaling.vsprops;$(ProjectDir)..\..\build\vsprops\unirtsp.vsprops;$(ProjectDir)..\..\build\vsprops\sofiasip.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpsignaling.vsprops;$(ProjectDir)..\..\build\vsprops\unirtsp.vsprops;$(ProjectDir)..\..\build\vsprops\sofiasip.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -71,7 +74,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpsignaling.vsprops;$(ProjectDir)..\..\build\vsprops\unirtsp.vsprops;$(ProjectDir)..\..\build\vsprops\sofiasip.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpsignaling.vsprops;$(ProjectDir)..\..\build\vsprops\unirtsp.vsprops;$(ProjectDir)..\..\build\vsprops\sofiasip.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -122,6 +125,116 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpsignaling.vsprops;$(ProjectDir)..\..\build\vsprops\unirtsp.vsprops;$(ProjectDir)..\..\build\vsprops\sofiasip.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mrcpsignaling.vsprops;$(ProjectDir)..\..\build\vsprops\unirtsp.vsprops;$(ProjectDir)..\..\build\vsprops\sofiasip.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/modules/mrcp-unirtsp/src/mrcp_unirtsp_client_agent.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/modules/mrcp-unirtsp/src/mrcp_unirtsp_client_agent.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/modules/mrcp-unirtsp/src/mrcp_unirtsp_client_agent.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -101,7 +101,7 @@
 	apt_task_name_set(task,UNIRTSP_TASK_NAME);
 	agent->sig_agent->task = task;
 
-	apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Create "UNIRTSP_TASK_NAME" %s:%hu [%d]",
+	apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Create "UNIRTSP_TASK_NAME" %s:%hu [%"APR_SIZE_T_FMT"]",
 								config->server_ip,
 								config->server_port,
 								config->max_connection_count);
@@ -208,12 +208,12 @@
 		apt_str_t resource_name_str;
 
 		text_stream.text = message->body;
-		text_stream.pos = text_stream.text.buf;
+		apt_text_stream_reset(&text_stream);
 		apt_string_set(&resource_name_str,resource_name);
 
 		parser = mrcp_parser_create(agent->sig_agent->resource_factory,session->mrcp_session->pool);
 		mrcp_parser_resource_name_set(parser,&resource_name_str);
-		if(mrcp_parser_run(parser,&text_stream) == MRCP_STREAM_MESSAGE_COMPLETE) {
+		if(mrcp_parser_run(parser,&text_stream) == MRCP_STREAM_STATUS_COMPLETE) {
 			mrcp_message = mrcp_parser_message_get(parser);
 			mrcp_message->channel_id.session_id = message->header.session_id;
 		}

Modified: freeswitch/trunk/libs/unimrcp/modules/mrcp-unirtsp/src/mrcp_unirtsp_server_agent.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/modules/mrcp-unirtsp/src/mrcp_unirtsp_server_agent.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/modules/mrcp-unirtsp/src/mrcp_unirtsp_server_agent.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -99,7 +99,7 @@
 	apt_task_name_set(task,UNIRTSP_TASK_NAME);
 	agent->sig_agent->task = task;
 
-	apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Create "UNIRTSP_TASK_NAME" %s:%hu [%d]",
+	apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Create "UNIRTSP_TASK_NAME" %s:%hu [%"APR_SIZE_T_FMT"]",
 		config->local_ip,
 		config->local_port,
 		config->max_connection_count);
@@ -202,12 +202,12 @@
 		apt_str_t resource_name_str;
 
 		text_stream.text = message->body;
-		text_stream.pos = text_stream.text.buf;
+		apt_text_stream_reset(&text_stream);
 		apt_string_set(&resource_name_str,resource_name);
 
 		parser = mrcp_parser_create(agent->sig_agent->resource_factory,session->mrcp_session->pool);
 		mrcp_parser_resource_name_set(parser,&resource_name_str);
-		if(mrcp_parser_run(parser,&text_stream) == MRCP_STREAM_MESSAGE_COMPLETE) {
+		if(mrcp_parser_run(parser,&text_stream) == MRCP_STREAM_STATUS_COMPLETE) {
 			mrcp_message_t *mrcp_message = mrcp_parser_message_get(parser);
 			mrcp_message->channel_id.session_id = message->header.session_id;
 			status = mrcp_session_control_request(session->mrcp_session,mrcp_message);

Added: freeswitch/trunk/libs/unimrcp/packages/inno-setup/setup-sdk-win32.txt (0 => 16719)


--- freeswitch/trunk/libs/unimrcp/packages/inno-setup/setup-sdk-win32.txt	                        (rev 0)
+++ freeswitch/trunk/libs/unimrcp/packages/inno-setup/setup-sdk-win32.txt	2010-02-22 15:43:43 UTC (rev 16719)
@@ -0,0 +1,3 @@
+#include "setup.txt"
+#define release_dir "Release"
+OutputBaseFilename=unimrcp-sdk-{#= uni_version}

Added: freeswitch/trunk/libs/unimrcp/packages/inno-setup/setup-sdk-x64.txt (0 => 16719)


--- freeswitch/trunk/libs/unimrcp/packages/inno-setup/setup-sdk-x64.txt	                        (rev 0)
+++ freeswitch/trunk/libs/unimrcp/packages/inno-setup/setup-sdk-x64.txt	2010-02-22 15:43:43 UTC (rev 16719)
@@ -0,0 +1,4 @@
+#include "setup.txt"
+#define release_dir "x64\Release"
+OutputBaseFilename=unimrcp-x64-sdk-{#= uni_version}
+ArchitecturesInstallIn64BitMode=x64

Added: freeswitch/trunk/libs/unimrcp/packages/inno-setup/setup-win32.txt (0 => 16719)


--- freeswitch/trunk/libs/unimrcp/packages/inno-setup/setup-win32.txt	                        (rev 0)
+++ freeswitch/trunk/libs/unimrcp/packages/inno-setup/setup-win32.txt	2010-02-22 15:43:43 UTC (rev 16719)
@@ -0,0 +1,3 @@
+#include "setup.txt"
+#define uni_outdir "..\..\Release"
+OutputBaseFilename=unimrcp-{#= uni_version}

Added: freeswitch/trunk/libs/unimrcp/packages/inno-setup/setup-x64.txt (0 => 16719)


--- freeswitch/trunk/libs/unimrcp/packages/inno-setup/setup-x64.txt	                        (rev 0)
+++ freeswitch/trunk/libs/unimrcp/packages/inno-setup/setup-x64.txt	2010-02-22 15:43:43 UTC (rev 16719)
@@ -0,0 +1,5 @@
+#include "setup.txt"
+#define uni_outdir "..\..\x64\Release"
+OutputBaseFilename=unimrcp-x64-{#= uni_version}
+ArchitecturesInstallIn64BitMode=x64
+ArchitecturesAllowed=x64

Added: freeswitch/trunk/libs/unimrcp/packages/inno-setup/setup.txt (0 => 16719)


--- freeswitch/trunk/libs/unimrcp/packages/inno-setup/setup.txt	                        (rev 0)
+++ freeswitch/trunk/libs/unimrcp/packages/inno-setup/setup.txt	2010-02-22 15:43:43 UTC (rev 16719)
@@ -0,0 +1,14 @@
+#define uni_version "0.9.0"
+#define uni_src "..\.."
+
+AppName=UniMRCP
+AppVerName=UniMRCP-{#= uni_version}
+AppPublisher=UniMRCP
+AppPublisherURL=http://www.unimrcp.org/
+AppSupportURL=http://groups.google.com/group/unimrcp
+AppUpdatesURL=http://code.google.com/p/unimrcp/downloads/list
+DefaultDirName={pf}\UniMRCP
+DefaultGroupName=UniMRCP
+Compression=lzma
+InternalCompressLevel=max
+SolidCompression=true

Modified: freeswitch/trunk/libs/unimrcp/packages/inno-setup/unimrcp-sdk.iss (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/packages/inno-setup/unimrcp-sdk.iss	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/packages/inno-setup/unimrcp-sdk.iss	2010-02-22 15:43:43 UTC (rev 16719)
@@ -1,46 +1,47 @@
 [Setup]
-#include "setup.iss"
-OutputBaseFilename=unimrcp-sdk-{#= uni_version}
+; include either setup-sdk-win32.txt or setup-sdk-x64.txt
+#include "setup-sdk-win32.txt"
+;#include "setup-sdk-x64.txt"
 
 [Types]
-Name: "full"; Description: "Full installation"
-Name: "sdk"; Description: "SDK installation"
-Name: "docs"; Description: "Documentation installation"
-Name: "custom"; Description: "Custom installation"; Flags: iscustom
+Name: full; Description: Full installation
+Name: sdk; Description: SDK installation
+Name: docs; Description: Documentation installation
+Name: custom; Description: Custom installation; Flags: iscustom
 
 [Components]
-Name: "sdk"; Description: "UniMRCP SDK (client, server and plugin development)"; Types: full sdk
-Name: "docs"; Description: "UniMRCP documentation"; Types: full docs
-Name: "docs\design"; Description: "Design concepts"; Types: full docs
-Name: "docs\api"; Description: "API"; Types: full docs
+Name: sdk; Description: UniMRCP SDK (client, server and plugin development); Types: full sdk
+Name: docs; Description: UniMRCP documentation; Types: full docs
+Name: docs\design; Description: Design concepts; Types: full docs
+Name: docs\api; Description: API; Types: full docs
 
 [Files]
-Source: "..\..\libs\apr\include\*.h"; DestDir: "{app}\include"; Components: sdk
-Source: "..\..\libs\apr-toolkit\include\*.h"; DestDir: "{app}\include"; Components: sdk
-Source: "..\..\libs\mpf\include\*.h"; DestDir: "{app}\include"; Components: sdk
-Source: "..\..\libs\mrcp\include\*.h"; DestDir: "{app}\include"; Components: sdk
-Source: "..\..\libs\mrcp\message\include\*.h"; DestDir: "{app}\include"; Components: sdk
-Source: "..\..\libs\mrcp\control\include\*.h"; DestDir: "{app}\include"; Components: sdk
-Source: "..\..\libs\mrcp\resources\include\*.h"; DestDir: "{app}\include"; Components: sdk
-Source: "..\..\libs\mrcp-engine\include\*.h"; DestDir: "{app}\include"; Components: sdk
-Source: "..\..\libs\mrcp-signaling\include\*.h"; DestDir: "{app}\include"; Components: sdk
-Source: "..\..\libs\mrcpv2-transport\include\*.h"; DestDir: "{app}\include"; Components: sdk
-Source: "..\..\libs\mrcp-client\include\*.h"; DestDir: "{app}\include"; Components: sdk
-Source: "..\..\libs\mrcp-server\include\*.h"; DestDir: "{app}\include"; Components: sdk
-Source: "..\..\platforms\libunimrcp-client\include\*.h"; DestDir: "{app}\include"; Components: sdk
-Source: "..\..\platforms\libunimrcp-server\include\*.h"; DestDir: "{app}\include"; Components: sdk
-Source: "..\..\Release\bin\*.lib"; DestDir: "{app}\lib"; Components: sdk
-Source: "..\..\libs\apr\Release\*.lib"; DestDir: "{app}\lib"; Components: sdk
-Source: "..\..\libs\apr-util\Release\*.lib"; DestDir: "{app}\lib"; Components: sdk
-Source: "..\..\libs\sofia-sip\win32\libsofia-sip-ua\Release\*.lib"; DestDir: "{app}\lib"; Components: sdk
-Source: "..\..\build\vsprops\sdk\*.vsprops"; DestDir: "{app}\vsprops"; Components: sdk; AfterInstall: SetProjectPath()
-Source: "..\..\docs\ea\*"; DestDir: "{app}\doc\ea"; Components: docs/design; Flags: recursesubdirs
-Source: "..\..\docs\dox\*"; DestDir: "{app}\doc\dox"; Components: docs/api; Flags: recursesubdirs
+Source: {#= uni_src}\libs\apr\include\*.h; DestDir: {app}\include; Components: sdk
+Source: {#= uni_src}\libs\apr-toolkit\include\*.h; DestDir: {app}\include; Components: sdk
+Source: {#= uni_src}\libs\mpf\include\*.h; DestDir: {app}\include; Components: sdk
+Source: {#= uni_src}\libs\mrcp\include\*.h; DestDir: {app}\include; Components: sdk
+Source: {#= uni_src}\libs\mrcp\message\include\*.h; DestDir: {app}\include; Components: sdk
+Source: {#= uni_src}\libs\mrcp\control\include\*.h; DestDir: {app}\include; Components: sdk
+Source: {#= uni_src}\libs\mrcp\resources\include\*.h; DestDir: {app}\include; Components: sdk
+Source: {#= uni_src}\libs\mrcp-engine\include\*.h; DestDir: {app}\include; Components: sdk
+Source: {#= uni_src}\libs\mrcp-signaling\include\*.h; DestDir: {app}\include; Components: sdk
+Source: {#= uni_src}\libs\mrcpv2-transport\include\*.h; DestDir: {app}\include; Components: sdk
+Source: {#= uni_src}\libs\mrcp-client\include\*.h; DestDir: {app}\include; Components: sdk
+Source: {#= uni_src}\libs\mrcp-server\include\*.h; DestDir: {app}\include; Components: sdk
+Source: {#= uni_src}\platforms\libunimrcp-client\include\*.h; DestDir: {app}\include; Components: sdk
+Source: {#= uni_src}\platforms\libunimrcp-server\include\*.h; DestDir: {app}\include; Components: sdk
+Source: {#= uni_src}\{#= release_dir}\lib\*.lib; DestDir: {app}\lib; Components: sdk
+Source: {#= uni_src}\libs\apr\{#= release_dir}\*.lib; DestDir: {app}\lib; Components: sdk
+Source: {#= uni_src}\libs\apr-util\{#= release_dir}\*.lib; DestDir: {app}\lib; Components: sdk
+Source: {#= uni_src}\libs\sofia-sip\win32\libsofia-sip-ua\{#= release_dir}\*.lib; DestDir: {app}\lib; Components: sdk
+Source: {#= uni_src}\build\vsprops\sdk\*.vsprops; DestDir: {app}\vsprops; Components: sdk; AfterInstall: SetProjectPath()
+Source: {#= uni_src}\docs\ea\*; DestDir: {app}\doc\ea; Components: docs/design; Flags: recursesubdirs
+Source: {#= uni_src}\docs\dox\*; DestDir: {app}\doc\dox; Components: docs/api; Flags: recursesubdirs
 
 [Icons]
-Name: "{group}\UniMRCP Docs\Design concepts"; Filename: "{app}\doc\ea\index.htm"; Components: docs\design
-Name: "{group}\UniMRCP Docs\API"; Filename: "{app}\doc\dox\html\index.html"; Components: docs\api
-Name: "{group}\Uninstall"; Filename: "{uninstallexe}"
+Name: {group}\UniMRCP Docs\Design concepts; Filename: {app}\doc\ea\index.htm; Components: docs\design
+Name: {group}\UniMRCP Docs\API; Filename: {app}\doc\dox\html\index.html; Components: docs\api
+Name: {group}\Uninstall; Filename: {uninstallexe}
 
 [Code]
 procedure SetProjectPath();

Modified: freeswitch/trunk/libs/unimrcp/packages/inno-setup/unimrcp.iss (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/packages/inno-setup/unimrcp.iss	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/packages/inno-setup/unimrcp.iss	2010-02-22 15:43:43 UTC (rev 16719)
@@ -1,55 +1,57 @@
 [Setup]
-#include "setup.iss"
-OutputBaseFilename=unimrcp-{#= uni_version}
+; include either setup-win32.txt or setup-x64.txt
+#include "setup-win32.txt"
+;#include "setup-x64.txt"
 
 [Types]
-Name: "full"; Description: "Full installation"
-Name: "server"; Description: "Server installation"
-Name: "client"; Description: "Client installation"
-Name: "custom"; Description: "Custom installation"; Flags: iscustom
+Name: full; Description: Full installation
+Name: server; Description: Server installation
+Name: client; Description: Client installation
+Name: custom; Description: Custom installation; Flags: iscustom
 
 [Components]
-Name: "server"; Description: "UniMRCP server"; Types: full server
-Name: "server\cepstral"; Description: "Cepstral synthesizer plugin"; Types: full server
-Name: "server\demosynth"; Description: "Demo synthesizer plugin"; Types: full server
-Name: "server\demorecog"; Description: "Demo recognizer plugin"; Types: full server
-Name: "client"; Description: "UniMRCP client (demo application)"; Types: full client
+Name: server; Description: UniMRCP server; Types: full server
+Name: server\recorder; Description: Recorder plugin; Types: full server
+Name: server\demosynth; Description: Demo synthesizer plugin; Types: full server
+Name: server\demorecog; Description: Demo recognizer plugin; Types: full server
+Name: client; Description: UniMRCP client (demo application); Types: full client
 
 [Dirs]
-Name: "{app}\data"; Permissions: everyone-full;
-Name: "{app}\log"; Permissions: everyone-full;
+Name: {app}\data; Permissions: everyone-full
+Name: {app}\log; Permissions: everyone-full
 
 [Files]
-#define uni_root "..\..\Release"
-Source: "{#= uni_root}\bin\unimrcpserver.exe"; DestDir: "{app}\bin"; Components: server
-Source: "{#= uni_root}\bin\unimrcpservice.exe"; DestDir: "{app}\bin"; Components: server
-Source: "{#= uni_root}\bin\unimrcpclient.exe"; DestDir: "{app}\bin"; Components: client
-Source: "{#= uni_root}\bin\*.dll"; DestDir: "{app}\bin"; Components: server client
-Source: "{#= uni_root}\plugin\mrcpcepstral.dll"; DestDir: "{app}\plugin"; Components: server/cepstral
-Source: "{#= uni_root}\plugin\demosynth.dll"; DestDir: "{app}\plugin"; Components: server/demosynth
-Source: "{#= uni_root}\plugin\demorecog.dll"; DestDir: "{app}\plugin"; Components: server/demorecog
-Source: "{#= uni_root}\conf\unimrcpserver.xml"; DestDir: "{app}\conf"; Components: server
-Source: "{#= uni_root}\conf\unimrcpclient.xml"; DestDir: "{app}\conf"; Components: client
-Source: "{#= uni_root}\data\*.pcm"; DestDir: "{app}\data"; Components: server client
-Source: "{#= uni_root}\data\*.xml"; DestDir: "{app}\data"; Components: server client
+Source: {#= uni_outdir}\bin\unimrcpserver.exe; DestDir: {app}\bin; Components: server
+Source: {#= uni_outdir}\bin\unimrcpservice.exe; DestDir: {app}\bin; Components: server
+Source: {#= uni_outdir}\bin\unimrcpclient.exe; DestDir: {app}\bin; Components: client
+Source: {#= uni_outdir}\bin\umc.exe; DestDir: {app}\bin; Components: client
+Source: {#= uni_outdir}\bin\*.dll; DestDir: {app}\bin; Components: server client
+Source: {#= uni_outdir}\plugin\mrcprecorder.dll; DestDir: {app}\plugin; Components: server/recorder
+Source: {#= uni_outdir}\plugin\demosynth.dll; DestDir: {app}\plugin; Components: server/demosynth
+Source: {#= uni_outdir}\plugin\demorecog.dll; DestDir: {app}\plugin; Components: server/demorecog
+Source: {#= uni_outdir}\conf\unimrcpserver.xml; DestDir: {app}\conf; Components: server
+Source: {#= uni_outdir}\conf\unimrcpclient.xml; DestDir: {app}\conf; Components: client
+Source: {#= uni_outdir}\conf\umcscenarios.xml; DestDir: {app}\conf; Components: client
+Source: {#= uni_outdir}\data\*.pcm; DestDir: {app}\data; Components: server client
+Source: {#= uni_outdir}\data\*.xml; DestDir: {app}\data; Components: server client
 
 [Icons]
-Name: "{group}\UniMRCP Server Console"; Filename: "{app}\bin\unimrcpserver.exe"; Parameters: "--root-dir ""{app}"""; Components: server
-Name: "{group}\UniMRCP Client Console"; Filename: "{app}\bin\unimrcpclient.exe"; Parameters: "--root-dir ""{app}"""; Components: client
-Name: "{group}\UniMRCP Service\Start Server"; Filename: "{app}\bin\unimrcpservice.exe"; Parameters: "--start"; Components: server
-Name: "{group}\UniMRCP Service\Stop Server"; Filename: "{app}\bin\unimrcpservice.exe"; Parameters: "--stop"; Components: server
-Name: "{group}\Uninstall"; Filename: "{uninstallexe}"
+Name: {group}\UniMRCP Server Console; Filename: {app}\bin\unimrcpserver.exe; Parameters: "--root-dir ""{app}"""; Components: server
+Name: {group}\UniMRCP Client Console; Filename: {app}\bin\unimrcpclient.exe; Parameters: "--root-dir ""{app}"""; Components: client
+Name: {group}\UniMRCP Service\Start Server; Filename: {app}\bin\unimrcpservice.exe; Parameters: --start; Components: server
+Name: {group}\UniMRCP Service\Stop Server; Filename: {app}\bin\unimrcpservice.exe; Parameters: --stop; Components: server
+Name: {group}\Uninstall; Filename: {uninstallexe}
 
 [Run]
-Filename: "{app}\bin\unimrcpservice.exe"; Description: "Register service"; Parameters: "--register ""{app}"""; Components: server
+Filename: {app}\bin\unimrcpservice.exe; Description: Register service; Parameters: "--register ""{app}"""; Components: server
 
 [UninstallRun]
-Filename: "{app}\bin\unimrcpservice.exe"; Parameters: "--unregister"; Components: server
+Filename: {app}\bin\unimrcpservice.exe; Parameters: --unregister; Components: server
 
 [Code]
 var
   Content: String;
-  
+
 procedure ModifyPluginConf(PluginName: String; Enable: Boolean);
 var
   TextFrom: String;
@@ -76,7 +78,7 @@
   begin
     CfgFile := ExpandConstant('{app}\conf\unimrcpserver.xml');
     LoadStringFromFile (CfgFile, Content);
-    ModifyPluginConf ('mrcpcepstral', IsComponentSelected('server\cepstral'));
+    ModifyPluginConf ('mrcprecorder', IsComponentSelected('server\recorder'));
     ModifyPluginConf ('demosynth', IsComponentSelected('server\demosynth'));
     ModifyPluginConf ('demorecog', IsComponentSelected('server\demorecog'));
     SaveStringToFile (CfgFile, Content, False);

Modified: freeswitch/trunk/libs/unimrcp/platforms/asr-client/asrclient.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/asr-client/asrclient.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/asr-client/asrclient.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -10,6 +10,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -17,7 +20,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -80,7 +83,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -140,6 +143,135 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include;&quot;..\libasr-client\include&quot;"
+				RuntimeLibrary="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="libasrclient.lib libapr-1.lib"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include;&quot;..\libasr-client\include&quot;"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="libasrclient.lib libapr-1.lib"
+				LinkTimeCodeGeneration="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/platforms/libasr-client/libasrclient.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/libasr-client/libasrclient.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/libasr-client/libasrclient.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="2"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -82,7 +85,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="2"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -144,6 +147,138 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="2"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+				PreprocessorDefinitions="ASR_CLIENT_LIB_EXPORT"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="$(UniMRCPClientLibs)"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="2"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+				PreprocessorDefinitions="ASR_CLIENT_LIB_EXPORT"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="$(UniMRCPClientLibs)"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/platforms/libasr-client/src/asr_engine.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/libasr-client/src/asr_engine.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/libasr-client/src/asr_engine.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -332,12 +332,18 @@
 			}
 			recog_header->no_input_timeout = 5000;
 			mrcp_resource_header_property_add(mrcp_message,RECOGNIZER_HEADER_NO_INPUT_TIMEOUT);
-			recog_header->recognition_timeout = 10000;
+			recog_header->recognition_timeout = 20000;
 			mrcp_resource_header_property_add(mrcp_message,RECOGNIZER_HEADER_RECOGNITION_TIMEOUT);
+			recog_header->speech_complete_timeout = 400;
+			mrcp_resource_header_property_add(mrcp_message,RECOGNIZER_HEADER_SPEECH_COMPLETE_TIMEOUT);
+			recog_header->dtmf_term_timeout = 3000;
+			mrcp_resource_header_property_add(mrcp_message,RECOGNIZER_HEADER_DTMF_TERM_TIMEOUT);
+			recog_header->dtmf_interdigit_timeout = 3000;
+			mrcp_resource_header_property_add(mrcp_message,RECOGNIZER_HEADER_DTMF_INTERDIGIT_TIMEOUT);
+			recog_header->confidence_threshold = 0.5f;
+			mrcp_resource_header_property_add(mrcp_message,RECOGNIZER_HEADER_CONFIDENCE_THRESHOLD);
 			recog_header->start_input_timers = TRUE;
 			mrcp_resource_header_property_add(mrcp_message,RECOGNIZER_HEADER_START_INPUT_TIMERS);
-			recog_header->confidence_threshold = 0.87f;
-			mrcp_resource_header_property_add(mrcp_message,RECOGNIZER_HEADER_CONFIDENCE_THRESHOLD);
 		}
 	}
 	return mrcp_message;

Modified: freeswitch/trunk/libs/unimrcp/platforms/libunimrcp-client/libunimrcpclient.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/libunimrcp-client/libunimrcpclient.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/libunimrcp-client/libunimrcpclient.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -71,7 +74,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -122,6 +125,116 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="&quot;$(ProjectRootDir)modules\mrcp-sofiasip\include&quot;;&quot;$(ProjectRootDir)modules\mrcp-unirtsp\include&quot;"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="&quot;$(ProjectRootDir)modules\mrcp-sofiasip\include&quot;;&quot;$(ProjectRootDir)modules\mrcp-unirtsp\include&quot;"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/platforms/libunimrcp-client/src/unimrcp_client.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/libunimrcp-client/src/unimrcp_client.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/libunimrcp-client/src/unimrcp_client.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -447,15 +447,15 @@
 	for(elem = root->first_child; elem; elem = elem->next) {
 		if(strcasecmp(elem->name,"engine") == 0) {
 			mpf_engine_t *media_engine;
-			unsigned long rate = 1;
+			unsigned long realtime_rate = 1;
 			const char *name = NULL;
 			const apr_xml_attr *attr;
 			for(attr = elem->attr; attr; attr = attr->next) {
 				if(strcasecmp(attr->name,"name") == 0) {
 					name = apr_pstrdup(pool,attr->value);
 				}
-				else if(strcasecmp(attr->name,"rate") == 0) {
-					rate = atol(attr->value);
+				else if(strcasecmp(attr->name,"realtime-rate") == 0) {
+					realtime_rate = atol(attr->value);
 				}
 				else {
 					apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Unknown Attribute <%s>",attr->name);
@@ -464,7 +464,7 @@
 			apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Loading Media Engine");
 			media_engine = mpf_engine_create(pool);
 			if(media_engine) {
-				mpf_engine_scheduler_rate_set(media_engine,rate);
+				mpf_engine_scheduler_rate_set(media_engine,realtime_rate);
 				mrcp_client_media_engine_register(client,media_engine,name);
 			}
 		}

Modified: freeswitch/trunk/libs/unimrcp/platforms/libunimrcp-server/libunimrcpserver.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/libunimrcp-server/libunimrcpserver.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/libunimrcp-server/libunimrcpserver.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpserver.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpserver.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -71,7 +74,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpserver.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpserver.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -122,6 +125,116 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpserver.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="&quot;$(ProjectRootDir)modules\mrcp-sofiasip\include&quot;;&quot;$(ProjectRootDir)modules\mrcp-unirtsp\include&quot;"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unilib-x64.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpserver.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="&quot;$(ProjectRootDir)modules\mrcp-sofiasip\include&quot;;&quot;$(ProjectRootDir)modules\mrcp-unirtsp\include&quot;"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/platforms/libunimrcp-server/src/unimrcp_server.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/libunimrcp-server/src/unimrcp_server.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/libunimrcp-server/src/unimrcp_server.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -480,15 +480,15 @@
 	for(elem = root->first_child; elem; elem = elem->next) {
 		if(strcasecmp(elem->name,"engine") == 0) {
 			mpf_engine_t *media_engine;
-			unsigned long rate = 1;
+			unsigned long realtime_rate = 1;
 			const char *name = NULL;
 			const apr_xml_attr *attr;
 			for(attr = elem->attr; attr; attr = attr->next) {
 				if(strcasecmp(attr->name,"name") == 0) {
 					name = apr_pstrdup(pool,attr->value);
 				}
-				else if(strcasecmp(attr->name,"rate") == 0) {
-					rate = atol(attr->value);
+				else if(strcasecmp(attr->name,"realtime-rate") == 0) {
+					realtime_rate = atol(attr->value);
 				}
 				else {
 					apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Unknown Attribute <%s>",attr->name);
@@ -497,7 +497,7 @@
 			apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Loading Media Engine");
 			media_engine = mpf_engine_create(pool);
 			if(media_engine) {
-				mpf_engine_scheduler_rate_set(media_engine,rate);
+				mpf_engine_scheduler_rate_set(media_engine,realtime_rate);
 				mrcp_server_media_engine_register(server,media_engine,name);
 			}
 		}

Modified: freeswitch/trunk/libs/unimrcp/platforms/umc/Makefile.am (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/umc/Makefile.am	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/umc/Makefile.am	2010-02-22 15:43:43 UTC (rev 16719)
@@ -26,7 +26,9 @@
                          src/recorderscenario.cpp \
                          src/recordersession.cpp \
                          src/dtmfscenario.cpp \
-                         src/dtmfsession.cpp
+                         src/dtmfsession.cpp \
+                         src/setparamscenario.cpp \
+                         src/setparamsession.cpp
 umc_LDADD              = $(top_builddir)/platforms/libunimrcp-client/libunimrcpclient.la
 
 if ISMAC

Modified: freeswitch/trunk/libs/unimrcp/platforms/umc/include/dtmfsession.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/umc/include/dtmfsession.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/umc/include/dtmfsession.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -48,7 +48,6 @@
 /* ============================ HANDLERS =================================== */
 	virtual bool OnSessionTerminate(mrcp_sig_status_code_e status);
 	virtual bool OnChannelAdd(mrcp_channel_t* channel, mrcp_sig_status_code_e status);
-	virtual bool OnChannelRemove(mrcp_channel_t* channel, mrcp_sig_status_code_e status);
 	virtual bool OnMessageReceive(mrcp_channel_t* channel, mrcp_message_t* message);
 
 /* ============================ ACCESSORS ================================== */

Modified: freeswitch/trunk/libs/unimrcp/platforms/umc/include/recogsession.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/umc/include/recogsession.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/umc/include/recogsession.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -51,7 +51,6 @@
 /* ============================ HANDLERS =================================== */
 	virtual bool OnSessionTerminate(mrcp_sig_status_code_e status);
 	virtual bool OnChannelAdd(mrcp_channel_t* channel, mrcp_sig_status_code_e status);
-	virtual bool OnChannelRemove(mrcp_channel_t* channel, mrcp_sig_status_code_e status);
 	virtual bool OnMessageReceive(mrcp_channel_t* channel, mrcp_message_t* message);
 
 /* ============================ ACCESSORS ================================== */

Modified: freeswitch/trunk/libs/unimrcp/platforms/umc/include/recordersession.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/umc/include/recordersession.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/umc/include/recordersession.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -48,7 +48,6 @@
 /* ============================ HANDLERS =================================== */
 	virtual bool OnSessionTerminate(mrcp_sig_status_code_e status);
 	virtual bool OnChannelAdd(mrcp_channel_t* channel, mrcp_sig_status_code_e status);
-	virtual bool OnChannelRemove(mrcp_channel_t* channel, mrcp_sig_status_code_e status);
 	virtual bool OnMessageReceive(mrcp_channel_t* channel, mrcp_message_t* message);
 
 /* ============================ ACCESSORS ================================== */

Added: freeswitch/trunk/libs/unimrcp/platforms/umc/include/setparamscenario.h (0 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/umc/include/setparamscenario.h	                        (rev 0)
+++ freeswitch/trunk/libs/unimrcp/platforms/umc/include/setparamscenario.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2008 Arsen Chaloyan
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __SETPARAM_SCENARIO_H__
+#define __SETPARAM_SCENARIO_H__
+
+/**
+ * @file setaparamscenario.h
+ * @brief Set Params Scenario
+ */ 
+
+#include "umcscenario.h"
+
+class SetParamScenario : public UmcScenario
+{
+public:
+/* ============================ CREATORS =================================== */
+
+/* ============================ MANIPULATORS =============================== */
+
+	virtual UmcSession* CreateSession();
+
+/* ============================ ACCESSORS ================================== */
+
+/* ============================ INQUIRIES ================================== */
+protected:
+/* ============================ MANIPULATORS =============================== */
+
+/* ============================ DATA ======================================= */
+};
+
+/* ============================ INLINE METHODS ============================= */
+
+#endif /*__SETPARAM_SCENARIO_H__*/

Added: freeswitch/trunk/libs/unimrcp/platforms/umc/include/setparamsession.h (0 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/umc/include/setparamsession.h	                        (rev 0)
+++ freeswitch/trunk/libs/unimrcp/platforms/umc/include/setparamsession.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2008 Arsen Chaloyan
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __SETPARAM_SESSION_H__
+#define __SETPARAM_SESSION_H__
+
+/**
+ * @file setparamsession.h
+ * @brief Set Recognizer Params
+ */ 
+
+#include <apr_tables.h>
+#include "umcsession.h"
+
+class SetParamScenario;
+struct RecogChannel;
+
+class SetParamSession : public UmcSession
+{
+public:
+/* ============================ CREATORS =================================== */
+	SetParamSession(const SetParamScenario* pScenario);
+	virtual ~SetParamSession();
+
+protected:
+/* ============================ MANIPULATORS =============================== */
+	virtual bool Start();
+
+	RecogChannel* CreateRecogChannel();
+
+	bool CreateRequestQueue(mrcp_channel_t* pMrcpChannel);
+	mrcp_message_t* CreateSetParams1(mrcp_channel_t* pMrcpChannel);
+	mrcp_message_t* CreateGetParams1(mrcp_channel_t* pMrcpChannel);
+	mrcp_message_t* CreateSetParams2(mrcp_channel_t* pMrcpChannel);
+	mrcp_message_t* CreateGetParams2(mrcp_channel_t* pMrcpChannel);
+	mrcp_message_t* CreateSetParams3(mrcp_channel_t* pMrcpChannel);
+	mrcp_message_t* CreateGetParams3(mrcp_channel_t* pMrcpChannel);
+
+	bool ProcessNextRequest(mrcp_channel_t* pMrcpChannel);
+
+/* ============================ HANDLERS =================================== */
+	virtual bool OnSessionTerminate(mrcp_sig_status_code_e status);
+	virtual bool OnChannelAdd(mrcp_channel_t* channel, mrcp_sig_status_code_e status);
+	virtual bool OnMessageReceive(mrcp_channel_t* channel, mrcp_message_t* message);
+
+/* ============================ ACCESSORS ================================== */
+	const SetParamScenario* GetScenario() const;
+
+private:
+/* ============================ DATA ======================================= */
+	RecogChannel*       m_pRecogChannel;
+	apr_array_header_t* m_RequestQueue;
+	int                 m_CurrentRequest;
+};
+
+
+/* ============================ INLINE METHODS ============================= */
+inline const SetParamScenario* SetParamSession::GetScenario() const
+{
+	return (SetParamScenario*)m_pScenario;
+}
+
+#endif /*__SETPARAM_SESSION_H__*/

Modified: freeswitch/trunk/libs/unimrcp/platforms/umc/include/synthsession.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/umc/include/synthsession.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/umc/include/synthsession.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -46,7 +46,6 @@
 /* ============================ HANDLERS =================================== */
 	virtual bool OnSessionTerminate(mrcp_sig_status_code_e status);
 	virtual bool OnChannelAdd(mrcp_channel_t* channel, mrcp_sig_status_code_e status);
-	virtual bool OnChannelRemove(mrcp_channel_t* channel, mrcp_sig_status_code_e status);
 	virtual bool OnMessageReceive(mrcp_channel_t* channel, mrcp_message_t* message);
 
 /* ============================ ACCESSORS ================================== */

Modified: freeswitch/trunk/libs/unimrcp/platforms/umc/include/umcframework.h (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/umc/include/umcframework.h	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/umc/include/umcframework.h	2010-02-22 15:43:43 UTC (rev 16719)
@@ -74,7 +74,6 @@
 	friend void UmcOnTerminateComplete(apt_task_t* pTask);
 
 	friend apt_bool_t AppMessageHandler(const mrcp_app_message_t* pAppMessage);
-	friend apt_bool_t AppOnReady(mrcp_application_t* pMrcpApplication, mrcp_sig_status_code_e status);
 	friend apt_bool_t AppOnSessionTerminate(mrcp_application_t *application, mrcp_session_t *session, mrcp_sig_status_code_e status);
 
 private:
@@ -86,8 +85,6 @@
 	mrcp_client_t*       m_pMrcpClient;
 	mrcp_application_t*  m_pMrcpApplication;
 
-	bool                 m_Ready;
-
 	apr_hash_t*          m_pScenarioTable;
 	apr_hash_t*          m_pSessionTable;
 };

Modified: freeswitch/trunk/libs/unimrcp/platforms/umc/src/dtmfsession.cpp (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/umc/src/dtmfsession.cpp	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/umc/src/dtmfsession.cpp	2010-02-22 15:43:43 UTC (rev 16719)
@@ -168,25 +168,6 @@
 	return StartRecognition(pMrcpChannel);
 }
 
-bool DtmfSession::OnChannelRemove(mrcp_channel_t* pMrcpChannel, mrcp_sig_status_code_e status)
-{
-	if(!UmcSession::OnChannelRemove(pMrcpChannel,status))
-		return false;
-
-	RecogChannel* pRecogChannel = (RecogChannel*) mrcp_application_channel_object_get(pMrcpChannel);
-	if(pRecogChannel)
-	{
-		if(pRecogChannel->m_pDtmfGenerator)
-		{
-			mpf_dtmf_generator_destroy(pRecogChannel->m_pDtmfGenerator);
-			pRecogChannel->m_pDtmfGenerator = NULL;
-		}
-	}
-	
-	/* terminate the demo */
-	return Terminate();
-}
-
 bool DtmfSession::OnMessageReceive(mrcp_channel_t* pMrcpChannel, mrcp_message_t* pMrcpMessage)
 {
 	if(!UmcSession::OnMessageReceive(pMrcpChannel,pMrcpMessage))
@@ -214,8 +195,8 @@
 			}
 			else 
 			{
-				/* received unexpected response, remove channel */
-				RemoveMrcpChannel(pMrcpChannel);
+				/* received unexpected response, terminate the session */
+				Terminate();
 			}
 		}
 		else 
@@ -232,7 +213,7 @@
 			{
 				pRecogChannel->m_Streaming = false;
 			}
-			RemoveMrcpChannel(pMrcpChannel);
+			Terminate();
 		}
 		else if(pMrcpMessage->start_line.method_id == RECOGNIZER_START_OF_INPUT) 
 		{

Modified: freeswitch/trunk/libs/unimrcp/platforms/umc/src/recogsession.cpp (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/umc/src/recogsession.cpp	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/umc/src/recogsession.cpp	2010-02-22 15:43:43 UTC (rev 16719)
@@ -191,26 +191,6 @@
 	return StartRecognition(pMrcpChannel);
 }
 
-bool RecogSession::OnChannelRemove(mrcp_channel_t* pMrcpChannel, mrcp_sig_status_code_e status)
-{
-	if(!UmcSession::OnChannelRemove(pMrcpChannel,status))
-		return false;
-
-	RecogChannel* pRecogChannel = (RecogChannel*) mrcp_application_channel_object_get(pMrcpChannel);
-	if(pRecogChannel)
-	{
-		FILE* pAudioIn = pRecogChannel->m_pAudioIn;
-		if(pAudioIn)
-		{
-			pRecogChannel->m_pAudioIn = NULL;
-			fclose(pAudioIn);
-		}
-	}
-	
-	/* terminate the demo */
-	return Terminate();
-}
-
 bool RecogSession::OnMessageReceive(mrcp_channel_t* pMrcpChannel, mrcp_message_t* pMrcpMessage)
 {
 	if(!UmcSession::OnMessageReceive(pMrcpChannel,pMrcpMessage))
@@ -229,8 +209,8 @@
 			}
 			else 
 			{
-				/* received unexpected response, remove channel */
-				RemoveMrcpChannel(pMrcpChannel);
+				/* received unexpected response, terminate the session */
+				Terminate();
 			}
 		}
 		else if(pMrcpMessage->start_line.method_id == RECOGNIZER_RECOGNIZE)
@@ -246,8 +226,8 @@
 			}
 			else 
 			{
-				/* received unexpected response, remove channel */
-				RemoveMrcpChannel(pMrcpChannel);
+				/* received unexpected response, terminate the session */
+				Terminate();
 			}
 		}
 		else 
@@ -264,7 +244,7 @@
 			{
 				pRecogChannel->m_Streaming = false;
 			}
-			RemoveMrcpChannel(pMrcpChannel);
+			Terminate();
 		}
 		else if(pMrcpMessage->start_line.method_id == RECOGNIZER_START_OF_INPUT) 
 		{

Modified: freeswitch/trunk/libs/unimrcp/platforms/umc/src/recordersession.cpp (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/umc/src/recordersession.cpp	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/umc/src/recordersession.cpp	2010-02-22 15:43:43 UTC (rev 16719)
@@ -164,26 +164,6 @@
 	return StartRecorder(pMrcpChannel);
 }
 
-bool RecorderSession::OnChannelRemove(mrcp_channel_t* pMrcpChannel, mrcp_sig_status_code_e status)
-{
-	if(!UmcSession::OnChannelRemove(pMrcpChannel,status))
-		return false;
-
-	RecorderChannel* pRecorderChannel = (RecorderChannel*) mrcp_application_channel_object_get(pMrcpChannel);
-	if(pRecorderChannel)
-	{
-		FILE* pAudioIn = pRecorderChannel->m_pAudioIn;
-		if(pAudioIn)
-		{
-			pRecorderChannel->m_pAudioIn = NULL;
-			fclose(pAudioIn);
-		}
-	}
-	
-	/* terminate the demo */
-	return Terminate();
-}
-
 bool RecorderSession::OnMessageReceive(mrcp_channel_t* pMrcpChannel, mrcp_message_t* pMrcpMessage)
 {
 	if(!UmcSession::OnMessageReceive(pMrcpChannel,pMrcpMessage))
@@ -206,8 +186,8 @@
 			}
 			else 
 			{
-				/* received unexpected response, remove channel */
-				RemoveMrcpChannel(pMrcpChannel);
+				/* received unexpected response, terminate the session */
+				Terminate();
 			}
 		}
 		else 
@@ -223,7 +203,7 @@
 			{
 				pRecorderChannel->m_Streaming = false;
 			}
-			RemoveMrcpChannel(pMrcpChannel);
+			Terminate();
 		}
 		else if(pMrcpMessage->start_line.method_id == RECORDER_START_OF_INPUT) 
 		{

Added: freeswitch/trunk/libs/unimrcp/platforms/umc/src/setparamscenario.cpp (0 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/umc/src/setparamscenario.cpp	                        (rev 0)
+++ freeswitch/trunk/libs/unimrcp/platforms/umc/src/setparamscenario.cpp	2010-02-22 15:43:43 UTC (rev 16719)
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2008 Arsen Chaloyan
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "setparamscenario.h"
+#include "setparamsession.h"
+
+UmcSession* SetParamScenario::CreateSession()
+{
+	return new SetParamSession(this);
+}

Added: freeswitch/trunk/libs/unimrcp/platforms/umc/src/setparamsession.cpp (0 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/umc/src/setparamsession.cpp	                        (rev 0)
+++ freeswitch/trunk/libs/unimrcp/platforms/umc/src/setparamsession.cpp	2010-02-22 15:43:43 UTC (rev 16719)
@@ -0,0 +1,387 @@
+/*
+ * Copyright 2008 Arsen Chaloyan
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "setparamsession.h"
+#include "setparamscenario.h"
+#include "mrcp_message.h"
+#include "mrcp_generic_header.h"
+#include "mrcp_recog_header.h"
+#include "mrcp_recog_resource.h"
+#include "apt_log.h"
+
+struct RecogChannel
+{
+	/** MRCP control channel */
+	mrcp_channel_t* m_pMrcpChannel;
+};
+
+SetParamSession::SetParamSession(const SetParamScenario* pScenario) :
+	UmcSession(pScenario),
+	m_pRecogChannel(NULL),
+	m_RequestQueue(NULL),
+	m_CurrentRequest(0)
+{
+}
+
+SetParamSession::~SetParamSession()
+{
+}
+
+bool SetParamSession::Start()
+{
+	/* create channel and associate all the required data */
+	m_pRecogChannel = CreateRecogChannel();
+	if(!m_pRecogChannel) 
+		return false;
+
+	/* add channel to session (send asynchronous request) */
+	if(!AddMrcpChannel(m_pRecogChannel->m_pMrcpChannel))
+	{
+		delete m_pRecogChannel;
+		m_pRecogChannel = NULL;
+		return false;
+	}
+	return true;
+}
+
+bool SetParamSession::OnSessionTerminate(mrcp_sig_status_code_e status)
+{
+	if(m_pRecogChannel)
+	{
+		delete m_pRecogChannel;
+		m_pRecogChannel = NULL;
+	}
+	return UmcSession::OnSessionTerminate(status);
+}
+
+static apt_bool_t ReadStream(mpf_audio_stream_t* pStream, mpf_frame_t* pFrame)
+{
+	return TRUE;
+}
+
+RecogChannel* SetParamSession::CreateRecogChannel()
+{
+	mrcp_channel_t* pChannel;
+	mpf_termination_t* pTermination;
+	mpf_stream_capabilities_t* pCapabilities;
+	apr_pool_t* pool = GetSessionPool();
+
+	/* create channel */
+	RecogChannel *pRecogChannel = new RecogChannel;
+	pRecogChannel->m_pMrcpChannel = NULL;
+
+	/* create source stream capabilities */
+	pCapabilities = mpf_source_stream_capabilities_create(pool);
+	GetScenario()->InitCapabilities(pCapabilities);
+
+	static const mpf_audio_stream_vtable_t audio_stream_vtable = 
+	{
+		NULL,
+		NULL,
+		NULL,
+		ReadStream,
+		NULL,
+		NULL,
+		NULL
+	};
+
+	pTermination = CreateAudioTermination(
+			&audio_stream_vtable,      /* virtual methods table of audio stream */
+			pCapabilities,             /* capabilities of audio stream */
+			pRecogChannel);            /* object to associate */
+
+	pChannel = CreateMrcpChannel(
+			MRCP_RECOGNIZER_RESOURCE,  /* MRCP resource identifier */
+			pTermination,              /* media termination, used to terminate audio stream */
+			NULL,                      /* RTP descriptor, used to create RTP termination (NULL by default) */
+			pRecogChannel);            /* object to associate */
+	if(!pChannel)
+	{
+		delete pRecogChannel;
+		return NULL;
+	}
+	
+	pRecogChannel->m_pMrcpChannel = pChannel;
+	return pRecogChannel;
+}
+
+bool SetParamSession::OnChannelAdd(mrcp_channel_t* pMrcpChannel, mrcp_sig_status_code_e status)
+{
+	if(!UmcSession::OnChannelAdd(pMrcpChannel,status))
+		return false;
+
+	if(status != MRCP_SIG_STATUS_CODE_SUCCESS)
+	{
+		/* error case, just terminate the demo */
+		return Terminate();
+	}
+
+	if(!CreateRequestQueue(pMrcpChannel))
+	{
+		return Terminate();
+	}
+
+	return ProcessNextRequest(pMrcpChannel);
+}
+
+bool SetParamSession::OnMessageReceive(mrcp_channel_t* pMrcpChannel, mrcp_message_t* pMrcpMessage)
+{
+	if(!UmcSession::OnMessageReceive(pMrcpChannel,pMrcpMessage))
+		return false;
+
+	if(pMrcpMessage->start_line.message_type == MRCP_MESSAGE_TYPE_RESPONSE) 
+	{
+		/* received MRCP response */
+		if(pMrcpMessage->start_line.method_id == RECOGNIZER_SET_PARAMS || pMrcpMessage->start_line.method_id == RECOGNIZER_GET_PARAMS)
+		{
+			/* received the response */
+			if(pMrcpMessage->start_line.request_state == MRCP_REQUEST_STATE_COMPLETE) 
+			{
+				m_CurrentRequest++;
+				ProcessNextRequest(pMrcpChannel);
+			}
+			else 
+			{
+				/* received unexpected response, terminate the session */
+				Terminate();
+			}
+		}
+		else 
+		{
+			/* received unexpected response */
+			Terminate();
+		}
+	}
+	return true;
+}
+
+bool SetParamSession::ProcessNextRequest(mrcp_channel_t* pMrcpChannel)
+{
+	if(m_CurrentRequest >= m_RequestQueue->nelts) 
+	{
+		return Terminate();
+	}
+
+	mrcp_message_t* pMrcpMessage = APR_ARRAY_IDX(m_RequestQueue,m_CurrentRequest,mrcp_message_t*);
+	if(!pMrcpMessage)
+	{
+		return Terminate();
+	}
+
+	return SendMrcpRequest(pMrcpChannel,pMrcpMessage);
+}
+
+bool SetParamSession::CreateRequestQueue(mrcp_channel_t* pMrcpChannel)
+{
+	m_CurrentRequest = 0;
+	m_RequestQueue = apr_array_make(GetSessionPool(),5,sizeof(mrcp_message_t*));
+	mrcp_message_t* pMrcpMessage;
+	
+	pMrcpMessage = CreateSetParams1(pMrcpChannel);
+	if(pMrcpMessage)
+		*(mrcp_message_t**)apr_array_push(m_RequestQueue) = pMrcpMessage;
+
+	pMrcpMessage = CreateGetParams1(pMrcpChannel);
+	if(pMrcpMessage)
+		*(mrcp_message_t**)apr_array_push(m_RequestQueue) = pMrcpMessage;
+
+	pMrcpMessage = CreateSetParams2(pMrcpChannel);
+	if(pMrcpMessage)
+		*(mrcp_message_t**)apr_array_push(m_RequestQueue) = pMrcpMessage;
+
+	pMrcpMessage = CreateGetParams2(pMrcpChannel);
+	if(pMrcpMessage)
+		*(mrcp_message_t**)apr_array_push(m_RequestQueue) = pMrcpMessage;
+
+	pMrcpMessage = CreateSetParams3(pMrcpChannel);
+	if(pMrcpMessage)
+		*(mrcp_message_t**)apr_array_push(m_RequestQueue) = pMrcpMessage;
+
+	pMrcpMessage = CreateGetParams3(pMrcpChannel);
+	if(pMrcpMessage)
+		*(mrcp_message_t**)apr_array_push(m_RequestQueue) = pMrcpMessage;
+
+	return true;
+}
+
+mrcp_message_t* SetParamSession::CreateSetParams1(mrcp_channel_t* pMrcpChannel)
+{
+	mrcp_message_t* pMrcpMessage = CreateMrcpMessage(pMrcpChannel,RECOGNIZER_SET_PARAMS);
+	if(!pMrcpMessage)
+		return NULL;
+
+	mrcp_recog_header_t* pRecogHeader;
+	/* get/allocate recog header */
+	pRecogHeader = (mrcp_recog_header_t*) mrcp_resource_header_prepare(pMrcpMessage);
+	if(pRecogHeader) 
+	{
+		/* set recog header fields */
+		pRecogHeader->confidence_threshold = 0.4f;
+		mrcp_resource_header_property_add(pMrcpMessage,RECOGNIZER_HEADER_CONFIDENCE_THRESHOLD);
+		pRecogHeader->sensitivity_level = 0.531f;
+		mrcp_resource_header_property_add(pMrcpMessage,RECOGNIZER_HEADER_SENSITIVITY_LEVEL);
+		pRecogHeader->speed_vs_accuracy = 0.5f;
+		mrcp_resource_header_property_add(pMrcpMessage,RECOGNIZER_HEADER_SPEED_VS_ACCURACY);
+		pRecogHeader->n_best_list_length = 5;
+		mrcp_resource_header_property_add(pMrcpMessage,RECOGNIZER_HEADER_N_BEST_LIST_LENGTH);
+		pRecogHeader->no_input_timeout = 5000;
+		mrcp_resource_header_property_add(pMrcpMessage,RECOGNIZER_HEADER_NO_INPUT_TIMEOUT);
+	}
+
+	return pMrcpMessage;
+}
+
+mrcp_message_t* SetParamSession::CreateGetParams1(mrcp_channel_t* pMrcpChannel)
+{
+	mrcp_message_t* pMrcpMessage = CreateMrcpMessage(pMrcpChannel,RECOGNIZER_GET_PARAMS);
+	if(!pMrcpMessage)
+		return NULL;
+
+	mrcp_recog_header_t* pRecogHeader;
+	/* get/allocate recog header */
+	pRecogHeader = (mrcp_recog_header_t*) mrcp_resource_header_prepare(pMrcpMessage);
+	if(pRecogHeader) 
+	{
+		/* set recog header fields */
+		mrcp_resource_header_name_property_add(pMrcpMessage,RECOGNIZER_HEADER_CONFIDENCE_THRESHOLD);
+		mrcp_resource_header_name_property_add(pMrcpMessage,RECOGNIZER_HEADER_SENSITIVITY_LEVEL);
+		mrcp_resource_header_name_property_add(pMrcpMessage,RECOGNIZER_HEADER_SPEED_VS_ACCURACY);
+		mrcp_resource_header_name_property_add(pMrcpMessage,RECOGNIZER_HEADER_N_BEST_LIST_LENGTH);
+		mrcp_resource_header_name_property_add(pMrcpMessage,RECOGNIZER_HEADER_NO_INPUT_TIMEOUT);
+	}
+
+	return pMrcpMessage;
+}
+
+mrcp_message_t* SetParamSession::CreateSetParams2(mrcp_channel_t* pMrcpChannel)
+{
+	mrcp_message_t* pMrcpMessage = CreateMrcpMessage(pMrcpChannel,RECOGNIZER_SET_PARAMS);
+	if(!pMrcpMessage)
+		return NULL;
+
+	mrcp_recog_header_t* pRecogHeader;
+	/* get/allocate recog header */
+	pRecogHeader = (mrcp_recog_header_t*) mrcp_resource_header_prepare(pMrcpMessage);
+	if(pRecogHeader) 
+	{
+		/* set recog header fields */
+		pRecogHeader->recognition_timeout = 5000;
+		mrcp_resource_header_property_add(pMrcpMessage,RECOGNIZER_HEADER_RECOGNITION_TIMEOUT);
+		pRecogHeader->speech_complete_timeout = 1000;
+		mrcp_resource_header_property_add(pMrcpMessage,RECOGNIZER_HEADER_SPEECH_COMPLETE_TIMEOUT);
+		pRecogHeader->speech_incomplete_timeout = 2000;
+		mrcp_resource_header_property_add(pMrcpMessage,RECOGNIZER_HEADER_SPEECH_INCOMPLETE_TIMEOUT);
+		pRecogHeader->dtmf_interdigit_timeout = 3000;
+		mrcp_resource_header_property_add(pMrcpMessage,RECOGNIZER_HEADER_DTMF_INTERDIGIT_TIMEOUT);
+	}
+
+	return pMrcpMessage;
+}
+
+mrcp_message_t* SetParamSession::CreateGetParams2(mrcp_channel_t* pMrcpChannel)
+{
+	mrcp_message_t* pMrcpMessage = CreateMrcpMessage(pMrcpChannel,RECOGNIZER_GET_PARAMS);
+	if(!pMrcpMessage)
+		return NULL;
+
+	mrcp_recog_header_t* pRecogHeader;
+	/* get/allocate recog header */
+	pRecogHeader = (mrcp_recog_header_t*) mrcp_resource_header_prepare(pMrcpMessage);
+	if(pRecogHeader) 
+	{
+		/* set recog header fields */
+		mrcp_resource_header_name_property_add(pMrcpMessage,RECOGNIZER_HEADER_RECOGNITION_TIMEOUT);
+		mrcp_resource_header_name_property_add(pMrcpMessage,RECOGNIZER_HEADER_SPEECH_COMPLETE_TIMEOUT);
+		mrcp_resource_header_name_property_add(pMrcpMessage,RECOGNIZER_HEADER_SPEECH_INCOMPLETE_TIMEOUT);
+		mrcp_resource_header_name_property_add(pMrcpMessage,RECOGNIZER_HEADER_DTMF_INTERDIGIT_TIMEOUT);
+	}
+
+	return pMrcpMessage;
+}
+
+mrcp_message_t* SetParamSession::CreateSetParams3(mrcp_channel_t* pMrcpChannel)
+{
+	mrcp_message_t* pMrcpMessage = CreateMrcpMessage(pMrcpChannel,RECOGNIZER_SET_PARAMS);
+	if(!pMrcpMessage)
+		return NULL;
+
+	mrcp_generic_header_t* pGenericHeader;
+	/* get/allocate generic header */
+	pGenericHeader = (mrcp_generic_header_t*) mrcp_generic_header_prepare(pMrcpMessage);
+	if(pGenericHeader) 
+	{
+		apr_pool_t* pool = GetSessionPool();
+		/* set generic header fields */
+		apt_pair_arr_t* pVSP = apt_pair_array_create(3,pool);
+		if(pVSP)
+		{
+			apt_str_t name;
+			apt_str_t value;
+			
+			apt_string_set(&name,"confidencelevel");
+			apt_string_set(&value,"500");
+			apt_pair_array_append(pVSP,&name,&value,pool);
+			
+			apt_string_set(&name,"sensitivity");
+			apt_string_set(&value,"0.500");
+			apt_pair_array_append(pVSP,&name,&value,pool);
+
+			apt_string_set(&name,"speedvsaccuracy");
+			apt_string_set(&value,"0.789");
+			apt_pair_array_append(pVSP,&name,&value,pool);
+
+			apt_string_set(&name,"timeout");
+			apt_string_set(&value,"1000");
+			apt_pair_array_append(pVSP,&name,&value,pool);
+
+			apt_string_set(&name,"swirec_application_name");
+			apt_string_set(&value,"UniMRCP");
+			apt_pair_array_append(pVSP,&name,&value,pool);
+
+			apt_string_set(&name,"swirec_phoneme_lookahead_beam");
+			apt_string_set(&value,"-50");
+			apt_pair_array_append(pVSP,&name,&value,pool);
+
+			pGenericHeader->vendor_specific_params = pVSP;
+			mrcp_generic_header_property_add(pMrcpMessage,GENERIC_HEADER_VENDOR_SPECIFIC_PARAMS);
+		}
+	}
+
+	return pMrcpMessage;
+}
+
+mrcp_message_t* SetParamSession::CreateGetParams3(mrcp_channel_t* pMrcpChannel)
+{
+	mrcp_message_t* pMrcpMessage = CreateMrcpMessage(pMrcpChannel,RECOGNIZER_GET_PARAMS);
+	if(!pMrcpMessage)
+		return NULL;
+
+	mrcp_generic_header_t* pGenericHeader;
+	/* get/allocate generic header */
+	pGenericHeader = (mrcp_generic_header_t*) mrcp_generic_header_prepare(pMrcpMessage);
+	if(pGenericHeader) 
+	{
+		mrcp_generic_header_name_property_add(pMrcpMessage,GENERIC_HEADER_ACCEPT_CHARSET);
+		mrcp_generic_header_name_property_add(pMrcpMessage,GENERIC_HEADER_CACHE_CONTROL);
+		mrcp_generic_header_name_property_add(pMrcpMessage,GENERIC_HEADER_LOGGING_TAG);
+		mrcp_generic_header_name_property_add(pMrcpMessage,GENERIC_HEADER_VENDOR_SPECIFIC_PARAMS);
+		mrcp_generic_header_name_property_add(pMrcpMessage,GENERIC_HEADER_FETCH_TIMEOUT);
+		mrcp_generic_header_name_property_add(pMrcpMessage,GENERIC_HEADER_SET_COOKIE);
+		mrcp_generic_header_name_property_add(pMrcpMessage,GENERIC_HEADER_SET_COOKIE2);
+	}
+
+	return pMrcpMessage;
+}

Modified: freeswitch/trunk/libs/unimrcp/platforms/umc/src/synthsession.cpp (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/umc/src/synthsession.cpp	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/umc/src/synthsession.cpp	2010-02-22 15:43:43 UTC (rev 16719)
@@ -156,26 +156,6 @@
 	return true;
 }
 
-bool SynthSession::OnChannelRemove(mrcp_channel_t* pMrcpChannel, mrcp_sig_status_code_e status)
-{
-	if(!UmcSession::OnChannelRemove(pMrcpChannel,status))
-		return false;
-
-	SynthChannel* pSynthChannel = (SynthChannel*) mrcp_application_channel_object_get(pMrcpChannel);
-	if(pSynthChannel) 
-	{
-		FILE* pAudioOut = pSynthChannel->m_pAudioOut;
-		if(pAudioOut) 
-		{
-			pSynthChannel->m_pAudioOut = NULL;
-			fclose(pAudioOut);
-		}
-	}
-
-	/* terminate the demo */
-	return Terminate();
-}
-
 bool SynthSession::OnMessageReceive(mrcp_channel_t* pMrcpChannel, mrcp_message_t* pMrcpMessage)
 {
 	if(!UmcSession::OnMessageReceive(pMrcpChannel,pMrcpMessage))
@@ -193,8 +173,8 @@
 			}
 			else 
 			{
-				/* received unexpected response, remove channel */
-				RemoveMrcpChannel(pMrcpChannel);
+				/* received unexpected response, terminate the session */
+				Terminate();
 			}
 		}
 		else 
@@ -207,8 +187,8 @@
 		/* received MRCP event */
 		if(pMrcpMessage->start_line.method_id == SYNTHESIZER_SPEAK_COMPLETE) 
 		{
-			/* received SPEAK-COMPLETE event, remove channel */
-			RemoveMrcpChannel(pMrcpChannel);
+			/* received SPEAK-COMPLETE event, terminate the session */
+			Terminate();
 		}
 	}
 	return true;

Modified: freeswitch/trunk/libs/unimrcp/platforms/umc/src/umcconsole.cpp (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/umc/src/umcconsole.cpp	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/umc/src/umcconsole.cpp	2010-02-22 15:43:43 UTC (rev 16719)
@@ -102,7 +102,7 @@
 		char* pScenarioName = apr_strtok(NULL, " ", &last);
 		if(pScenarioName) 
 		{
-			char* pProfileName = apr_strtok(NULL, " ", &last);
+			const char* pProfileName = apr_strtok(NULL, " ", &last);
 			if(!pProfileName) 
 			{
 				pProfileName = "MRCPv2-Default";

Modified: freeswitch/trunk/libs/unimrcp/platforms/umc/src/umcframework.cpp (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/umc/src/umcframework.cpp	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/umc/src/umcframework.cpp	2010-02-22 15:43:43 UTC (rev 16719)
@@ -20,6 +20,7 @@
 #include "recogscenario.h"
 #include "recorderscenario.h"
 #include "dtmfscenario.h"
+#include "setparamscenario.h"
 #include "unimrcp_client.h"
 #include "apt_log.h"
 
@@ -52,7 +53,6 @@
 	m_pTask(NULL),
 	m_pMrcpClient(NULL),
 	m_pMrcpApplication(NULL),
-	m_Ready(false),
 	m_pScenarioTable(NULL),
 	m_pSessionTable(NULL)
 {
@@ -69,19 +69,7 @@
 
 	m_pSessionTable = apr_hash_make(m_pPool);
 	m_pScenarioTable = apr_hash_make(m_pPool);
-	if(!CreateTask())
-		return false;
-
-	/* wait for READY state,
-	   preferably cond wait object should be used */
-	int attempts = 0;
-	while(!m_Ready && attempts < 10)
-	{
-		attempts++;
-		apr_sleep(500000);
-	}
-
-	return true;
+	return CreateTask();
 }
 
 void UmcFramework::Destroy()
@@ -155,7 +143,6 @@
 		pVtable->on_terminate_complete = UmcOnTerminateComplete;
 	}
 
-	m_Ready = false;
 	apt_task_start(pTask);
 	return true;
 }
@@ -186,6 +173,8 @@
 			return new RecorderScenario();
 		else if(strcasecmp(pType,"DtmfRecognizer") == 0)
 			return new DtmfScenario();
+		else if(strcasecmp(pType,"Params") == 0)
+			return new SetParamScenario();
 	}
 	return NULL;
 }
@@ -524,13 +513,6 @@
 	return pSession->OnResourceDiscover(descriptor,status);
 }
 
-apt_bool_t AppOnReady(mrcp_application_t *application, mrcp_sig_status_code_e status)
-{
-	UmcFramework* pFramework = (UmcFramework*) mrcp_application_object_get(application);
-	pFramework->m_Ready = true;
-	return TRUE;
-}
-
 void UmcOnStartComplete(apt_task_t* pTask)
 {
 	apt_consumer_task_t* pConsumerTask = (apt_consumer_task_t*) apt_task_object_get(pTask);
@@ -568,7 +550,6 @@
 				AppOnChannelAdd,
 				AppOnChannelRemove,
 				AppOnMessageReceive,
-				AppOnReady,
 				AppOnTerminateEvent,
 				AppOnResourceDiscover
 			};
@@ -578,26 +559,22 @@
 		}
 		case UMC_TASK_RUN_SESSION_MSG:
 		{
-			if(pFramework->m_Ready)
-				pFramework->ProcessRunRequest(pUmcMsg->m_ScenarioName,pUmcMsg->m_ProfileName);
+			pFramework->ProcessRunRequest(pUmcMsg->m_ScenarioName,pUmcMsg->m_ProfileName);
 			break;
 		}
 		case UMC_TASK_KILL_SESSION_MSG:
 		{
-			if(pFramework->m_Ready)
-				pFramework->ProcessKillRequest(pUmcMsg->m_SessionId);
+			pFramework->ProcessKillRequest(pUmcMsg->m_SessionId);
 			break;
 		}
 		case UMC_TASK_SHOW_SCENARIOS_MSG:
 		{
-			if(pFramework->m_Ready)
-				pFramework->ProcessShowScenarios();
+			pFramework->ProcessShowScenarios();
 			break;
 		}
 		case UMC_TASK_SHOW_SESSIONS_MSG:
 		{
-			if(pFramework->m_Ready)
-				pFramework->ProcessShowSessions();
+			pFramework->ProcessShowSessions();
 			break;
 		}
 	}

Modified: freeswitch/trunk/libs/unimrcp/platforms/umc/umc.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/umc/umc.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/umc/umc.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -10,6 +10,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -17,7 +20,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -79,7 +82,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -139,6 +142,134 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="$(UniMRCPClientLibs)"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="$(UniMRCPClientLibs)"
+				LinkTimeCodeGeneration="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>
@@ -177,6 +308,14 @@
 				>
 			</File>
 			<File
+				RelativePath=".\src\setparamscenario.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\src\setparamsession.cpp"
+				>
+			</File>
+			<File
 				RelativePath=".\src\synthscenario.cpp"
 				>
 			</File>
@@ -231,6 +370,14 @@
 				>
 			</File>
 			<File
+				RelativePath=".\include\setparamscenario.h"
+				>
+			</File>
+			<File
+				RelativePath=".\include\setparamsession.h"
+				>
+			</File>
+			<File
 				RelativePath=".\include\synthscenario.h"
 				>
 			</File>

Modified: freeswitch/trunk/libs/unimrcp/platforms/unimrcp-client/src/demo_discover_application.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/unimrcp-client/src/demo_discover_application.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/unimrcp-client/src/demo_discover_application.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -41,7 +41,6 @@
 	NULL,
 	NULL,
 	NULL,
-	NULL,
 	discover_application_on_resource_discover
 };
 

Modified: freeswitch/trunk/libs/unimrcp/platforms/unimrcp-client/unimrcpclient.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/unimrcp-client/unimrcpclient.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/unimrcp-client/unimrcpclient.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -10,6 +10,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -17,7 +20,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -79,7 +82,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -139,6 +142,134 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="$(UniMRCPClientLibs)"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpclient.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="$(UniMRCPClientLibs)"
+				LinkTimeCodeGeneration="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/platforms/unimrcp-server/unimrcpserver.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/platforms/unimrcp-server/unimrcpserver.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/platforms/unimrcp-server/unimrcpserver.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -10,6 +10,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -17,7 +20,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpserver.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpserver.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -78,7 +81,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpserver.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpserver.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -137,6 +140,132 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpserver.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="$(UniMRCPServerLibs)"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpserver.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="$(UniMRCPServerLibs)"
+				LinkTimeCodeGeneration="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/plugins/demo-recog/demorecog.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/plugins/demo-recog/demorecog.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/plugins/demo-recog/demorecog.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="2"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpplugin.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -80,7 +83,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="2"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpplugin.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -140,6 +143,134 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="2"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin-x64.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="2"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin-x64.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/plugins/demo-synth/demosynth.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/plugins/demo-synth/demosynth.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/plugins/demo-synth/demosynth.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="2"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpplugin.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -80,7 +83,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="2"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpplugin.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -140,6 +143,134 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="2"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin-x64.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="2"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin-x64.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/plugins/demo-synth/src/demo_synth_engine.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/plugins/demo-synth/src/demo_synth_engine.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/plugins/demo-synth/src/demo_synth_engine.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -329,11 +329,13 @@
 	if(req_synth_header) {
 		/* check voice age header */
 		if(mrcp_resource_header_property_check(request,SYNTHESIZER_HEADER_VOICE_AGE) == TRUE) {
-			apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Set Voice Age [%d]",req_synth_header->voice_param.age);
+			apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Set Voice Age [%"APR_SIZE_T_FMT"]",
+				req_synth_header->voice_param.age);
 		}
 		/* check voice name header */
 		if(mrcp_resource_header_property_check(request,SYNTHESIZER_HEADER_VOICE_NAME) == TRUE) {
-			apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Set Voice Name [%s]",req_synth_header->voice_param.name);
+			apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Set Voice Name [%s]",
+				req_synth_header->voice_param.name);
 		}
 	}
 	

Modified: freeswitch/trunk/libs/unimrcp/plugins/mrcp-cepstral/mrcpcepstral.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/plugins/mrcp-cepstral/mrcpcepstral.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/plugins/mrcp-cepstral/mrcpcepstral.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="2"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpplugin.vsprops;$(ProjectDir)..\..\build\vsprops\cepstral.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin.vsprops;$(ProjectDir)..\..\build\vsprops\cepstral.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -80,7 +83,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="2"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpplugin.vsprops;$(ProjectDir)..\..\build\vsprops\cepstral.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin.vsprops;$(ProjectDir)..\..\build\vsprops\cepstral.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -140,6 +143,134 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="2"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\cepstral.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="2"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\cepstral.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/plugins/mrcp-flite/mrcpflite.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/plugins/mrcp-flite/mrcpflite.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/plugins/mrcp-flite/mrcpflite.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="2"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\flite.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpplugin.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin.vsprops;$(ProjectDir)..\..\build\vsprops\flite.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -80,7 +83,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="2"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\flite.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpplugin.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin.vsprops;$(ProjectDir)..\..\build\vsprops\flite.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -140,6 +143,134 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="2"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\flite.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="2"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\flite.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/plugins/mrcp-flite/src/mrcp_flite.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/plugins/mrcp-flite/src/mrcp_flite.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/plugins/mrcp-flite/src/mrcp_flite.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -61,8 +61,6 @@
 static apt_bool_t flite_synth_channel_stop(mrcp_engine_channel_t *channel, mrcp_message_t *request, mrcp_message_t *response);
 static apt_bool_t flite_synth_channel_pause(mrcp_engine_channel_t *channel, mrcp_message_t *request, mrcp_message_t *response);
 static apt_bool_t flite_synth_channel_resume(mrcp_engine_channel_t *channel, mrcp_message_t *request, mrcp_message_t *response);
-// static apt_bool_t flite_synth_channel_setparams(mrcp_engine_channel_t *channel, mrcp_message_t *request, mrcp_message_t *response);
-// static apt_bool_t flite_synth_channel_getparams(mrcp_engine_channel_t *channel, mrcp_message_t *request, mrcp_message_t *response);
 
 static const struct mrcp_engine_channel_method_vtable_t channel_vtable = {
 	flite_synth_channel_destroy,
@@ -609,9 +607,12 @@
 	if(synth_channel->speak_request && synth_channel->paused == FALSE) {
 		/* normal processing */
 		mpf_buffer_frame_read(synth_channel->audio_buffer,frame);
-//		apt_log(APT_LOG_MARK, APT_PRIO_DEBUG, "flite_synth_stream_read - channel %d - size %d", synth_channel->iId, mpf_buffer_get_size(synth_channel->audio_buffer));
+#if 0
+		apt_log(APT_LOG_MARK, APT_PRIO_DEBUG, "flite_synth_stream_read - channel %d - size %d", synth_channel->iId, mpf_buffer_get_size(synth_channel->audio_buffer));
+#endif
 
 		if((frame->type & MEDIA_FRAME_TYPE_EVENT) == MEDIA_FRAME_TYPE_EVENT) {
+			frame->type &= ~MEDIA_FRAME_TYPE_EVENT;
 			flite_synth_speak_complete_raise(synth_channel);
 		}
 	}

Modified: freeswitch/trunk/libs/unimrcp/plugins/mrcp-pocketsphinx/mrcppocketsphinx.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/plugins/mrcp-pocketsphinx/mrcppocketsphinx.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/plugins/mrcp-pocketsphinx/mrcppocketsphinx.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="2"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\pocketsphinx.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpplugin.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin.vsprops;$(ProjectDir)..\..\build\vsprops\pocketsphinx.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -80,7 +83,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="2"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\pocketsphinx.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpplugin.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin.vsprops;$(ProjectDir)..\..\build\vsprops\pocketsphinx.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -140,6 +143,134 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="2"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\pocketsphinx.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="2"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\pocketsphinx.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/plugins/mrcp-recorder/mrcprecorder.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/plugins/mrcp-recorder/mrcprecorder.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/plugins/mrcp-recorder/mrcprecorder.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -11,6 +11,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -18,7 +21,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="2"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpplugin.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin.vsprops"
 			CharacterSet="1"
 			>
 			<Tool
@@ -80,7 +83,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="2"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unimrcpplugin.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
 			>
@@ -140,6 +143,134 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="2"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin-x64.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="2"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\uniplugin-x64.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="include"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/plugins/mrcp-recorder/src/mrcp_recorder_engine.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/plugins/mrcp-recorder/src/mrcp_recorder_engine.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/plugins/mrcp-recorder/src/mrcp_recorder_engine.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -239,10 +239,12 @@
 		return FALSE;
 	}
 	
-	record_uri = apr_psprintf(message->pool,"<file://mediaserver/data/%s>;size=%d;duration=%d",
-				recorder_channel->file_name,
-				recorder_channel->cur_size,
-				recorder_channel->cur_time);
+	record_uri = apr_psprintf(
+		message->pool,
+		"<file://mediaserver/data/%s>;size=%"APR_SIZE_T_FMT";duration=%"APR_SIZE_T_FMT,
+		recorder_channel->file_name,
+		recorder_channel->cur_size,
+		recorder_channel->cur_time);
 
 	apt_string_set(&recorder_header->record_uri,record_uri);
 	mrcp_resource_header_property_add(message,RECORDER_HEADER_RECORD_URI);

Modified: freeswitch/trunk/libs/unimrcp/tests/apttest/apttest.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/tests/apttest/apttest.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/tests/apttest/apttest.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -10,6 +10,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -17,7 +20,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -78,7 +81,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -137,6 +140,132 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="aprtoolkit.lib libaprutil-1.lib libapr-1.lib"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="aprtoolkit.lib libaprutil-1.lib libapr-1.lib"
+				LinkTimeCodeGeneration="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/tests/mpftest/mpftest.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/tests/mpftest/mpftest.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/tests/mpftest/mpftest.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -10,6 +10,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -17,7 +20,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\mpf.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\mpf.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -78,7 +81,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\mpf.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\mpf.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -137,6 +140,132 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mpf.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="mpf.lib aprtoolkit.lib libaprutil-1.lib libapr-1.lib ws2_32.lib winmm.lib"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mpf.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="mpf.lib aprtoolkit.lib libaprutil-1.lib libapr-1.lib ws2_32.lib winmm.lib "
+				LinkTimeCodeGeneration="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/tests/mrcptest/mrcptest.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/tests/mrcptest/mrcptest.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/tests/mrcptest/mrcptest.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -10,6 +10,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -17,7 +20,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\mrcp.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\mrcp.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -78,7 +81,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\mrcp.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\mrcp.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -137,6 +140,132 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mrcp.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="mrcp.lib aprtoolkit.lib libaprutil-1.lib libapr-1.lib"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\mrcp.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="mrcp.lib aprtoolkit.lib libaprutil-1.lib libapr-1.lib"
+				LinkTimeCodeGeneration="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/tests/mrcptest/src/parse_gen_suite.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/tests/mrcptest/src/parse_gen_suite.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/tests/mrcptest/src/parse_gen_suite.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -27,25 +27,25 @@
 {
 	char buffer[500];
 	apt_text_stream_t stream;
-	mrcp_stream_result_e result;
+	mrcp_stream_status_e status;
 	apt_bool_t continuation;
 
 	mrcp_generator_message_set(generator,message);
 	do {
 		apt_text_stream_init(&stream,buffer,sizeof(buffer)-1);
 		continuation = FALSE;
-		result = mrcp_generator_run(generator,&stream);
-		if(result == MRCP_STREAM_MESSAGE_COMPLETE) {
+		status = mrcp_generator_run(generator,&stream);
+		if(status == MRCP_STREAM_STATUS_COMPLETE) {
 			stream.text.length = stream.pos - stream.text.buf;
 			*stream.pos = '\0';
 			apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Generated MRCP Stream [%lu bytes]\n%s",stream.text.length,stream.text.buf);
 		}
-		else if(result == MRCP_STREAM_MESSAGE_TRUNCATED) {
+		else if(status == MRCP_STREAM_STATUS_INCOMPLETE) {
 			*stream.pos = '\0';
-			apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Generated MRCP Stream [%lu bytes] continuation awaiting\n%s",stream.text.length,stream.text.buf);
+			apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Generated MRCP Stream [%lu bytes] continuation awaited\n%s",stream.text.length,stream.text.buf);
 			continuation = TRUE;
 		}
-		else {
+		else if(status == MRCP_STREAM_STATUS_INVALID) {
 			apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Generate MRCP Stream");
 		}
 	}
@@ -53,9 +53,9 @@
 	return TRUE;
 }
 
-static apt_bool_t mrcp_message_handler(void *obj, mrcp_message_t *message, mrcp_stream_result_e result)
+static apt_bool_t mrcp_message_handler(void *obj, mrcp_message_t *message, mrcp_stream_status_e status)
 {
-	if(result == MRCP_STREAM_MESSAGE_COMPLETE) {
+	if(status == MRCP_STREAM_STATUS_COMPLETE) {
 		/* message is completely parsed */
 		mrcp_generator_t *generator = obj;
 		test_stream_generate(generator,message);
@@ -130,7 +130,7 @@
 		apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Parse MRCP Stream [%lu bytes]\n%s",length,stream.pos);
 		
 		/* reset pos */
-		stream.pos = stream.text.buf;
+		apt_text_stream_reset(&stream);
 		mrcp_stream_walk(parser,&stream,mrcp_message_handler,generator);
 	}
 	while(apr_file_eof(file) != APR_EOF);

Modified: freeswitch/trunk/libs/unimrcp/tests/mrcptest/src/set_get_suite.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/tests/mrcptest/src/set_get_suite.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/tests/mrcptest/src/set_get_suite.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -104,7 +104,7 @@
 		if(mrcp_resource_header_property_check(message,SYNTHESIZER_HEADER_VOICE_AGE) == TRUE) {
 			if(synth_header->voice_param.age == SAMPLE_VOICE_AGE) {
 				/* OK */
-				apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Get Voice-Age: %d",synth_header->voice_param.age);
+				apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Get Voice-Age: %"APR_SIZE_T_FMT,synth_header->voice_param.age);
 				res = TRUE;
 			}
 		}
@@ -250,7 +250,7 @@
 			/* test voice age header */
 			if(mrcp_resource_header_property_check(request,SYNTHESIZER_HEADER_VOICE_AGE) == TRUE) {
 				res_synth_header->voice_param.age = SAMPLE_VOICE_AGE;
-				apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Set Voice-Age: %d",res_synth_header->voice_param.age);
+				apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Set Voice-Age: %"APR_SIZE_T_FMT,res_synth_header->voice_param.age);
 				mrcp_resource_header_property_add(response,SYNTHESIZER_HEADER_VOICE_AGE);
 				res = TRUE;
 			}

Modified: freeswitch/trunk/libs/unimrcp/tests/rtsptest/rtsptest.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/tests/rtsptest/rtsptest.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/tests/rtsptest/rtsptest.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -10,6 +10,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -17,7 +20,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unirtsp.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\unirtsp.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -78,7 +81,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unirtsp.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\unirtsp.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -137,6 +140,132 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\unirtsp.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="unirtsp.lib aprtoolkit.lib libaprutil-1.lib libapr-1.lib"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\unirtsp.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="unirtsp.lib aprtoolkit.lib libaprutil-1.lib libapr-1.lib"
+				LinkTimeCodeGeneration="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/tests/rtsptest/src/parse_gen_suite.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/tests/rtsptest/src/parse_gen_suite.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/tests/rtsptest/src/parse_gen_suite.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -24,22 +24,22 @@
 {
 	char buffer[500];
 	apt_text_stream_t stream;
-	rtsp_stream_result_e result;
+	rtsp_stream_status_e status;
 	apt_bool_t continuation;
 
 	rtsp_generator_message_set(generator,message);
 	do {
 		apt_text_stream_init(&stream,buffer,sizeof(buffer)-1);
 		continuation = FALSE;
-		result = rtsp_generator_run(generator,&stream);
-		if(result == RTSP_STREAM_MESSAGE_COMPLETE) {
+		status = rtsp_generator_run(generator,&stream);
+		if(status == RTSP_STREAM_STATUS_COMPLETE) {
 			stream.text.length = stream.pos - stream.text.buf;
 			*stream.pos = '\0';
 			apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Generated RTSP Stream [%lu bytes]\n%s",stream.text.length,stream.text.buf);
 		}
-		else if(result == RTSP_STREAM_MESSAGE_TRUNCATED) {
+		else if(status == RTSP_STREAM_STATUS_INCOMPLETE) {
 			*stream.pos = '\0';
-			apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Generated RTSP Stream [%lu bytes] continuation awaiting\n%s",stream.text.length,stream.text.buf);
+			apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Generated RTSP Stream [%lu bytes] continuation awaited\n%s",stream.text.length,stream.text.buf);
 			continuation = TRUE;
 		}
 		else {
@@ -50,9 +50,9 @@
 	return TRUE;
 }
 
-static apt_bool_t rtsp_message_handler(void *obj, rtsp_message_t *message, rtsp_stream_result_e result)
+static apt_bool_t rtsp_message_handler(void *obj, rtsp_message_t *message, rtsp_stream_status_e status)
 {
-	if(result == RTSP_STREAM_MESSAGE_COMPLETE) {
+	if(status == RTSP_STREAM_STATUS_COMPLETE) {
 		/* message is completely parsed */
 		rtsp_generator_t *generator = obj;
 		test_stream_generate(generator,message);
@@ -98,7 +98,7 @@
 		apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Parse RTSP Stream [%lu bytes]\n%s",length,stream.pos);
 		
 		/* reset pos */
-		stream.pos = stream.text.buf;
+		apt_text_stream_reset(&stream);
 		rtsp_stream_walk(parser,&stream,rtsp_message_handler,generator);
 	}
 	while(apr_file_eof(file) != APR_EOF);

Modified: freeswitch/trunk/libs/unimrcp/tests/strtablegen/src/main.c (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/tests/strtablegen/src/main.c	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/tests/strtablegen/src/main.c	2010-02-22 15:43:43 UTC (rev 16719)
@@ -65,7 +65,7 @@
 	text_stream.text.length = fread(parse_buffer, 1, sizeof(parse_buffer)-1, file);
 	parse_buffer[text_stream.text.length] = '\0';
 	text_stream.text.buf = parse_buffer;
-	text_stream.pos = parse_buffer;
+	apt_text_stream_reset(&text_stream);
 
 	do {
 		if(apt_text_line_read(&text_stream,&line) == FALSE || !line.length) {

Modified: freeswitch/trunk/libs/unimrcp/tests/strtablegen/strtablegen.vcproj (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/tests/strtablegen/strtablegen.vcproj	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/tests/strtablegen/strtablegen.vcproj	2010-02-22 15:43:43 UTC (rev 16719)
@@ -10,6 +10,9 @@
 		<Platform
 			Name="Win32"
 		/>
+		<Platform
+			Name="x64"
+		/>
 	</Platforms>
 	<ToolFiles>
 	</ToolFiles>
@@ -17,7 +20,7 @@
 		<Configuration
 			Name="Debug|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -78,7 +81,7 @@
 		<Configuration
 			Name="Release|Win32"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -137,6 +140,132 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="Debug|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unidebug.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="aprtoolkit.lib libaprutil-1.lib libapr-1.lib"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|x64"
+			ConfigurationType="1"
+			InheritedPropertySheets="$(ProjectDir)..\..\build\vsprops\unirelease.vsprops;$(ProjectDir)..\..\build\vsprops\unibin-x64.vsprops;$(ProjectDir)..\..\build\vsprops\apt.vsprops"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+				TargetEnvironment="3"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="aprtoolkit.lib libaprutil-1.lib libapr-1.lib"
+				LinkTimeCodeGeneration="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

Modified: freeswitch/trunk/libs/unimrcp/unimrcp.sln (16718 => 16719)


--- freeswitch/trunk/libs/unimrcp/unimrcp.sln	2010-02-22 15:19:52 UTC (rev 16718)
+++ freeswitch/trunk/libs/unimrcp/unimrcp.sln	2010-02-22 15:43:43 UTC (rev 16719)
@@ -27,27 +27,27 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpsignaling", "libs\mrcp-signaling\mrcpsignaling.vcproj", "{12A49562-BAB9-43A3-A21D-15B60BBB4C31}"
 	ProjectSection(ProjectDependencies) = postProject
+		{1C320193-46A6-4B34-9C56-8AB584FC1B56} = {1C320193-46A6-4B34-9C56-8AB584FC1B56}
 		{B5A00BFA-6083-4FAE-A097-71642D6473B5} = {B5A00BFA-6083-4FAE-A097-71642D6473B5}
-		{1C320193-46A6-4B34-9C56-8AB584FC1B56} = {1C320193-46A6-4B34-9C56-8AB584FC1B56}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpserver", "libs\mrcp-server\mrcpserver.vcproj", "{18B1F35A-10F8-4287-9B37-2D10501B0B38}"
 	ProjectSection(ProjectDependencies) = postProject
+		{A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA} = {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}
 		{12A49562-BAB9-43A3-A21D-15B60BBB4C31} = {12A49562-BAB9-43A3-A21D-15B60BBB4C31}
-		{A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA} = {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libunimrcpserver", "platforms\libunimrcp-server\libunimrcpserver.vcproj", "{C98AF157-352E-4737-BD30-A24E2647F5AE}"
 	ProjectSection(ProjectDependencies) = postProject
+		{746F3632-5BB2-4570-9453-31D6D58A7D8E} = {746F3632-5BB2-4570-9453-31D6D58A7D8E}
+		{18B1F35A-10F8-4287-9B37-2D10501B0B38} = {18B1F35A-10F8-4287-9B37-2D10501B0B38}
 		{DEB01ACB-D65F-4A62-AED9-58C1054499E9} = {DEB01ACB-D65F-4A62-AED9-58C1054499E9}
-		{18B1F35A-10F8-4287-9B37-2D10501B0B38} = {18B1F35A-10F8-4287-9B37-2D10501B0B38}
-		{746F3632-5BB2-4570-9453-31D6D58A7D8E} = {746F3632-5BB2-4570-9453-31D6D58A7D8E}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpsofiasip", "modules\mrcp-sofiasip\mrcpsofiasip.vcproj", "{746F3632-5BB2-4570-9453-31D6D58A7D8E}"
 	ProjectSection(ProjectDependencies) = postProject
+		{A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA} = {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}
 		{12A49562-BAB9-43A3-A21D-15B60BBB4C31} = {12A49562-BAB9-43A3-A21D-15B60BBB4C31}
-		{A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA} = {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpclient", "libs\mrcp-client\mrcpclient.vcproj", "{72782932-37CC-46AE-8C7F-9A7B1A6EE108}"
@@ -57,9 +57,9 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libunimrcpclient", "platforms\libunimrcp-client\libunimrcpclient.vcproj", "{EE157390-1E85-416C-946E-620E32C9AD33}"
 	ProjectSection(ProjectDependencies) = postProject
+		{72782932-37CC-46AE-8C7F-9A7B1A6EE108} = {72782932-37CC-46AE-8C7F-9A7B1A6EE108}
+		{746F3632-5BB2-4570-9453-31D6D58A7D8E} = {746F3632-5BB2-4570-9453-31D6D58A7D8E}
 		{DEB01ACB-D65F-4A62-AED9-58C1054499E9} = {DEB01ACB-D65F-4A62-AED9-58C1054499E9}
-		{746F3632-5BB2-4570-9453-31D6D58A7D8E} = {746F3632-5BB2-4570-9453-31D6D58A7D8E}
-		{72782932-37CC-46AE-8C7F-9A7B1A6EE108} = {72782932-37CC-46AE-8C7F-9A7B1A6EE108}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unimrcpclient", "platforms\unimrcp-client\unimrcpclient.vcproj", "{57FAF32E-49FD-491F-895D-132D0D5EFE0A}"
@@ -74,8 +74,8 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpengine", "libs\mrcp-engine\mrcpengine.vcproj", "{843425BE-9A9A-44F4-A4E3-4B57D6ABD53C}"
 	ProjectSection(ProjectDependencies) = postProject
+		{1C320193-46A6-4B34-9C56-8AB584FC1B56} = {1C320193-46A6-4B34-9C56-8AB584FC1B56}
 		{B5A00BFA-6083-4FAE-A097-71642D6473B5} = {B5A00BFA-6083-4FAE-A097-71642D6473B5}
-		{1C320193-46A6-4B34-9C56-8AB584FC1B56} = {1C320193-46A6-4B34-9C56-8AB584FC1B56}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "demosynth", "plugins\demo-synth\demosynth.vcproj", "{92BFA534-C419-4EB2-AAA3-510653F38F08}"
@@ -127,8 +127,8 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpunirtsp", "modules\mrcp-unirtsp\mrcpunirtsp.vcproj", "{DEB01ACB-D65F-4A62-AED9-58C1054499E9}"
 	ProjectSection(ProjectDependencies) = postProject
+		{504B3154-7A4F-459D-9877-B951021C3F1F} = {504B3154-7A4F-459D-9877-B951021C3F1F}
 		{12A49562-BAB9-43A3-A21D-15B60BBB4C31} = {12A49562-BAB9-43A3-A21D-15B60BBB4C31}
-		{504B3154-7A4F-459D-9877-B951021C3F1F} = {504B3154-7A4F-459D-9877-B951021C3F1F}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "prepare", "build\tools\prepare.vcproj", "{01D63BF5-7798-4746-852A-4B45229BB735}"
@@ -173,125 +173,243 @@
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Win32 = Debug|Win32
+		Debug|x64 = Debug|x64
 		Release|Win32 = Release|Win32
+		Release|x64 = Release|x64
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 		{592CF22D-3F8F-4A77-A174-130D77B7623B}.Debug|Win32.ActiveCfg = Debug|Win32
 		{592CF22D-3F8F-4A77-A174-130D77B7623B}.Debug|Win32.Build.0 = Debug|Win32
+		{592CF22D-3F8F-4A77-A174-130D77B7623B}.Debug|x64.ActiveCfg = Debug|x64
+		{592CF22D-3F8F-4A77-A174-130D77B7623B}.Debug|x64.Build.0 = Debug|x64
 		{592CF22D-3F8F-4A77-A174-130D77B7623B}.Release|Win32.ActiveCfg = Release|Win32
 		{592CF22D-3F8F-4A77-A174-130D77B7623B}.Release|Win32.Build.0 = Release|Win32
+		{592CF22D-3F8F-4A77-A174-130D77B7623B}.Release|x64.ActiveCfg = Release|x64
+		{592CF22D-3F8F-4A77-A174-130D77B7623B}.Release|x64.Build.0 = Release|x64
 		{13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|Win32.ActiveCfg = Debug|Win32
 		{13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|Win32.Build.0 = Debug|Win32
+		{13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|x64.ActiveCfg = Debug|x64
+		{13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|x64.Build.0 = Debug|x64
 		{13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|Win32.ActiveCfg = Release|Win32
 		{13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|Win32.Build.0 = Release|Win32
+		{13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|x64.ActiveCfg = Release|x64
+		{13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|x64.Build.0 = Release|x64
 		{B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|Win32.ActiveCfg = Debug|Win32
 		{B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|Win32.Build.0 = Debug|Win32
+		{B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|x64.ActiveCfg = Debug|x64
+		{B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|x64.Build.0 = Debug|x64
 		{B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|Win32.ActiveCfg = Release|Win32
 		{B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|Win32.Build.0 = Release|Win32
+		{B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|x64.ActiveCfg = Release|x64
+		{B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|x64.Build.0 = Release|x64
 		{1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|Win32.ActiveCfg = Debug|Win32
 		{1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|Win32.Build.0 = Debug|Win32
+		{1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|x64.ActiveCfg = Debug|x64
+		{1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|x64.Build.0 = Debug|x64
 		{1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|Win32.ActiveCfg = Release|Win32
 		{1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|Win32.Build.0 = Release|Win32
+		{1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|x64.ActiveCfg = Release|x64
+		{1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|x64.Build.0 = Release|x64
 		{12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|Win32.ActiveCfg = Debug|Win32
 		{12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|Win32.Build.0 = Debug|Win32
+		{12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|x64.ActiveCfg = Debug|x64
+		{12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|x64.Build.0 = Debug|x64
 		{12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|Win32.ActiveCfg = Release|Win32
 		{12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|Win32.Build.0 = Release|Win32
+		{12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|x64.ActiveCfg = Release|x64
+		{12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|x64.Build.0 = Release|x64
 		{18B1F35A-10F8-4287-9B37-2D10501B0B38}.Debug|Win32.ActiveCfg = Debug|Win32
 		{18B1F35A-10F8-4287-9B37-2D10501B0B38}.Debug|Win32.Build.0 = Debug|Win32
+		{18B1F35A-10F8-4287-9B37-2D10501B0B38}.Debug|x64.ActiveCfg = Debug|x64
+		{18B1F35A-10F8-4287-9B37-2D10501B0B38}.Debug|x64.Build.0 = Debug|x64
 		{18B1F35A-10F8-4287-9B37-2D10501B0B38}.Release|Win32.ActiveCfg = Release|Win32
 		{18B1F35A-10F8-4287-9B37-2D10501B0B38}.Release|Win32.Build.0 = Release|Win32
+		{18B1F35A-10F8-4287-9B37-2D10501B0B38}.Release|x64.ActiveCfg = Release|x64
+		{18B1F35A-10F8-4287-9B37-2D10501B0B38}.Release|x64.Build.0 = Release|x64
 		{C98AF157-352E-4737-BD30-A24E2647F5AE}.Debug|Win32.ActiveCfg = Debug|Win32
 		{C98AF157-352E-4737-BD30-A24E2647F5AE}.Debug|Win32.Build.0 = Debug|Win32
+		{C98AF157-352E-4737-BD30-A24E2647F5AE}.Debug|x64.ActiveCfg = Debug|x64
+		{C98AF157-352E-4737-BD30-A24E2647F5AE}.Debug|x64.Build.0 = Debug|x64
 		{C98AF157-352E-4737-BD30-A24E2647F5AE}.Release|Win32.ActiveCfg = Release|Win32
 		{C98AF157-352E-4737-BD30-A24E2647F5AE}.Release|Win32.Build.0 = Release|Win32
+		{C98AF157-352E-4737-BD30-A24E2647F5AE}.Release|x64.ActiveCfg = Release|x64
+		{C98AF157-352E-4737-BD30-A24E2647F5AE}.Release|x64.Build.0 = Release|x64
 		{746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|Win32.ActiveCfg = Debug|Win32
 		{746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|Win32.Build.0 = Debug|Win32
+		{746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|x64.ActiveCfg = Debug|x64
+		{746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|x64.Build.0 = Debug|x64
 		{746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|Win32.ActiveCfg = Release|Win32
 		{746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|Win32.Build.0 = Release|Win32
+		{746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|x64.ActiveCfg = Release|x64
+		{746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|x64.Build.0 = Release|x64
 		{72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|Win32.ActiveCfg = Debug|Win32
 		{72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|Win32.Build.0 = Debug|Win32
+		{72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|x64.ActiveCfg = Debug|x64
+		{72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|x64.Build.0 = Debug|x64
 		{72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|Win32.ActiveCfg = Release|Win32
 		{72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|Win32.Build.0 = Release|Win32
+		{72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|x64.ActiveCfg = Release|x64
+		{72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|x64.Build.0 = Release|x64
 		{EE157390-1E85-416C-946E-620E32C9AD33}.Debug|Win32.ActiveCfg = Debug|Win32
 		{EE157390-1E85-416C-946E-620E32C9AD33}.Debug|Win32.Build.0 = Debug|Win32
+		{EE157390-1E85-416C-946E-620E32C9AD33}.Debug|x64.ActiveCfg = Debug|x64
+		{EE157390-1E85-416C-946E-620E32C9AD33}.Debug|x64.Build.0 = Debug|x64
 		{EE157390-1E85-416C-946E-620E32C9AD33}.Release|Win32.ActiveCfg = Release|Win32
 		{EE157390-1E85-416C-946E-620E32C9AD33}.Release|Win32.Build.0 = Release|Win32
+		{EE157390-1E85-416C-946E-620E32C9AD33}.Release|x64.ActiveCfg = Release|x64
+		{EE157390-1E85-416C-946E-620E32C9AD33}.Release|x64.Build.0 = Release|x64
 		{57FAF32E-49FD-491F-895D-132D0D5EFE0A}.Debug|Win32.ActiveCfg = Debug|Win32
 		{57FAF32E-49FD-491F-895D-132D0D5EFE0A}.Debug|Win32.Build.0 = Debug|Win32
+		{57FAF32E-49FD-491F-895D-132D0D5EFE0A}.Debug|x64.ActiveCfg = Debug|x64
+		{57FAF32E-49FD-491F-895D-132D0D5EFE0A}.Debug|x64.Build.0 = Debug|x64
 		{57FAF32E-49FD-491F-895D-132D0D5EFE0A}.Release|Win32.ActiveCfg = Release|Win32
 		{57FAF32E-49FD-491F-895D-132D0D5EFE0A}.Release|Win32.Build.0 = Release|Win32
+		{57FAF32E-49FD-491F-895D-132D0D5EFE0A}.Release|x64.ActiveCfg = Release|x64
+		{57FAF32E-49FD-491F-895D-132D0D5EFE0A}.Release|x64.Build.0 = Release|x64
 		{A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|Win32.ActiveCfg = Debug|Win32
 		{A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|Win32.Build.0 = Debug|Win32
+		{A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|x64.ActiveCfg = Debug|x64
+		{A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|x64.Build.0 = Debug|x64
 		{A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|Win32.ActiveCfg = Release|Win32
 		{A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|Win32.Build.0 = Release|Win32
+		{A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|x64.ActiveCfg = Release|x64
+		{A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|x64.Build.0 = Release|x64
 		{843425BE-9A9A-44F4-A4E3-4B57D6ABD53C}.Debug|Win32.ActiveCfg = Debug|Win32
 		{843425BE-9A9A-44F4-A4E3-4B57D6ABD53C}.Debug|Win32.Build.0 = Debug|Win32
+		{843425BE-9A9A-44F4-A4E3-4B57D6ABD53C}.Debug|x64.ActiveCfg = Debug|x64
+		{843425BE-9A9A-44F4-A4E3-4B57D6ABD53C}.Debug|x64.Build.0 = Debug|x64
 		{843425BE-9A9A-44F4-A4E3-4B57D6ABD53C}.Release|Win32.ActiveCfg = Release|Win32
 		{843425BE-9A9A-44F4-A4E3-4B57D6ABD53C}.Release|Win32.Build.0 = Release|Win32
+		{843425BE-9A9A-44F4-A4E3-4B57D6ABD53C}.Release|x64.ActiveCfg = Release|x64
+		{843425BE-9A9A-44F4-A4E3-4B57D6ABD53C}.Release|x64.Build.0 = Release|x64
 		{92BFA534-C419-4EB2-AAA3-510653F38F08}.Debug|Win32.ActiveCfg = Debug|Win32
 		{92BFA534-C419-4EB2-AAA3-510653F38F08}.Debug|Win32.Build.0 = Debug|Win32
+		{92BFA534-C419-4EB2-AAA3-510653F38F08}.Debug|x64.ActiveCfg = Debug|x64
+		{92BFA534-C419-4EB2-AAA3-510653F38F08}.Debug|x64.Build.0 = Debug|x64
 		{92BFA534-C419-4EB2-AAA3-510653F38F08}.Release|Win32.ActiveCfg = Release|Win32
 		{92BFA534-C419-4EB2-AAA3-510653F38F08}.Release|Win32.Build.0 = Release|Win32
+		{92BFA534-C419-4EB2-AAA3-510653F38F08}.Release|x64.ActiveCfg = Release|x64
+		{92BFA534-C419-4EB2-AAA3-510653F38F08}.Release|x64.Build.0 = Release|x64
 		{B495B6D9-AF84-479D-B30A-313C16EF8BFD}.Debug|Win32.ActiveCfg = Debug|Win32
 		{B495B6D9-AF84-479D-B30A-313C16EF8BFD}.Debug|Win32.Build.0 = Debug|Win32
+		{B495B6D9-AF84-479D-B30A-313C16EF8BFD}.Debug|x64.ActiveCfg = Debug|x64
+		{B495B6D9-AF84-479D-B30A-313C16EF8BFD}.Debug|x64.Build.0 = Debug|x64
 		{B495B6D9-AF84-479D-B30A-313C16EF8BFD}.Release|Win32.ActiveCfg = Release|Win32
 		{B495B6D9-AF84-479D-B30A-313C16EF8BFD}.Release|Win32.Build.0 = Release|Win32
+		{B495B6D9-AF84-479D-B30A-313C16EF8BFD}.Release|x64.ActiveCfg = Release|x64
+		{B495B6D9-AF84-479D-B30A-313C16EF8BFD}.Release|x64.Build.0 = Release|x64
 		{79EF9F1D-E211-4ED1-91D2-FC935AB3A872}.Debug|Win32.ActiveCfg = Debug|Win32
 		{79EF9F1D-E211-4ED1-91D2-FC935AB3A872}.Debug|Win32.Build.0 = Debug|Win32
+		{79EF9F1D-E211-4ED1-91D2-FC935AB3A872}.Debug|x64.ActiveCfg = Debug|x64
+		{79EF9F1D-E211-4ED1-91D2-FC935AB3A872}.Debug|x64.Build.0 = Debug|x64
 		{79EF9F1D-E211-4ED1-91D2-FC935AB3A872}.Release|Win32.ActiveCfg = Release|Win32
 		{79EF9F1D-E211-4ED1-91D2-FC935AB3A872}.Release|Win32.Build.0 = Release|Win32
+		{79EF9F1D-E211-4ED1-91D2-FC935AB3A872}.Release|x64.ActiveCfg = Release|x64
+		{79EF9F1D-E211-4ED1-91D2-FC935AB3A872}.Release|x64.Build.0 = Release|x64
 		{429C907B-97D1-4B2D-9B0E-A14A5BFDAD15}.Debug|Win32.ActiveCfg = Debug|Win32
 		{429C907B-97D1-4B2D-9B0E-A14A5BFDAD15}.Debug|Win32.Build.0 = Debug|Win32
+		{429C907B-97D1-4B2D-9B0E-A14A5BFDAD15}.Debug|x64.ActiveCfg = Debug|x64
+		{429C907B-97D1-4B2D-9B0E-A14A5BFDAD15}.Debug|x64.Build.0 = Debug|x64
 		{429C907B-97D1-4B2D-9B0E-A14A5BFDAD15}.Release|Win32.ActiveCfg = Release|Win32
 		{429C907B-97D1-4B2D-9B0E-A14A5BFDAD15}.Release|Win32.Build.0 = Release|Win32
+		{429C907B-97D1-4B2D-9B0E-A14A5BFDAD15}.Release|x64.ActiveCfg = Release|x64
+		{429C907B-97D1-4B2D-9B0E-A14A5BFDAD15}.Release|x64.Build.0 = Release|x64
 		{DCF01B1C-5268-44F3-9130-D647FABFB663}.Debug|Win32.ActiveCfg = Debug|Win32
 		{DCF01B1C-5268-44F3-9130-D647FABFB663}.Debug|Win32.Build.0 = Debug|Win32
+		{DCF01B1C-5268-44F3-9130-D647FABFB663}.Debug|x64.ActiveCfg = Debug|x64
+		{DCF01B1C-5268-44F3-9130-D647FABFB663}.Debug|x64.Build.0 = Debug|x64
 		{DCF01B1C-5268-44F3-9130-D647FABFB663}.Release|Win32.ActiveCfg = Release|Win32
 		{DCF01B1C-5268-44F3-9130-D647FABFB663}.Release|Win32.Build.0 = Release|Win32
+		{DCF01B1C-5268-44F3-9130-D647FABFB663}.Release|x64.ActiveCfg = Release|x64
+		{DCF01B1C-5268-44F3-9130-D647FABFB663}.Release|x64.Build.0 = Release|x64
 		{3CA97077-6210-4362-998A-D15A35EEAA08}.Debug|Win32.ActiveCfg = Debug|Win32
 		{3CA97077-6210-4362-998A-D15A35EEAA08}.Debug|Win32.Build.0 = Debug|Win32
+		{3CA97077-6210-4362-998A-D15A35EEAA08}.Debug|x64.ActiveCfg = Debug|x64
+		{3CA97077-6210-4362-998A-D15A35EEAA08}.Debug|x64.Build.0 = Debug|x64
 		{3CA97077-6210-4362-998A-D15A35EEAA08}.Release|Win32.ActiveCfg = Release|Win32
 		{3CA97077-6210-4362-998A-D15A35EEAA08}.Release|Win32.Build.0 = Release|Win32
+		{3CA97077-6210-4362-998A-D15A35EEAA08}.Release|x64.ActiveCfg = Release|x64
+		{3CA97077-6210-4362-998A-D15A35EEAA08}.Release|x64.Build.0 = Release|x64
 		{729EF28E-38C9-40DE-A138-87785F021411}.Debug|Win32.ActiveCfg = Debug|Win32
+		{729EF28E-38C9-40DE-A138-87785F021411}.Debug|x64.ActiveCfg = Debug|x64
 		{729EF28E-38C9-40DE-A138-87785F021411}.Release|Win32.ActiveCfg = Release|Win32
+		{729EF28E-38C9-40DE-A138-87785F021411}.Release|x64.ActiveCfg = Release|x64
 		{504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|Win32.ActiveCfg = Debug|Win32
 		{504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|Win32.Build.0 = Debug|Win32
+		{504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|x64.ActiveCfg = Debug|x64
+		{504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|x64.Build.0 = Debug|x64
 		{504B3154-7A4F-459D-9877-B951021C3F1F}.Release|Win32.ActiveCfg = Release|Win32
 		{504B3154-7A4F-459D-9877-B951021C3F1F}.Release|Win32.Build.0 = Release|Win32
+		{504B3154-7A4F-459D-9877-B951021C3F1F}.Release|x64.ActiveCfg = Release|x64
+		{504B3154-7A4F-459D-9877-B951021C3F1F}.Release|x64.Build.0 = Release|x64
 		{17A33F3F-BAF5-403F-8EF4-FECDA7D9A335}.Debug|Win32.ActiveCfg = Debug|Win32
 		{17A33F3F-BAF5-403F-8EF4-FECDA7D9A335}.Debug|Win32.Build.0 = Debug|Win32
+		{17A33F3F-BAF5-403F-8EF4-FECDA7D9A335}.Debug|x64.ActiveCfg = Debug|x64
+		{17A33F3F-BAF5-403F-8EF4-FECDA7D9A335}.Debug|x64.Build.0 = Debug|x64
 		{17A33F3F-BAF5-403F-8EF4-FECDA7D9A335}.Release|Win32.ActiveCfg = Release|Win32
 		{17A33F3F-BAF5-403F-8EF4-FECDA7D9A335}.Release|Win32.Build.0 = Release|Win32
+		{17A33F3F-BAF5-403F-8EF4-FECDA7D9A335}.Release|x64.ActiveCfg = Release|x64
+		{17A33F3F-BAF5-403F-8EF4-FECDA7D9A335}.Release|x64.Build.0 = Release|x64
 		{DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|Win32.ActiveCfg = Debug|Win32
 		{DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|Win32.Build.0 = Debug|Win32
+		{DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|x64.ActiveCfg = Debug|x64
+		{DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|x64.Build.0 = Debug|x64
 		{DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|Win32.ActiveCfg = Release|Win32
 		{DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|Win32.Build.0 = Release|Win32
+		{DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|x64.ActiveCfg = Release|x64
+		{DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|x64.Build.0 = Release|x64
 		{01D63BF5-7798-4746-852A-4B45229BB735}.Debug|Win32.ActiveCfg = Debug|Win32
+		{01D63BF5-7798-4746-852A-4B45229BB735}.Debug|x64.ActiveCfg = Debug|x64
 		{01D63BF5-7798-4746-852A-4B45229BB735}.Release|Win32.ActiveCfg = Release|Win32
+		{01D63BF5-7798-4746-852A-4B45229BB735}.Release|x64.ActiveCfg = Release|x64
 		{4714EF49-BFD5-4B22-95F7-95A07F1EAC25}.Debug|Win32.ActiveCfg = Debug|Win32
+		{4714EF49-BFD5-4B22-95F7-95A07F1EAC25}.Debug|x64.ActiveCfg = Debug|x64
 		{4714EF49-BFD5-4B22-95F7-95A07F1EAC25}.Release|Win32.ActiveCfg = Release|Win32
+		{4714EF49-BFD5-4B22-95F7-95A07F1EAC25}.Release|x64.ActiveCfg = Release|x64
 		{3C614AE8-B611-4D43-A9AF-1CAA440A9F69}.Debug|Win32.ActiveCfg = Debug|Win32
+		{3C614AE8-B611-4D43-A9AF-1CAA440A9F69}.Debug|x64.ActiveCfg = Debug|x64
 		{3C614AE8-B611-4D43-A9AF-1CAA440A9F69}.Release|Win32.ActiveCfg = Release|Win32
+		{3C614AE8-B611-4D43-A9AF-1CAA440A9F69}.Release|x64.ActiveCfg = Release|x64
 		{56F6FB96-2BC7-4CAE-A8BF-6A0FAEC90556}.Debug|Win32.ActiveCfg = Debug|Win32
+		{56F6FB96-2BC7-4CAE-A8BF-6A0FAEC90556}.Debug|x64.ActiveCfg = Debug|x64
 		{56F6FB96-2BC7-4CAE-A8BF-6A0FAEC90556}.Release|Win32.ActiveCfg = Release|Win32
+		{56F6FB96-2BC7-4CAE-A8BF-6A0FAEC90556}.Release|x64.ActiveCfg = Release|x64
 		{71D62A04-8EF6-4C6B-AC12-0C15A875E53A}.Debug|Win32.ActiveCfg = Debug|Win32
+		{71D62A04-8EF6-4C6B-AC12-0C15A875E53A}.Debug|x64.ActiveCfg = Debug|x64
 		{71D62A04-8EF6-4C6B-AC12-0C15A875E53A}.Release|Win32.ActiveCfg = Release|Win32
+		{71D62A04-8EF6-4C6B-AC12-0C15A875E53A}.Release|x64.ActiveCfg = Release|x64
 		{6B83AC6D-01CE-4E1C-81CE-02AD8116C684}.Debug|Win32.ActiveCfg = Debug|Win32
 		{6B83AC6D-01CE-4E1C-81CE-02AD8116C684}.Debug|Win32.Build.0 = Debug|Win32
+		{6B83AC6D-01CE-4E1C-81CE-02AD8116C684}.Debug|x64.ActiveCfg = Debug|x64
+		{6B83AC6D-01CE-4E1C-81CE-02AD8116C684}.Debug|x64.Build.0 = Debug|x64
 		{6B83AC6D-01CE-4E1C-81CE-02AD8116C684}.Release|Win32.ActiveCfg = Release|Win32
 		{6B83AC6D-01CE-4E1C-81CE-02AD8116C684}.Release|Win32.Build.0 = Release|Win32
+		{6B83AC6D-01CE-4E1C-81CE-02AD8116C684}.Release|x64.ActiveCfg = Release|x64
+		{6B83AC6D-01CE-4E1C-81CE-02AD8116C684}.Release|x64.Build.0 = Release|x64
 		{272FAFA8-2B2F-4716-B95F-3B37CF2E0CB3}.Debug|Win32.ActiveCfg = Debug|Win32
 		{272FAFA8-2B2F-4716-B95F-3B37CF2E0CB3}.Debug|Win32.Build.0 = Debug|Win32
+		{272FAFA8-2B2F-4716-B95F-3B37CF2E0CB3}.Debug|x64.ActiveCfg = Debug|x64
+		{272FAFA8-2B2F-4716-B95F-3B37CF2E0CB3}.Debug|x64.Build.0 = Debug|x64
 		{272FAFA8-2B2F-4716-B95F-3B37CF2E0CB3}.Release|Win32.ActiveCfg = Release|Win32
 		{272FAFA8-2B2F-4716-B95F-3B37CF2E0CB3}.Release|Win32.Build.0 = Release|Win32
+		{272FAFA8-2B2F-4716-B95F-3B37CF2E0CB3}.Release|x64.ActiveCfg = Release|x64
+		{272FAFA8-2B2F-4716-B95F-3B37CF2E0CB3}.Release|x64.Build.0 = Release|x64
 		{CD1C52C1-D8E1-4654-AE65-6CCAB38DE894}.Debug|Win32.ActiveCfg = Debug|Win32
 		{CD1C52C1-D8E1-4654-AE65-6CCAB38DE894}.Debug|Win32.Build.0 = Debug|Win32
+		{CD1C52C1-D8E1-4654-AE65-6CCAB38DE894}.Debug|x64.ActiveCfg = Debug|x64
+		{CD1C52C1-D8E1-4654-AE65-6CCAB38DE894}.Debug|x64.Build.0 = Debug|x64
 		{CD1C52C1-D8E1-4654-AE65-6CCAB38DE894}.Release|Win32.ActiveCfg = Release|Win32
 		{CD1C52C1-D8E1-4654-AE65-6CCAB38DE894}.Release|Win32.Build.0 = Release|Win32
+		{CD1C52C1-D8E1-4654-AE65-6CCAB38DE894}.Release|x64.ActiveCfg = Release|x64
+		{CD1C52C1-D8E1-4654-AE65-6CCAB38DE894}.Release|x64.Build.0 = Release|x64
 		{5AFB8B04-AEB9-408C-B53E-AFBC44B5F3F2}.Debug|Win32.ActiveCfg = Debug|Win32
 		{5AFB8B04-AEB9-408C-B53E-AFBC44B5F3F2}.Debug|Win32.Build.0 = Debug|Win32
+		{5AFB8B04-AEB9-408C-B53E-AFBC44B5F3F2}.Debug|x64.ActiveCfg = Debug|x64
+		{5AFB8B04-AEB9-408C-B53E-AFBC44B5F3F2}.Debug|x64.Build.0 = Debug|x64
 		{5AFB8B04-AEB9-408C-B53E-AFBC44B5F3F2}.Release|Win32.ActiveCfg = Release|Win32
 		{5AFB8B04-AEB9-408C-B53E-AFBC44B5F3F2}.Release|Win32.Build.0 = Release|Win32
+		{5AFB8B04-AEB9-408C-B53E-AFBC44B5F3F2}.Release|x64.ActiveCfg = Release|x64
+		{5AFB8B04-AEB9-408C-B53E-AFBC44B5F3F2}.Release|x64.Build.0 = Release|x64
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE