laforge/wip
Mamadou DIOP 8 years ago
parent 7908865936
commit 631fffee8a
  1. 165
      Building_Source_v2_0.md
  2. 125
      Licensing.md
  3. 0
      Makefile.am
  4. 111
      ProjectHome.md
  5. 212
      Samples/C#/IPSec/ipsec.sln
  6. 134
      Samples/C#/IPSec/ipsec_app/Program.cs
  7. 72
      Samples/C#/IPSec/ipsec_app/Properties/AssemblyInfo.cs
  8. 270
      Samples/C#/IPSec/ipsec_app/ipsec_app.csproj
  9. 0
      Samples/C#/IPSec/ipsec_lib/IPSecCtx.cs
  10. 60
      Samples/C#/IPSec/ipsec_lib/IPSecCtx.cxx
  11. 0
      Samples/C#/IPSec/ipsec_lib/IPSecCtx.h
  12. 0
      Samples/C#/IPSec/ipsec_lib/ipsecWRAP.cxx
  13. 0
      Samples/C#/IPSec/ipsec_lib/ipsecWRAP.h
  14. 0
      Samples/C#/IPSec/ipsec_lib/ipsec_lib.cs
  15. 482
      Samples/C#/IPSec/ipsec_lib/ipsec_lib.vcproj
  16. 0
      Samples/C#/IPSec/ipsec_lib/ipsec_libPINVOKE.cs
  17. 68
      Samples/C#/IPSec/ipsec_lib/swig.i
  18. 0
      Samples/C#/IPSec/ipsec_lib/swig.sh
  19. 0
      Samples/C#/IPSec/ipsec_lib/tipsec_alg_t.cs
  20. 0
      Samples/C#/IPSec/ipsec_lib/tipsec_ealg_t.cs
  21. 0
      Samples/C#/IPSec/ipsec_lib/tipsec_error_t.cs
  22. 0
      Samples/C#/IPSec/ipsec_lib/tipsec_ipproto_t.cs
  23. 0
      Samples/C#/IPSec/ipsec_lib/tipsec_mode_t.cs
  24. 0
      Samples/C#/IPSec/ipsec_lib/tipsec_proto_t.cs
  25. 0
      Samples/C#/IPSec/ipsec_lib/tipsec_state_t.cs
  26. 0
      Samples/C++/REGISTER/test/ReadMe.txt
  27. 0
      Samples/C++/REGISTER/test/stdafx.cpp
  28. 0
      Samples/C++/REGISTER/test/stdafx.h
  29. 0
      Samples/C++/REGISTER/test/targetver.h
  30. 0
      Samples/C++/REGISTER/test/test.cpp
  31. 0
      Samples/C++/REGISTER/test/test.sln
  32. 0
      Samples/C++/REGISTER/test/test.vcproj
  33. 9
      Wall_of_Shame.md
  34. 0
      android-projects/buildAll.sh
  35. 0
      android-projects/makefile
  36. 80
      android-projects/root.mk
  37. 20
      android-utils/api.cxx
  38. 0
      android-utils/api.h
  39. 0
      android-utils/api.i
  40. 0
      android-utils/api.sh
  41. 0
      android-utils/buildAll.sh
  42. 0
      android-utils/cpu-features.c
  43. 0
      android-utils/cpu-features.h
  44. 0
      android-utils/droid-makefile
  45. 0
      android-utils/java/AndroidUtils.java
  46. 0
      android-utils/java/CpuFamily_t.java
  47. 0
      android-utils/java/CpuFeatures_t.java
  48. 0
      android-utils/java/utils.java
  49. 0
      android-utils/java/utilsJNI.java
  50. 0
      android-utils/makefile
  51. 0
      android-utils/utils_wrap.cxx
  52. 0
      android-utils/utils_wrap.h
  53. 0
      android_build.sh
  54. 0
      autogen.sh
  55. 0
      bindings/Makefile.am
  56. 0
      bindings/_common/ActionConfig.cxx
  57. 0
      bindings/_common/ActionConfig.h
  58. 0
      bindings/_common/AudioResampler.cxx
  59. 0
      bindings/_common/AudioResampler.h
  60. 0
      bindings/_common/Common.h
  61. 0
      bindings/_common/DDebug.cxx
  62. 0
      bindings/_common/DDebug.h
  63. 0
      bindings/_common/MediaContent.cxx
  64. 0
      bindings/_common/MediaContent.h
  65. 0
      bindings/_common/MediaSessionMgr.cxx
  66. 0
      bindings/_common/MediaSessionMgr.h
  67. 0
      bindings/_common/Msrp.cxx
  68. 0
      bindings/_common/Msrp.h
  69. 0
      bindings/_common/Msrp.i
  70. 0
      bindings/_common/ProxyConsumer.cxx
  71. 0
      bindings/_common/ProxyConsumer.h
  72. 0
      bindings/_common/ProxyPluginMgr.cxx
  73. 0
      bindings/_common/ProxyPluginMgr.h
  74. 0
      bindings/_common/ProxyProducer.cxx
  75. 0
      bindings/_common/ProxyProducer.h
  76. 0
      bindings/_common/SMS.i
  77. 0
      bindings/_common/SMSEncoder.cxx
  78. 0
      bindings/_common/SMSEncoder.h
  79. 0
      bindings/_common/SafeObject.cxx
  80. 0
      bindings/_common/SafeObject.h
  81. 0
      bindings/_common/SipCallback.cxx
  82. 0
      bindings/_common/SipCallback.h
  83. 0
      bindings/_common/SipEvent.cxx
  84. 0
      bindings/_common/SipEvent.h
  85. 0
      bindings/_common/SipMessage.cxx
  86. 0
      bindings/_common/SipMessage.h
  87. 0
      bindings/_common/SipSession.cxx
  88. 0
      bindings/_common/SipSession.h
  89. 0
      bindings/_common/SipStack.cxx
  90. 0
      bindings/_common/SipStack.h
  91. 28
      bindings/_common/SipStack.i
  92. 0
      bindings/_common/SipUri.cxx
  93. 0
      bindings/_common/SipUri.h
  94. 0
      bindings/_common/Xcap.cxx
  95. 0
      bindings/_common/Xcap.h
  96. 0
      bindings/_common/Xcap.i
  97. 0
      bindings/_common/tinyWRAP.i
  98. 0
      bindings/_common/tinyWRAP_config.h
  99. 0
      bindings/autogen.sh
  100. 0
      bindings/csharp/ActionConfig.cs
  101. Some files were not shown because too many files have changed in this diff Show More

