diff --git a/docs/docs.vcproj b/docs/docs.vcproj
new file mode 100644
index 0000000000..98634c2285
--- /dev/null
+++ b/docs/docs.vcproj
@@ -0,0 +1,259 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="docs"
+	ProjectGUID="{1A1FF289-4FD6-4285-A422-D31DD67A4723}"
+	RootNamespace="docs"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+				CommandLine="doxygen $(InputDir)Doxygen.conf"
+				Outputs="html/index.html"
+			/>
+			<Tool
+				Name="Doxygen"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<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|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+				CommandLine="doxygen $(InputDir)Doxygen.conf"
+				Outputs="html/index.html"
+			/>
+			<Tool
+				Name="Doxygen"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<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>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath=".\Doxygen.conf"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="Doxygen"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine=""
+						AdditionalDependencies=""
+						Outputs=""
+					/>
+				</FileConfiguration>
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath="..\src\include\switch.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\include\switch_apr.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\include\switch_buffer.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\include\switch_caller.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\include\switch_channel.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\include\switch_config.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\include\switch_console.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\include\switch_core.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\include\switch_event.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\include\switch_frame.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\include\switch_loadable_module.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\include\switch_module_interfaces.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\include\switch_mutex.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\include\switch_platform.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\include\switch_resample.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\include\switch_sqlite.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\include\switch_types.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\include\switch_utils.h"
+				>
+			</File>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/src/include/switch_core.h b/src/include/switch_core.h
index b447a06bdf..1221e3ff2c 100644
--- a/src/include/switch_core.h
+++ b/src/include/switch_core.h
@@ -417,7 +417,7 @@ SWITCH_DECLARE(switch_status) switch_core_session_add_event_hook_answer_channel(
 /*! 
   \brief Add an event hook to be executed when a session sends a message
   \param session session to bind hook to
-  \param answer_channel hook to bind
+  \param receive_message hook to bind
   \return SWITCH_STATUS_SUCCESS on suceess
 */
 SWITCH_DECLARE(switch_status) switch_core_session_add_event_hook_receive_message(switch_core_session *session, switch_receive_message_hook receive_message);
diff --git a/src/include/switch_sqlite.h b/src/include/switch_sqlite.h
index 38935a4007..ddc34942db 100644
--- a/src/include/switch_sqlite.h
+++ b/src/include/switch_sqlite.h
@@ -488,7 +488,7 @@ DoxyDefine(int switch_core_db_collation_needed(
  *       TEXT             BLOB            No change
  *       BLOB             INTEGER         Convert to TEXT then use atoi()
  *       BLOB             FLOAT           Convert to TEXT then use atof()
- *       BLOB             TEXT            Add a \000 terminator if needed
+ *       BLOB             TEXT            Add a "\000" terminator if needed
  *
  * Return the value of a BLOB.
  */
@@ -530,10 +530,10 @@ DoxyDefine(const void *switch_core_db_column_blob(sqlite3_stmt*, int iCol);)
  *       TEXT             BLOB            No change
  *       BLOB             INTEGER         Convert to TEXT then use atoi()
  *       BLOB             FLOAT           Convert to TEXT then use atof()
- *       BLOB             TEXT            Add a \000 terminator if needed
+ *       BLOB             TEXT            Add a "\000" terminator if needed
  *
  * Return the number of bytes in a BLOB value or the number of bytes in a 
- * TEXT value represented as UTF-8.  The \000 terminator is included in the 
+ * TEXT value represented as UTF-8.  The "\000" terminator is included in the 
  * byte count for TEXT values.
  */
 DoxyDefine(int switch_core_db_column_bytes(sqlite3_stmt*, int iCol);)
@@ -574,10 +574,10 @@ DoxyDefine(int switch_core_db_column_bytes(sqlite3_stmt*, int iCol);)
  *       TEXT             BLOB            No change
  *       BLOB             INTEGER         Convert to TEXT then use atoi()
  *       BLOB             FLOAT           Convert to TEXT then use atof()
- *       BLOB             TEXT            Add a \000 terminator if needed
+ *       BLOB             TEXT            Add a "\000" terminator if needed
  *
  * Return the number of bytes in a BLOB value or the number of bytes in a 
- * TEXT value represented as UTF-16.  The \u0000 terminator is included in 
+ * TEXT value represented as UTF-16.  The "\u0000" terminator is included in 
  * the byte count for TEXT values.
  */
 DoxyDefine(int switch_core_db_column_bytes16(sqlite3_stmt*, int iCol);)
@@ -618,7 +618,7 @@ DoxyDefine(int switch_core_db_column_bytes16(sqlite3_stmt*, int iCol);)
  *       TEXT             BLOB            No change
  *       BLOB             INTEGER         Convert to TEXT then use atoi()
  *       BLOB             FLOAT           Convert to TEXT then use atof()
- *       BLOB             TEXT            Add a \000 terminator if needed
+ *       BLOB             TEXT            Add a "\000" terminator if needed
  *
  *  Return a FLOAT value.
  */
@@ -660,7 +660,7 @@ DoxyDefine(double switch_core_db_column_double(sqlite3_stmt*, int iCol);)
  *       TEXT             BLOB            No change
  *       BLOB             INTEGER         Convert to TEXT then use atoi()
  *       BLOB             FLOAT           Convert to TEXT then use atof()
- *       BLOB             TEXT            Add a \000 terminator if needed
+ *       BLOB             TEXT            Add a "\000" terminator if needed
  *
  *  Return an INTEGER value in the host computer's native integer representation.  
  *  This might be either a 32- or 64-bit integer depending on the host.
@@ -703,7 +703,7 @@ DoxyDefine(int switch_core_db_column_int(sqlite3_stmt*, int iCol);)
  *       TEXT             BLOB            No change
  *       BLOB             INTEGER         Convert to TEXT then use atoi()
  *       BLOB             FLOAT           Convert to TEXT then use atof()
- *       BLOB             TEXT            Add a \000 terminator if needed
+ *       BLOB             TEXT            Add a "\000" terminator if needed
  *
  * Return an INTEGER value as a 64-bit signed integer.
  */
@@ -745,7 +745,7 @@ DoxyDefine(sqlite_int64 switch_core_db_column_int64(sqlite3_stmt*, int iCol);)
  *       TEXT             BLOB            No change
  *       BLOB             INTEGER         Convert to TEXT then use atoi()
  *       BLOB             FLOAT           Convert to TEXT then use atof()
- *       BLOB             TEXT            Add a \000 terminator if needed
+ *       BLOB             TEXT            Add a "\000" terminator if needed
  *
  *  Return the value as UTF-8 text.
  */
@@ -787,7 +787,7 @@ DoxyDefine(const unsigned char *switch_core_db_column_text(sqlite3_stmt*, int iC
  *       TEXT             BLOB            No change
  *       BLOB             INTEGER         Convert to TEXT then use atoi()
  *       BLOB             FLOAT           Convert to TEXT then use atof()
- *       BLOB             TEXT            Add a \000 terminator if needed
+ *       BLOB             TEXT            Add a "\000" terminator if needed
  *
  * Return the value as UTF-16 text.
  */
@@ -829,7 +829,7 @@ DoxyDefine(const void *switch_core_db_column_text16(sqlite3_stmt*, int iCol);)
  *       TEXT             BLOB            No change
  *       BLOB             INTEGER         Convert to TEXT then use atoi()
  *       BLOB             FLOAT           Convert to TEXT then use atof()
- *       BLOB             TEXT            Add a \000 terminator if needed
+ *       BLOB             TEXT            Add a "\000" terminator if needed
  *
  * ReturnS the datatype of the result.  This is one of
  * SQLITE_INTEGER, SQLITE_FLOAT, SQLITE_TEXT, SQLITE_BLOB, or SQLITE_NULL.
diff --git a/w32/vsnet/Freeswitch.sln b/w32/vsnet/Freeswitch.sln
index e2c2b7e248..16bdf5e3de 100644
--- a/w32/vsnet/Freeswitch.sln
+++ b/w32/vsnet/Freeswitch.sln
@@ -102,6 +102,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Formats", "Formats", "{A5A2
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Timers", "Timers", "{2D57D093-3F8D-4729-AD9A-68E945C200A5}"
 EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{CBD81696-EFB4-4D2F-8451-1B8DAA86155A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "docs", "..\..\docs\docs.vcproj", "{1A1FF289-4FD6-4285-A422-D31DD67A4723}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Win32 = Debug|Win32
@@ -178,26 +182,29 @@ Global
 		{FE3540C5-3303-46E0-A69E-D92F775687F1}.Debug|Win32.Build.0 = Debug|Win32
 		{FE3540C5-3303-46E0-A69E-D92F775687F1}.Release|Win32.ActiveCfg = Debug|Win32
 		{FE3540C5-3303-46E0-A69E-D92F775687F1}.Release|Win32.Build.0 = Debug|Win32
+		{1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|Win32.ActiveCfg = Debug|Win32
+		{1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release|Win32.ActiveCfg = Release|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
 	GlobalSection(NestedProjects) = preSolution
-		{1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
 		{4926323F-4EA8-4B7D-A3D3-65488725988F} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
 		{B1FE4613-3F4B-4DAF-9714-2472BF8F56AE} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
 		{5844AFE1-AA3E-4BDB-A9EF-119AEF19DF88} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
 		{5580D60E-0F77-4716-9CD4-B8E5986FA375} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
-		{45DF84ED-D24A-4FF6-B5B0-0A9A5FDB9552} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
-		{3A5B9131-F20C-4A85-9447-6C1610941CEE} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
-		{5FD31A25-5D83-4794-8BEE-904DAD84CE71} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
-		{FE3540C5-3303-46E0-A69E-D92F775687F1} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
+		{1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
+		{3A2A7795-C216-4FFF-B8EF-4D17A84BACCC} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
+		{F10BE67C-A8FF-4CB2-AF29-D46D2590DC59} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
+		{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
 		{78100236-7CEA-4948-96CC-E8ED3160329C} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
 		{E1794405-29D4-466D-9BE3-DD2344C2A663} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
 		{2988EB83-785F-45D4-8731-8E1E4345177E} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4}
-		{F10BE67C-A8FF-4CB2-AF29-D46D2590DC59} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
-		{3A2A7795-C216-4FFF-B8EF-4D17A84BACCC} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
-		{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
+		{3A5B9131-F20C-4A85-9447-6C1610941CEE} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
+		{5FD31A25-5D83-4794-8BEE-904DAD84CE71} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
+		{FE3540C5-3303-46E0-A69E-D92F775687F1} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
+		{45DF84ED-D24A-4FF6-B5B0-0A9A5FDB9552} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
 		{DCC13474-28DF-47CA-A8EB-72F8CE9A78C5} = {2D57D093-3F8D-4729-AD9A-68E945C200A5}
+		{1A1FF289-4FD6-4285-A422-D31DD67A4723} = {CBD81696-EFB4-4D2F-8451-1B8DAA86155A}
 	EndGlobalSection
 EndGlobal