diff --git a/NEWS b/NEWS index c34031a765c1d1b9c03ce403993de911ff304215..0173bf7d21b9f0294316546aaa9bc68b8b5f234d 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,7 @@ linphone-3.3.0 -- ????????? * new tabbed ui * be nat friendly using OPTIONS request and using received,rport from responses. + * use stun guessed ports even if symmetric is detected (works with freeboxes) * improve bitrate usage of speex codec * allow speex to run with vbr (variable bit rate) mode * add speex/32000 (ultra wide band speex codec) diff --git a/configure.in b/configure.in index fec1ed27985f016350cf069316b558a9874e5381..2ecf17659a937a72f20e13f5ee39f763731fdf8a 100644 --- a/configure.in +++ b/configure.in @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([linphone],[3.2.99.5],[linphone-developers@nongnu.org]) +AC_INIT([linphone],[3.2.99.7],[linphone-developers@nongnu.org]) AC_CANONICAL_SYSTEM dnl Source packaging numbers diff --git a/coreapi/help/doxygen.dox.in b/coreapi/help/doxygen.dox.in index acdec9090a1d02294d6c2105af27d3038c1a9ba0..13502d42424b7f601c4eea830b7ce70ff517ed8c 100644 --- a/coreapi/help/doxygen.dox.in +++ b/coreapi/help/doxygen.dox.in @@ -28,6 +28,49 @@ * @verbinclude COPYING */ +/** + * @defgroup tutorial_liblinphone Tutorial: Placing and receiving calls with liblinphone + * + +<H1>Initialize liblinphone</H1> + +The first thing to do is to initialize the library passing it a set of callbacks functions to receive +various notifications: incoming calls, progress of calls etc... +These callbacks are all grouped in the LinphoneCoreVTable structure. +All are optionnals (use NULL if you don't need them). +The following code shows how initialize liblinphone: + +<PRE> + ##include <linphonecore.h> + + //callback function for notification of incoming calls + static void on_invite_recv(LinphoneCore *lc, const char *from){ + printf("Receiving a call from %s\n",from); + } + + //callback function for notification end of calls (by remote) + static void on_bye_recv(LinphoneCore *lc, const char *from){ + printf("Remote end hangup\n"); + } + + / + static void on_display_status(LinphoneCore *lc, const char *msg){ + printf("%s",msg); + } + + int main(int argc, char *argv[]){ + LinphoneCoreVTable vtable; + + memset(&vtable,0,sizeof(vtable)); + vtable.inv_recv=&on_invite_recv; + vtable.bye_recv=&on_bye_recv; + vtable.display_status=&on_display_status; + + } + +</PRE> + + /** * @defgroup initializing Initialization and destruction diff --git a/coreapi/misc.c b/coreapi/misc.c index 894c3fc2278ef8d784f6f5592dbb6d7f92899eab..55aa83d4de20982bb3593921b2bc0d05431330a2 100644 --- a/coreapi/misc.c +++ b/coreapi/misc.c @@ -567,7 +567,8 @@ void linphone_core_run_stun_tests(LinphoneCore *lc, LinphoneCall *call){ } } } - if (ac->addr[0]!='\0' && vc->addr[0]!='\0' && strcmp(ac->addr,vc->addr)==0){ + if ((ac->addr[0]!='\0' && vc->addr[0]!='\0' && strcmp(ac->addr,vc->addr)==0) + || sock2==-1){ strcpy(call->localdesc->addr,ac->addr); } close_socket(sock1); diff --git a/mediastreamer2 b/mediastreamer2 index b437bd3bcac6ce8f09218168ae75cc11e9a9255e..0ca839b53751c4b687535bcfae747273f3dd0c44 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit b437bd3bcac6ce8f09218168ae75cc11e9a9255e +Subproject commit 0ca839b53751c4b687535bcfae747273f3dd0c44