@ -1,89 +1,86 @@
#summary Building Source v2.0
#labels Featured,Phase-Deploy
This section explains how to build the project using **CentOS 64** but could be easily adapted for any _Linux_, _Windows_ or _OS X_.<br />
This section explains how to build the project using *CentOS 64* but could be easily adapted for any _Linux_, _Windows_ or _OS X_.<br />
<wiki:toc max_depth="3" />
==Preparing the system==
{{{
## Preparing the system ##
```
sudo yum update
sudo yum install make libtool autoconf subversion git wget libogg-devel gcc gcc-c++ pkgconfig nasm
}}}
```
The first step is to checkout Doubango 2.0 source code:
{{{
```
svn checkout https://doubango.googlecode.com/svn/branches/2.0/doubango doubango
}}}
```
===Building libsrtp===
### Building libsrtp ###
libsrtp is optional.
{{{
```
git clone https://github.com/cisco/libsrtp/
cd libsrtp
git checkout v1.5.0
CFLAGS="-fPIC" ./configure --enable-pic && make && make install
}}}
```
===Building OpenSSL===
*OpenSSL* is required if you want to use the _RTCWeb Breaker_ module or Secure WebSocket transport (WSS). *OpenSSL version _1.0.1_ is required if you want support for _DTLS-SRTP_*.<br />
### Building OpenSSL ###
**OpenSSL** is required if you want to use the _RTCWeb Breaker_ module or Secure WebSocket transport (WSS). **OpenSSL version _1.0.1_ is required if you want support for _DTLS-SRTP_**.<br />
This section is only required if you don’t have _OpenSSL_ installed on your system or using version prior to _1.0.1_ and want to enable _DTLS-SRTP_.<br />
A quick way to have _OpenSSL_ may be installing *openssl-devel* package but this version will most likely be outdated (prior to _1.0.1_). Anyway, you can check the version like this:
{{{
A quick way to have _OpenSSL_ may be installing **openssl-devel** package but this version will most likely be outdated (prior to _1.0.1_). Anyway, you can check the version like this:
```
openssl version
}}}
```
To build OpenSSL:
{{{
```
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar -xvzf openssl-1.0.1c.tar.gz
cd openssl-1.0.1c
./config shared --prefix=/usr/local --openssldir=/usr/local/openssl && make && make install
}}}
```
===Building libspeex and libspeexdsp===
*libspeex* (audio codec) an *libspeexdsp* (audio processing and jitter buffer) are optional. It’s highly recommended to enable libspeexdsp.
### Building libspeex and libspeexdsp ###
**libspeex** (audio codec) an **libspeexdsp** (audio processing and jitter buffer) are optional. It’s highly recommended to enable libspeexdsp.
You can install the devel packages:
{{{
```
sudo yum install speex-devel
}}}
```
Or build the source by yourself:
{{{
```
wget http://downloads.xiph.org/releases/speex/speex-1.2beta3.tar.gz
tar -xvzf speex-1.2beta3.tar.gz
cd speex-1.2beta3
./configure --disable-oggtest --without-libogg && make && make install
}}}
```
===Building YASM===
*YASM* is only required if you want to enable *VPX* (VP8 video codec) or *x264* (H.264 codec).
{{{
### Building YASM ###
**YASM** is only required if you want to enable **VPX** (VP8 video codec) or **x264** (H.264 codec).
```
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
tar -xvzf yasm-1.2.0.tar.gz
cd yasm-1.2.0
./configure && make && make install
}}}
```
===Building libvpx===
### Building libvpx ###
_Date: December 1, 2012_ <br />
*libvpx* adds support for *VP8* and is optional but highly recommended if you want support for video when using Google Chrome or Mozilla Firefox.
**libvpx** adds support for **VP8** and is optional but highly recommended if you want support for video when using Google Chrome or Mozilla Firefox.
You can install the devel packages:
{{{
```
sudo yum install libvpx-devel
}}}
```
Or build the source by yourself:
{{{
```
git clone http://git.chromium.org/webm/libvpx.git
cd libvpx
./configure --enable-realtime-only --enable-error-concealment --disable-examples --enable-vp8 --enable-pic --enable-shared --as=yasm
make && make install
}}}
```
===Building libyuv===
*libyuv* is optional. Adds support for video scaling and chroma conversion.
{{{
### Building libyuv ###
**libyuv** is optional. Adds support for video scaling and chroma conversion.
```
mkdir libyuv && cd libyuv
svn co http://src.chromium.org/svn/trunk/tools/depot_tools .
./gclient config http://libyuv.googlecode.com/svn/trunk
@ -91,74 +88,74 @@ svn co http://src.chromium.org/svn/trunk/tools/depot_tools .
make -j6 V=1 -r libyuv BUILDTYPE=Release
#cp out/Release/obj.target/libyuv.a /usr/local/lib
#mkdir /usr/local/include/libyuv && cp -r include/* /usr/local/include/libyuv
}}}
```
===Building libopus===
*libopus* is optional but highly recommended as it’s an MTI codec for WebRTC. Adds support for [http://www.opus-codec.org/ Opus audio codec].
{{{
### Building libopus ###
**libopus** is optional but highly recommended as it’s an MTI codec for WebRTC. Adds support for [Opus audio codec](http://www.opus-codec.org/).
```
wget http://downloads.xiph.org/releases/opus/opus-1.0.2.tar.gz
tar -xvzf opus-1.0.2.tar.gz
cd opus-1.0.2
./configure --with-pic --enable-float-approx && make && make install
}}}
```
===Building opencore-amr===
*opencore-amr* is optional. Adds support for *AMR* audio codec.
{{{
### Building opencore-amr ###
**opencore-amr** is optional. Adds support for **AMR** audio codec.
```
git clone git://opencore-amr.git.sourceforge.net/gitroot/opencore-amr/opencore-amr
cd opencore-amr && autoreconf --install && ./configure && make && make install
}}}
```
===Building libgsm===
*libgsm* is optional. Adds support for *GSM* audio codec.
### Building libgsm ###
**libgsm** is optional. Adds support for **GSM** audio codec.
You can install the devel packages (*recommended*):
{{{
You can install the devel packages (**recommended**):
```
sudo yum install gsm-devel
}}}
```
Or build the source by yourself:
{{{
```
wget http://www.quut.com/gsm/gsm-1.0.13.tar.gz
tar -xvzf gsm-1.0.13.tar.gz
cd gsm-1.0-pl13 && make && make install
#cp -rf ./inc/* /usr/local/include
#cp -rf ./lib/* /usr/local/lib
}}}
```
===Building g729===
*G729* is optional. Adds support for *G.729* audio codec.
{{{
### Building g729 ###
**G729** is optional. Adds support for **G.729** audio codec.
```
svn co http://g729.googlecode.com/svn/trunk/ g729b
cd g729b
./autogen.sh && ./configure --enable-static --disable-shared && make && make install
}}}
```
===Building iLBC===
*iLBC* is optional. Adds support for *iLBC* audio codec.
{{{
### Building iLBC ###
**iLBC** is optional. Adds support for **iLBC** audio codec.
```
svn co http://doubango.googlecode.com/svn/branches/2.0/doubango/thirdparties/scripts/ilbc
cd ilbc
wget http://www.ietf.org/rfc/rfc3951.txt
awk -f extract.awk rfc3951.txt
./autogen.sh && ./configure
make && make install
}}}
```
===Building x264===
### Building x264 ###
_Date: December 2, 2012_ <br />
*x264* is optional and adds support for *H.264* video codec (requires FFmpeg).
{{{
**x264** is optional and adds support for **H.264** video codec (requires FFmpeg).
```
wget ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
tar -xvjf last_x264.tar.bz2
# the output directory may be difference depending on the version and date
cd x264-snapshot-20121201-2245
./configure --enable-shared --enable-pic && make && make install
}}}
```
===Building FFmpeg===
### Building FFmpeg ###
_Date: December 2, 2012_ <br />
*FFmpeg* is optional and adds support for *H.263*, *H.264* (requires *x264*) and *MP4V-ES* video codecs.
{{{
**FFmpeg** is optional and adds support for **H.263**, **H.264** (requires **x264**) and **MP4V-ES** video codecs.
```
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
@ -184,34 +181,34 @@ git checkout n1.2
# build and install
make && make install
}}}
```
===Building `OpenH264`===
*OpenH264* is optional. Adds support for *H.264* constrained baseline video codec.
{{{
### Building `OpenH264` ###
**OpenH264** is optional. Adds support for **H.264** constrained baseline video codec.
```
git clone https://github.com/cisco/openh264.git
cd openh264
git checkout v1.1
make ENABLE64BIT=Yes # Use ENABLE64BIT=No for 32bit platforms
make install
}}}
```
===Building Doubango===
* Minimal build
{{{
### Building Doubango ###
* Minimal build
```
cd doubango && ./autogen.sh && ./configure --with-ssl --with-srtp --with-speexdsp
make && make install
}}}
* Recommended build
{{{
```
* Recommended build
```
cd doubango && ./autogen.sh && ./configure --with-ssl --with-srtp --with-speexdsp --with-ffmpeg --with-opus
make && make install
}}}
* Full build
{{{
```
* Full build
```
cd doubango && ./autogen.sh && ./configure --with-ssl --with-srtp --with-vpx --with-yuv --with-amr --with-speex --with-speexdsp --enable-speexresampler --enable-speexdenoiser --with-opus --with-gsm --with-ilbc --with-g729 --with-ffmpeg
make && make install
}}}
```
<br />
Et voilà

@ -0,0 +1,125 @@
<p>
The framework is <b>dual licensed (GPL / commercial)</b> and contains third-parties libraries compatible with commercial and closed-source applications.<br />
<blockquote>The framework depends on:</p></blockquote>
> <table border='1' cellspacing='0'>
<blockquote><tr>
<blockquote><td>Name</td>
<td>Version</td>
<td>License</td>
<td>Dependency</td>
<td>Comments</td>
</blockquote></tr>
<tr>
<blockquote><td><a href='http://www.ffmpeg.org/'>FFmpeg</a></td>
<td>SVN <a href='https://code.google.com/p/doubango/source/detail?r=24652'>r24652</a></td>
<td>GPL or LGPL</td>
<td><i>optional</i></td>
<td>The commercial version could be linked against the LGPL version as far as the FFmpeg's <a href='http://ffmpeg.org/legal.html'>License Compliance Checklist</a> is respected. <br /><b>We recommend not using FFmpeg</b></td>
</blockquote></tr>
<tr>
<blockquote><td><a href='http://www.ilbcfreeware.org/'>iLBC</a></td>
<td>1.0</td>
<td>GIPS Public License</td>
<td><i>optional</i></td>
<td></td>
</blockquote></tr>
<tr>
<blockquote><td><a href='https://launchpad.net/libgsm'>libgsm</a></td>
<td>1.0-pl13</td>
<td>BSD</td>
<td><i>optional</i></td>
<td></td>
</blockquote></tr>
<tr>
<blockquote><td><a href='http://downloads.xiph.org/releases/ogg/libogg-1.1.4.tar.gz'>libogg</a></td>
<td>1.1.4</td>
<td>BSD</td>
<td><i>optional</i></td>
<td></td>
</blockquote></tr>
<tr>
<blockquote><td><a href='http://code.google.com/p/libyuv/'>libyuv</a></td>
<td>SVN <a href='https://code.google.com/p/doubango/source/detail?r=321'>r321</a></td>
<td>BSD-style</td>
<td><b>mandatory</b></td>
<td></td>
</blockquote></tr>
<tr>
<blockquote><td><a href='http://srtp.sourceforge.net/srtp.html'>libsrtp</a></td>
<td>1.4.2</td>
<td>BSD-based</td>
<td><i>optional</i></td>
<td></td>
</blockquote></tr>
<tr>
<blockquote><td><a href='http://www.theora.org/'>libtheora</a></td>
<td>1.1.1</td>
<td>BSD</td>
<td><i>optional</i></td>
<td></td>
</blockquote></tr>
<tr>
<blockquote><td><a href='http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.3.tar.gz'>libvorbis</a></td>
<td>1.2.3</td>
<td>BSD</td>
<td><i>optional</i></td>
<td></td>
</blockquote></tr>
<tr>
<blockquote><td><a href='https://sourceforge.net/projects/opencore-amr/'>opencore-amr</a></td>
<td>0.1.2</td>
<td>Apache license 2.0</td>
<td><i>optional</i></td>
<td></td>
</blockquote></tr>
<tr>
<blockquote><td><a href='http://www.openssl.org/'>openssl</a></td>
<td>0.9.8m</td>
<td>Apache-style License</td>
<td><i>optional</i></td>
<td></td>
</blockquote></tr>
<tr>
<blockquote><td><a href='http://www.complang.org/ragel/'>Ragel output</a></td>
<td>6.7</td>
<td>Doubango License</td>
<td><b>mandatory</b></td>
<td>No linking</td>
</blockquote></tr>
<tr>
<blockquote><td><a href='http://simple.sourceforge.net/'>SimpleXML</a></td>
<td>2.3.4</td>
<td>Apache License 2.0</td>
<td><b>mandatory</b></td>
<td>Only on Android</td>
</blockquote></tr>
<tr>
<blockquote><td><a href='http://www.swig.org/'>swig output</a></td>
<td>SVN <a href='https://code.google.com/p/doubango/source/detail?r=12023'>r12023</a></td>
<td>Doubango License</td>
<td><b>mandatory</b></td>
<td>No linking</td>
</blockquote></tr>
<tr>
<blockquote><td><a href='http://www.speex.org/'>Speex</a></td>
<td>1.2</td>
<td>Revisited-BSD</td>
<td><b>mandatory</b></td>
<td></td>
</blockquote></tr>
<tr>
<blockquote><td><a href='http://www.webrtc.org/'>WebRTC audio processing</a></td>
<td>SVN <a href='https://code.google.com/p/doubango/source/detail?r=2512'>r2512</a></td>
<td>BSD</td>
<td>optional</td>
<td>AEC, Noise suppression ...</td>
</blockquote></tr>
<tr>
<blockquote><td><a href='http://www.videolan.org/developers/x264.html'>x264</a></td>
<td>0.104</td>
<td>GPL</td>
<td><i>optional</i></td>
<td><b>Must be disbaled for commerical use</b></td>
</blockquote></tr>
</blockquote><blockquote></table>

@ -0,0 +1,111 @@
<font color='green' size='3'>
<hr />
<strong>Doubango v2.x</strong><br />
<hr />
To all developers: Doubango v1.x is now deprecated. <br />
Please use version v2.x. The source code is under <strong>branches/2.0</strong><br />
</font>
<br />
<h2>Welcome to <a href='http://www.doubango.org'>doubango</a> project!</h2>
<p><a href='http://en.wikipedia.org/wiki/IP_Multimedia_Subsystem'>3GPP IMS</a> (IP Multimedia Subsystem) is the next generation network for delivering<br>
IP multimedia services. IMS is standardized by the 3rd Generation Partnership Project (3GPP). <br />
IMS services could be used over any type of network, such as <a href='http://en.wikipedia.org/wiki/3GPP_Long_Term_Evolution'>3GPP LTE</a>, GPRS, Wireless LAN, CDMA2000 or fixed line.<br>
</p>
<p>
<a href='http://www.doubango.org'>doubango</a> is an experimental, open source, 3GPP IMS/LTE framework for both embedded and desktop systems.<br />
The framework is written in ANSI-C to ease portability and has been carefully designed to efficiently work on embedded systems with limited memory and low computing power and to be extremely portable.</p>
<h2>Proof Of Concept</h2>
<table border='1'>
<tr><td><b>Client-side components</b></td></tr>
<tr>
<td><a href='http://code.google.com/p/boghe/'>Boghe</a></td>
<td>- SIP Video Client for Windows Phone 8 and Surface Pro<br /> - IMS/RCS Client for Windows XP, Vista, 7 and 8</td>
</tr>
<tr>
<td><a href='http://code.google.com/p/imsdroid/'>IMSDroid</a></td>
<td>SIP/IMS Client for Android</td>
</tr>
<tr>
<td><a href='http://code.google.com/p/idoubs/'>iDoubs</a></td>
<td>SIP/IMS VideoPhone for iOS (iPhone, iPad and iPod Touch) and MAC OS X</td>
</tr>
<tr><td><b>Server-side components</b></td></tr>
<tr>
<td><a href='http://webrtc2sip.org'>webrtc2sip</a></td>
<td>Smart SIP and Media Gateway to connect WebRTC endpoints to any SIP-legacy network</td>
</tr>
<tr>
<td><a href='http://code.google.com/p/telepresence/'>telepresence</a></td>
<td>the open source SIP TelePresence system with a porwerfull <a href='http://en.wikipedia.org/wiki/Multipoint_Control_Unit'>MCU</a>
</td>
</tr>
<tr>
<td><a href='http://code.google.com/p/flash2ims/'>Flash2IMS</a></td>
<td>Adobe® Flash® to SIP/IMS Gateway.</td>
</tr>
</table>
See also [webrtc4all](http://code.google.com/p/webrtc4all/), [sipML5](http://code.google.com/p/sipml5/) and [click2dial](https://code.google.com/p/click-2-dial/) components.
<h2>Features</h2>
<ul>
<blockquote><li>SIP (RFC 3261, 3GPP TS 24.229 Rel-9)</li>
<li>IMS-AKA (RFC 3310, 3GPP TS 33.203, 35.205, 35.206, 35.207, 35.208 and 35.909)</li>
<li>Private extension headers for 3GPP</li>
<li>IPv4/IPv6 dual stack</li>
<li>UDP, TCP and TLS</li>
<li>Service-Route Discovery (RFC 3608)</li>
<li>Proxy-CSCF discovery using DHCPv4/v6 or/and DNS NAPTR</li>
<li>SigComp (RFC 3320, 3485, 4077, 4464, 4465, 4896, 5049, 5112 and 1951)</li>
<li>IPSec</li>
<li>Security Agreement (RFC 3329)</li>
<li>NAT Traversal (STUN, TURN and ICE)</li>
<li>Preconditions (RFC 3312, 4032 and 5027)</li>
<li>SMS over IP (3GPP TS 23.038, 24.040, 24.011, 24.341 and 24.451)</li>
<li>ENUM (RFC 3761)</li>
<li>The tel URI for Telephone Numbers (RFC 3966)</li>
<li>SIP SIMPLE (Presence Subscription/Publication and Pager Mode IM)</li>
<li>MMTel (UNI)</li>
<li>SDP (RFC 3264)</li>
<li>(S)RTP and (S)RTCP</li>
<li>(S)AVP, (S)AVP(F) and UDP/TLS/RTP/(S)AVP(F) profiles</li>
<li>DTLS-SRTP(RFC 5763 and 5764)</li>
<li>XCAP (RFC 4825)</li>
<li>MSRP (RFC 4975 and 5547)</li>
<li>Audio/Video (AMR, Speex, G.729, G.722, Opus, G.711, GSM, iLBC, VP8, H.264, H.263, Theora, MP4V-ES...)</li>
<li>Full HD (1080p) video</li>
<li>T.140: Text Over IP (<a href='http://en.wikipedia.org/wiki/Text_over_IP'>http://en.wikipedia.org/wiki/Text_over_IP</a>)</li>
<li>...and many other features</li>
</ul></blockquote>
<h2>The One Voice Profile (4G/LTE)</h2>
<p><a href='http://www.doubango.org'>doubango</a> supports both Voice and SMS over LTE as defined by the <b>One Voice initiative</b>.<br />
For more information, please refer to <a href='http://news.vzw.com/OneVoiceProfile.pdf'>Voice over IMS profile V1.0.0(2009-11)</a>.<br>
<blockquote></p>
<img src='http://doubango.org/LTE_Architecture.png' alt='3GPP LTE Architecture' title='3GPP LTE Architecture' /></blockquote>
<h2>Multimedia Telephony (MMTel)</h2>
<ul>
<li>MMTel Supplementary Services (3GPP TS 24.173, 24607, 24.608, 24.607, 24.604, 24.611, 24.610, 24.606, 24.615 and 24.605)</li>
<li>Supplementary Service Configuration(3GPP TS 24.623)</li>
<li>Ad-Hoc Multi Party Conference (3GPP TS 24.605)</li>
<li>Communication Waiting(3GPP TS 24.615)</li>
<li>Message Waiting Indication(3GPP TS 24.606 and RFC 3842)</li>
<li>Originating/Terminating Identification Restriction(3GPP TS 24.607/608)</li>
<li>Communication Diversion(3GPP TS 24.604)</li>
<li>Communication Barring(3GPP TS 24.611)</li>
</ul>
<br>
<h2>Support</h2>
Please check our <a href='http://code.google.com/p/webrtc2sip/issues/list'>issue tracker</a> or <a href='https://groups.google.com/group/doubango'>developer group</a> if you have any problem.<br>
<br>
For more information, please visit <a href='http://www.doubango.org'><a href='http://www.doubango.org'>http://www.doubango.org</a></a>
<br />
<br />
<b>© 2010-2013 Doubango Telecom</b> <br />
<i>Inspiring the future</i>

@ -1,106 +1,106 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ipsec_app", "ipsec_app\ipsec_app.csproj", "{9765AEFD-D72A-4FB5-B840-D1021B41DD41}"
ProjectSection(ProjectDependencies) = postProject
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA} = {6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}
{F9B529B2-2AC2-4318-AD31-E7A9B195E204} = {F9B529B2-2AC2-4318-AD31-E7A9B195E204}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ipsec_lib", "ipsec_lib\ipsec_lib.vcproj", "{F9B529B2-2AC2-4318-AD31-E7A9B195E204}"
ProjectSection(ProjectDependencies) = postProject
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA} = {6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tinySAK", "..\..\..\tinySAK\tinySAK.vcproj", "{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "csharp", "csharp", "{0325B42D-C2ED-4313-ABB0-B317A2ADBAB9}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "cpp", "cpp", "{AB8B1D7B-3776-463A-92F0-6D7236B75B99}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Win32 = Debug|Win32
Release|Any CPU = Release|Any CPU
Release|Mixed Platforms = Release|Mixed Platforms
Release|Win32 = Release|Win32
Static_Debug|Any CPU = Static_Debug|Any CPU
Static_Debug|Mixed Platforms = Static_Debug|Mixed Platforms
Static_Debug|Win32 = Static_Debug|Win32
Static_Release|Any CPU = Static_Release|Any CPU
Static_Release|Mixed Platforms = Static_Release|Mixed Platforms
Static_Release|Win32 = Static_Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Debug|Win32.ActiveCfg = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Release|Any CPU.Build.0 = Release|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Release|Win32.ActiveCfg = Release|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Debug|Any CPU.Build.0 = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Debug|Win32.ActiveCfg = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Release|Any CPU.ActiveCfg = Release|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Release|Any CPU.Build.0 = Release|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Release|Mixed Platforms.Build.0 = Release|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Release|Win32.ActiveCfg = Release|Any CPU
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Debug|Any CPU.ActiveCfg = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Debug|Win32.ActiveCfg = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Debug|Win32.Build.0 = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Release|Any CPU.ActiveCfg = Release|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Release|Mixed Platforms.Build.0 = Release|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Release|Win32.ActiveCfg = Release|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Release|Win32.Build.0 = Release|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Debug|Any CPU.ActiveCfg = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Debug|Mixed Platforms.Build.0 = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Debug|Win32.ActiveCfg = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Debug|Win32.Build.0 = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Release|Any CPU.ActiveCfg = Release|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Release|Mixed Platforms.ActiveCfg = Release|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Release|Mixed Platforms.Build.0 = Release|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Release|Win32.ActiveCfg = Release|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Release|Win32.Build.0 = Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Debug|Any CPU.ActiveCfg = Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Debug|Win32.ActiveCfg = Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Debug|Win32.Build.0 = Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Release|Any CPU.ActiveCfg = Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Release|Mixed Platforms.Build.0 = Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Release|Win32.ActiveCfg = Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Release|Win32.Build.0 = Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Debug|Any CPU.ActiveCfg = Static_Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Debug|Mixed Platforms.ActiveCfg = Static_Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Debug|Mixed Platforms.Build.0 = Static_Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Debug|Win32.ActiveCfg = Static_Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Debug|Win32.Build.0 = Static_Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Release|Any CPU.ActiveCfg = Static_Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Release|Mixed Platforms.ActiveCfg = Static_Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Release|Mixed Platforms.Build.0 = Static_Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Release|Win32.ActiveCfg = Static_Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Release|Win32.Build.0 = Static_Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{9765AEFD-D72A-4FB5-B840-D1021B41DD41} = {0325B42D-C2ED-4313-ABB0-B317A2ADBAB9}
{F9B529B2-2AC2-4318-AD31-E7A9B195E204} = {AB8B1D7B-3776-463A-92F0-6D7236B75B99}
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA} = {AB8B1D7B-3776-463A-92F0-6D7236B75B99}
EndGlobalSection
EndGlobal

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ipsec_app", "ipsec_app\ipsec_app.csproj", "{9765AEFD-D72A-4FB5-B840-D1021B41DD41}"
ProjectSection(ProjectDependencies) = postProject
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA} = {6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}
{F9B529B2-2AC2-4318-AD31-E7A9B195E204} = {F9B529B2-2AC2-4318-AD31-E7A9B195E204}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ipsec_lib", "ipsec_lib\ipsec_lib.vcproj", "{F9B529B2-2AC2-4318-AD31-E7A9B195E204}"
ProjectSection(ProjectDependencies) = postProject
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA} = {6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tinySAK", "..\..\..\tinySAK\tinySAK.vcproj", "{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "csharp", "csharp", "{0325B42D-C2ED-4313-ABB0-B317A2ADBAB9}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "cpp", "cpp", "{AB8B1D7B-3776-463A-92F0-6D7236B75B99}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Win32 = Debug|Win32
Release|Any CPU = Release|Any CPU
Release|Mixed Platforms = Release|Mixed Platforms
Release|Win32 = Release|Win32
Static_Debug|Any CPU = Static_Debug|Any CPU
Static_Debug|Mixed Platforms = Static_Debug|Mixed Platforms
Static_Debug|Win32 = Static_Debug|Win32
Static_Release|Any CPU = Static_Release|Any CPU
Static_Release|Mixed Platforms = Static_Release|Mixed Platforms
Static_Release|Win32 = Static_Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Debug|Win32.ActiveCfg = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Release|Any CPU.Build.0 = Release|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Release|Win32.ActiveCfg = Release|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Debug|Any CPU.Build.0 = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Debug|Win32.ActiveCfg = Debug|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Release|Any CPU.ActiveCfg = Release|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Release|Any CPU.Build.0 = Release|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Release|Mixed Platforms.Build.0 = Release|Any CPU
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Release|Win32.ActiveCfg = Release|Any CPU
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Debug|Any CPU.ActiveCfg = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Debug|Win32.ActiveCfg = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Debug|Win32.Build.0 = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Release|Any CPU.ActiveCfg = Release|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Release|Mixed Platforms.Build.0 = Release|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Release|Win32.ActiveCfg = Release|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Release|Win32.Build.0 = Release|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Debug|Any CPU.ActiveCfg = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Debug|Mixed Platforms.Build.0 = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Debug|Win32.ActiveCfg = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Debug|Win32.Build.0 = Debug|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Release|Any CPU.ActiveCfg = Release|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Release|Mixed Platforms.ActiveCfg = Release|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Release|Mixed Platforms.Build.0 = Release|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Release|Win32.ActiveCfg = Release|Win32
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Release|Win32.Build.0 = Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Debug|Any CPU.ActiveCfg = Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Debug|Win32.ActiveCfg = Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Debug|Win32.Build.0 = Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Release|Any CPU.ActiveCfg = Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Release|Mixed Platforms.Build.0 = Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Release|Win32.ActiveCfg = Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Release|Win32.Build.0 = Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Debug|Any CPU.ActiveCfg = Static_Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Debug|Mixed Platforms.ActiveCfg = Static_Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Debug|Mixed Platforms.Build.0 = Static_Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Debug|Win32.ActiveCfg = Static_Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Debug|Win32.Build.0 = Static_Debug|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Release|Any CPU.ActiveCfg = Static_Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Release|Mixed Platforms.ActiveCfg = Static_Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Release|Mixed Platforms.Build.0 = Static_Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Release|Win32.ActiveCfg = Static_Release|Win32
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Release|Win32.Build.0 = Static_Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{9765AEFD-D72A-4FB5-B840-D1021B41DD41} = {0325B42D-C2ED-4313-ABB0-B317A2ADBAB9}
{F9B529B2-2AC2-4318-AD31-E7A9B195E204} = {AB8B1D7B-3776-463A-92F0-6D7236B75B99}
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA} = {AB8B1D7B-3776-463A-92F0-6D7236B75B99}
EndGlobalSection
EndGlobal

@ -15,70 +15,70 @@
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using org.doubango.ipsecWRAP;
using System.Diagnostics;
using err = org.doubango.ipsecWRAP.tipsec_error_t;
using System.Runtime.InteropServices;
namespace ipsec
{
class Program
{
static tipsec_ipproto_t __ipproto = tipsec_ipproto_t.tipsec_ipproto_udp;
static bool __use_ipv6 = false;
static tipsec_mode_t __mode = tipsec_mode_t.tipsec_mode_trans;
static tipsec_ealg_t __ealg = tipsec_ealg_t.tipsec_ealg_des_ede3_cbc;
static tipsec_alg_t __alg = tipsec_alg_t.tipsec_alg_hmac_md5_96;
static tipsec_proto_t __proto = tipsec_proto_t.tipsec_proto_esp;
static String __addr_local = "0.0.0.0";
static String __addr_remote = "192.168.0.34";
static ushort __port_local_out = 5062; // PORT_UC
static ushort __port_local_in = 5064; // PORT_US
static ushort __port_remote_out = 5066; // PORT_PC
static ushort __port_remote_in = 5068; // PORT_PS
static UInt32 __spi_remote_out = 3333; // SPI_PC
static UInt32 __spi_remote_in = 4444; // SPI_PS
static UInt64 __lifetime = 1800; /* always set it to the maximum value. (Not possible to update the value after REGISTER 200OK. ) */
static String __key_ik = "1234567890123456";
static String __key_ck = "1234567890121234";
static void Main(string[] args)
{
/* Create the context */
IPSecCtx ipsecCtx = new IPSecCtx(__ipproto, __use_ipv6, __mode, __ealg, __alg, __proto);
/* Set local */
Debug.Assert(ipsecCtx.setLocal(__addr_local, __addr_remote, __port_local_out, __port_local_in) == err.tipsec_error_success);
/* Dump SPIs created by the OS after calling set_local() */
Console.WriteLine("SPI-UC={0}, SPI-US={1}", ipsecCtx.getSpiUC(), ipsecCtx.getSpiUS());
/* Set remote */
Debug.Assert(ipsecCtx.setRemote(__spi_remote_out, __spi_remote_in, __port_remote_out, __port_remote_in, __lifetime) == err.tipsec_error_success);
/* Set Integrity (IK) and Confidentiality (CK) keys */
IntPtr keyIK = Marshal.StringToHGlobalAnsi(__key_ik);
IntPtr keyCK = Marshal.StringToHGlobalAnsi(__key_ck);
Debug.Assert(ipsecCtx.setKeys(keyIK, keyCK) == err.tipsec_error_success);
Marshal.FreeHGlobal(keyIK);
Marshal.FreeHGlobal(keyCK);
/* Start (Setup) the SAs */
Debug.Assert(ipsecCtx.start() == err.tipsec_error_success);
Console.WriteLine("!!! IPSec SAs started (Press any key to stop) !!!");
Console.ReadLine();
ipsecCtx.Dispose(); // Not required. GC will collect it when refCount reach zero.
Console.ReadLine();
}
}
}
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using org.doubango.ipsecWRAP;
using System.Diagnostics;
using err = org.doubango.ipsecWRAP.tipsec_error_t;
using System.Runtime.InteropServices;
namespace ipsec
{
class Program
{
static tipsec_ipproto_t __ipproto = tipsec_ipproto_t.tipsec_ipproto_udp;
static bool __use_ipv6 = false;
static tipsec_mode_t __mode = tipsec_mode_t.tipsec_mode_trans;
static tipsec_ealg_t __ealg = tipsec_ealg_t.tipsec_ealg_des_ede3_cbc;
static tipsec_alg_t __alg = tipsec_alg_t.tipsec_alg_hmac_md5_96;
static tipsec_proto_t __proto = tipsec_proto_t.tipsec_proto_esp;
static String __addr_local = "0.0.0.0";
static String __addr_remote = "192.168.0.34";
static ushort __port_local_out = 5062; // PORT_UC
static ushort __port_local_in = 5064; // PORT_US
static ushort __port_remote_out = 5066; // PORT_PC
static ushort __port_remote_in = 5068; // PORT_PS
static UInt32 __spi_remote_out = 3333; // SPI_PC
static UInt32 __spi_remote_in = 4444; // SPI_PS
static UInt64 __lifetime = 1800; /* always set it to the maximum value. (Not possible to update the value after REGISTER 200OK. ) */
static String __key_ik = "1234567890123456";
static String __key_ck = "1234567890121234";
static void Main(string[] args)
{
/* Create the context */
IPSecCtx ipsecCtx = new IPSecCtx(__ipproto, __use_ipv6, __mode, __ealg, __alg, __proto);
/* Set local */
Debug.Assert(ipsecCtx.setLocal(__addr_local, __addr_remote, __port_local_out, __port_local_in) == err.tipsec_error_success);
/* Dump SPIs created by the OS after calling set_local() */
Console.WriteLine("SPI-UC={0}, SPI-US={1}", ipsecCtx.getSpiUC(), ipsecCtx.getSpiUS());
/* Set remote */
Debug.Assert(ipsecCtx.setRemote(__spi_remote_out, __spi_remote_in, __port_remote_out, __port_remote_in, __lifetime) == err.tipsec_error_success);
/* Set Integrity (IK) and Confidentiality (CK) keys */
IntPtr keyIK = Marshal.StringToHGlobalAnsi(__key_ik);
IntPtr keyCK = Marshal.StringToHGlobalAnsi(__key_ck);
Debug.Assert(ipsecCtx.setKeys(keyIK, keyCK) == err.tipsec_error_success);
Marshal.FreeHGlobal(keyIK);
Marshal.FreeHGlobal(keyCK);
/* Start (Setup) the SAs */
Debug.Assert(ipsecCtx.start() == err.tipsec_error_success);
Console.WriteLine("!!! IPSec SAs started (Press any key to stop) !!!");
Console.ReadLine();
ipsecCtx.Dispose(); // Not required. GC will collect it when refCount reach zero.
Console.ReadLine();
}
}
}

@ -1,36 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("ipsec")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ipsec")]
[assembly: AssemblyCopyright("Copyright © 2013")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("28faf159-2a2b-47ff-9a32-a7acf9c6ec66")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("ipsec")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ipsec")]
[assembly: AssemblyCopyright("Copyright © 2013")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("28faf159-2a2b-47ff-9a32-a7acf9c6ec66")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

@ -1,136 +1,136 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{9765AEFD-D72A-4FB5-B840-D1021B41DD41}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ipsec_app</RootNamespace>
<AssemblyName>ipsec_app</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\ipsec_lib\IPSecCtx.cs">
<Link>IPSecCtx.cs</Link>
</Compile>
<Compile Include="..\ipsec_lib\ipsec_lib.cs">
<Link>ipsec_lib.cs</Link>
</Compile>
<Compile Include="..\ipsec_lib\ipsec_libPINVOKE.cs">
<Link>ipsec_libPINVOKE.cs</Link>
</Compile>
<Compile Include="..\ipsec_lib\tipsec_alg_t.cs">
<Link>tipsec_alg_t.cs</Link>
</Compile>
<Compile Include="..\ipsec_lib\tipsec_ealg_t.cs">
<Link>tipsec_ealg_t.cs</Link>
</Compile>
<Compile Include="..\ipsec_lib\tipsec_error_t.cs">
<Link>tipsec_error_t.cs</Link>
</Compile>
<Compile Include="..\ipsec_lib\tipsec_ipproto_t.cs">
<Link>tipsec_ipproto_t.cs</Link>
</Compile>
<Compile Include="..\ipsec_lib\tipsec_mode_t.cs">
<Link>tipsec_mode_t.cs</Link>
</Compile>
<Compile Include="..\ipsec_lib\tipsec_proto_t.cs">
<Link>tipsec_proto_t.cs</Link>
</Compile>
<Compile Include="..\ipsec_lib\tipsec_state_t.cs">
<Link>tipsec_state_t.cs</Link>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{9765AEFD-D72A-4FB5-B840-D1021B41DD41}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ipsec_app</RootNamespace>
<AssemblyName>ipsec_app</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\ipsec_lib\IPSecCtx.cs">
<Link>IPSecCtx.cs</Link>
</Compile>
<Compile Include="..\ipsec_lib\ipsec_lib.cs">
<Link>ipsec_lib.cs</Link>
</Compile>
<Compile Include="..\ipsec_lib\ipsec_libPINVOKE.cs">
<Link>ipsec_libPINVOKE.cs</Link>
</Compile>
<Compile Include="..\ipsec_lib\tipsec_alg_t.cs">
<Link>tipsec_alg_t.cs</Link>
</Compile>
<Compile Include="..\ipsec_lib\tipsec_ealg_t.cs">
<Link>tipsec_ealg_t.cs</Link>
</Compile>
<Compile Include="..\ipsec_lib\tipsec_error_t.cs">
<Link>tipsec_error_t.cs</Link>
</Compile>
<Compile Include="..\ipsec_lib\tipsec_ipproto_t.cs">
<Link>tipsec_ipproto_t.cs</Link>
</Compile>
<Compile Include="..\ipsec_lib\tipsec_mode_t.cs">
<Link>tipsec_mode_t.cs</Link>
</Compile>
<Compile Include="..\ipsec_lib\tipsec_proto_t.cs">
<Link>tipsec_proto_t.cs</Link>
</Compile>
<Compile Include="..\ipsec_lib\tipsec_state_t.cs">
<Link>tipsec_state_t.cs</Link>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

@ -15,45 +15,45 @@
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*/
#include "IPSecCtx.h"
#include "tsk_debug.h"
#include <assert.h>
bool IPSecCtx::sInitialized = false;
extern "C" const tipsec_plugin_def_t *plugin_win_ipsec_vista_plugin_def_t;
*/
#include "IPSecCtx.h"
#include "tsk_debug.h"
#include <assert.h>
bool IPSecCtx::sInitialized = false;
extern "C" const tipsec_plugin_def_t *plugin_win_ipsec_vista_plugin_def_t;
IPSecCtx::IPSecCtx(tipsec_ipproto_t ipproto,
bool use_ipv6,
tipsec_mode_t mode,
tipsec_ealg_t ealg,
tipsec_alg_t alg,
tipsec_proto_t protocol)
: m_pCtx(NULL)
{
tipsec_proto_t protocol)
: m_pCtx(NULL)
{
tipsec_ctx_t* pCtx = NULL;
if (!IPSecCtx::sInitialized)
{
assert (tipsec_plugin_register_static(plugin_win_ipsec_vista_plugin_def_t) == 0);
IPSecCtx::sInitialized = true;
}
assert (tipsec_ctx_create(ipproto, use_ipv6, mode, ealg, alg, protocol, &m_pCtx) == 0 && m_pCtx != NULL);
}
assert (tipsec_ctx_create(ipproto, use_ipv6, mode, ealg, alg, protocol, &m_pCtx) == 0 && m_pCtx != NULL);
}
IPSecCtx::~IPSecCtx()
{
TSK_OBJECT_SAFE_FREE(m_pCtx);
}
}
tipsec_error_t IPSecCtx::start()
{
return tipsec_ctx_start(m_pCtx);
}
tipsec_error_t IPSecCtx::setLocal(const char* addr_local, const char* addr_remote, tipsec_port_t port_uc, tipsec_port_t port_us)
{
return tipsec_ctx_set_local(m_pCtx, addr_local, addr_remote, port_uc, port_us);
tipsec_error_t IPSecCtx::setLocal(const char* addr_local, const char* addr_remote, tipsec_port_t port_uc, tipsec_port_t port_us)
{
return tipsec_ctx_set_local(m_pCtx, addr_local, addr_remote, port_uc, port_us);
}
tipsec_error_t IPSecCtx::setKeys(const tipsec_key_t* ik, const tipsec_key_t* ck)
@ -66,11 +66,11 @@ tipsec_error_t IPSecCtx::setRemote(tipsec_spi_t spi_pc, tipsec_spi_t spi_ps, tip
return tipsec_ctx_set_remote(m_pCtx, spi_pc, spi_ps, port_pc, port_ps, lifetime);
}
tipsec_error_t IPSecCtx::stop()
{
return tipsec_ctx_stop(m_pCtx);
}
tipsec_error_t IPSecCtx::stop()
{
return tipsec_ctx_stop(m_pCtx);
}
tipsec_spi_t IPSecCtx::getSpiUC()
{
return m_pCtx->spi_uc;
@ -86,10 +86,10 @@ tipsec_spi_t IPSecCtx::getSpiPC()
return m_pCtx->spi_pc;
}
tipsec_spi_t IPSecCtx::getSpiPS()
{
return m_pCtx->spi_ps;
}
tipsec_spi_t IPSecCtx::getSpiPS()
{
return m_pCtx->spi_ps;
}

@ -1,241 +1,241 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="ipsec_lib"
ProjectGUID="{F9B529B2-2AC2-4318-AD31-E7A9B195E204}"
RootNamespace="ipsec_lib"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>