diff --git a/MSVC/config.h b/MSVC/config.h
new file mode 100644
index 0000000000000000000000000000000000000000..6dc8524dc25c337a89b814226d29f2665e791303
--- /dev/null
+++ b/MSVC/config.h
@@ -0,0 +1,252 @@
+/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
+systems. This function is required for `alloca.c' support on those systems.
+*/
+/* #undef CRAY_STACKSEG_END */
+
+/* Define to 1 if using `alloca.c'. */
+/* #undef C_ALLOCA */
+
+/* Define to 1 if you have `alloca', as a function or macro. */
+#define HAVE_ALLOCA 1
+
+/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
+*/
+#define HAVE_ALLOCA_H 1
+
+/* Define if you have alsa */
+#define HAVE_ALSA 0
+
+/* Define to 1 if you have the <arpa/inet.h> header file. */
+#define HAVE_ARPA_INET_H 0
+
+/* Define if you have CoreAudio */
+#define HAVE_COREAUDIO 0
+
+/* define if the compiler supports basic C++11 syntax */
+#define HAVE_CXX11 1
+
+/* Define to enable dht */
+#define HAVE_DHT 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define if you have libgsm */
+#define HAVE_GSM 1
+
+/* Define if you have libiax */
+#define HAVE_IAX 0
+
+/* Define if you have instant messaging support */
+#define HAVE_INSTANT_MESSAGING 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define if you have IPv6 */
+#define HAVE_IPV6 0
+
+/* Define if you have jack */
+#define HAVE_JACK 0
+
+/* Define to 1 if you have the `gsm' library (-lgsm). */
+#define HAVE_LIBGSM 1
+
+/* Define to 1 if you have the <libintl.h> header file. */
+#define HAVE_LIBINTL_H 0
+
+/* Define if you have libupnp */
+#define HAVE_LIBUPNP 1
+
+/* Define if you have natpmp */
+#define HAVE_LIBNATPMP 0
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the <netdb.h> header file. */
+#define HAVE_NETDB_H 1
+
+/* Define to 1 if you have the <netinet/in.h> header file. */
+#define HAVE_NETINET_IN_H 1
+
+/* Define if you have OpenSL */
+/* #undef HAVE_OPENSL */
+
+/* Define if you have portaudio */
+#define HAVE_PORTAUDIO 1
+
+/* Define if you have POSIX threads libraries and header files. */
+#define HAVE_PTHREAD 1
+
+/* Have PTHREAD_PRIO_INHERIT. */
+#define HAVE_PTHREAD_PRIO_INHERIT 1
+
+/* Define to 1 if the system has the type `ptrdiff_t'. */
+/* #undef HAVE_PTRDIFF_T */
+
+/* Define if you have pulseaudio */
+#define HAVE_PULSE 0
+
+/* Define if you have sdes support */
+#define HAVE_SDES 1
+
+/* Define if you have shared memory support */
+#define HAVE_SHM 0
+
+/* Define if you have libspeex */
+#define HAVE_SPEEX 1
+
+/* Define if you have libspeexdsp */
+#define HAVE_SPEEXDSP 1
+
+/* Define to 1 if stdbool.h conforms to C99. */
+#define HAVE_STDBOOL_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 0
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#define HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+#define HAVE_SYS_SOCKET_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define if you have tls support */
+#define HAVE_TLS 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if the system has the type `_Bool'. */
+#define HAVE__BOOL 1
+
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#define LT_OBJDIR ".libs/"
+
+/* Name of package */
+#define PACKAGE "ring"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "ring@lists.savoirfairelinux.net"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "Ring"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "Ring 2.3.0"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "ring"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "2.3.0"
+
+/* Define to necessary symbol if this constant uses a non-standard name on
+your system. */
+/* #undef PTHREAD_CREATE_JOINABLE */
+
+/* Video support enabled */
+#define RING_VIDEO /**/
+
+/* Name directory service support enabled */
+#define HAVE_RINGNS 1
+
+/* If using the C implementation of alloca, define if you know the
+direction of stack growth for your system; otherwise it will be
+automatically deduced at runtime.
+STACK_DIRECTION > 0 => grows toward higher addresses
+STACK_DIRECTION < 0 => grows toward lower addresses
+STACK_DIRECTION = 0 => direction of growth unknown */
+/* #undef STACK_DIRECTION */
+
+/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
+/* #undef STAT_MACROS_BROKEN */
+
+/* Define to 1 if you have the ANSI C header files. */
+/* #undef STDC_HEADERS */
+
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#define TIME_WITH_SYS_TIME 1
+
+/* Define to 1 for Unicode (Wide Chars) APIs. */
+/* #undef UNICODE */
+
+/* Version number of package */
+#define VERSION "2.3.0"
+
+/* Define to limit the scope of <windows.h>. */
+/* #undef WIN32_LEAN_AND_MEAN */
+
+/* ISO C, POSIX, and 4.3BSD things. */
+/* #undef _BSD_SOURCE */
+
+/* Extensions to ISO C99 from ISO C11. */
+/* #undef _ISOC11_SOURCE */
+
+/* Extensions to ISO C89 from ISO C99. */
+/* #undef _ISOC99_SOURCE */
+
+/* IEEE Std 1003.1. */
+/* #undef _POSIX_C_SOURCE */
+
+/* IEEE Std 1003.1. */
+/* #undef _POSIX_SOURCE */
+
+/* ISO C, POSIX, and SVID things. */
+/* #undef _SVID_SOURCE */
+
+/* Define to 1 for Unicode (Wide Chars) APIs. */
+/* #undef _UNICODE */
+
+/* POSIX and XPG 7th edition */
+/* #undef _XOPEN_SOURCE */
+
+/* XPG things and X/Open Unix extensions. */
+/* #undef _XOPEN_SOURCE_EXTENDED */
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
+/* #undef inline */
+#endif
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef pid_t */
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* Define to empty if the keyword `volatile' does not work. Warning: valid
+code using `volatile' can become incorrect without. Disable with care. */
+/* #undef volatile */
\ No newline at end of file
diff --git a/MSVC/sys_time.h b/MSVC/sys_time.h
new file mode 100644
index 0000000000000000000000000000000000000000..f4cd0436b23e96c964643fbfd2babc233d69791b
--- /dev/null
+++ b/MSVC/sys_time.h
@@ -0,0 +1,41 @@
+#ifndef SYS_TIME_H_
+#define SYS_TIME_H_
+
+#include <time.h>
+#include <winsock2.h>
+
+struct timezone
+{
+    int  tz_minuteswest; /* minutes W of Greenwich */
+    int  tz_dsttime;     /* type of dst correction */
+};
+
+static __inline int gettimeofday(struct timeval *tp, struct timezone * tzp)
+{
+    FILETIME    file_time;
+    SYSTEMTIME  system_time;
+    ULARGE_INTEGER ularge;
+    static int tzflag;
+
+    GetSystemTime(&system_time);
+    SystemTimeToFileTime(&system_time, &file_time);
+    ularge.LowPart = file_time.dwLowDateTime;
+    ularge.HighPart = file_time.dwHighDateTime;
+
+    tp->tv_sec = (long)((ularge.QuadPart - 116444736000000000Ui64) / 10000000L);
+    tp->tv_usec = (long)(system_time.wMilliseconds * 1000);
+
+    if (NULL != tzp)
+    {
+        if (!tzflag)
+        {
+            _tzset();
+            tzflag++;
+        }
+        tzp->tz_minuteswest = _timezone / 60;
+        tzp->tz_dsttime = _daylight;
+    }
+    return 0;
+}
+
+#endif
\ No newline at end of file
diff --git a/MSVC/unistd.h b/MSVC/unistd.h
new file mode 100644
index 0000000000000000000000000000000000000000..a94ab7ca699801aca0fc8ff2a9a2d22dce06d8aa
--- /dev/null
+++ b/MSVC/unistd.h
@@ -0,0 +1,53 @@
+/*
+ *  Copyright (C) 2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
+ */
+
+#pragma once
+
+#ifndef __STRICT_ANSI__
+
+#include <stdlib.h>
+#include <process.h>
+#include <direct.h>
+#include <fcntl.h>
+
+#define R_OK    4
+#define W_OK    2
+#define F_OK    0
+
+#ifndef STDIN_FILENO
+#define STDIN_FILENO 0
+#endif
+
+#ifndef STDOUT_FILENO
+#define STDOUT_FILENO 1
+#endif
+
+#ifndef STDERR_FILENO
+#define STDERR_FILENO 2
+#endif
+
+#define srandom srand
+#define random rand
+
+#define inline __inline
+typedef int mode_t;
+#include <BaseTsd.h>
+
+#endif