This commit is contained in:
parent
7908865936
commit
631fffee8a
|
@ -1,89 +1,86 @@
|
||||||
#summary Building Source v2.0
|
This section explains how to build the project using **CentOS 64** but could be easily adapted for any _Linux_, _Windows_ or _OS X_.<br />
|
||||||
#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 />
|
|
||||||
|
|
||||||
<wiki:toc max_depth="3" />
|
|
||||||
|
|
||||||
|
|
||||||
==Preparing the system==
|
|
||||||
{{{
|
|
||||||
|
## Preparing the system ##
|
||||||
|
```
|
||||||
sudo yum update
|
sudo yum update
|
||||||
sudo yum install make libtool autoconf subversion git wget libogg-devel gcc gcc-c++ pkgconfig nasm
|
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:
|
The first step is to checkout Doubango 2.0 source code:
|
||||||
{{{
|
```
|
||||||
svn checkout https://doubango.googlecode.com/svn/branches/2.0/doubango doubango
|
svn checkout https://doubango.googlecode.com/svn/branches/2.0/doubango doubango
|
||||||
}}}
|
```
|
||||||
|
|
||||||
===Building libsrtp===
|
### Building libsrtp ###
|
||||||
libsrtp is optional.
|
libsrtp is optional.
|
||||||
{{{
|
```
|
||||||
git clone https://github.com/cisco/libsrtp/
|
git clone https://github.com/cisco/libsrtp/
|
||||||
cd libsrtp
|
cd libsrtp
|
||||||
git checkout v1.5.0
|
git checkout v1.5.0
|
||||||
CFLAGS="-fPIC" ./configure --enable-pic && make && make install
|
CFLAGS="-fPIC" ./configure --enable-pic && make && make install
|
||||||
}}}
|
```
|
||||||
|
|
||||||
===Building OpenSSL===
|
### 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 />
|
**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 />
|
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
|
openssl version
|
||||||
}}}
|
```
|
||||||
To build OpenSSL:
|
To build OpenSSL:
|
||||||
{{{
|
```
|
||||||
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
|
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
|
||||||
tar -xvzf openssl-1.0.1c.tar.gz
|
tar -xvzf openssl-1.0.1c.tar.gz
|
||||||
cd openssl-1.0.1c
|
cd openssl-1.0.1c
|
||||||
./config shared --prefix=/usr/local --openssldir=/usr/local/openssl && make && make install
|
./config shared --prefix=/usr/local --openssldir=/usr/local/openssl && make && make install
|
||||||
}}}
|
```
|
||||||
|
|
||||||
===Building libspeex and libspeexdsp===
|
### Building libspeex and libspeexdsp ###
|
||||||
*libspeex* (audio codec) an *libspeexdsp* (audio processing and jitter buffer) are optional. It’s highly recommended to enable 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:
|
You can install the devel packages:
|
||||||
{{{
|
```
|
||||||
sudo yum install speex-devel
|
sudo yum install speex-devel
|
||||||
}}}
|
```
|
||||||
Or build the source by yourself:
|
Or build the source by yourself:
|
||||||
{{{
|
```
|
||||||
wget http://downloads.xiph.org/releases/speex/speex-1.2beta3.tar.gz
|
wget http://downloads.xiph.org/releases/speex/speex-1.2beta3.tar.gz
|
||||||
tar -xvzf speex-1.2beta3.tar.gz
|
tar -xvzf speex-1.2beta3.tar.gz
|
||||||
cd speex-1.2beta3
|
cd speex-1.2beta3
|
||||||
./configure --disable-oggtest --without-libogg && make && make install
|
./configure --disable-oggtest --without-libogg && make && make install
|
||||||
}}}
|
```
|
||||||
|
|
||||||
===Building YASM===
|
### Building YASM ###
|
||||||
*YASM* is only required if you want to enable *VPX* (VP8 video codec) or *x264* (H.264 codec).
|
**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
|
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
|
||||||
tar -xvzf yasm-1.2.0.tar.gz
|
tar -xvzf yasm-1.2.0.tar.gz
|
||||||
cd yasm-1.2.0
|
cd yasm-1.2.0
|
||||||
./configure && make && make install
|
./configure && make && make install
|
||||||
}}}
|
```
|
||||||
|
|
||||||
===Building libvpx===
|
### Building libvpx ###
|
||||||
_Date: December 1, 2012_ <br />
|
_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:
|
You can install the devel packages:
|
||||||
{{{
|
```
|
||||||
sudo yum install libvpx-devel
|
sudo yum install libvpx-devel
|
||||||
}}}
|
```
|
||||||
Or build the source by yourself:
|
Or build the source by yourself:
|
||||||
{{{
|
```
|
||||||
git clone http://git.chromium.org/webm/libvpx.git
|
git clone http://git.chromium.org/webm/libvpx.git
|
||||||
cd libvpx
|
cd libvpx
|
||||||
./configure --enable-realtime-only --enable-error-concealment --disable-examples --enable-vp8 --enable-pic --enable-shared --as=yasm
|
./configure --enable-realtime-only --enable-error-concealment --disable-examples --enable-vp8 --enable-pic --enable-shared --as=yasm
|
||||||
make && make install
|
make && make install
|
||||||
}}}
|
```
|
||||||
|
|
||||||
===Building libyuv===
|
### Building libyuv ###
|
||||||
*libyuv* is optional. Adds support for video scaling and chroma conversion.
|
**libyuv** is optional. Adds support for video scaling and chroma conversion.
|
||||||
{{{
|
```
|
||||||
mkdir libyuv && cd libyuv
|
mkdir libyuv && cd libyuv
|
||||||
svn co http://src.chromium.org/svn/trunk/tools/depot_tools .
|
svn co http://src.chromium.org/svn/trunk/tools/depot_tools .
|
||||||
./gclient config http://libyuv.googlecode.com/svn/trunk
|
./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
|
make -j6 V=1 -r libyuv BUILDTYPE=Release
|
||||||
#cp out/Release/obj.target/libyuv.a /usr/local/lib
|
#cp out/Release/obj.target/libyuv.a /usr/local/lib
|
||||||
#mkdir /usr/local/include/libyuv && cp -r include/* /usr/local/include/libyuv
|
#mkdir /usr/local/include/libyuv && cp -r include/* /usr/local/include/libyuv
|
||||||
}}}
|
```
|
||||||
|
|
||||||
===Building libopus===
|
### 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].
|
**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
|
wget http://downloads.xiph.org/releases/opus/opus-1.0.2.tar.gz
|
||||||
tar -xvzf opus-1.0.2.tar.gz
|
tar -xvzf opus-1.0.2.tar.gz
|
||||||
cd opus-1.0.2
|
cd opus-1.0.2
|
||||||
./configure --with-pic --enable-float-approx && make && make install
|
./configure --with-pic --enable-float-approx && make && make install
|
||||||
}}}
|
```
|
||||||
|
|
||||||
===Building opencore-amr===
|
### Building opencore-amr ###
|
||||||
*opencore-amr* is optional. Adds support for *AMR* audio codec.
|
**opencore-amr** is optional. Adds support for **AMR** audio codec.
|
||||||
{{{
|
```
|
||||||
git clone git://opencore-amr.git.sourceforge.net/gitroot/opencore-amr/opencore-amr
|
git clone git://opencore-amr.git.sourceforge.net/gitroot/opencore-amr/opencore-amr
|
||||||
cd opencore-amr && autoreconf --install && ./configure && make && make install
|
cd opencore-amr && autoreconf --install && ./configure && make && make install
|
||||||
}}}
|
```
|
||||||
|
|
||||||
===Building libgsm===
|
### Building libgsm ###
|
||||||
*libgsm* is optional. Adds support for *GSM* audio codec.
|
**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
|
sudo yum install gsm-devel
|
||||||
}}}
|
```
|
||||||
Or build the source by yourself:
|
Or build the source by yourself:
|
||||||
{{{
|
```
|
||||||
wget http://www.quut.com/gsm/gsm-1.0.13.tar.gz
|
wget http://www.quut.com/gsm/gsm-1.0.13.tar.gz
|
||||||
tar -xvzf gsm-1.0.13.tar.gz
|
tar -xvzf gsm-1.0.13.tar.gz
|
||||||
cd gsm-1.0-pl13 && make && make install
|
cd gsm-1.0-pl13 && make && make install
|
||||||
#cp -rf ./inc/* /usr/local/include
|
#cp -rf ./inc/* /usr/local/include
|
||||||
#cp -rf ./lib/* /usr/local/lib
|
#cp -rf ./lib/* /usr/local/lib
|
||||||
}}}
|
```
|
||||||
|
|
||||||
===Building g729===
|
### Building g729 ###
|
||||||
*G729* is optional. Adds support for *G.729* audio codec.
|
**G729** is optional. Adds support for **G.729** audio codec.
|
||||||
{{{
|
```
|
||||||
svn co http://g729.googlecode.com/svn/trunk/ g729b
|
svn co http://g729.googlecode.com/svn/trunk/ g729b
|
||||||
cd g729b
|
cd g729b
|
||||||
./autogen.sh && ./configure --enable-static --disable-shared && make && make install
|
./autogen.sh && ./configure --enable-static --disable-shared && make && make install
|
||||||
}}}
|
```
|
||||||
|
|
||||||
===Building iLBC===
|
### Building iLBC ###
|
||||||
*iLBC* is optional. Adds support for *iLBC* audio codec.
|
**iLBC** is optional. Adds support for **iLBC** audio codec.
|
||||||
{{{
|
```
|
||||||
svn co http://doubango.googlecode.com/svn/branches/2.0/doubango/thirdparties/scripts/ilbc
|
svn co http://doubango.googlecode.com/svn/branches/2.0/doubango/thirdparties/scripts/ilbc
|
||||||
cd ilbc
|
cd ilbc
|
||||||
wget http://www.ietf.org/rfc/rfc3951.txt
|
wget http://www.ietf.org/rfc/rfc3951.txt
|
||||||
awk -f extract.awk rfc3951.txt
|
awk -f extract.awk rfc3951.txt
|
||||||
./autogen.sh && ./configure
|
./autogen.sh && ./configure
|
||||||
make && make install
|
make && make install
|
||||||
}}}
|
```
|
||||||
|
|
||||||
===Building x264===
|
### Building x264 ###
|
||||||
_Date: December 2, 2012_ <br />
|
_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
|
wget ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
|
||||||
tar -xvjf last_x264.tar.bz2
|
tar -xvjf last_x264.tar.bz2
|
||||||
# the output directory may be difference depending on the version and date
|
# the output directory may be difference depending on the version and date
|
||||||
cd x264-snapshot-20121201-2245
|
cd x264-snapshot-20121201-2245
|
||||||
./configure --enable-shared --enable-pic && make && make install
|
./configure --enable-shared --enable-pic && make && make install
|
||||||
}}}
|
```
|
||||||
|
|
||||||
===Building FFmpeg===
|
### Building FFmpeg ###
|
||||||
_Date: December 2, 2012_ <br />
|
_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
|
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
|
||||||
cd ffmpeg
|
cd ffmpeg
|
||||||
|
|
||||||
|
@ -184,34 +181,34 @@ git checkout n1.2
|
||||||
|
|
||||||
# build and install
|
# build and install
|
||||||
make && make install
|
make && make install
|
||||||
}}}
|
```
|
||||||
|
|
||||||
===Building `OpenH264`===
|
### Building `OpenH264` ###
|
||||||
*OpenH264* is optional. Adds support for *H.264* constrained baseline video codec.
|
**OpenH264** is optional. Adds support for **H.264** constrained baseline video codec.
|
||||||
{{{
|
```
|
||||||
git clone https://github.com/cisco/openh264.git
|
git clone https://github.com/cisco/openh264.git
|
||||||
cd openh264
|
cd openh264
|
||||||
git checkout v1.1
|
git checkout v1.1
|
||||||
make ENABLE64BIT=Yes # Use ENABLE64BIT=No for 32bit platforms
|
make ENABLE64BIT=Yes # Use ENABLE64BIT=No for 32bit platforms
|
||||||
make install
|
make install
|
||||||
}}}
|
```
|
||||||
|
|
||||||
===Building Doubango===
|
### Building Doubango ###
|
||||||
* Minimal build
|
* Minimal build
|
||||||
{{{
|
```
|
||||||
cd doubango && ./autogen.sh && ./configure --with-ssl --with-srtp --with-speexdsp
|
cd doubango && ./autogen.sh && ./configure --with-ssl --with-srtp --with-speexdsp
|
||||||
make && make install
|
make && make install
|
||||||
}}}
|
```
|
||||||
* Recommended build
|
* Recommended build
|
||||||
{{{
|
```
|
||||||
cd doubango && ./autogen.sh && ./configure --with-ssl --with-srtp --with-speexdsp --with-ffmpeg --with-opus
|
cd doubango && ./autogen.sh && ./configure --with-ssl --with-srtp --with-speexdsp --with-ffmpeg --with-opus
|
||||||
make && make install
|
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
|
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
|
make && make install
|
||||||
}}}
|
```
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
Et voilà
|
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
|
Microsoft Visual Studio Solution File, Format Version 10.00
|
||||||
# Visual Studio 2008
|
# Visual Studio 2008
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ipsec_app", "ipsec_app\ipsec_app.csproj", "{9765AEFD-D72A-4FB5-B840-D1021B41DD41}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ipsec_app", "ipsec_app\ipsec_app.csproj", "{9765AEFD-D72A-4FB5-B840-D1021B41DD41}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA} = {6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}
|
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA} = {6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}
|
||||||
{F9B529B2-2AC2-4318-AD31-E7A9B195E204} = {F9B529B2-2AC2-4318-AD31-E7A9B195E204}
|
{F9B529B2-2AC2-4318-AD31-E7A9B195E204} = {F9B529B2-2AC2-4318-AD31-E7A9B195E204}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ipsec_lib", "ipsec_lib\ipsec_lib.vcproj", "{F9B529B2-2AC2-4318-AD31-E7A9B195E204}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ipsec_lib", "ipsec_lib\ipsec_lib.vcproj", "{F9B529B2-2AC2-4318-AD31-E7A9B195E204}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA} = {6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}
|
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA} = {6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tinySAK", "..\..\..\tinySAK\tinySAK.vcproj", "{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tinySAK", "..\..\..\tinySAK\tinySAK.vcproj", "{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "csharp", "csharp", "{0325B42D-C2ED-4313-ABB0-B317A2ADBAB9}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "csharp", "csharp", "{0325B42D-C2ED-4313-ABB0-B317A2ADBAB9}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "cpp", "cpp", "{AB8B1D7B-3776-463A-92F0-6D7236B75B99}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "cpp", "cpp", "{AB8B1D7B-3776-463A-92F0-6D7236B75B99}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
Debug|Mixed Platforms = Debug|Mixed Platforms
|
Debug|Mixed Platforms = Debug|Mixed Platforms
|
||||||
Debug|Win32 = Debug|Win32
|
Debug|Win32 = Debug|Win32
|
||||||
Release|Any CPU = Release|Any CPU
|
Release|Any CPU = Release|Any CPU
|
||||||
Release|Mixed Platforms = Release|Mixed Platforms
|
Release|Mixed Platforms = Release|Mixed Platforms
|
||||||
Release|Win32 = Release|Win32
|
Release|Win32 = Release|Win32
|
||||||
Static_Debug|Any CPU = Static_Debug|Any CPU
|
Static_Debug|Any CPU = Static_Debug|Any CPU
|
||||||
Static_Debug|Mixed Platforms = Static_Debug|Mixed Platforms
|
Static_Debug|Mixed Platforms = Static_Debug|Mixed Platforms
|
||||||
Static_Debug|Win32 = Static_Debug|Win32
|
Static_Debug|Win32 = Static_Debug|Win32
|
||||||
Static_Release|Any CPU = Static_Release|Any CPU
|
Static_Release|Any CPU = Static_Release|Any CPU
|
||||||
Static_Release|Mixed Platforms = Static_Release|Mixed Platforms
|
Static_Release|Mixed Platforms = Static_Release|Mixed Platforms
|
||||||
Static_Release|Win32 = Static_Release|Win32
|
Static_Release|Win32 = Static_Release|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{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|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.ActiveCfg = Debug|Any CPU
|
||||||
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Debug|Mixed Platforms.Build.0 = 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}.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.ActiveCfg = Release|Any CPU
|
||||||
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|Any CPU
|
||||||
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Release|Mixed Platforms.Build.0 = 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}.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.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|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.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|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_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.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|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.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|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{9765AEFD-D72A-4FB5-B840-D1021B41DD41}.Static_Release|Win32.ActiveCfg = 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|Any CPU.ActiveCfg = Debug|Win32
|
||||||
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Debug|Mixed Platforms.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|Mixed Platforms.Build.0 = Debug|Win32
|
||||||
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Debug|Win32.ActiveCfg = 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}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Release|Any CPU.ActiveCfg = Release|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.ActiveCfg = Release|Win32
|
||||||
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Release|Mixed Platforms.Build.0 = 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.ActiveCfg = Release|Win32
|
||||||
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Release|Win32.Build.0 = 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|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.ActiveCfg = Debug|Win32
|
||||||
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Debug|Mixed Platforms.Build.0 = 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.ActiveCfg = Debug|Win32
|
||||||
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Debug|Win32.Build.0 = 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|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.ActiveCfg = Release|Win32
|
||||||
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Release|Mixed Platforms.Build.0 = 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.ActiveCfg = Release|Win32
|
||||||
{F9B529B2-2AC2-4318-AD31-E7A9B195E204}.Static_Release|Win32.Build.0 = 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|Any CPU.ActiveCfg = Debug|Win32
|
||||||
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Debug|Mixed Platforms.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|Mixed Platforms.Build.0 = Debug|Win32
|
||||||
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Debug|Win32.ActiveCfg = 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}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Release|Any CPU.ActiveCfg = Release|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.ActiveCfg = Release|Win32
|
||||||
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Release|Mixed Platforms.Build.0 = 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.ActiveCfg = Release|Win32
|
||||||
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Release|Win32.Build.0 = 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|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.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|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.ActiveCfg = Static_Debug|Win32
|
||||||
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Debug|Win32.Build.0 = 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|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.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|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.ActiveCfg = Static_Release|Win32
|
||||||
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Release|Win32.Build.0 = Static_Release|Win32
|
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA}.Static_Release|Win32.Build.0 = Static_Release|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(NestedProjects) = preSolution
|
GlobalSection(NestedProjects) = preSolution
|
||||||
{9765AEFD-D72A-4FB5-B840-D1021B41DD41} = {0325B42D-C2ED-4313-ABB0-B317A2ADBAB9}
|
{9765AEFD-D72A-4FB5-B840-D1021B41DD41} = {0325B42D-C2ED-4313-ABB0-B317A2ADBAB9}
|
||||||
{F9B529B2-2AC2-4318-AD31-E7A9B195E204} = {AB8B1D7B-3776-463A-92F0-6D7236B75B99}
|
{F9B529B2-2AC2-4318-AD31-E7A9B195E204} = {AB8B1D7B-3776-463A-92F0-6D7236B75B99}
|
||||||
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA} = {AB8B1D7B-3776-463A-92F0-6D7236B75B99}
|
{6BC9B796-10C6-4CF7-A6E4-E2DACCDA84DA} = {AB8B1D7B-3776-463A-92F0-6D7236B75B99}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
|
@ -15,70 +15,70 @@
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with DOUBANGO.
|
* along with DOUBANGO.
|
||||||
*/
|
*/
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using org.doubango.ipsecWRAP;
|
using org.doubango.ipsecWRAP;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using err = org.doubango.ipsecWRAP.tipsec_error_t;
|
using err = org.doubango.ipsecWRAP.tipsec_error_t;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
namespace ipsec
|
namespace ipsec
|
||||||
{
|
{
|
||||||
class Program
|
class Program
|
||||||
{
|
{
|
||||||
static tipsec_ipproto_t __ipproto = tipsec_ipproto_t.tipsec_ipproto_udp;
|
static tipsec_ipproto_t __ipproto = tipsec_ipproto_t.tipsec_ipproto_udp;
|
||||||
static bool __use_ipv6 = false;
|
static bool __use_ipv6 = false;
|
||||||
static tipsec_mode_t __mode = tipsec_mode_t.tipsec_mode_trans;
|
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_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_alg_t __alg = tipsec_alg_t.tipsec_alg_hmac_md5_96;
|
||||||
static tipsec_proto_t __proto = tipsec_proto_t.tipsec_proto_esp;
|
static tipsec_proto_t __proto = tipsec_proto_t.tipsec_proto_esp;
|
||||||
|
|
||||||
static String __addr_local = "0.0.0.0";
|
static String __addr_local = "0.0.0.0";
|
||||||
static String __addr_remote = "192.168.0.34";
|
static String __addr_remote = "192.168.0.34";
|
||||||
static ushort __port_local_out = 5062; // PORT_UC
|
static ushort __port_local_out = 5062; // PORT_UC
|
||||||
static ushort __port_local_in = 5064; // PORT_US
|
static ushort __port_local_in = 5064; // PORT_US
|
||||||
static ushort __port_remote_out = 5066; // PORT_PC
|
static ushort __port_remote_out = 5066; // PORT_PC
|
||||||
static ushort __port_remote_in = 5068; // PORT_PS
|
static ushort __port_remote_in = 5068; // PORT_PS
|
||||||
static UInt32 __spi_remote_out = 3333; // SPI_PC
|
static UInt32 __spi_remote_out = 3333; // SPI_PC
|
||||||
static UInt32 __spi_remote_in = 4444; // SPI_PS
|
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 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_ik = "1234567890123456";
|
||||||
static String __key_ck = "1234567890121234";
|
static String __key_ck = "1234567890121234";
|
||||||
|
|
||||||
static void Main(string[] args)
|
static void Main(string[] args)
|
||||||
{
|
{
|
||||||
/* Create the context */
|
/* Create the context */
|
||||||
IPSecCtx ipsecCtx = new IPSecCtx(__ipproto, __use_ipv6, __mode, __ealg, __alg, __proto);
|
IPSecCtx ipsecCtx = new IPSecCtx(__ipproto, __use_ipv6, __mode, __ealg, __alg, __proto);
|
||||||
|
|
||||||
/* Set local */
|
/* Set local */
|
||||||
Debug.Assert(ipsecCtx.setLocal(__addr_local, __addr_remote, __port_local_out, __port_local_in) == err.tipsec_error_success);
|
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() */
|
/* Dump SPIs created by the OS after calling set_local() */
|
||||||
Console.WriteLine("SPI-UC={0}, SPI-US={1}", ipsecCtx.getSpiUC(), ipsecCtx.getSpiUS());
|
Console.WriteLine("SPI-UC={0}, SPI-US={1}", ipsecCtx.getSpiUC(), ipsecCtx.getSpiUS());
|
||||||
|
|
||||||
/* Set remote */
|
/* Set remote */
|
||||||
Debug.Assert(ipsecCtx.setRemote(__spi_remote_out, __spi_remote_in, __port_remote_out, __port_remote_in, __lifetime) == err.tipsec_error_success);
|
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 */
|
/* Set Integrity (IK) and Confidentiality (CK) keys */
|
||||||
IntPtr keyIK = Marshal.StringToHGlobalAnsi(__key_ik);
|
IntPtr keyIK = Marshal.StringToHGlobalAnsi(__key_ik);
|
||||||
IntPtr keyCK = Marshal.StringToHGlobalAnsi(__key_ck);
|
IntPtr keyCK = Marshal.StringToHGlobalAnsi(__key_ck);
|
||||||
Debug.Assert(ipsecCtx.setKeys(keyIK, keyCK) == err.tipsec_error_success);
|
Debug.Assert(ipsecCtx.setKeys(keyIK, keyCK) == err.tipsec_error_success);
|
||||||
Marshal.FreeHGlobal(keyIK);
|
Marshal.FreeHGlobal(keyIK);
|
||||||
Marshal.FreeHGlobal(keyCK);
|
Marshal.FreeHGlobal(keyCK);
|
||||||
|
|
||||||
/* Start (Setup) the SAs */
|
/* Start (Setup) the SAs */
|
||||||
Debug.Assert(ipsecCtx.start() == err.tipsec_error_success);
|
Debug.Assert(ipsecCtx.start() == err.tipsec_error_success);
|
||||||
|
|
||||||
Console.WriteLine("!!! IPSec SAs started (Press any key to stop) !!!");
|
Console.WriteLine("!!! IPSec SAs started (Press any key to stop) !!!");
|
||||||
|
|
||||||
Console.ReadLine();
|
Console.ReadLine();
|
||||||
|
|
||||||
ipsecCtx.Dispose(); // Not required. GC will collect it when refCount reach zero.
|
ipsecCtx.Dispose(); // Not required. GC will collect it when refCount reach zero.
|
||||||
|
|
||||||
Console.ReadLine();
|
Console.ReadLine();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,36 +1,36 @@
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
// General Information about an assembly is controlled through the following
|
// General Information about an assembly is controlled through the following
|
||||||
// set of attributes. Change these attribute values to modify the information
|
// set of attributes. Change these attribute values to modify the information
|
||||||
// associated with an assembly.
|
// associated with an assembly.
|
||||||
[assembly: AssemblyTitle("ipsec")]
|
[assembly: AssemblyTitle("ipsec")]
|
||||||
[assembly: AssemblyDescription("")]
|
[assembly: AssemblyDescription("")]
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCompany("")]
|
[assembly: AssemblyCompany("")]
|
||||||
[assembly: AssemblyProduct("ipsec")]
|
[assembly: AssemblyProduct("ipsec")]
|
||||||
[assembly: AssemblyCopyright("Copyright © 2013")]
|
[assembly: AssemblyCopyright("Copyright © 2013")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
// Setting ComVisible to false makes the types in this assembly not visible
|
// 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
|
// to COM components. If you need to access a type in this assembly from
|
||||||
// COM, set the ComVisible attribute to true on that type.
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
[assembly: ComVisible(false)]
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
[assembly: Guid("28faf159-2a2b-47ff-9a32-a7acf9c6ec66")]
|
[assembly: Guid("28faf159-2a2b-47ff-9a32-a7acf9c6ec66")]
|
||||||
|
|
||||||
// Version information for an assembly consists of the following four values:
|
// Version information for an assembly consists of the following four values:
|
||||||
//
|
//
|
||||||
// Major Version
|
// Major Version
|
||||||
// Minor Version
|
// Minor Version
|
||||||
// Build Number
|
// Build Number
|
||||||
// Revision
|
// Revision
|
||||||
//
|
//
|
||||||
// You can specify all the values or you can default the Build and Revision Numbers
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("1.0.0.0")]
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
|
@ -1,136 +1,136 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
<ProductVersion>9.0.30729</ProductVersion>
|
<ProductVersion>9.0.30729</ProductVersion>
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
<ProjectGuid>{9765AEFD-D72A-4FB5-B840-D1021B41DD41}</ProjectGuid>
|
<ProjectGuid>{9765AEFD-D72A-4FB5-B840-D1021B41DD41}</ProjectGuid>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>ipsec_app</RootNamespace>
|
<RootNamespace>ipsec_app</RootNamespace>
|
||||||
<AssemblyName>ipsec_app</AssemblyName>
|
<AssemblyName>ipsec_app</AssemblyName>
|
||||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<PublishUrl>publish\</PublishUrl>
|
<PublishUrl>publish\</PublishUrl>
|
||||||
<Install>true</Install>
|
<Install>true</Install>
|
||||||
<InstallFrom>Disk</InstallFrom>
|
<InstallFrom>Disk</InstallFrom>
|
||||||
<UpdateEnabled>false</UpdateEnabled>
|
<UpdateEnabled>false</UpdateEnabled>
|
||||||
<UpdateMode>Foreground</UpdateMode>
|
<UpdateMode>Foreground</UpdateMode>
|
||||||
<UpdateInterval>7</UpdateInterval>
|
<UpdateInterval>7</UpdateInterval>
|
||||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||||
<UpdatePeriodically>false</UpdatePeriodically>
|
<UpdatePeriodically>false</UpdatePeriodically>
|
||||||
<UpdateRequired>false</UpdateRequired>
|
<UpdateRequired>false</UpdateRequired>
|
||||||
<MapFileExtensions>true</MapFileExtensions>
|
<MapFileExtensions>true</MapFileExtensions>
|
||||||
<ApplicationRevision>0</ApplicationRevision>
|
<ApplicationRevision>0</ApplicationRevision>
|
||||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||||
<UseApplicationTrust>false</UseApplicationTrust>
|
<UseApplicationTrust>false</UseApplicationTrust>
|
||||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
<OutputPath>..\Debug\</OutputPath>
|
<OutputPath>..\Debug\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
<DebugType>pdbonly</DebugType>
|
<DebugType>pdbonly</DebugType>
|
||||||
<Optimize>true</Optimize>
|
<Optimize>true</Optimize>
|
||||||
<OutputPath>..\Release\</OutputPath>
|
<OutputPath>..\Release\</OutputPath>
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core">
|
<Reference Include="System.Core">
|
||||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Xml.Linq">
|
<Reference Include="System.Xml.Linq">
|
||||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Data.DataSetExtensions">
|
<Reference Include="System.Data.DataSetExtensions">
|
||||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="..\ipsec_lib\IPSecCtx.cs">
|
<Compile Include="..\ipsec_lib\IPSecCtx.cs">
|
||||||
<Link>IPSecCtx.cs</Link>
|
<Link>IPSecCtx.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="..\ipsec_lib\ipsec_lib.cs">
|
<Compile Include="..\ipsec_lib\ipsec_lib.cs">
|
||||||
<Link>ipsec_lib.cs</Link>
|
<Link>ipsec_lib.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="..\ipsec_lib\ipsec_libPINVOKE.cs">
|
<Compile Include="..\ipsec_lib\ipsec_libPINVOKE.cs">
|
||||||
<Link>ipsec_libPINVOKE.cs</Link>
|
<Link>ipsec_libPINVOKE.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="..\ipsec_lib\tipsec_alg_t.cs">
|
<Compile Include="..\ipsec_lib\tipsec_alg_t.cs">
|
||||||
<Link>tipsec_alg_t.cs</Link>
|
<Link>tipsec_alg_t.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="..\ipsec_lib\tipsec_ealg_t.cs">
|
<Compile Include="..\ipsec_lib\tipsec_ealg_t.cs">
|
||||||
<Link>tipsec_ealg_t.cs</Link>
|
<Link>tipsec_ealg_t.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="..\ipsec_lib\tipsec_error_t.cs">
|
<Compile Include="..\ipsec_lib\tipsec_error_t.cs">
|
||||||
<Link>tipsec_error_t.cs</Link>
|
<Link>tipsec_error_t.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="..\ipsec_lib\tipsec_ipproto_t.cs">
|
<Compile Include="..\ipsec_lib\tipsec_ipproto_t.cs">
|
||||||
<Link>tipsec_ipproto_t.cs</Link>
|
<Link>tipsec_ipproto_t.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="..\ipsec_lib\tipsec_mode_t.cs">
|
<Compile Include="..\ipsec_lib\tipsec_mode_t.cs">
|
||||||
<Link>tipsec_mode_t.cs</Link>
|
<Link>tipsec_mode_t.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="..\ipsec_lib\tipsec_proto_t.cs">
|
<Compile Include="..\ipsec_lib\tipsec_proto_t.cs">
|
||||||
<Link>tipsec_proto_t.cs</Link>
|
<Link>tipsec_proto_t.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="..\ipsec_lib\tipsec_state_t.cs">
|
<Compile Include="..\ipsec_lib\tipsec_state_t.cs">
|
||||||
<Link>tipsec_state_t.cs</Link>
|
<Link>tipsec_state_t.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Program.cs" />
|
<Compile Include="Program.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
||||||
<Visible>False</Visible>
|
<Visible>False</Visible>
|
||||||
<ProductName>.NET Framework Client Profile</ProductName>
|
<ProductName>.NET Framework Client Profile</ProductName>
|
||||||
<Install>false</Install>
|
<Install>false</Install>
|
||||||
</BootstrapperPackage>
|
</BootstrapperPackage>
|
||||||
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
|
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
|
||||||
<Visible>False</Visible>
|
<Visible>False</Visible>
|
||||||
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
|
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
|
||||||
<Install>false</Install>
|
<Install>false</Install>
|
||||||
</BootstrapperPackage>
|
</BootstrapperPackage>
|
||||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
|
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
|
||||||
<Visible>False</Visible>
|
<Visible>False</Visible>
|
||||||
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
|
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
|
||||||
<Install>false</Install>
|
<Install>false</Install>
|
||||||
</BootstrapperPackage>
|
</BootstrapperPackage>
|
||||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
|
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
|
||||||
<Visible>False</Visible>
|
<Visible>False</Visible>
|
||||||
<ProductName>.NET Framework 3.5</ProductName>
|
<ProductName>.NET Framework 3.5</ProductName>
|
||||||
<Install>false</Install>
|
<Install>false</Install>
|
||||||
</BootstrapperPackage>
|
</BootstrapperPackage>
|
||||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||||
<Visible>False</Visible>
|
<Visible>False</Visible>
|
||||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||||
<Install>true</Install>
|
<Install>true</Install>
|
||||||
</BootstrapperPackage>
|
</BootstrapperPackage>
|
||||||
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
|
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
|
||||||
<Visible>False</Visible>
|
<Visible>False</Visible>
|
||||||
<ProductName>Windows Installer 3.1</ProductName>
|
<ProductName>Windows Installer 3.1</ProductName>
|
||||||
<Install>true</Install>
|
<Install>true</Install>
|
||||||
</BootstrapperPackage>
|
</BootstrapperPackage>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- 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.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
<Target Name="BeforeBuild">
|
<Target Name="BeforeBuild">
|
||||||
</Target>
|
</Target>
|
||||||
<Target Name="AfterBuild">
|
<Target Name="AfterBuild">
|
||||||
</Target>
|
</Target>
|
||||||
-->
|
-->
|
||||||
</Project>
|
</Project>
|
|
@ -15,45 +15,45 @@
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with DOUBANGO.
|
* along with DOUBANGO.
|
||||||
*/
|
*/
|
||||||
#include "IPSecCtx.h"
|
#include "IPSecCtx.h"
|
||||||
#include "tsk_debug.h"
|
#include "tsk_debug.h"
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
bool IPSecCtx::sInitialized = false;
|
bool IPSecCtx::sInitialized = false;
|
||||||
extern "C" const tipsec_plugin_def_t *plugin_win_ipsec_vista_plugin_def_t;
|
extern "C" const tipsec_plugin_def_t *plugin_win_ipsec_vista_plugin_def_t;
|
||||||
|
|
||||||
IPSecCtx::IPSecCtx(tipsec_ipproto_t ipproto,
|
IPSecCtx::IPSecCtx(tipsec_ipproto_t ipproto,
|
||||||
bool use_ipv6,
|
bool use_ipv6,
|
||||||
tipsec_mode_t mode,
|
tipsec_mode_t mode,
|
||||||
tipsec_ealg_t ealg,
|
tipsec_ealg_t ealg,
|
||||||
tipsec_alg_t alg,
|
tipsec_alg_t alg,
|
||||||
tipsec_proto_t protocol)
|
tipsec_proto_t protocol)
|
||||||
: m_pCtx(NULL)
|
: m_pCtx(NULL)
|
||||||
{
|
{
|
||||||
tipsec_ctx_t* pCtx = NULL;
|
tipsec_ctx_t* pCtx = NULL;
|
||||||
if (!IPSecCtx::sInitialized)
|
if (!IPSecCtx::sInitialized)
|
||||||
{
|
{
|
||||||
assert (tipsec_plugin_register_static(plugin_win_ipsec_vista_plugin_def_t) == 0);
|
assert (tipsec_plugin_register_static(plugin_win_ipsec_vista_plugin_def_t) == 0);
|
||||||
IPSecCtx::sInitialized = true;
|
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()
|
IPSecCtx::~IPSecCtx()
|
||||||
{
|
{
|
||||||
TSK_OBJECT_SAFE_FREE(m_pCtx);
|
TSK_OBJECT_SAFE_FREE(m_pCtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
tipsec_error_t IPSecCtx::start()
|
tipsec_error_t IPSecCtx::start()
|
||||||
{
|
{
|
||||||
return tipsec_ctx_start(m_pCtx);
|
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)
|
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);
|
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)
|
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);
|
return tipsec_ctx_set_remote(m_pCtx, spi_pc, spi_ps, port_pc, port_ps, lifetime);
|
||||||
}
|
}
|
||||||
|
|
||||||
tipsec_error_t IPSecCtx::stop()
|
tipsec_error_t IPSecCtx::stop()
|
||||||
{
|
{
|
||||||
return tipsec_ctx_stop(m_pCtx);
|
return tipsec_ctx_stop(m_pCtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
tipsec_spi_t IPSecCtx::getSpiUC()
|
tipsec_spi_t IPSecCtx::getSpiUC()
|
||||||
{
|
{
|
||||||
return m_pCtx->spi_uc;
|
return m_pCtx->spi_uc;
|
||||||
|
@ -86,10 +86,10 @@ tipsec_spi_t IPSecCtx::getSpiPC()
|
||||||
return m_pCtx->spi_pc;
|
return m_pCtx->spi_pc;
|
||||||
}
|
}
|
||||||
|
|
||||||
tipsec_spi_t IPSecCtx::getSpiPS()
|
tipsec_spi_t IPSecCtx::getSpiPS()
|
||||||
{
|
{
|
||||||
return m_pCtx->spi_ps;
|
return m_pCtx->spi_ps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,241 +1,241 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="9.00"
|
Version="9.00"
|
||||||
Name="ipsec_lib"
|
Name="ipsec_lib"
|
||||||
ProjectGUID="{F9B529B2-2AC2-4318-AD31-E7A9B195E204}"
|
ProjectGUID="{F9B529B2-2AC2-4318-AD31-E7A9B195E204}"
|
||||||
RootNamespace="ipsec_lib"
|
RootNamespace="ipsec_lib"
|
||||||
Keyword="Win32Proj"
|
Keyword="Win32Proj"
|
||||||
TargetFrameworkVersion="196613"
|
TargetFrameworkVersion="196613"
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
Name="Win32"
|
Name="Win32"
|
||||||
/>
|
/>
|
||||||
</Platforms>
|
</Platforms>
|
||||||
<ToolFiles>
|
<ToolFiles>
|
||||||
</ToolFiles>
|
</ToolFiles>
|
||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|Win32"
|
Name="Debug|Win32"
|
||||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||||
IntermediateDirectory="$(ConfigurationName)"
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
CharacterSet="1"
|
CharacterSet="1"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\..\..\..\thirdparties\win32\include;..\..\..\..\tinySAK\src;..\..\..\..\tinyIPSec\src"
|
AdditionalIncludeDirectories="..\..\..\..\thirdparties\win32\include;..\..\..\..\tinySAK\src;..\..\..\..\tinyIPSec\src"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;IPSEC_LIB_EXPORTS;TINYIPSEC_IMPORTS_IGNORE;PLUGIN_WIN_IPSEC_VISTA_IMPORTS_IGNORE"
|
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;IPSEC_LIB_EXPORTS;TINYIPSEC_IMPORTS_IGNORE;PLUGIN_WIN_IPSEC_VISTA_IMPORTS_IGNORE"
|
||||||
MinimalRebuild="true"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="3"
|
RuntimeLibrary="3"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="4"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="Ws2_32.lib $(OutDir)\tinySAK.lib"
|
AdditionalDependencies="Ws2_32.lib $(OutDir)\tinySAK.lib"
|
||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
TargetMachine="1"
|
TargetMachine="1"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||||
IntermediateDirectory="$(ConfigurationName)"
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
CharacterSet="1"
|
CharacterSet="1"
|
||||||
WholeProgramOptimization="1"
|
WholeProgramOptimization="1"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="2"
|
Optimization="2"
|
||||||
EnableIntrinsicFunctions="true"
|
EnableIntrinsicFunctions="true"
|
||||||
AdditionalIncludeDirectories="..\..\..\..\thirdparties\win32\include;..\..\..\..\tinySAK\src;..\..\..\..\tinyIPSec\src"
|
AdditionalIncludeDirectories="..\..\..\..\thirdparties\win32\include;..\..\..\..\tinySAK\src;..\..\..\..\tinyIPSec\src"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;IPSEC_LIB_EXPORTS;TINYIPSEC_IMPORTS_IGNORE;PLUGIN_WIN_IPSEC_VISTA_IMPORTS_IGNORE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;IPSEC_LIB_EXPORTS;TINYIPSEC_IMPORTS_IGNORE;PLUGIN_WIN_IPSEC_VISTA_IMPORTS_IGNORE"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="Ws2_32.lib $(OutDir)\tinySAK.lib"
|
AdditionalDependencies="Ws2_32.lib $(OutDir)\tinySAK.lib"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
OptimizeReferences="2"
|
OptimizeReferences="2"
|
||||||
EnableCOMDATFolding="2"
|
EnableCOMDATFolding="2"
|
||||||
TargetMachine="1"
|
TargetMachine="1"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
<Files>
|
<Files>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Source Files"
|
Name="Source Files"
|
||||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\IPSecCtx.cxx"
|
RelativePath=".\IPSecCtx.cxx"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\ipsecWRAP.cxx"
|
RelativePath=".\ipsecWRAP.cxx"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\..\plugins\pluginWinIPSecVista\plugin_win_ipsec_vista.c"
|
RelativePath="..\..\..\..\plugins\pluginWinIPSecVista\plugin_win_ipsec_vista.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\..\tinyIPSec\src\tipsec.c"
|
RelativePath="..\..\..\..\tinyIPSec\src\tipsec.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Header Files"
|
Name="Header Files"
|
||||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\IPSecCtx.h"
|
RelativePath=".\IPSecCtx.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\ipsecWRAP.h"
|
RelativePath=".\ipsecWRAP.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\..\plugins\pluginWinIPSecVista\plugin_win_ipsec_vista_config.h"
|
RelativePath="..\..\..\..\plugins\pluginWinIPSecVista\plugin_win_ipsec_vista_config.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\..\tinyIPSec\src\tinyipsec_config.h"
|
RelativePath="..\..\..\..\tinyIPSec\src\tinyipsec_config.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\..\tinyIPSec\src\tipsec.h"
|
RelativePath="..\..\..\..\tinyIPSec\src\tipsec.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Resource Files"
|
Name="Resource Files"
|
||||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||||
>
|
>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="swig"
|
Name="swig"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\swig.i"
|
RelativePath=".\swig.i"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\swig.sh"
|
RelativePath=".\swig.sh"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
</Globals>
|
</Globals>
|
||||||
</VisualStudioProject>
|
</VisualStudioProject>
|
|
@ -1,37 +1,37 @@
|
||||||
%module ipsec_lib
|
%module ipsec_lib
|
||||||
%module(directors="1") ipsec_lib
|
%module(directors="1") ipsec_lib
|
||||||
|
|
||||||
%include "enums.swg"
|
%include "enums.swg"
|
||||||
%include <stdint.i>
|
%include <stdint.i>
|
||||||
|
|
||||||
%define %cs_marshal_array(TYPE, CSTYPE)
|
%define %cs_marshal_array(TYPE, CSTYPE)
|
||||||
%typemap(ctype) TYPE[] "void*"
|
%typemap(ctype) TYPE[] "void*"
|
||||||
%typemap(imtype,
|
%typemap(imtype,
|
||||||
inattributes="[MarshalAs(UnmanagedType.LPArray)]") TYPE[] "CSTYPE[]"
|
inattributes="[MarshalAs(UnmanagedType.LPArray)]") TYPE[] "CSTYPE[]"
|
||||||
%typemap(cstype) TYPE[] "CSTYPE[]"
|
%typemap(cstype) TYPE[] "CSTYPE[]"
|
||||||
%typemap(in) TYPE[] %{ $1 = (TYPE*)$input; %}
|
%typemap(in) TYPE[] %{ $1 = (TYPE*)$input; %}
|
||||||
%typemap(csin) TYPE[] "$csinput"
|
%typemap(csin) TYPE[] "$csinput"
|
||||||
%enddef
|
%enddef
|
||||||
|
|
||||||
// Mapping void* as IntPtr
|
// Mapping void* as IntPtr
|
||||||
%typemap(ctype) void * "void *"
|
%typemap(ctype) void * "void *"
|
||||||
%typemap(imtype) void * "IntPtr"
|
%typemap(imtype) void * "IntPtr"
|
||||||
%typemap(cstype) void * "IntPtr"
|
%typemap(cstype) void * "IntPtr"
|
||||||
%typemap(csin) void * "$csinput"
|
%typemap(csin) void * "$csinput"
|
||||||
%typemap(in) void * %{ $1 = $input; %}
|
%typemap(in) void * %{ $1 = $input; %}
|
||||||
%typemap(out) void * %{ $result = $1; %}
|
%typemap(out) void * %{ $result = $1; %}
|
||||||
%typemap(csout) void * { return $imcall; }
|
%typemap(csout) void * { return $imcall; }
|
||||||
%typemap(csdirectorin) void * "$iminput"
|
%typemap(csdirectorin) void * "$iminput"
|
||||||
|
|
||||||
%{
|
%{
|
||||||
#include "IPSecCtx.h"
|
#include "IPSecCtx.h"
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%nodefaultctor;
|
%nodefaultctor;
|
||||||
%include "IPSecCtx.h"
|
%include "IPSecCtx.h"
|
||||||
%clearnodefaultctor;
|
%clearnodefaultctor;
|
||||||
|
|
||||||
|
|
||||||
/**@def tipsec_lifetime_t
|
/**@def tipsec_lifetime_t
|
||||||
*/
|
*/
|
||||||
/**@def tipsec_spi_t
|
/**@def tipsec_spi_t
|
|
@ -0,0 +1,9 @@
|
||||||
|
This is the list of companies using our products in violation of GNU GPL terms and not willing to cooperate.
|
||||||
|
|
||||||
|
| Name | Operating system |
|
||||||
|
|:-----|:-----------------|
|
||||||
|
| [AdoreSoftphone](http://www.adoresoftphone.com/) | Windows, OS X, Android and iOS |
|
||||||
|
| [ARK Solutions](http://www.ark-sol.com/) | iOS and Android |
|
||||||
|
| [ABTO Software](http://www.abtosoftware.com/) | Android and iOS at least |
|
||||||
|
|
||||||
|
More coming soon...
|
|
@ -41,42 +41,42 @@ export EXEC_DIR=/data/tmp
|
||||||
# Path where to copy libraries (*.so) -on the device or emulator-
|
# Path where to copy libraries (*.so) -on the device or emulator-
|
||||||
export LIB_DIR=/system/lib
|
export LIB_DIR=/system/lib
|
||||||
|
|
||||||
# Test the NDK directory structure
|
# Test the NDK directory structure
|
||||||
export ANDROID_NDK_BASE=$(shell if [ -r $(ANDROID_NDK_ROOT)/build/platforms ] ; then \
|
export ANDROID_NDK_BASE=$(shell if [ -r $(ANDROID_NDK_ROOT)/build/platforms ] ; then \
|
||||||
echo $(ANDROID_NDK_ROOT)/build/platforms ; \
|
echo $(ANDROID_NDK_ROOT)/build/platforms ; \
|
||||||
elif [ -r $(ANDROID_NDK_ROOT)/platforms ] ; then \
|
elif [ -r $(ANDROID_NDK_ROOT)/platforms ] ; then \
|
||||||
echo $(ANDROID_NDK_ROOT)/platforms ; \
|
echo $(ANDROID_NDK_ROOT)/platforms ; \
|
||||||
else \
|
else \
|
||||||
echo "Err_Unable_to_recognize_the_NDK_structure_for_ANDROID_NDK_BASE" ; \
|
echo "Err_Unable_to_recognize_the_NDK_structure_for_ANDROID_NDK_BASE" ; \
|
||||||
fi)
|
fi)
|
||||||
|
|
||||||
export ANDROID_NDK_TOOL_BASE=$(shell \
|
export ANDROID_NDK_TOOL_BASE=$(shell \
|
||||||
for gcc_prefix in $(ANDROID_GCC_PREFIXES) ; do \
|
for gcc_prefix in $(ANDROID_GCC_PREFIXES) ; do \
|
||||||
for gcc_version in $(ANDROID_GCC_VERSIONS) ; do \
|
for gcc_version in $(ANDROID_GCC_VERSIONS) ; do \
|
||||||
if [ -r $(ANDROID_NDK_ROOT)/build/prebuilt/$(ANDROID_HOST)/$$gcc_prefix-$$gcc_version ] ; then \
|
if [ -r $(ANDROID_NDK_ROOT)/build/prebuilt/$(ANDROID_HOST)/$$gcc_prefix-$$gcc_version ] ; then \
|
||||||
echo "$(ANDROID_NDK_ROOT)/build/prebuilt/$(ANDROID_HOST)/$$gcc_prefix-$$gcc_version"; \
|
echo "$(ANDROID_NDK_ROOT)/build/prebuilt/$(ANDROID_HOST)/$$gcc_prefix-$$gcc_version"; \
|
||||||
break; \
|
break; \
|
||||||
elif [ -r $(ANDROID_NDK_ROOT)/toolchains/$$gcc_prefix-$$gcc_version/prebuilt/$(ANDROID_HOST) ] ; then \
|
elif [ -r $(ANDROID_NDK_ROOT)/toolchains/$$gcc_prefix-$$gcc_version/prebuilt/$(ANDROID_HOST) ] ; then \
|
||||||
echo "$(ANDROID_NDK_ROOT)/toolchains/$$gcc_prefix-$$gcc_version/prebuilt/$(ANDROID_HOST)"; \
|
echo "$(ANDROID_NDK_ROOT)/toolchains/$$gcc_prefix-$$gcc_version/prebuilt/$(ANDROID_HOST)"; \
|
||||||
break; \
|
break; \
|
||||||
fi \
|
fi \
|
||||||
done \
|
done \
|
||||||
done \
|
done \
|
||||||
)
|
)
|
||||||
export ANDROID_GCC_PREFIX=$(shell \
|
export ANDROID_GCC_PREFIX=$(shell \
|
||||||
for gcc_prefix in $(ANDROID_GCC_PREFIXES) ; do \
|
for gcc_prefix in $(ANDROID_GCC_PREFIXES) ; do \
|
||||||
for gcc_version in $(ANDROID_GCC_VERSIONS) ; do \
|
for gcc_version in $(ANDROID_GCC_VERSIONS) ; do \
|
||||||
if [ -r $(ANDROID_NDK_ROOT)/build/prebuilt/$(ANDROID_HOST)/$$gcc_prefix-$$gcc_version ] ; then \
|
if [ -r $(ANDROID_NDK_ROOT)/build/prebuilt/$(ANDROID_HOST)/$$gcc_prefix-$$gcc_version ] ; then \
|
||||||
echo "$$gcc_prefix"; \
|
echo "$$gcc_prefix"; \
|
||||||
break; \
|
break; \
|
||||||
elif [ -r $(ANDROID_NDK_ROOT)/toolchains/$$gcc_prefix-$$gcc_version/prebuilt/$(ANDROID_HOST) ] ; then \
|
elif [ -r $(ANDROID_NDK_ROOT)/toolchains/$$gcc_prefix-$$gcc_version/prebuilt/$(ANDROID_HOST) ] ; then \
|
||||||
echo "$$gcc_prefix"; \
|
echo "$$gcc_prefix"; \
|
||||||
break; \
|
break; \
|
||||||
fi \
|
fi \
|
||||||
done \
|
done \
|
||||||
done \
|
done \
|
||||||
)
|
)
|
||||||
|
|
||||||
ifeq ($(ANDROID_NDK_TOOL_BASE),)
|
ifeq ($(ANDROID_NDK_TOOL_BASE),)
|
||||||
export ANDROID_NDK_TOOL_BASE="Err_Unable_to_recognize_the_NDK_structure_for_ANDROID_NDK_TOOL_BASE"
|
export ANDROID_NDK_TOOL_BASE="Err_Unable_to_recognize_the_NDK_structure_for_ANDROID_NDK_TOOL_BASE"
|
||||||
endif
|
endif
|
||||||
|
@ -85,9 +85,9 @@ export ANDROID_GNU_STL_ROOT=$(shell \
|
||||||
if [ -r $(ANDROID_NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/libs/$(ANDROID_EABI) ] ; then \
|
if [ -r $(ANDROID_NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/libs/$(ANDROID_EABI) ] ; then \
|
||||||
echo "$(ANDROID_NDK_ROOT)/sources/cxx-stl/gnu-libstdc++"; \
|
echo "$(ANDROID_NDK_ROOT)/sources/cxx-stl/gnu-libstdc++"; \
|
||||||
else \
|
else \
|
||||||
for gcc_version in $(ANDROID_GCC_VERSIONS) ; do \
|
for gcc_version in $(ANDROID_GCC_VERSIONS) ; do \
|
||||||
if [ -r $(ANDROID_NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/$$gcc_version/libs/$(ANDROID_EABI) ] ; then \
|
if [ -r $(ANDROID_NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/$$gcc_version/libs/$(ANDROID_EABI) ] ; then \
|
||||||
echo "$(ANDROID_NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/$$gcc_version"; \
|
echo "$(ANDROID_NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/$$gcc_version"; \
|
||||||
break; \
|
break; \
|
||||||
fi \
|
fi \
|
||||||
done \
|
done \
|
||||||
|
@ -135,7 +135,7 @@ export CFLAGS_COMMON=$(CFLAGS) $(DEBUG_FLAGS) -I$(ANDROID_NDK_BASE)/$(ANDROID_PL
|
||||||
-MMD \
|
-MMD \
|
||||||
-MP \
|
-MP \
|
||||||
-fno-short-enums \
|
-fno-short-enums \
|
||||||
-DWEBRTC_ANDROID \
|
-DWEBRTC_ANDROID \
|
||||||
-DWEBRTC_ARCH_ARM \
|
-DWEBRTC_ARCH_ARM \
|
||||||
-D__ANDROID__ \
|
-D__ANDROID__ \
|
||||||
-DANDROID=1 \
|
-DANDROID=1 \
|
|
@ -1,12 +1,12 @@
|
||||||
#include "api.h"
|
#include "api.h"
|
||||||
#include "cpu-features.h"
|
#include "cpu-features.h"
|
||||||
|
|
||||||
uint64_t AndroidUtils::getCpuFamily()
|
uint64_t AndroidUtils::getCpuFamily()
|
||||||
{
|
{
|
||||||
return (uint64_t)android_getCpuFamily();
|
return (uint64_t)android_getCpuFamily();
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64_t AndroidUtils::getCpuFeatures()
|
uint64_t AndroidUtils::getCpuFeatures()
|
||||||
{
|
{
|
||||||
return (uint64_t)android_getCpuFeatures();
|
return (uint64_t)android_getCpuFeatures();
|
||||||
}
|
}
|
|
@ -344,20 +344,20 @@ tmedia_bandwidth_level_t;
|
||||||
/* ====== From "tinymedia/tmedia_common.h" ====== */
|
/* ====== From "tinymedia/tmedia_common.h" ====== */
|
||||||
typedef enum tmedia_pref_video_size_s
|
typedef enum tmedia_pref_video_size_s
|
||||||
{ /* must be sorted like this */
|
{ /* must be sorted like this */
|
||||||
tmedia_pref_video_size_sqcif, // 128 x 98
|
tmedia_pref_video_size_sqcif, // 128 x 98
|
||||||
tmedia_pref_video_size_qcif, // 176 x 144
|
tmedia_pref_video_size_qcif, // 176 x 144
|
||||||
tmedia_pref_video_size_qvga, // 320 x 240
|
tmedia_pref_video_size_qvga, // 320 x 240
|
||||||
tmedia_pref_video_size_cif, // 352 x 288
|
tmedia_pref_video_size_cif, // 352 x 288
|
||||||
tmedia_pref_video_size_hvga, // 480 x 320
|
tmedia_pref_video_size_hvga, // 480 x 320
|
||||||
tmedia_pref_video_size_vga, // 640 x 480
|
tmedia_pref_video_size_vga, // 640 x 480
|
||||||
tmedia_pref_video_size_4cif, // 704 x 576
|
tmedia_pref_video_size_4cif, // 704 x 576
|
||||||
tmedia_pref_video_size_wvga, // 800 x 480
|
tmedia_pref_video_size_wvga, // 800 x 480
|
||||||
tmedia_pref_video_size_svga, // 800 x 600
|
tmedia_pref_video_size_svga, // 800 x 600
|
||||||
tmedia_pref_video_size_480p, // 852 x 480
|
tmedia_pref_video_size_480p, // 852 x 480
|
||||||
tmedia_pref_video_size_xga, // 1024 x 768
|
tmedia_pref_video_size_xga, // 1024 x 768
|
||||||
tmedia_pref_video_size_720p, // 1280 x 720
|
tmedia_pref_video_size_720p, // 1280 x 720
|
||||||
tmedia_pref_video_size_16cif, // 1408 x 1152
|
tmedia_pref_video_size_16cif, // 1408 x 1152
|
||||||
tmedia_pref_video_size_1080p, // 1920 x 1080
|
tmedia_pref_video_size_1080p, // 1920 x 1080
|
||||||
tmedia_pref_video_size_2160p, // 3840 x 2160
|
tmedia_pref_video_size_2160p, // 3840 x 2160
|
||||||
}
|
}
|
||||||
tmedia_pref_video_size_t;
|
tmedia_pref_video_size_t;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue