diff --git a/Freeswitch.2015.sln b/Freeswitch.2015.sln
index f0529beaca..add8584eac 100644
--- a/Freeswitch.2015.sln
+++ b/Freeswitch.2015.sln
@@ -638,6 +638,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_odbc_cdr", "src\mod\eve
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cdr_sqlite", "src\mod\event_handlers\mod_cdr_sqlite\mod_cdr_sqlite.2015.vcxproj", "{2CA661A7-01DD-4532-BF88-B6629DFB544A}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cv", "src\mod\applications\mod_cv\mod_cv.2015.vcxproj", "{40C4E2A2-B49B-496C-96D6-C04B890F7F88}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
All|Win32 = All|Win32
@@ -2942,6 +2944,18 @@ Global
{2CA661A7-01DD-4532-BF88-B6629DFB544A}.Release|Win32.Build.0 = Release|Win32
{2CA661A7-01DD-4532-BF88-B6629DFB544A}.Release|x64.ActiveCfg = Release|x64
{2CA661A7-01DD-4532-BF88-B6629DFB544A}.Release|x64.Build.0 = Release|x64
+ {40C4E2A2-B49B-496C-96D6-C04B890F7F88}.All|Win32.ActiveCfg = Release|Win32
+ {40C4E2A2-B49B-496C-96D6-C04B890F7F88}.All|Win32.Build.0 = Release|Win32
+ {40C4E2A2-B49B-496C-96D6-C04B890F7F88}.All|x64.ActiveCfg = Release|x64
+ {40C4E2A2-B49B-496C-96D6-C04B890F7F88}.All|x64.Build.0 = Release|x64
+ {40C4E2A2-B49B-496C-96D6-C04B890F7F88}.Debug|Win32.ActiveCfg = Debug|Win32
+ {40C4E2A2-B49B-496C-96D6-C04B890F7F88}.Debug|Win32.Build.0 = Debug|Win32
+ {40C4E2A2-B49B-496C-96D6-C04B890F7F88}.Debug|x64.ActiveCfg = Debug|x64
+ {40C4E2A2-B49B-496C-96D6-C04B890F7F88}.Debug|x64.Build.0 = Debug|x64
+ {40C4E2A2-B49B-496C-96D6-C04B890F7F88}.Release|Win32.ActiveCfg = Release|Win32
+ {40C4E2A2-B49B-496C-96D6-C04B890F7F88}.Release|Win32.Build.0 = Release|Win32
+ {40C4E2A2-B49B-496C-96D6-C04B890F7F88}.Release|x64.ActiveCfg = Release|x64
+ {40C4E2A2-B49B-496C-96D6-C04B890F7F88}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -3174,5 +3188,6 @@ Global
{C955E1A9-C12C-4BAD-AC32-8D53D9268AF7} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
{096C9A84-55B2-4F9B-97E5-0FDF116FD25F} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
{2CA661A7-01DD-4532-BF88-B6629DFB544A} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
+ {40C4E2A2-B49B-496C-96D6-C04B890F7F88} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
EndGlobalSection
EndGlobal
diff --git a/libs/.gitignore b/libs/.gitignore
index f66304d9f7..8555f1a4f1 100644
--- a/libs/.gitignore
+++ b/libs/.gitignore
@@ -856,3 +856,5 @@ pcre-*/
pcre-*
libsndfile-*/
libsndfile-*
+opencv-*/
+opencv-*
diff --git a/src/mod/applications/mod_cv/mod_cv.2015.vcxproj b/src/mod/applications/mod_cv/mod_cv.2015.vcxproj
new file mode 100644
index 0000000000..279dba98fa
--- /dev/null
+++ b/src/mod/applications/mod_cv/mod_cv.2015.vcxproj
@@ -0,0 +1,131 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ mod_cv
+ mod_cv
+ Win32Proj
+ {40C4E2A2-B49B-496C-96D6-C04B890F7F88}
+
+
+
+ DynamicLibrary
+ MultiByte
+ v140
+
+
+ DynamicLibrary
+ MultiByte
+ v140
+
+
+ DynamicLibrary
+ MultiByte
+ v140
+
+
+ DynamicLibrary
+ MultiByte
+ v140
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.30319.1
+
+
+
+
+
+
+
+
+
+ X64
+
+
+
+
+
+
+ false
+
+
+ MachineX64
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+ X64
+
+
+
+
+
+
+ false
+
+
+ MachineX64
+
+
+
+
+
+
+
+ {202d7a4e-760d-4d0e-afa1-d7459ced30ff}
+ false
+
+
+
+
+
+
\ No newline at end of file
diff --git a/w32/opencv-version.props b/w32/opencv-version.props
new file mode 100644
index 0000000000..681e44ac01
--- /dev/null
+++ b/w32/opencv-version.props
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+ 3.4.1
+
+
+ true
+
+
+
+
+
+ $(opencvVersion)
+
+
+
diff --git a/w32/opencv.props b/w32/opencv.props
new file mode 100644
index 0000000000..ef415cb763
--- /dev/null
+++ b/w32/opencv.props
@@ -0,0 +1,80 @@
+
+
+
+ true
+
+
+
+
+
+
+
+ Debug
+ Release
+ opencv_world341d
+ opencv_world341
+
+
+
+ $(BaseDir)libs\opencv-$(opencvVersion)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(opencvLibDir)\include\;$(opencvLibDir)\include\opencv\;%(AdditionalIncludeDirectories)
+
+
+ $(SolutionDir)libs\opencv-$(opencvVersion)\binaries\$(Platform)\$(LibraryConfiguration)\lib;%(AdditionalLibraryDirectories)
+ $(OpenCVLibraryFileName).lib;%(AdditionalDependencies)
+
+
+
\ No newline at end of file