This commit is contained in:
Mamadou DIOP 2015-08-17 01:56:35 +02:00
parent 7908865936
commit 631fffee8a
6930 changed files with 100704 additions and 878204 deletions

View File

@ -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 dont 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 dont 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. Its highly recommended to enable libspeexdsp. **libspeex** (audio codec) an **libspeexdsp** (audio processing and jitter buffer) are optional. Its 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 its an MTI codec for WebRTC. Adds support for [http://www.opus-codec.org/ Opus audio codec]. **libopus** is optional but highly recommended as its 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à

125
Licensing.md Normal file
View File

@ -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>

111
ProjectHome.md Normal file
View File

@ -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>

View File

@ -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

View File

@ -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();
} }
} }
} }

View File

@ -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")]

View File

@ -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>

View File

@ -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;
} }

View File

@ -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>

View File

@ -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

9
Wall_of_Shame.md Normal file
View File

@ -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...

View File

@ -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 \

View File

@ -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();
} }

View File

0
branches/2.0/doubango/autogen.sh → autogen.sh Executable file → Normal file
View File

View File

@ -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;

View File

Some files were not shown because too many files have changed in this diff Show More