diff --git a/linphone_avant_multi/.git/FETCH_HEAD b/linphone_multi_20100216_avec_video_sans_autogen/.git/FETCH_HEAD diff --git a/linphone_avant_multi/.git/HEAD b/linphone_multi_20100216_avec_video_sans_autogen/.git/HEAD diff --git a/linphone_avant_multi/.git/ORIG_HEAD b/linphone_multi_20100216_avec_video_sans_autogen/.git/ORIG_HEAD diff --git a/linphone_avant_multi/.git/config b/linphone_multi_20100216_avec_video_sans_autogen/.git/config diff --git a/linphone_avant_multi/.git/description b/linphone_multi_20100216_avec_video_sans_autogen/.git/description diff --git a/linphone_avant_multi/.git/hooks/applypatch-msg.sample b/linphone_multi_20100216_avec_video_sans_autogen/.git/hooks/applypatch-msg.sample diff --git a/linphone_avant_multi/.git/hooks/commit-msg.sample b/linphone_multi_20100216_avec_video_sans_autogen/.git/hooks/commit-msg.sample diff --git a/linphone_avant_multi/.git/hooks/post-commit.sample b/linphone_multi_20100216_avec_video_sans_autogen/.git/hooks/post-commit.sample diff --git a/linphone_avant_multi/.git/hooks/post-receive.sample b/linphone_multi_20100216_avec_video_sans_autogen/.git/hooks/post-receive.sample diff --git a/linphone_avant_multi/.git/hooks/post-update.sample b/linphone_multi_20100216_avec_video_sans_autogen/.git/hooks/post-update.sample diff --git a/linphone_avant_multi/.git/hooks/pre-applypatch.sample b/linphone_multi_20100216_avec_video_sans_autogen/.git/hooks/pre-applypatch.sample diff --git a/linphone_avant_multi/.git/hooks/pre-commit.sample b/linphone_multi_20100216_avec_video_sans_autogen/.git/hooks/pre-commit.sample diff --git a/linphone_avant_multi/.git/hooks/pre-rebase.sample b/linphone_multi_20100216_avec_video_sans_autogen/.git/hooks/pre-rebase.sample diff --git a/linphone_avant_multi/.git/hooks/prepare-commit-msg.sample b/linphone_multi_20100216_avec_video_sans_autogen/.git/hooks/prepare-commit-msg.sample diff --git a/linphone_avant_multi/.git/hooks/update.sample b/linphone_multi_20100216_avec_video_sans_autogen/.git/hooks/update.sample diff --git a/linphone_avant_multi/.git/index b/linphone_multi_20100216_avec_video_sans_autogen/.git/index diff --git a/linphone_avant_multi/.git/info/exclude b/linphone_multi_20100216_avec_video_sans_autogen/.git/info/exclude diff --git a/linphone_avant_multi/.git/logs/HEAD b/linphone_multi_20100216_avec_video_sans_autogen/.git/logs/HEAD diff --git a/linphone_avant_multi/.git/logs/refs/heads/master b/linphone_multi_20100216_avec_video_sans_autogen/.git/logs/refs/heads/master diff --git a/linphone_avant_multi/.git/objects/pack/pack-202514d1892ffef1666fc71a491d3c9018083e75.idx b/linphone_multi_20100216_avec_video_sans_autogen/.git/objects/pack/pack-202514d1892ffef1666fc71a491d3c9018083e75.idx diff --git a/linphone_avant_multi/.git/objects/pack/pack-202514d1892ffef1666fc71a491d3c9018083e75.pack b/linphone_multi_20100216_avec_video_sans_autogen/.git/objects/pack/pack-202514d1892ffef1666fc71a491d3c9018083e75.pack diff --git a/linphone_avant_multi/.git/packed-refs b/linphone_multi_20100216_avec_video_sans_autogen/.git/packed-refs diff --git a/linphone_avant_multi/.git/refs/heads/master b/linphone_multi_20100216_avec_video_sans_autogen/.git/refs/heads/master diff --git a/linphone_avant_multi/.git/refs/remotes/origin/HEAD b/linphone_multi_20100216_avec_video_sans_autogen/.git/refs/remotes/origin/HEAD diff --git a/linphone_avant_multi/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/.gitignore diff --git a/linphone_avant_multi/.gitmodules b/linphone_multi_20100216_avec_video_sans_autogen/.gitmodules diff --git a/linphone_avant_multi/ABOUT-NLS b/linphone_multi_20100216_avec_video_sans_autogen/ABOUT-NLS diff --git a/linphone_avant_multi/AUTHORS b/linphone_multi_20100216_avec_video_sans_autogen/AUTHORS diff --git a/linphone_avant_multi/BUGS b/linphone_multi_20100216_avec_video_sans_autogen/BUGS diff --git a/linphone_avant_multi/COPYING b/linphone_multi_20100216_avec_video_sans_autogen/COPYING diff --git a/linphone_avant_multi/ChangeLog b/linphone_multi_20100216_avec_video_sans_autogen/ChangeLog diff --git a/linphone_avant_multi/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/Makefile.am diff --git a/linphone_avant_multi/NEWS b/linphone_multi_20100216_avec_video_sans_autogen/NEWS diff --git a/linphone_avant_multi/README b/linphone_multi_20100216_avec_video_sans_autogen/README diff --git a/linphone_avant_multi/README.M68k.txt b/linphone_multi_20100216_avec_video_sans_autogen/README.M68k.txt diff --git a/linphone_avant_multi/README.arm b/linphone_multi_20100216_avec_video_sans_autogen/README.arm diff --git a/linphone_avant_multi/README.macos b/linphone_multi_20100216_avec_video_sans_autogen/README.macos diff --git a/linphone_avant_multi/README.mingw b/linphone_multi_20100216_avec_video_sans_autogen/README.mingw diff --git a/linphone_avant_multi/TODO b/linphone_multi_20100216_avec_video_sans_autogen/TODO diff --git a/linphone_avant_multi/autogen.sh b/linphone_multi_20100216_avec_video_sans_autogen/autogen.sh diff --git a/linphone_avant_multi/build/wince/liblinphone.sln b/linphone_multi_20100216_avec_video_sans_autogen/build/wince/liblinphone.sln diff --git a/linphone_avant_multi/build/wince/liblinphone.vcproj b/linphone_multi_20100216_avec_video_sans_autogen/build/wince/liblinphone.vcproj diff --git a/linphone_avant_multi/build/wince/linphonec/linphonec.vcproj b/linphone_multi_20100216_avec_video_sans_autogen/build/wince/linphonec/linphonec.vcproj diff --git a/linphone_avant_multi/config.rpath b/linphone_multi_20100216_avec_video_sans_autogen/config.rpath diff --git a/linphone_avant_multi/configure.in b/linphone_multi_20100216_avec_video_sans_autogen/configure.in diff --git a/linphone_avant_multi/console/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/console/.gitignore diff --git a/linphone_avant_multi/console/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/console/Makefile.am diff --git a/linphone_avant_multi/console/TODO b/linphone_multi_20100216_avec_video_sans_autogen/console/TODO diff --git a/linphone_avant_multi/console/commands.c b/linphone_multi_20100216_avec_video_sans_autogen/console/commands.c index cb68451..f279b47 100644 --- a/linphone_avant_multi/console/commands.c +++ b/linphone_multi_20100216_avec_video_sans_autogen/console/commands.c @@ -75,6 +75,7 @@ static int lpc_cmd_ports(LinphoneCore *lc, char *args); static int lpc_cmd_speak(LinphoneCore *lc, char *args); static int lpc_cmd_codec(LinphoneCore *lc, char *args); static int lpc_cmd_echocancellation(LinphoneCore *lc, char *args); +static int lpc_cmd_hold(LinphoneCore *lc, char *args); /* Command handler helpers */ static void linphonec_proxy_add(LinphoneCore *lc); @@ -120,10 +121,14 @@ LPC_COMMAND commands[] = { "'call ' " ": initiate a call to the specified destination." }, - { "terminate", lpc_cmd_terminate, "Terminate the current call", - NULL }, + { "terminate", lpc_cmd_terminate, "Terminate a call", + "'terminate' : Terminate the current call\n" + "'terminate ' : Terminate the call with the cid \n" + "'terminate ' : Terminate all the current calls\n" + }, { "answer", lpc_cmd_answer, "Answer a call", - "Accept an incoming call." + "'answer' : Answer the current call\n" + "'answer ' : Answer the call with the cid \n" }, { "autoanswer", lpc_cmd_autoanswer, "Show/set auto-answer mode", "'autoanswer' \t: show current autoanswer mode\n" @@ -209,6 +214,10 @@ LPC_COMMAND commands[] = { "'ec on [] [] []' : turn EC on with given delay, tail length and framesize\n" "'ec off' : turn echo cancellation (EC) off\n" "'ec show' : show EC status" }, + { "hold", lpc_cmd_hold, "Hold a call", + "'hold on' : hold on the current call\n" + "'hold off ' : hold off the call with cid \n" + "'hold show' : show hold call status\n" }, { (char *)NULL, (lpc_cmd_handler)NULL, (char *)NULL, (char *)NULL } }; @@ -360,21 +369,13 @@ lpc_cmd_call(LinphoneCore *lc, char *args) { return 0; } - - if ( lc->call != NULL ) + if ( -1 == linphone_core_invite(lc, args) ) { - linphonec_out("Terminate current call first.\n"); + linphonec_out("Error from linphone_core_invite.\n"); } else { - if ( -1 == linphone_core_invite(lc, args) ) - { - linphonec_out("Error from linphone_core_invite.\n"); - } - else - { - snprintf(callee_name,sizeof(callee_name),"%s",args); - } + snprintf(callee_name,sizeof(callee_name),"%s",args); } return 1; } @@ -405,21 +406,102 @@ lpc_cmd_refer(LinphoneCore *lc, char *args) static int lpc_cmd_terminate(LinphoneCore *lc, char *args) { - if ( -1 == linphone_core_terminate_call(lc, NULL) ) + char *arg1 = args; + char *arg2 = NULL; + char *ptr = args; + int the_cid,n; + + if (!args) + { + if ( -1 == linphone_core_terminate_call(lc, NULL) ) + { + linphonec_out("No active call.\n"); + } + return 1; + } + + /* Isolate first and second arg */ + while(*ptr && !isspace(*ptr)) ++ptr; + if ( *ptr ) { - linphonec_out("No active call.\n"); + *ptr='\0'; + arg2=ptr+1; + while(*arg2 && isspace(*arg2)) ++arg2; } - return 1; + if (arg1 != 0) + { + if(strcmp(arg1,"all")==0) + { + int i; + linphonec_out("We are going to stop all the calls.\n"); + for( i = (linphone_core_get_calls_nb(lc)-1); i >=0 ;i--) + { + the_cid=lc->calls[i]->cid; + if ( -1 == linphone_core_terminate_call(lc, &the_cid) ) + { + linphonec_out("Cannot stop the call with cid <%d>.\n",the_cid); + } + else + { + linphonec_out("Terminate the call with cid <%d>.\n",the_cid); + } + } + return 1; + } + else + { + n = sscanf(arg1, "%d", &the_cid); + if (n == 1) + { + if ( -1 == linphone_core_terminate_call(lc, &the_cid) ) + { + linphonec_out("Cannot stop the call with cid <%d>.\n",the_cid); + } + return 1; + } + } + } + return 0; } static int lpc_cmd_answer(LinphoneCore *lc, char *args) { - if ( -1 == linphone_core_accept_call(lc, NULL) ) + char *arg1 = args; + char *arg2 = NULL; + char *ptr = args; + int the_cid,n; + + if (!args) { - linphonec_out("No incoming call.\n"); + if ( -1 == linphone_core_accept_call(lc, NULL) ) + { + linphonec_out("you have to specify the call cid that you want to answer to.\n"); + } + return 1; } - return 1; + + /* Isolate first and second arg */ + while(*ptr && !isspace(*ptr)) ++ptr; + if ( *ptr ) + { + *ptr='\0'; + arg2=ptr+1; + while(*arg2 && isspace(*arg2)) ++arg2; + } + if (arg1 != 0) + { + n = sscanf(arg1, "%d", &the_cid); + if (n == 1) + { + if ( -1 == linphone_core_accept_call(lc, &the_cid) ) + { + linphonec_out("Cannot answer the call with cid <%d>.\n",the_cid); + } + return 1; + } + } + return 0; } static int @@ -1682,6 +1764,64 @@ static int lpc_cmd_echocancellation(LinphoneCore *lc, char *args){ return 1; } +static int lpc_cmd_hold(LinphoneCore *lc, char *args){ + char *arg1 = args; + char *arg2 = NULL; + char *ptr = args; + int the_cid,n; + + if (!args) return 0; + + /* Isolate first and second arg */ + while(*ptr && !isspace(*ptr)) ++ptr; + if ( *ptr ) + { + *ptr='\0'; + arg2=ptr+1; + while(*arg2 && isspace(*arg2)) ++arg2; + } + + if (strcmp(arg1,"on")==0){ + linphone_core_hold(lc,HOLD_ON,NULL); + } + else if (strcmp(arg1,"off")==0){ + if (arg2 != 0) { + n = sscanf(arg2, "%d", &the_cid); + if (n == 1) + { + linphone_core_hold(lc,HOLD_OFF,&the_cid); + } + } + else + { + linphonec_out("show off with the cid needed\n"); + } + } + else if (strcmp(arg1,"show")==0){ + if(linphone_core_get_calls_nb(lc)) + { + int i; + linphonec_out("\t\t\t\t\t\t\t\t\t\r\n"); + for(i = 0; i < linphone_core_get_calls_nb(lc); i++) + { + if(lc->calls[i] != NULL) + linphonec_out(" %d\t%s\t%s\t\t %d\r\n",lc->calls[i]->cid,linphone_address_as_string(lc->calls[i]->log->from),linphone_address_as_string(lc->calls[i]->log->to),lc->calls[i]->currently_used); + else + linphonec_out("wrong number from linphone_core_get_calls_nb\r\n"); + } + } + else + { + linphonec_out("no call in process\r\n"); + } + } + else { + return 0; + } + + return 1; +} + /*************************************************************************** * * Command table management funx diff --git a/linphone_avant_multi/console/example/linphonec b/linphone_multi_20100216_avec_video_sans_autogen/console/example/linphonec diff --git a/linphone_avant_multi/console/linphonec.c b/linphone_multi_20100216_avec_video_sans_autogen/console/linphonec.c index 81fccea..26e0589 100644 --- a/linphone_avant_multi/console/linphonec.c +++ b/linphone_multi_20100216_avec_video_sans_autogen/console/linphonec.c @@ -732,7 +732,10 @@ linphonec_finish(int exit_status) printf("Terminating...\n"); /* Terminate any pending call */ - linphonec_parse_command_line(linphonec, "terminate"); + char buf[256]; + printf("Terminating...\n"); + snprintf (buf, sizeof(buf),"terminate all"); + linphonec_parse_command_line(linphonec, buf); linphonec_command_finished(); #ifdef HAVE_READLINE linphonec_finish_readline(); diff --git a/linphone_avant_multi/console/linphonec.h b/linphone_multi_20100216_avec_video_sans_autogen/console/linphonec.h diff --git a/linphone_avant_multi/console/shell.c b/linphone_multi_20100216_avec_video_sans_autogen/console/shell.c diff --git a/linphone_avant_multi/console/sipomatic.c b/linphone_multi_20100216_avec_video_sans_autogen/console/sipomatic.c diff --git a/linphone_avant_multi/console/sipomatic.h b/linphone_multi_20100216_avec_video_sans_autogen/console/sipomatic.h diff --git a/linphone_avant_multi/console/wav2raw.c b/linphone_multi_20100216_avec_video_sans_autogen/console/wav2raw.c diff --git a/linphone_avant_multi/coreapi/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/.gitignore diff --git a/linphone_avant_multi/coreapi/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/Makefile.am diff --git a/linphone_avant_multi/coreapi/address.c b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/address.c diff --git a/linphone_avant_multi/coreapi/authentication.c b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/authentication.c diff --git a/linphone_avant_multi/coreapi/chat.c b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/chat.c diff --git a/linphone_avant_multi/coreapi/enum.c b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/enum.c diff --git a/linphone_avant_multi/coreapi/enum.h b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/enum.h diff --git a/linphone_avant_multi/coreapi/exevents.c b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/exevents.c index 36ed2b6..21b489d 100644 --- a/linphone_avant_multi/coreapi/exevents.c +++ b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/exevents.c @@ -27,53 +27,57 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. static int linphone_answer_sdp(LinphoneCore *lc, eXosip_event_t *ev, sdp_message_t *sdp); -static bool_t linphone_call_matches_event(LinphoneCall *call, eXosip_event_t *ev){ - return call->cid==ev->cid; -} - static void linphone_call_proceeding(LinphoneCore *lc, eXosip_event_t *ev){ - if (lc->call==NULL || (lc->call->cid!=-1 && !linphone_call_matches_event(lc->call,ev)) ) { - ms_warning("This call has been canceled: call=%p, call->cid=%i, ev->cid=%i", - lc->call,lc->call?lc->call->cid:-1,ev->cid); + LinphoneCall *the_call = linphone_core_get_call_by_cid(lc,ev->cid); + if (the_call == NULL ) { + ms_warning("This call has been canceled: ev->cid=%i",ev->cid); eXosip_lock(); eXosip_call_terminate(ev->cid,ev->did); eXosip_unlock(); return; } - lc->call->cid=ev->cid; - lc->call->did=ev->did; - lc->call->tid=ev->tid; + the_call->cid=ev->cid; + the_call->did=ev->did; + the_call->tid=ev->tid; } -static void linphone_connect_incoming(LinphoneCore *lc){ +static void linphone_connect_incoming(LinphoneCore *lc, eXosip_event_t *ev){ + LinphoneCall *the_call=linphone_core_get_call_by_cid(lc,ev->cid); lc->vtable.show(lc); lc->vtable.display_status(lc,_("Connected.")); - lc->call->state=LCStateAVRunning; + the_call->state=LCStateAVRunning; if (lc->ringstream!=NULL){ ring_stop(lc->ringstream); lc->ringstream=NULL; } - if (lc->audiostream->ticker!=NULL){ - /*case where we accepted early media */ - linphone_core_stop_media_streams(lc); - linphone_core_init_media_streams(lc); + if(!linphone_core_is_in_conversation(lc)) + { + linphone_core_start_media_streams(lc,the_call); + } + else + { + char temp[256]; + snprintf(temp,sizeof(temp),"hold on the incoming call with cid <%d> because we are already in call",ev->cid); + lc->vtable.display_status(lc,temp); + linphone_core_hold(lc,HOLD_ON,&ev->cid);//hold on the incoming call during a conversation } - linphone_core_start_media_streams(lc,lc->call); } int linphone_call_accepted(LinphoneCore *lc, eXosip_event_t *ev) { - LinphoneCall *call=lc->call; + LinphoneCall *call; sdp_message_t *sdp; const char *sdpanswer=NULL; osip_message_t *msg=NULL; int err; - if (call==NULL){ + if(linphone_core_get_calls_nb(lc)==0) + { ms_warning("No call to accept."); return 0; } linphone_call_proceeding(lc,ev); - if (!linphone_call_matches_event(lc->call,ev)) return 0; + call = linphone_core_get_call_by_cid(lc,ev->cid); + if(call == NULL) return 0; call->auth_pending=FALSE; if (call->state==LCStateAVRunning){ return 0; /*already accepted*/ @@ -90,7 +94,7 @@ int linphone_call_accepted(LinphoneCore *lc, eXosip_event_t *ev) } if (err==0){ gstate_new_state(lc, GSTATE_CALL_OUT_CONNECTED, NULL); - linphone_connect_incoming(lc); + linphone_connect_incoming(lc,ev); } /*send the ack once streams are started*/ eXosip_call_build_ack(ev->did,&msg); @@ -109,22 +113,29 @@ int linphone_call_accepted(LinphoneCore *lc, eXosip_event_t *ev) int linphone_call_terminated(LinphoneCore *lc, eXosip_event_t *ev) { /*stop ringing if necessary*/ - if (lc->call!=NULL){ - if (lc->call->cid!=ev->cid){ - /* this is not current call */ - ms_message("call %i terminated, this was not current call.",ev->cid); - return 0; - } + char temp[256]; + LinphoneCall *call; + call = linphone_core_get_call_by_cid(lc,ev->cid); + if(call == NULL) + { + snprintf(temp,sizeof(temp),"the call <%d> was not in use.",ev->cid); + ms_message("%s",temp); + lc->vtable.display_warning(lc,temp); + } + else + { + snprintf(temp,sizeof(temp),"the call with cid <%d> is going to stop...\r\n",ev->cid); + ms_message("%s",temp); + lc->vtable.display_status(lc,temp); } - - ms_message("Current call terminated..."); if (lc->ringstream!=NULL) { ring_stop(lc->ringstream); lc->ringstream=NULL; } - linphone_core_stop_media_streams(lc); + linphone_core_stop_media_streams(lc,call); lc->vtable.show(lc); - lc->vtable.display_status(lc,_("Call terminated.")); + snprintf(temp,sizeof(temp),"Call with cid <%d> terminated.",ev->cid); + lc->vtable.display_status(lc,temp); gstate_new_state(lc, GSTATE_CALL_END, NULL); if (lc->vtable.bye_recv!=NULL){ char *from; @@ -132,20 +143,15 @@ int linphone_call_terminated(LinphoneCore *lc, eXosip_event_t *ev) lc->vtable.bye_recv(lc,from); osip_free(from); } - if (lc->call!=NULL){ - linphone_call_destroy(lc->call); - lc->call=NULL; - } + linphone_core_clear_call_by_cid(lc,ev->cid); return 0; } int linphone_call_released(LinphoneCore *lc, int cid){ - LinphoneCall *call=lc->call; + LinphoneCall *call=linphone_core_get_call_by_cid(lc,cid); if (call!=NULL && call->cid==cid){ - - linphone_call_destroy(lc->call); - lc->call=NULL; + linphone_core_clear_call_by_cid(lc,cid); lc->vtable.display_status(lc,_("Could not reach destination.")); gstate_new_state(lc, GSTATE_CALL_ERROR, NULL); } @@ -163,14 +169,12 @@ int linphone_call_failure(LinphoneCore *lc, eXosip_event_t *ev) char *msg603=_("Call declined."); char* tmpmsg=msg486; int code; - LinphoneCall *call=lc->call; + LinphoneCall *call=linphone_core_get_call_by_cid(lc,ev->cid); - if (call){ - /*check that the faillure is related to this call, not an old one*/ - if (!linphone_call_matches_event(call,ev)) { - ms_warning("Failure reported for an old call."); - return 0; - } + if(call !=NULL) + { + ms_warning("Failure reported for an old call."); + return 0; } if (ev->response){ @@ -183,7 +187,7 @@ int linphone_call_failure(LinphoneCore *lc, eXosip_event_t *ev) { case 401: case 407: - if (lc->call!=NULL) + if (call!=NULL) linphone_process_authentication(lc,ev); return 0; break; @@ -241,11 +245,10 @@ int linphone_call_failure(LinphoneCore *lc, eXosip_event_t *ev) ring_stop(lc->ringstream); lc->ringstream=NULL; } - linphone_core_stop_media_streams(lc); + linphone_core_stop_media_streams(lc,call); if (call!=NULL) { - linphone_call_destroy(call); + linphone_core_clear_call_by_cid(lc,ev->cid); if (code!=487) gstate_new_state(lc, GSTATE_CALL_ERROR, NULL); - lc->call=NULL; } return 0; } @@ -255,14 +258,13 @@ extern sdp_handler_t linphone_sdphandler; static int linphone_answer_sdp(LinphoneCore *lc, eXosip_event_t *ev, sdp_message_t *sdp){ int status=200; sdp_context_t *ctx=NULL; - - ctx=lc->call->sdpctx; + LinphoneCall *the_call = linphone_core_get_call_by_cid(lc,ev->cid); + ctx=the_call->sdpctx; /* get the result of the negociation */ sdp_context_get_answer(ctx,sdp); status=sdp_context_get_status(ctx); if (status==200){ - linphone_core_init_media_streams(lc); return 0; }else{ if (status==-1) status=415; @@ -278,6 +280,7 @@ int linphone_inc_new_call(LinphoneCore *lc, eXosip_event_t *ev) char *from; char *to; int err; + LinphoneCall *the_call; osip_from_to_str(ev->request->from,&from); osip_to_to_str(ev->request->to,&to); @@ -315,14 +318,20 @@ int linphone_inc_new_call(LinphoneCore *lc, eXosip_event_t *ev) eXosip_unlock(); goto end; } - if (lc->call!=NULL){/*busy*/ + if(!linphone_core_can_we_add_call(lc)) {//we have too much call send busy eXosip_lock(); eXosip_call_send_answer(ev->tid,486,NULL); eXosip_unlock(); goto end; } - lc->call=linphone_call_new_incoming(lc,linphone_address_new(from),linphone_address_new(to),ev); - + the_call=linphone_call_new_incoming(lc,linphone_address_new(from),linphone_address_new(to),ev); + linphone_core_get_a_new_call(lc,the_call); + if(linphone_core_get_current_call(lc)!=NULL) //TODO useful ? + {//we already in call just put the incoming call in hold + char temp[256]; + snprintf(temp,sizeof(temp),"new incoming call with cid <%d> during call",ev->cid); + lc->vtable.display_status(lc,temp); + } sdp=eXosip_get_sdp_info(ev->request); if (sdp==NULL){ ms_message("No sdp body in invite, 200-ack scheme"); @@ -336,16 +345,20 @@ int linphone_inc_new_call(LinphoneCore *lc, eXosip_event_t *ev) tmp=ms_strdup("Unknown user"); } gstate_new_state(lc, GSTATE_CALL_IN_INVITE, tmp); - barmesg=ortp_strdup_printf("%s %s",tmp,_("is contacting you.")); + barmesg=ortp_strdup_printf("%s %s%d%s",tmp,_("is contacting you with cid <"),ev->cid,_(">.")); lc->vtable.show(lc); lc->vtable.display_status(lc,barmesg); - /* play the ring */ - if (lc->sound_conf.ring_sndcard!=NULL){ + /* play the ring if we do not have a current call*/ + if (lc->sound_conf.ring_sndcard!=NULL && !linphone_core_is_in_conversation(lc)){ ms_message("Starting local ring..."); lc->ringstream=ring_start(lc->sound_conf.local_ring,2000,lc->sound_conf.ring_sndcard); } - linphone_call_set_state(lc->call,LCStateRinging); + else + { + ms_message("avoid to ring because we are in conversation or we do not have a sndcard to ring with"); + } + linphone_call_set_state(the_call,LCStateRinging); eXosip_lock(); eXosip_call_send_answer(ev->tid,180,NULL); eXosip_unlock(); @@ -358,8 +371,7 @@ int linphone_inc_new_call(LinphoneCore *lc, eXosip_event_t *ev) eXosip_lock(); eXosip_call_send_answer(ev->tid,415,NULL); eXosip_unlock(); - linphone_call_destroy(lc->call); - lc->call=NULL; + linphone_core_clear_call_by_cid(lc,ev->cid); } end: osip_free(from); @@ -369,10 +381,11 @@ int linphone_inc_new_call(LinphoneCore *lc, eXosip_event_t *ev) } void linphone_handle_ack(LinphoneCore *lc, eXosip_event_t *ev){ + LinphoneCall *the_call = linphone_core_get_call_by_cid(lc,ev->cid); sdp_message_t *sdp=eXosip_get_sdp_info(ev->ack); if (sdp){ - sdp_context_read_answer(lc->call->sdpctx,sdp); - linphone_connect_incoming(lc); + sdp_context_read_answer(the_call->sdpctx,sdp); + linphone_connect_incoming(lc,ev); sdp_message_free(sdp); } } @@ -380,7 +393,7 @@ void linphone_handle_ack(LinphoneCore *lc, eXosip_event_t *ev){ void linphone_handle_reinvite(LinphoneCore *lc, eXosip_event_t *ev){ sdp_message_t *sdp=eXosip_get_sdp_info(ev->request); sdp_context_t *ctx; - LinphoneCall *call=lc->call; + LinphoneCall *call=linphone_core_get_call_by_cid(lc,ev->cid); char *answer; int status; if (sdp==NULL){ @@ -397,13 +410,12 @@ void linphone_handle_reinvite(LinphoneCore *lc, eXosip_event_t *ev){ status=sdp_context_get_status(ctx); if (status==200){ osip_message_t *msg=NULL; - linphone_core_stop_media_streams(lc); - linphone_core_init_media_streams(lc); + lc->vtable.display_status(lc,_("we have been reinvite")); eXosip_lock(); if (eXosip_call_build_answer(ev->tid,200,&msg)<0){ ms_warning("Reinvite for closed call ?"); eXosip_unlock(); - linphone_core_stop_media_streams(lc); + linphone_core_stop_media_streams(lc,call); sdp_message_free(sdp); return ; } @@ -411,6 +423,7 @@ void linphone_handle_reinvite(LinphoneCore *lc, eXosip_event_t *ev){ linphone_set_sdp(msg,answer); eXosip_call_send_answer(ev->tid,200,msg); eXosip_unlock(); + if((linphone_core_is_in_conversation(lc) && (linphone_core_get_cid_of_the_current_call(lc) == call->cid))) linphone_core_start_media_streams(lc,call); }else{ eXosip_lock(); @@ -420,12 +433,11 @@ void linphone_handle_reinvite(LinphoneCore *lc, eXosip_event_t *ev){ sdp_message_free(sdp); } -void linphone_do_automatic_redirect(LinphoneCore *lc, const char *contact){ +void linphone_do_automatic_redirect(LinphoneCore *lc, const char *contact, eXosip_event_t *ev){ char *msg=ortp_strdup_printf(_("Redirected to %s..."),contact); lc->vtable.display_status(lc,msg); ms_free(msg); - if (lc->call!=NULL) linphone_call_destroy(lc->call); - lc->call=NULL; + linphone_core_clear_call_by_cid(lc,ev->cid); linphone_core_invite(lc,contact); } @@ -438,11 +450,10 @@ void linphone_call_redirected(LinphoneCore *lc, eXosip_event_t *ev){ switch(code){ case 380: lc->vtable.display_url(lc,_("User is not reachable at the moment but he invites you\nto contact him using the following alternate resource:"),contact); - if (lc->call!=NULL) linphone_call_destroy(lc->call); - lc->call=NULL; + linphone_core_clear_call_by_cid(lc,ev->cid); break; case 302: - linphone_do_automatic_redirect(lc,contact); + linphone_do_automatic_redirect(lc,contact,ev); break; } if (contact) osip_free(contact); @@ -460,7 +471,8 @@ int linphone_set_audio_offer(sdp_context_t *ctx) MSList *elem; sdp_payload_t payload; - + if(ctx->holdon!=HOLD_ON) + { elem=lc->codecs_conf.audio_codecs; while(elem!=NULL){ codec=(PayloadType*) elem->data; @@ -468,8 +480,7 @@ int linphone_set_audio_offer(sdp_context_t *ctx) sdp_payload_init(&payload); payload.a_rtpmap=ortp_strdup_printf("%s/%i/1",codec->mime_type,codec->clock_rate); payload.pt=rtp_profile_get_payload_number_from_rtpmap(lc->local_profile,payload.a_rtpmap); - payload.localport=call->audio_params.natd_port > 0 ? - call->audio_params.natd_port : lc->rtp_conf.audio_rtp_port; + payload.localport=get_payload_audio_localport(lc,call); sdp_context_add_audio_payload(ctx,&payload); ms_free(payload.a_rtpmap); } @@ -482,6 +493,21 @@ int linphone_set_audio_offer(sdp_context_t *ctx) payload.a_fmtp="0-11"; if (lc->dw_audio_bw>0) payload.b_as_bandwidth=lc->dw_audio_bw; sdp_context_add_audio_payload(ctx,&payload); + } + if(ctx->holdon==HOLD_ON) + { + sdp_payload_init(&payload); + payload.holdon=HOLD_ON; + payload.localport=get_payload_audio_localport(lc,call); + sdp_context_add_audio_payload(ctx,&payload); + } + else + { + sdp_payload_init(&payload); + payload.holdon=HOLD_OFF; + payload.localport=get_payload_audio_localport(lc,call); + sdp_context_add_audio_payload(ctx,&payload); + } return 0; } @@ -532,27 +558,45 @@ int linphone_set_video_offer(sdp_context_t *ctx) bool_t firsttime=TRUE; if (!linphone_core_video_enabled(lc)) return -1; - - for(elem=lc->codecs_conf.video_codecs;elem!=NULL;elem=ms_list_next(elem)){ - codec=(PayloadType*) elem->data; - if (linphone_core_check_payload_type_usability(lc,codec) && payload_type_enabled(codec)){ - sdp_payload_t payload; - sdp_payload_init(&payload); - payload.line=1; - payload.a_rtpmap=ortp_strdup_printf("%s/%i",codec->mime_type,codec->clock_rate); - payload.localport=call->video_params.natd_port>0 ? - call->video_params.natd_port : lc->rtp_conf.video_rtp_port; - payload.pt=find_payload_type_number(lc->local_profile,codec); - payload.a_fmtp=codec->recv_fmtp; - if(firsttime){ - firsttime=FALSE; - if (lc->dw_video_bw>0) - payload.b_as_bandwidth=lc->dw_video_bw; + if(ctx->holdon!=HOLD_ON) + { + for(elem=lc->codecs_conf.video_codecs;elem!=NULL;elem=ms_list_next(elem)){ + codec=(PayloadType*) elem->data; + if (linphone_core_check_payload_type_usability(lc,codec) && payload_type_enabled(codec)){ + sdp_payload_t payload; + sdp_payload_init(&payload); + payload.line=1; + payload.a_rtpmap=ortp_strdup_printf("%s/%i",codec->mime_type,codec->clock_rate); + payload.localport=get_payload_video_localport(lc,call); + payload.pt=find_payload_type_number(lc->local_profile,codec); + payload.a_fmtp=codec->recv_fmtp; + if(firsttime){ + firsttime=FALSE; + if (lc->dw_video_bw>0) + payload.b_as_bandwidth=lc->dw_video_bw; + } + sdp_context_add_video_payload(ctx,&payload); + ms_free(payload.a_rtpmap); } - sdp_context_add_video_payload(ctx,&payload); - ms_free(payload.a_rtpmap); } } + if(ctx->holdon) + { + sdp_payload_t payload; + sdp_payload_init(&payload); + payload.holdon=ctx->holdon; + payload.localport=get_payload_video_localport(lc,call); + sdp_context_add_video_payload(ctx,&payload); + + } + else + { + sdp_payload_t payload; + sdp_payload_init(&payload); + payload.holdon=HOLD_OFF; + payload.localport=get_payload_video_localport(lc,call); + sdp_context_add_video_payload(ctx,&payload); + } return 0; } @@ -664,9 +708,8 @@ int linphone_accept_audio_offer(sdp_context_t *ctx,sdp_payload_t *payload) if (supported==SupportedAndValid) { if (params->initialized==0){ /* this is the first codec we accept, it is going to be used*/ - params->localport=lc->rtp_conf.audio_rtp_port; - payload->localport=params->natd_port>0 ? - params->natd_port : lc->rtp_conf.audio_rtp_port; + params->localport=get_audio_localport(lc,call); + payload->localport=get_payload_audio_localport(lc,call); params->line=payload->line; params->pt=payload->pt; /* remember the first payload accepted */ if (payload->relay_host!=NULL){ @@ -728,8 +771,8 @@ int linphone_accept_video_offer(sdp_context_t *ctx,sdp_payload_t *payload) if (supported==SupportedAndValid){ if (params->initialized==0){ /* this is the first codec we may accept*/ - params->localport=lc->rtp_conf.video_rtp_port; - payload->localport=params->natd_port>0 ? params->natd_port : lc->rtp_conf.video_rtp_port; + params->localport=get_video_localport(lc,call); + payload->localport=get_payload_video_localport(lc,call); params->line=payload->line; params->pt=payload->pt; /* remember the first payload accepted */ if (payload->relay_host!=NULL){ @@ -771,7 +814,7 @@ int linphone_read_audio_answer(sdp_context_t *ctx,sdp_payload_t *payload) if (params->initialized==0){ /* this is the first codec we accept, this is the one that is going to be used (at least for sending data.*/ - params->localport=lc->rtp_conf.audio_rtp_port; + params->localport=get_audio_localport(lc,call); params->line=payload->line; params->pt=payload->pt; /* remember the first payload accepted */ if (payload->relay_host!=NULL){ @@ -810,7 +853,7 @@ int linphone_read_video_answer(sdp_context_t *ctx,sdp_payload_t *payload) params=&call->video_params; if (params->initialized==0){ /* this is the first codec we may accept*/ - params->localport=lc->rtp_conf.video_rtp_port; + params->localport=get_video_localport(lc,call); params->line=payload->line; params->pt=payload->pt; /* remember the first payload accepted */ if (payload->relay_host!=NULL){ @@ -831,7 +874,7 @@ int linphone_read_video_answer(sdp_context_t *ctx,sdp_payload_t *payload) void linphone_call_ringing(LinphoneCore *lc, eXosip_event_t *ev){ sdp_message_t *sdp=eXosip_get_sdp_info(ev->response); - LinphoneCall *call=lc->call; + LinphoneCall *call=linphone_core_get_call_by_cid(lc,ev->cid); lc->vtable.display_status(lc,_("Remote ringing.")); linphone_call_proceeding(lc,ev); @@ -840,7 +883,10 @@ void linphone_call_ringing(LinphoneCore *lc, eXosip_event_t *ev){ if (lc->ringstream!=NULL) return; /*already ringing !*/ if (lc->sound_conf.play_sndcard!=NULL){ ms_message("Remote ringing..."); - lc->ringstream=ring_start(lc->sound_conf.remote_ring,2000,lc->sound_conf.play_sndcard); + if(!linphone_core_is_in_conversation(lc)) + lc->ringstream=ring_start(lc->sound_conf.remote_ring,2000,lc->sound_conf.play_sndcard); + else + ms_message("avoid to play the ring during a call"); } }else{ /*accept early media */ @@ -849,13 +895,13 @@ void linphone_call_ringing(LinphoneCore *lc, eXosip_event_t *ev){ ms_error("No call ?"); goto end; } - if (lc->audiostream->ticker!=NULL){ + if (call->audiostream->ticker!=NULL){ /*streams already started */ ms_message("Early media already started."); goto end; } audio_params=&call->audio_params; - sdp_context_read_answer(lc->call->sdpctx,sdp); + sdp_context_read_answer(call->sdpctx,sdp); lc->vtable.show(lc); lc->vtable.display_status(lc,_("Early media.")); gstate_new_state(lc, GSTATE_CALL_OUT_CONNECTED, NULL); @@ -864,7 +910,7 @@ void linphone_call_ringing(LinphoneCore *lc, eXosip_event_t *ev){ lc->ringstream=NULL; } ms_message("Doing early media..."); - linphone_core_start_media_streams(lc,call); + linphone_core_start_media_streams(lc,call);//??? Do not really know when this is used and could be a problem ??? } call->state=LCStateRinging; goto end; @@ -881,8 +927,10 @@ static void linphone_process_media_control_xml(LinphoneCore *lc, eXosip_event_t osip_message_t *ans=NULL; ms_message("Receiving VFU request !"); #ifdef VIDEO_ENABLED - if (lc->videostream) - video_stream_send_vfu(lc->videostream); + LinphoneCall *call=linphone_core_get_call_by_cid(lc,ev->cid); + if(call == NULL) return ; + if (call->videostream) + video_stream_send_vfu(call->videostream); #endif eXosip_call_build_answer(ev->tid,200,&ans); if (ans) diff --git a/linphone_avant_multi/coreapi/exevents.h b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/exevents.h diff --git a/linphone_avant_multi/coreapi/fonis.c b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/fonis.c diff --git a/linphone_avant_multi/coreapi/friend.c b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/friend.c diff --git a/linphone_avant_multi/coreapi/general_state.c b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/general_state.c diff --git a/linphone_avant_multi/coreapi/help/Doxyfile.in b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/help/Doxyfile.in diff --git a/linphone_avant_multi/coreapi/help/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/help/Makefile.am diff --git a/linphone_avant_multi/coreapi/help/doxygen.dox.in b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/help/doxygen.dox.in diff --git a/linphone_avant_multi/coreapi/linphonecore.c b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/linphonecore.c index e8c88dc..d7ae78b 100644 --- a/linphone_avant_multi/coreapi/linphonecore.c +++ b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/linphonecore.c @@ -102,6 +102,37 @@ static void discover_mtu(LinphoneCore *lc, const char *remote){ } } +int get_audio_localport(LinphoneCore *lc,LinphoneCall *call) +{ + int returned_value; + returned_value = (lc->rtp_conf.audio_rtp_port + call->repere); + return returned_value; +} + +int get_video_localport(LinphoneCore *lc,LinphoneCall *call) +{ + int returned_value; + returned_value = (lc->rtp_conf.video_rtp_port + call->repere); + return returned_value; +} +int get_payload_audio_localport(LinphoneCore *lc,LinphoneCall *call) +{ + int returned_value; + StreamParams *params; + params=&call->audio_params; + returned_value = params->natd_port>0 ?(params->natd_port + call->repere) : get_audio_localport(lc,call); + return returned_value; +} + +int get_payload_video_localport(LinphoneCore *lc,LinphoneCall *call) +{ + int returned_value; + StreamParams *params; + params=&call->video_params; + returned_value = params->natd_port>0 ? (params->natd_port + call->repere) : get_video_localport(lc,call); + return returned_value; +} + LinphoneCall * linphone_call_new_outgoing(struct _LinphoneCore *lc, LinphoneAddress *from, LinphoneAddress *to) { LinphoneCall *call=ms_new0(LinphoneCall,1); @@ -146,8 +177,8 @@ LinphoneCall * linphone_call_new_incoming(LinphoneCore *lc, LinphoneAddress *fro if (h) call->supports_session_timers=TRUE; return call; } - -void linphone_call_destroy(LinphoneCall *obj) +//should not be used anymore with multicall +void linphone_call_destroyed(LinphoneCall *obj) { linphone_core_notify_all_friends(obj->core,obj->core->prev_mode); linphone_call_log_completed(obj->log,obj); @@ -370,15 +401,180 @@ void linphone_call_log_destroy(LinphoneCallLog *cl){ ms_free(cl); } +int linphone_core_get_calls_nb(const LinphoneCore *lc) +{ + return lc->calls_nb; +} + +bool_t linphone_core_can_we_add_call(LinphoneCore *lc) +{ + if(linphone_core_get_calls_nb(lc) < NB_MAX_CALLS) + return 1; + return 0; +} + +int linphone_core_get_a_new_call( LinphoneCore *lc, LinphoneCall *call) +{ + if(linphone_core_can_we_add_call(lc)) + { + lc->calls_nb++; + lc->calls[(lc->calls_nb-1)] = call; + lc->calls[(lc->calls_nb-1)]->repere = (lc->calls_nb-1); + call->sdpctx->session_id = (lc->calls[(lc->calls_nb-1)]->repere + 1);//avoiding to be 0 + return 0; + } + return -1; +} + +int linphone_core_get_repere_from_call( LinphoneCall *call) +{ + if(call == NULL) + { + ms_warning("you try to get a repere from a NULL call"); + return -1; + } + return call->repere; +} + +int linphone_core_get_call_cid( LinphoneCall *call) +{ + if(call == NULL) + { + ms_warning("you try to get a cid from a NULL call"); + return -1; + } + return call->cid; +} + +LinphoneCall *linphone_core_get_current_call_with_const(const LinphoneCore *lc) +{ + int i; + + for (i = 0; i < linphone_core_get_calls_nb(lc); i++) + { + if(lc->calls[i]!= NULL) + { + if(lc->calls[i]->currently_used) + return lc->calls[i]; + } + } + return NULL; +} + +LinphoneCall *linphone_core_get_current_call( LinphoneCore *lc) +{ + int i; + + for (i = 0; i < linphone_core_get_calls_nb(lc); i++) + { + if(lc->calls[i]!= NULL) + { + if(lc->calls[i]->currently_used) + return lc->calls[i]; + } + } + return NULL; +} + +int linphone_core_get_cid_of_the_current_call( LinphoneCore *lc) +{ + int i; + + for (i = 0; i < linphone_core_get_calls_nb(lc); i++) + { + if(lc->calls[i]!= NULL) + { + if(lc->calls[i]->currently_used) + return lc->calls[i]->cid; + } + } + return -1; +} + +LinphoneCall *linphone_core_get_call_by_cid( LinphoneCore *lc,int cid) +{ + int i; + + for (i = 0; i < linphone_core_get_calls_nb(lc); i++) + { + if(lc->calls[i]!= NULL) + { + if(lc->calls[i]->cid == cid) + return lc->calls[i]; + } + } + return NULL; +} + +int linphone_core_clear_call_by_cid(LinphoneCore *lc,int cid) +{ + int i,j; + + for (i = 0; i < linphone_core_get_calls_nb(lc); i++) + { + if(lc->calls[i] != NULL) + { + if(lc->calls[i]->cid == cid) + { + linphone_call_destroyed(lc->calls[i]); + lc->calls[i] = NULL; + lc->calls_nb--; + ms_message("DEBUG : finish destroying still %d calls\r\n",lc->calls_nb); + for(j = (i+1); j < (linphone_core_get_calls_nb(lc)+1); j++) + { + lc->calls[j-1] = lc->calls[j]; + } + return 0; + } + } + } + return -1; +} + +bool_t linphone_core_is_in_conversation(LinphoneCore *lc) +{ + int i; + + for (i = 0; i < linphone_core_get_calls_nb(lc); i++) + { + if(lc->calls[i] != NULL) + { + if(lc->calls[i]->currently_used) + { + return TRUE; + } + } + } + return FALSE; +} + +int linphone_core_set_current_call_by_cid( LinphoneCore *lc, int cid) +{ + LinphoneCall *lcall; + if(linphone_core_get_current_call(lc)!=NULL) + { + lc->vtable.display_status(lc,_("Already one call active")); + return -1; + } + lcall = linphone_core_get_call_by_cid(lc,cid); + if(lcall == NULL) + { + return -2; + } + lcall->currently_used = TRUE; + return 0; +} + int linphone_core_get_current_call_duration(const LinphoneCore *lc){ - LinphoneCall *call=lc->call; + LinphoneCall *call; + call = linphone_core_get_current_call_with_const(lc); if (call==NULL) return 0; if (call->media_start_time==0) return 0; return time(NULL)-call->media_start_time; } const LinphoneAddress *linphone_core_get_remote_uri(LinphoneCore *lc){ - LinphoneCall *call=lc->call; + LinphoneCall *call=linphone_core_get_current_call(lc); if (call==NULL) return 0; return call->dir==LinphoneCallIncoming ? call->log->from : call->log->to; } @@ -560,6 +756,7 @@ static void sound_config_read(LinphoneCore *lc) tmpbuf=PACKAGE_SOUND_DIR "/" REMOTE_RING; } linphone_core_set_ringback(lc,tmpbuf); + check_sound_device(lc); lc->sound_conf.latency=0; @@ -1506,6 +1703,7 @@ static void linphone_core_do_plugin_tasks(LinphoneCore *lc){ **/ void linphone_core_iterate(LinphoneCore *lc) { + LinphoneCall *call; eXosip_event_t *ev; bool_t disconnected=FALSE; int disconnect_timeout = linphone_core_get_nortp_timeout(lc); @@ -1537,9 +1735,9 @@ void linphone_core_iterate(LinphoneCore *lc) } proxy_update(lc,curtime); - - if (lc->call!=NULL){ - LinphoneCall *call=lc->call; + + call=linphone_core_get_current_call(lc); + if (call!=NULL){ if (call->dir==LinphoneCallIncoming && call->state==LCStateRinging){ elapsed=curtime-call->start_time; @@ -1551,18 +1749,18 @@ void linphone_core_iterate(LinphoneCore *lc) if (one_second_elapsed){ RtpSession *as=NULL,*vs=NULL; lc->prevtime=curtime; - if (lc->audiostream!=NULL) - as=lc->audiostream->session; - if (lc->videostream!=NULL) - vs=lc->videostream->session; + if (call->audiostream!=NULL) + as=call->audiostream->session; + if (call->videostream!=NULL) + vs=call->videostream->session; display_bandwidth(as,vs); } #ifdef VIDEO_ENABLED - if (lc->videostream!=NULL) - video_stream_iterate(lc->videostream); + if (call->videostream!=NULL) + video_stream_iterate(call->videostream); #endif - if (lc->audiostream!=NULL && disconnect_timeout>0) - disconnected=!audio_stream_alive(lc->audiostream,disconnect_timeout); + if (call->audiostream!=NULL && disconnect_timeout>0) + disconnected=!audio_stream_alive(call->audiostream,disconnect_timeout); } } if (linphone_core_video_preview_enabled(lc)){ @@ -1575,7 +1773,7 @@ void linphone_core_iterate(LinphoneCore *lc) if (lc->previewstream!=NULL) toggle_video_preview(lc,FALSE); } - if (disconnected) + if (disconnected && linphone_core_is_in_conversation(lc)) linphone_core_disconnected(lc); linphone_core_do_plugin_tasks(lc); @@ -1787,6 +1985,82 @@ static void fix_contact(LinphoneCore *lc, osip_message_t *msg, const char *local } /** + * Send a re-Invite used to hold the current call + * + * @ingroup call_control + * @param lc the LinphoneCore object + * @param url the destination of the call (sip address). +**/ +int linphone_core_send_hold(LinphoneCore *lc, int hold, int *cid) +{ + int err=0; + char *sdpmesg=NULL; + osip_message_t *reinvite=NULL; + char *real_url=NULL; + char *route=NULL; + LinphoneCall *call; + sdp_context_t *ctx=NULL; + LinphoneProxyConfig *dest_proxy=NULL; + char tmp_cseq_number[5]; + + if(cid ==NULL) + { + ms_error("cannot send hold without cid"); + return -1; + } + call=linphone_core_get_call_by_cid(lc,*cid); + if (call==NULL){ + ms_error("cannot find the call with cid <%d>",*cid); + return -1; + } + err=eXosip_call_build_initial_invite( &reinvite,linphone_address_as_string(call->log->to),linphone_address_as_string(call->log->from),route,"Phone call Hold"); + + if (err<0){ + ms_warning("Could not build initial invite"); + goto end; + } + /* This is probably useless for other messages */ + osip_message_set_allow(reinvite, "INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO"); + //wrong cseq sent + //osip_cseq_free(reinvite->cseq); + call->nb_cseq++; + snprintf(tmp_cseq_number,sizeof(tmp_cseq_number),"%d",(atoi(osip_cseq_get_number(reinvite->cseq))+(call->nb_cseq))); + osip_cseq_set_number(reinvite->cseq, osip_strdup(tmp_cseq_number)); + /* setting the previous tag and the previous call-ID from the first invite*/ + ms_message("setting the previous tag %s",call->tag_transaction_value); + ms_message("setting the previous call-id %s",call->the_callid); + { + osip_uri_param_t *p_tag; + osip_from_get_tag(reinvite->from,&p_tag); + osip_generic_param_set_value(p_tag,osip_strdup(call->tag_transaction_value)); + osip_call_id_set_number(reinvite->call_id,osip_strdup(call->the_callid)); + } + if (lp_config_get_int(lc->config,"sip","use_session_timers",0)==1){ + osip_message_set_header(reinvite, "Session-expires", "200"); + osip_message_set_supported(reinvite, "timer"); + } + /*try to be best-effort in giving real local or routable contact address, + except when the user choosed to override the ipaddress */ + if (linphone_core_get_firewall_policy(lc)!=LINPHONE_POLICY_USE_NAT_ADDRESS) + fix_contact(lc,reinvite,call->localip,dest_proxy); + /* make sdp message */ + + if (!lc->sip_conf.sdp_200_ack){ + ctx=call->sdpctx; + ctx->holdon = hold; + sdpmesg=sdp_context_get_offer(ctx); + linphone_set_sdp(reinvite,sdpmesg); + } + eXosip_lock(); + err=eXosip_call_send_request(call->did, reinvite); + eXosip_unlock(); +end: + if (real_url!=NULL) ms_free(real_url); + if (route!=NULL) ms_free(route); + return (err<0) ? -1 : 0; +} + +/** * Initiates an outgoing call * * @ingroup call_control @@ -1807,9 +2081,11 @@ int linphone_core_invite(LinphoneCore *lc, const char *url) LinphoneAddress *real_parsed_url=NULL; char *real_url=NULL; LinphoneProxyConfig *dest_proxy=NULL; - - if (lc->call!=NULL){ - lc->vtable.display_warning(lc,_("Sorry, having multiple simultaneous calls is not supported yet !")); + LinphoneCall *the_call; + + if(!linphone_core_can_we_add_call(lc)) + { + lc->vtable.display_warning(lc,_("Sorry, we have too much calls in process")); return -1; } @@ -1839,40 +2115,54 @@ int linphone_core_invite(LinphoneCore *lc, const char *url) ms_warning("Could not build initial invite"); goto end; } + /* This is probably useless for other messages */ + osip_message_set_allow(invite, "INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO"); if (lp_config_get_int(lc->config,"sip","use_session_timers",0)==1){ osip_message_set_header(invite, "Session-expires", "200"); osip_message_set_supported(invite, "timer"); } + /* make sdp message */ parsed_url2=linphone_address_new(from); - lc->call=linphone_call_new_outgoing(lc,parsed_url2,real_parsed_url); + the_call=linphone_call_new_outgoing(lc,parsed_url2,real_parsed_url); + //we already checked if we could add a call + linphone_core_get_a_new_call(lc,the_call); + /* get the tag and call-ID balises for futures transactions */ + { + osip_generic_param_t *tag_param_local; + osip_from_get_tag(invite->from,&tag_param_local); + snprintf(the_call->tag_transaction_value,sizeof(the_call->tag_transaction_value),"%s",tag_param_local->gvalue); + snprintf(the_call->the_callid,sizeof(the_call->the_callid),"%s",osip_call_id_get_number(invite->call_id)); + ms_message("getting the tag %s",the_call->tag_transaction_value); + ms_message("getting the call-id :%s",the_call->the_callid); + } /*try to be best-effort in giving real local or routable contact address, except when the user choosed to override the ipaddress */ if (linphone_core_get_firewall_policy(lc)!=LINPHONE_POLICY_USE_NAT_ADDRESS) - fix_contact(lc,invite,lc->call->localip,dest_proxy); + fix_contact(lc,invite,the_call->localip,dest_proxy); - barmsg=ortp_strdup_printf("%s %s", _("Contacting"), real_url); - lc->vtable.display_status(lc,barmsg); - ms_free(barmsg); if (!lc->sip_conf.sdp_200_ack){ - ctx=lc->call->sdpctx; + ctx=the_call->sdpctx; sdpmesg=sdp_context_get_offer(ctx); linphone_set_sdp(invite,sdpmesg); - linphone_core_init_media_streams(lc); } eXosip_lock(); err=eXosip_call_send_initial_invite(invite); - lc->call->cid=err; + the_call->cid=err; eXosip_unlock(); + + barmsg=ortp_strdup_printf("%s %s with cid <%d>", _("Contacting"), real_url, linphone_core_get_call_cid(the_call)); + lc->vtable.display_status(lc,barmsg); + ms_free(barmsg); if (err<0){ ms_warning("Could not initiate call."); lc->vtable.display_status(lc,_("could not call")); - linphone_call_destroy(lc->call); - lc->call=NULL; - linphone_core_stop_media_streams(lc); + linphone_core_stop_media_streams(lc,the_call); + linphone_core_clear_call_by_cid(lc,the_call->cid); + the_call=NULL; }else gstate_new_state(lc, GSTATE_CALL_OUT_INVITE, url); goto end; @@ -1894,12 +2184,12 @@ int linphone_core_refer(LinphoneCore *lc, const char *url) return -1; } if (route!=NULL) ms_free(route); - call=lc->call; + call = linphone_core_get_current_call(lc); if (call==NULL){ ms_warning("No established call to refer."); return -1; } - lc->call=NULL; + linphone_core_clear_call_by_cid(lc,call->cid); real_url=linphone_address_as_string (real_parsed_url); eXosip_call_build_refer(call->did, real_url, &msg); ms_free(real_url); @@ -1915,7 +2205,8 @@ int linphone_core_refer(LinphoneCore *lc, const char *url) * @ingroup call_control **/ bool_t linphone_core_inc_invite_pending(LinphoneCore*lc){ - if (lc->call!=NULL && lc->call->dir==LinphoneCallIncoming){ + LinphoneCall *thecall = linphone_core_get_current_call(lc); + if (thecall!=NULL && thecall->dir==LinphoneCallIncoming){ return TRUE; } return FALSE; @@ -1994,36 +2285,36 @@ int linphone_core_change_qos(LinphoneCore *lc, int answer) } #endif -void linphone_core_init_media_streams(LinphoneCore *lc){ - lc->audiostream=audio_stream_new(linphone_core_get_audio_port(lc),linphone_core_ipv6_enabled(lc)); +void linphone_core_init_media_streams(LinphoneCore *lc, LinphoneCall *call){ + call->audiostream=audio_stream_new(get_audio_localport(lc,call),linphone_core_ipv6_enabled(lc));//AB should be incremented by the call repere . . . if (linphone_core_echo_limiter_enabled(lc)){ const char *type=lp_config_get_string(lc->config,"sound","el_type","mic"); if (strcasecmp(type,"mic")==0) - audio_stream_enable_echo_limiter(lc->audiostream,ELControlMic); + audio_stream_enable_echo_limiter(call->audiostream,ELControlMic); else if (strcasecmp(type,"speaker")==0) - audio_stream_enable_echo_limiter(lc->audiostream,ELControlSpeaker); + audio_stream_enable_echo_limiter(call->audiostream,ELControlSpeaker); } - audio_stream_enable_gain_control(lc->audiostream,TRUE); + audio_stream_enable_gain_control(call->audiostream,TRUE); if (linphone_core_echo_cancellation_enabled(lc)){ int len,delay,framesize; len=lp_config_get_int(lc->config,"sound","ec_tail_len",0); delay=lp_config_get_int(lc->config,"sound","ec_delay",0); framesize=lp_config_get_int(lc->config,"sound","ec_framesize",0); - audio_stream_set_echo_canceller_params(lc->audiostream,len,delay,framesize); + audio_stream_set_echo_canceller_params(call->audiostream,len,delay,framesize); } - audio_stream_enable_automatic_gain_control(lc->audiostream,linphone_core_agc_enabled(lc)); + audio_stream_enable_automatic_gain_control(call->audiostream,linphone_core_agc_enabled(lc)); { int enabled=lp_config_get_int(lc->config,"sound","noisegate",0); - audio_stream_enable_noise_gate(lc->audiostream,enabled); + audio_stream_enable_noise_gate(call->audiostream,enabled); } if (lc->a_rtp) - rtp_session_set_transports(lc->audiostream->session,lc->a_rtp,lc->a_rtcp); + rtp_session_set_transports(call->audiostream->session,lc->a_rtp,lc->a_rtcp); #ifdef VIDEO_ENABLED if (lc->video_conf.display || lc->video_conf.capture) - lc->videostream=video_stream_new(linphone_core_get_video_port(lc),linphone_core_ipv6_enabled(lc)); + call->videostream=video_stream_new(get_video_localport(lc,call) ,linphone_core_ipv6_enabled(lc)); #else - lc->videostream=NULL; + call->videostream=NULL; #endif } @@ -2055,8 +2346,8 @@ static void parametrize_equalizer(LinphoneCore *lc, AudioStream *st){ } } -static void post_configure_audio_streams(LinphoneCore *lc){ - AudioStream *st=lc->audiostream; +static void post_configure_audio_streams(LinphoneCore *lc, LinphoneCall *call){ + AudioStream *st=call->audiostream; float gain=lp_config_get_float(lc->config,"sound","mic_gain",-1); if (gain!=-1) audio_stream_set_mic_gain(st,gain); @@ -2095,13 +2386,34 @@ static void post_configure_audio_streams(LinphoneCore *lc){ parametrize_equalizer(lc,st); if (lc->vtable.dtmf_received!=NULL){ /* replace by our default action*/ - audio_stream_play_received_dtmfs(lc->audiostream,FALSE); - rtp_session_signal_connect(lc->audiostream->session,"telephone-event",(RtpCallback)linphone_core_dtmf_received,(unsigned long)lc); + audio_stream_play_received_dtmfs(call->audiostream,FALSE); + rtp_session_signal_connect(call->audiostream->session,"telephone-event",(RtpCallback)linphone_core_dtmf_received,(unsigned long)lc); } } -void linphone_core_start_media_streams(LinphoneCore *lc, LinphoneCall *call){ - LinphoneAddress *me=linphone_core_get_primary_contact_parsed(lc); +int linphone_core_start_media_streams(LinphoneCore *lc, LinphoneCall *call){ + int err; + LinphoneAddress *me; + + if(call == NULL) + { + lc->vtable.display_warning(lc,_("cannot start a NULL call")); + } + if(linphone_core_is_in_conversation(lc)) + { + lc->vtable.display_warning(lc,"linphone is already in communication, stop or hold the current one first\r\n"); + return -1; + } + err = linphone_core_set_current_call_by_cid(lc,call->cid); + if(err != 0) + { + char temp[256]; + snprintf(temp,sizeof(temp),"linphone cannot set current call(weird error %d!)",err); + lc->vtable.display_warning(lc,temp); + return -1; + } + linphone_core_init_media_streams(lc, call); + me=linphone_core_get_primary_contact_parsed(lc); const char *tool="linphone-" LINPHONE_VERSION; char *cname; /* adjust rtp jitter compensation. It must be at least the latency of the sound card */ @@ -2124,21 +2436,21 @@ void linphone_core_start_media_streams(LinphoneCore *lc, LinphoneCall *call){ goto end; } if (audio_params->relay_session_id!=NULL) - audio_stream_set_relay_session_id(lc->audiostream,audio_params->relay_session_id); - audio_stream_start_now( - lc->audiostream, - call->profile, - audio_params->remoteaddr, - audio_params->remoteport, - audio_params->remotertcpport, - audio_params->pt, - jitt_comp, - playcard, - captcard, - linphone_core_echo_cancellation_enabled(lc)); + audio_stream_set_relay_session_id(call->audiostream,audio_params->relay_session_id); + audio_stream_start_now( + call->audiostream, + call->profile, + audio_params->remoteaddr, + audio_params->remoteport, + audio_params->remotertcpport, + audio_params->pt, + jitt_comp, + playcard, + captcard, + linphone_core_echo_cancellation_enabled(lc)); }else{ audio_stream_start_with_files( - lc->audiostream, + call->audiostream, call->profile, audio_params->remoteaddr, audio_params->remoteport, @@ -2148,8 +2460,8 @@ void linphone_core_start_media_streams(LinphoneCore *lc, LinphoneCall *call){ lc->play_file, lc->rec_file); } - post_configure_audio_streams(lc); - audio_stream_set_rtcp_information(lc->audiostream, cname, tool); + post_configure_audio_streams(lc,call); + audio_stream_set_rtcp_information(call->audiostream, cname, tool); } #ifdef VIDEO_ENABLED { @@ -2163,24 +2475,26 @@ void linphone_core_start_media_streams(LinphoneCore *lc, LinphoneCall *call){ if (video_params->remoteport>0){ if (video_params->relay_session_id!=NULL) - video_stream_set_relay_session_id(lc->videostream,video_params->relay_session_id); - video_stream_set_sent_video_size(lc->videostream,linphone_core_get_preferred_video_size(lc)); - video_stream_enable_self_view(lc->videostream,lc->video_conf.selfview); + { + video_stream_set_relay_session_id(call->videostream,video_params->relay_session_id); + } + video_stream_set_sent_video_size(call->videostream,linphone_core_get_preferred_video_size(lc)); + video_stream_enable_self_view(call->videostream,lc->video_conf.selfview); if (lc->video_conf.display && lc->video_conf.capture) - video_stream_start(lc->videostream, + video_stream_start(call->videostream, call->profile, video_params->remoteaddr, video_params->remoteport, video_params->remotertcpport, video_params->pt, jitt_comp, lc->video_conf.device); else if (lc->video_conf.display) - video_stream_recv_only_start(lc->videostream, + video_stream_recv_only_start(call->videostream, call->profile, video_params->remoteaddr, video_params->remoteport, video_params->pt, jitt_comp); else if (lc->video_conf.capture) - video_stream_send_only_start(lc->videostream, + video_stream_send_only_start(call->videostream, call->profile, video_params->remoteaddr, video_params->remoteport, video_params->remotertcpport, video_params->pt, jitt_comp, lc->video_conf.device); - video_stream_set_rtcp_information(lc->videostream, cname,tool); + video_stream_set_rtcp_information(call->videostream, cname,tool); } } } @@ -2189,23 +2503,29 @@ void linphone_core_start_media_streams(LinphoneCore *lc, LinphoneCall *call){ end: ms_free(cname); linphone_address_destroy(me); - lc->call->state=LCStateAVRunning; + call->state=LCStateAVRunning; + return 0; } -void linphone_core_stop_media_streams(LinphoneCore *lc){ - if (lc->audiostream!=NULL) { - audio_stream_stop(lc->audiostream); - lc->audiostream=NULL; +void linphone_core_stop_media_streams(LinphoneCore *lc, LinphoneCall *call){ + if(call == NULL) + { + lc->vtable.display_warning(lc,_("cannot stop a NULL call")); + return ; + } + if (call->audiostream!=NULL) { + audio_stream_stop(call->audiostream); + call->audiostream=NULL; } #ifdef VIDEO_ENABLED - if (lc->videostream!=NULL){ + if (call->videostream!=NULL){ if (lc->video_conf.display && lc->video_conf.capture) - video_stream_stop(lc->videostream); + video_stream_stop(call->videostream); else if (lc->video_conf.display) - video_stream_recv_only_stop(lc->videostream); + video_stream_recv_only_stop(call->videostream); else if (lc->video_conf.capture) - video_stream_send_only_stop(lc->videostream); - lc->videostream=NULL; + video_stream_send_only_stop(call->videostream); + call->videostream=NULL; } if (linphone_core_video_preview_enabled(lc)){ if (lc->previewstream==NULL){ @@ -2213,6 +2533,8 @@ void linphone_core_stop_media_streams(LinphoneCore *lc){ } } #endif + call->currently_used = FALSE; + } /** @@ -2229,11 +2551,19 @@ void linphone_core_stop_media_streams(LinphoneCore *lc){ * however this feature is not supported yet. * Using NULL will accept the unique incoming call in progress. **/ -int linphone_core_accept_call(LinphoneCore *lc, const char *url) +int linphone_core_accept_call(LinphoneCore *lc, int *cid) { char *sdpmesg; osip_message_t *msg=NULL; - LinphoneCall *call=lc->call; + LinphoneCall *call; + if(cid == NULL) + { + call=linphone_core_get_current_call(lc); + } + else + { + call=linphone_core_get_call_by_cid(lc,*cid); + } int err; bool_t offering=FALSE; @@ -2241,7 +2571,7 @@ int linphone_core_accept_call(LinphoneCore *lc, const char *url) return -1; } - if (lc->call->state==LCStateAVRunning){ + if (call->state==LCStateAVRunning){ /*call already accepted*/ return -1; } @@ -2278,7 +2608,6 @@ int linphone_core_accept_call(LinphoneCore *lc, const char *url) return -1; } linphone_set_sdp(msg,sdpmesg); - linphone_core_init_media_streams(lc); }else{ linphone_set_sdp(msg,sdpmesg); } @@ -2288,7 +2617,20 @@ int linphone_core_accept_call(LinphoneCore *lc, const char *url) lc->vtable.display_status(lc,_("Connected.")); gstate_new_state(lc, GSTATE_CALL_IN_CONNECTED, NULL); - if (!offering) linphone_core_start_media_streams(lc, lc->call); + if (!offering) + { + if(!linphone_core_is_in_conversation(lc)) + { + linphone_core_start_media_streams(lc, call); + } + else + { + lc->vtable.display_status(lc,_("the call answer is hold because we are currently in communication")); + linphone_core_send_hold(lc,HOLD_ON,cid); + } + + + } ms_message("call answered."); return 0; } @@ -2298,16 +2640,28 @@ int linphone_core_accept_call(LinphoneCore *lc, const char *url) * * @ingroup call_control * @param lc The LinphoneCore - * @param url the destination of the call to be terminated, use NULL if there is - * only one call (which is case in this version of liblinphone). + * @param cid permit to determine which call to terminate when simultanous **/ -int linphone_core_terminate_call(LinphoneCore *lc, const char *url) +int linphone_core_terminate_call(LinphoneCore *lc, int *cid) { - LinphoneCall *call=lc->call; + int the_cid = 0; + char temp[256]; + LinphoneCall *call; + if(cid == NULL) + { + call = linphone_core_get_current_call(lc); + if(call != NULL) + the_cid = call->cid; + } + else + { + call = linphone_core_get_call_by_cid(lc,*cid); + the_cid = *cid; + } if (call==NULL){ + lc->vtable.display_warning(lc,_("the call asked to stop do not exists")); return -1; } - lc->call=NULL; eXosip_lock(); eXosip_call_terminate(call->cid,call->did); @@ -2318,10 +2672,11 @@ int linphone_core_terminate_call(LinphoneCore *lc, const char *url) ring_stop(lc->ringstream); lc->ringstream=NULL; } - linphone_core_stop_media_streams(lc); - lc->vtable.display_status(lc,_("Call ended") ); + linphone_core_stop_media_streams(lc, call); + snprintf(temp,sizeof(temp),"Call ended with cid <%d>",the_cid); + lc->vtable.display_status(lc,temp ); gstate_new_state(lc, GSTATE_CALL_END, NULL); - linphone_call_destroy(call); + linphone_core_clear_call_by_cid(lc,call->cid); return 0; } @@ -2331,7 +2686,7 @@ int linphone_core_terminate_call(LinphoneCore *lc, const char *url) * @ingroup call_control **/ bool_t linphone_core_in_call(const LinphoneCore *lc){ - return lc->call!=NULL; + return (linphone_core_get_current_call_with_const(lc)!=NULL); } int linphone_core_send_publish(LinphoneCore *lc, @@ -2713,6 +3068,67 @@ const char * linphone_core_get_ringback(const LinphoneCore *lc){ } /** + * Permits to hold on or hold off a call with the cid *cid + * + * @ingroup media_parameters +**/ +int linphone_core_hold(LinphoneCore *lc, bool_t val, int *cid){ + char text[256]; + int cid_used; + LinphoneCall *lcall; + + if(val==HOLD_ON) + { + if(cid == NULL) + { + if(!linphone_core_is_in_conversation(lc)) + { + lc->vtable.display_warning(lc,_("we are not in conversation cannot hold on")); + return -4; + } + cid_used = linphone_core_get_call_cid(linphone_core_get_current_call(lc)); + } + else + { + cid_used = *cid; + } + } + else + { //hold off + if(linphone_core_is_in_conversation(lc)) + { + lc->vtable.display_warning(lc,_("cannot hold off we are already in communication")); + return -3; + } + if(cid == NULL) + { + lc->vtable.display_warning(lc,_("cannot hold a call without the cid specify")); + return -2; + } + cid_used = *cid; + } + lcall = linphone_core_get_call_by_cid(lc,cid_used); + if(lcall == NULL) + { + snprintf(text,sizeof(text),"the call with cid <%d> do no exist",cid_used); + lc->vtable.display_status(lc,text); + return -1; + } + if(val==HOLD_ON) + snprintf(text,sizeof(text),"hold on the call with cid <%d>",cid_used); + else + snprintf(text,sizeof(text),"hold off the call with cid <%d>",cid_used); + lc->vtable.display_status(lc,text); + linphone_core_send_hold(lc,val,&cid_used); + if(val==HOLD_ON) + linphone_core_stop_media_streams(lc,lcall); + else + linphone_core_start_media_streams(lc,lcall); + + return 0; +} + +/** * Enables or disable echo cancellation. * * @ingroup media_parameters @@ -2746,8 +3162,14 @@ bool_t linphone_core_echo_limiter_enabled(const LinphoneCore *lc){ * @ingroup media_parameters **/ void linphone_core_mute_mic(LinphoneCore *lc, bool_t val){ - if (lc->audiostream!=NULL){ - audio_stream_set_mic_gain(lc->audiostream, + LinphoneCall *call = linphone_core_get_current_call(lc); + if(call == NULL) + { + lc->vtable.display_warning(lc,_("we cannot mute we are not in conversation")); + return ; + } + if (call->audiostream!=NULL){ + audio_stream_set_mic_gain(call->audiostream, (val==TRUE) ? 0 : 1.0); } } @@ -2771,12 +3193,18 @@ bool_t linphone_core_agc_enabled(const LinphoneCore *lc){ **/ void linphone_core_send_dtmf(LinphoneCore *lc,char dtmf) { + LinphoneCall *call = linphone_core_get_current_call(lc); + if(call == NULL) + { + lc->vtable.display_warning(lc,_("we are not in conversation to send DTMF")); + return; + } /*By default we send DTMF RFC2833 if we do not have enabled SIP_INFO but we can also send RFC2833 and SIP_INFO*/ if (linphone_core_get_use_rfc2833_for_dtmf(lc)!=0 || linphone_core_get_use_info_for_dtmf(lc)==0) { /* In Band DTMF */ - if (lc->audiostream!=NULL){ - audio_stream_send_dtmf(lc->audiostream,dtmf); + if (call->audiostream!=NULL){ + audio_stream_send_dtmf(call->audiostream,dtmf); } else { @@ -2789,7 +3217,7 @@ void linphone_core_send_dtmf(LinphoneCore *lc,char dtmf) char clen[10]; osip_message_t *msg=NULL; /* Out of Band DTMF (use INFO method) */ - LinphoneCall *call=lc->call; + LinphoneCall *call=linphone_core_get_current_call(lc); if (call==NULL){ return; } @@ -2951,17 +3379,18 @@ void linphone_core_clear_call_logs(LinphoneCore *lc){ static void toggle_video_preview(LinphoneCore *lc, bool_t val){ #ifdef VIDEO_ENABLED - if (lc->videostream==NULL){ - if (val){ - if (lc->previewstream==NULL){ - lc->previewstream=video_preview_start(lc->video_conf.device, - lc->video_conf.vsize); - } - }else{ - if (lc->previewstream!=NULL){ - video_preview_stop(lc->previewstream); - lc->previewstream=NULL; - } + LinphoneCall *call=linphone_core_get_current_call(lc); + if(call != NULL) + if (call->videostream != NULL) return; + if (val){ + if (lc->previewstream==NULL){ + lc->previewstream=video_preview_start(lc->video_conf.device, + lc->video_conf.vsize); + } + }else{ + if (lc->previewstream!=NULL){ + video_preview_stop(lc->previewstream); + lc->previewstream=NULL; } } #endif @@ -3032,8 +3461,10 @@ bool_t linphone_core_video_preview_enabled(const LinphoneCore *lc){ void linphone_core_enable_self_view(LinphoneCore *lc, bool_t val){ lc->video_conf.selfview=val; #ifdef VIDEO_ENABLED - if (lc->videostream){ - video_stream_enable_self_view(lc->videostream,val); + LinphoneCall *call=linphone_core_get_current_call(lc); + if(call == NULL) return; + if (call->videostream){ + video_stream_enable_self_view(call->videostream,val); } #endif } @@ -3096,8 +3527,10 @@ const char *linphone_core_get_video_device(const LinphoneCore *lc){ **/ unsigned long linphone_core_get_native_video_window_id(const LinphoneCore *lc){ #ifdef VIDEO_ENABLED - if (lc->videostream) - return video_stream_get_native_window_id(lc->videostream); + LinphoneCall *call=linphone_core_get_current_call((LinphoneCore *)lc); + if(call == NULL) return -1; + if (call->videostream) + return video_stream_get_native_window_id(call->videostream); if (lc->previewstream) return video_stream_get_native_window_id(lc->previewstream); #endif @@ -3200,26 +3633,38 @@ void linphone_core_use_files(LinphoneCore *lc, bool_t yesno){ } void linphone_core_set_play_file(LinphoneCore *lc, const char *file){ + LinphoneCall *call = linphone_core_get_current_call(lc); if (lc->play_file!=NULL){ ms_free(lc->play_file); lc->play_file=NULL; } + if(call == NULL) + { + lc->vtable.display_warning(lc,_("we cannot play file without conversation in progress")); + return; + } if (file!=NULL) { lc->play_file=ms_strdup(file); - if (lc->audiostream) - audio_stream_play(lc->audiostream,file); + if (call->audiostream) + audio_stream_play(call->audiostream,file); } } void linphone_core_set_record_file(LinphoneCore *lc, const char *file){ + LinphoneCall *call = linphone_core_get_current_call(lc); if (lc->rec_file!=NULL){ ms_free(lc->rec_file); lc->rec_file=NULL; } + if(call == NULL) + { + lc->vtable.display_warning(lc,_("we cannot record into a file without conversation in progress")); + return; + } if (file!=NULL) { lc->rec_file=ms_strdup(file); - if (lc->audiostream) - audio_stream_record(lc->audiostream,file); + if (call->audiostream) + audio_stream_record(call->audiostream,file); } } @@ -3432,7 +3877,8 @@ LpConfig *linphone_core_get_config(LinphoneCore *lc){ static void linphone_core_uninit(LinphoneCore *lc) { - if (lc->call){ + if (linphone_core_get_current_call(lc)) + { int i; linphone_core_terminate_call(lc,NULL); for(i=0;i<10;++i){ diff --git a/linphone_avant_multi/coreapi/linphonecore.h b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/linphonecore.h index 05dd322..0d63df6 100644 --- a/linphone_avant_multi/coreapi/linphonecore.h +++ b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/linphonecore.h @@ -30,8 +30,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "linphone/sipsetup.h" #endif -#define LINPHONE_IPADDR_SIZE 64 -#define LINPHONE_HOSTNAME_SIZE 128 +#define LINPHONE_SESSION_ID_SIZE (15) +#define LINPHONE_IPADDR_SIZE (64) +#define LINPHONE_HOSTNAME_SIZE (128) +#define LINPHONE_CALL_ID_SIZE (255) + +#define HOLD_OFF (0) +#define HOLD_ON (1) #ifdef __cplusplus extern "C" { @@ -595,6 +600,9 @@ typedef enum _LinphoneWaitingState{ } LinphoneWaitingState; typedef void * (*LinphoneWaitingCallback)(struct _LinphoneCore *lc, void *context, LinphoneWaitingState ws, const char *purpose, float progress); +#ifndef NB_MAX_CALLS +#define NB_MAX_CALLS (10) +#endif typedef struct _LinphoneCore { @@ -615,16 +623,16 @@ typedef struct _LinphoneCore LCCallbackObj preview_finished_cb; bool_t preview_finished; struct _LinphoneCall *call; /* the current call, in the future it will be a list of calls (conferencing)*/ + int calls_nb; + struct _LinphoneCall *calls[NB_MAX_CALLS]; /* the current call, in the future it will be a list of calls (conferencing)*/ int rid; /*registration id*/ MSList *queued_calls; /* used by the autoreplier */ MSList *call_logs; MSList *chatrooms; int max_call_logs; int missed_calls; - struct _AudioStream *audiostream; /**/ - struct _VideoStream *videostream; struct _VideoStream *previewstream; - RtpTransport *a_rtp,*a_rtcp; + RtpTransport *a_rtp,*a_rtcp; //AB should it be in calls ??? struct _RtpProfile *local_profile; MSList *bl_reqs; MSList *subscribers; /* unknown subscribers */ @@ -684,9 +692,9 @@ bool_t linphone_core_inc_invite_pending(LinphoneCore*lc); bool_t linphone_core_in_call(const LinphoneCore *lc); -int linphone_core_accept_call(LinphoneCore *lc, const char *url); +int linphone_core_accept_call(LinphoneCore *lc, int *cid); -int linphone_core_terminate_call(LinphoneCore *lc, const char *url); +int linphone_core_terminate_call(LinphoneCore *lc, int *cid); void linphone_core_send_dtmf(LinphoneCore *lc,char dtmf); @@ -826,6 +834,7 @@ const char *linphone_core_get_ring(const LinphoneCore *lc); void linphone_core_set_ringback(LinphoneCore *lc, const char *path); const char * linphone_core_get_ringback(const LinphoneCore *lc); int linphone_core_preview_ring(LinphoneCore *lc, const char *ring,LinphoneCoreCbFunc func,void * userdata); +int linphone_core_hold(LinphoneCore *lc, bool_t val, int *cid); void linphone_core_enable_echo_cancellation(LinphoneCore *lc, bool_t val); bool_t linphone_core_echo_cancellation_enabled(LinphoneCore *lc); @@ -930,8 +939,6 @@ void linphone_core_set_audio_transports(LinphoneCore *lc, RtpTransport *rtp, Rtp /*internal use only */ #define linphone_core_lock(lc) ms_mutex_lock(&(lc)->lock) #define linphone_core_unlock(lc) ms_mutex_unlock((&lc)->lock) -void linphone_core_start_media_streams(LinphoneCore *lc, struct _LinphoneCall *call); -void linphone_core_stop_media_streams(LinphoneCore *lc); const char * linphone_core_get_identity(LinphoneCore *lc); const char * linphone_core_get_route(LinphoneCore *lc); bool_t linphone_core_interpret_url(LinphoneCore *lc, const char *url, LinphoneAddress **real_parsed_url, char **route); @@ -939,6 +946,7 @@ void linphone_core_start_waiting(LinphoneCore *lc, const char *purpose); void linphone_core_update_progress(LinphoneCore *lc, const char *purpose, float progresses); void linphone_core_stop_waiting(LinphoneCore *lc); +bool_t linphone_core_is_in_conversation(LinphoneCore *lc); #ifdef __cplusplus } diff --git a/linphone_avant_multi/coreapi/lpconfig.c b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/lpconfig.c diff --git a/linphone_avant_multi/coreapi/lpconfig.h b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/lpconfig.h diff --git a/linphone_avant_multi/coreapi/misc.c b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/misc.c diff --git a/linphone_avant_multi/coreapi/plugins/buddylookup/AUTHORS b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/plugins/buddylookup/AUTHORS diff --git a/linphone_avant_multi/coreapi/plugins/buddylookup/COPYING b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/plugins/buddylookup/COPYING diff --git a/linphone_avant_multi/coreapi/plugins/buddylookup/ChangeLog b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/plugins/buddylookup/ChangeLog diff --git a/linphone_avant_multi/coreapi/plugins/buddylookup/INSTALL b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/plugins/buddylookup/INSTALL diff --git a/linphone_avant_multi/coreapi/plugins/buddylookup/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/plugins/buddylookup/Makefile.am diff --git a/linphone_avant_multi/coreapi/plugins/buddylookup/NEWS b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/plugins/buddylookup/NEWS diff --git a/linphone_avant_multi/coreapi/plugins/buddylookup/README b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/plugins/buddylookup/README diff --git a/linphone_avant_multi/coreapi/plugins/buddylookup/autogen.sh b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/plugins/buddylookup/autogen.sh diff --git a/linphone_avant_multi/coreapi/plugins/buddylookup/configure.ac b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/plugins/buddylookup/configure.ac diff --git a/linphone_avant_multi/coreapi/plugins/buddylookup/src/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/plugins/buddylookup/src/Makefile.am diff --git a/linphone_avant_multi/coreapi/plugins/buddylookup/src/lookup.c b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/plugins/buddylookup/src/lookup.c diff --git a/linphone_avant_multi/coreapi/presence.c b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/presence.c diff --git a/linphone_avant_multi/coreapi/private.h b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/private.h index 93b1c77..1bc7563 100644 --- a/linphone_avant_multi/coreapi/private.h +++ b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/private.h @@ -79,6 +79,8 @@ typedef enum _LCState{ typedef struct _LinphoneCall { struct _LinphoneCore *core; + struct _AudioStream *audiostream; /**/ + struct _VideoStream *videostream; StreamParams audio_params; StreamParams video_params; LinphoneCallDir dir; @@ -94,12 +96,17 @@ typedef struct _LinphoneCall LCState state; bool_t auth_pending; bool_t supports_session_timers; + bool_t currently_used; + int nb_cseq; + int repere; + char tag_transaction_value[LINPHONE_CALL_ID_SIZE]; + char the_callid[LINPHONE_CALL_ID_SIZE]; } LinphoneCall; LinphoneCall * linphone_call_new_outgoing(struct _LinphoneCore *lc, LinphoneAddress *from, LinphoneAddress *to); LinphoneCall * linphone_call_new_incoming(struct _LinphoneCore *lc, LinphoneAddress *from, LinphoneAddress *to, eXosip_event_t *ev); #define linphone_call_set_state(lcall,st) (lcall)->state=(st) -void linphone_call_destroy(struct _LinphoneCall *obj); +void linphone_call_destroyed(struct _LinphoneCall *obj); /* private: */ LinphoneCallLog * linphone_call_log_new(LinphoneCall *call, LinphoneAddress *local, LinphoneAddress * remote); @@ -107,7 +114,7 @@ void linphone_call_log_completed(LinphoneCallLog *calllog, LinphoneCall *call); void linphone_call_log_destroy(LinphoneCallLog *cl); -void linphone_core_init_media_streams(LinphoneCore *lc); +void linphone_core_init_media_streams(LinphoneCore *lc, LinphoneCall *call); void linphone_auth_info_write_config(struct _LpConfig *config, LinphoneAuthInfo *obj, int pos); @@ -194,4 +201,21 @@ void linphone_proxy_config_write_to_config_file(struct _LpConfig* config,Linphon int linphone_proxy_config_normalize_number(LinphoneProxyConfig *cfg, const char *username, char *result, size_t result_len); +int linphone_core_get_calls_nb(const LinphoneCore *lc); +bool_t linphone_core_can_we_add_call(LinphoneCore *lc); +int linphone_core_clear_call_by_cid(LinphoneCore *lc,int cid); +LinphoneCall *linphone_core_get_call_by_cid( LinphoneCore *lc,int cid); +LinphoneCall *linphone_core_get_current_call( LinphoneCore *lc); +int linphone_core_get_cid_of_the_current_call( LinphoneCore *lc); +int linphone_core_get_a_new_call( LinphoneCore *lc, LinphoneCall *call); +int linphone_core_get_call_cid( LinphoneCall *call); +int linphone_core_start_media_streams(LinphoneCore *lc, LinphoneCall *call); +void linphone_core_stop_media_streams(LinphoneCore *lc, LinphoneCall *call); + + +int get_audio_localport(LinphoneCore *lc,LinphoneCall *call); +int get_video_localport(LinphoneCore *lc,LinphoneCall *call); +int get_payload_audio_localport(LinphoneCore *lc,LinphoneCall *call); +int get_payload_video_localport(LinphoneCore *lc,LinphoneCall *call); + #endif /* _PRIVATE_H */ diff --git a/linphone_avant_multi/coreapi/proxy.c b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/proxy.c diff --git a/linphone_avant_multi/coreapi/sdphandler.c b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/sdphandler.c index 8902172..8d3f247 100644 --- a/linphone_avant_multi/coreapi/sdphandler.c +++ b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/sdphandler.c @@ -142,21 +142,37 @@ sdp_context_generate_template (sdp_context_t * ctx) { sdp_message_t *local; int inet6; + char tmp_session_id[LINPHONE_SESSION_ID_SIZE]; + char tmp_session_version[LINPHONE_SESSION_ID_SIZE]; + char tmp_s_name[LINPHONE_CALL_ID_SIZE]; sdp_message_init (&local); if (strchr(ctx->localip,':')!=NULL){ inet6=1; }else inet6=0; + ctx->session_version++; + snprintf(tmp_session_id,sizeof(tmp_session_id),"%d",ctx->session_id); + snprintf(tmp_session_version,sizeof(tmp_session_version),"%d",ctx->session_version); + snprintf(tmp_s_name,sizeof(tmp_s_name),"A conversation with call %d",ctx->session_id); if (!inet6){ sdp_message_v_version_set (local, osip_strdup ("0")); sdp_message_o_origin_set (local, osip_strdup (ctx->username), - osip_strdup ("123456"), osip_strdup ("654321"), + osip_strdup (tmp_session_id), osip_strdup (tmp_session_version), osip_strdup ("IN"), osip_strdup ("IP4"), osip_strdup (ctx->localip)); - sdp_message_s_name_set (local, osip_strdup ("A conversation")); - sdp_message_c_connection_add (local, -1, - osip_strdup ("IN"), osip_strdup ("IP4"), - osip_strdup (ctx->localip), NULL, NULL); + sdp_message_s_name_set (local, osip_strdup (tmp_s_name)); + if(ctx->holdon == HOLD_OFF) + { + sdp_message_c_connection_add (local, -1, + osip_strdup ("IN"), osip_strdup ("IP4"), + osip_strdup (ctx->localip), NULL, NULL); + } + else + { + sdp_message_c_connection_add (local, -1, + osip_strdup ("IN"), osip_strdup ("IP4"), + osip_strdup ("0.0.0.0"), NULL, NULL); + } sdp_message_t_time_descr_add (local, osip_strdup ("0"), osip_strdup ("0")); }else{ sdp_message_v_version_set (local, osip_strdup ("0")); @@ -165,9 +181,18 @@ sdp_context_generate_template (sdp_context_t * ctx) osip_strdup ("IN"), osip_strdup ("IP6"), osip_strdup (ctx->localip)); sdp_message_s_name_set (local, osip_strdup ("A conversation")); - sdp_message_c_connection_add (local, -1, + if(ctx->holdon == HOLD_OFF) + { + sdp_message_c_connection_add (local, -1, osip_strdup ("IN"), osip_strdup ("IP6"), osip_strdup (ctx->localip), NULL, NULL); + } + else + { + sdp_message_c_connection_add (local, -1, + osip_strdup ("IN"), osip_strdup ("IP6"), + osip_strdup ("0.0.0.0"), NULL, NULL); + } sdp_message_t_time_descr_add (local, osip_strdup ("0"), osip_strdup ("0")); } return local; @@ -187,6 +212,7 @@ sdp_context_add_payload (sdp_context_t * ctx, sdp_payload_t * payload, char *med { sdp_message_t *offer = ctx->offer; char *attr_field; + if (!ctx->incb) { eXosip_trace (OSIP_ERROR, @@ -229,6 +255,21 @@ sdp_context_add_payload (sdp_context_t * ctx, sdp_payload_t * payload, char *med sdp_message_a_attribute_add (offer, payload->line, osip_strdup ("fmtp"), attr_field); } + switch (payload->holdon) + { + case HOLD_ON : + /* we need to add a global attribute with a field set to "sendonly" when holding on */ + sdp_message_a_attribute_add (offer, payload->line, osip_strdup ("sendonly"),NULL); + break; + case HOLD_OFF : + /* we need to add a global attribute with a field set to "sendonly" when holding on */ + sdp_message_a_attribute_add (offer, payload->line, osip_strdup ("sendrecv"),NULL); + break; + default: + //ms_message("do not need to set sendonly or sendrecv"); + break; + } + if (payload->b_as_bandwidth != 0) { if (sdp_message_bandwidth_get(offer,payload->line,0)==NULL){ diff --git a/linphone_avant_multi/coreapi/sdphandler.h b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/sdphandler.h index b3e811b..3bb7413 100644 --- a/linphone_avant_multi/coreapi/sdphandler.h +++ b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/sdphandler.h @@ -40,6 +40,7 @@ typedef struct _sdp_payload int relay_port; char *relay_session_id; int a_ptime; + int holdon; /* Infom that the callee will not receive anything from us */ } sdp_payload_t; typedef struct _sdp_context sdp_context_t; @@ -80,6 +81,9 @@ struct _sdp_context char *relay_session_id; int negoc_status; /* in sip code */ int incb; + int holdon; /* which permit to say that the distant sip phone will just send and not receive anything */ + int session_id; + int session_version; sdp_context_state_t state; }; diff --git a/linphone_avant_multi/coreapi/siplogin.c b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/siplogin.c diff --git a/linphone_avant_multi/coreapi/sipsetup.c b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/sipsetup.c diff --git a/linphone_avant_multi/coreapi/sipsetup.h b/linphone_multi_20100216_avec_video_sans_autogen/coreapi/sipsetup.h diff --git a/linphone_avant_multi/gen-gtkfilelist.sh b/linphone_multi_20100216_avec_video_sans_autogen/gen-gtkfilelist.sh diff --git a/linphone_avant_multi/gtk+-2.16.2.filelist b/linphone_multi_20100216_avec_video_sans_autogen/gtk+-2.16.2.filelist diff --git a/linphone_avant_multi/gtk+-2.16.6.filelist b/linphone_multi_20100216_avec_video_sans_autogen/gtk+-2.16.6.filelist diff --git a/linphone_avant_multi/gtk+-2.18.5.filelist b/linphone_multi_20100216_avec_video_sans_autogen/gtk+-2.18.5.filelist diff --git a/linphone_avant_multi/gtk-glade/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/.gitignore diff --git a/linphone_avant_multi/gtk-glade/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/Makefile.am diff --git a/linphone_avant_multi/gtk-glade/about.glade b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/about.glade diff --git a/linphone_avant_multi/gtk-glade/buddylookup.c b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/buddylookup.c diff --git a/linphone_avant_multi/gtk-glade/buddylookup.glade b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/buddylookup.glade diff --git a/linphone_avant_multi/gtk-glade/call_logs.glade b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/call_logs.glade diff --git a/linphone_avant_multi/gtk-glade/calllogs.c b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/calllogs.c diff --git a/linphone_avant_multi/gtk-glade/chat.c b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/chat.c diff --git a/linphone_avant_multi/gtk-glade/chatroom.glade b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/chatroom.glade diff --git a/linphone_avant_multi/gtk-glade/contact.glade b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/contact.glade diff --git a/linphone_avant_multi/gtk-glade/fonis.c b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/fonis.c diff --git a/linphone_avant_multi/gtk-glade/friendlist.c b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/friendlist.c diff --git a/linphone_avant_multi/gtk-glade/gtkrc b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/gtkrc diff --git a/linphone_avant_multi/gtk-glade/incall_view.c b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/incall_view.c diff --git a/linphone_avant_multi/gtk-glade/incoming_call.glade b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/incoming_call.glade diff --git a/linphone_avant_multi/gtk-glade/linphone.h b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/linphone.h diff --git a/linphone_avant_multi/gtk-glade/linphone.ico b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/linphone.ico diff --git a/linphone_avant_multi/gtk-glade/linphone.iss b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/linphone.iss diff --git a/linphone_avant_multi/gtk-glade/linphone.png b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/linphone.png diff --git a/linphone_avant_multi/gtk-glade/linphone.rc b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/linphone.rc diff --git a/linphone_avant_multi/gtk-glade/linphone2.png b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/linphone2.png diff --git a/linphone_avant_multi/gtk-glade/log.glade b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/log.glade diff --git a/linphone_avant_multi/gtk-glade/logging.c b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/logging.c diff --git a/linphone_avant_multi/gtk-glade/loginframe.c b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/loginframe.c diff --git a/linphone_avant_multi/gtk-glade/main.c b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/main.c diff --git a/linphone_avant_multi/gtk-glade/main.glade b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/main.glade diff --git a/linphone_avant_multi/gtk-glade/p2pwizard.glade b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/p2pwizard.glade diff --git a/linphone_avant_multi/gtk-glade/parameters.glade b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/parameters.glade diff --git a/linphone_avant_multi/gtk-glade/password.glade b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/password.glade diff --git a/linphone_avant_multi/gtk-glade/propertybox.c b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/propertybox.c diff --git a/linphone_avant_multi/gtk-glade/setupwizard.c b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/setupwizard.c diff --git a/linphone_avant_multi/gtk-glade/sip_account.glade b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/sip_account.glade diff --git a/linphone_avant_multi/gtk-glade/stock_people.png b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/stock_people.png diff --git a/linphone_avant_multi/gtk-glade/support.c b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/support.c diff --git a/linphone_avant_multi/gtk-glade/update.c b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/update.c diff --git a/linphone_avant_multi/gtk-glade/utils.c b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/utils.c diff --git a/linphone_avant_multi/gtk-glade/waiting.glade b/linphone_multi_20100216_avec_video_sans_autogen/gtk-glade/waiting.glade diff --git a/linphone_avant_multi/intl/ChangeLog b/linphone_multi_20100216_avec_video_sans_autogen/intl/ChangeLog diff --git a/linphone_avant_multi/intl/Makefile.in b/linphone_multi_20100216_avec_video_sans_autogen/intl/Makefile.in diff --git a/linphone_avant_multi/intl/VERSION b/linphone_multi_20100216_avec_video_sans_autogen/intl/VERSION diff --git a/linphone_avant_multi/intl/bindtextdom.c b/linphone_multi_20100216_avec_video_sans_autogen/intl/bindtextdom.c diff --git a/linphone_avant_multi/intl/cat-compat.c b/linphone_multi_20100216_avec_video_sans_autogen/intl/cat-compat.c diff --git a/linphone_avant_multi/intl/dcgettext.c b/linphone_multi_20100216_avec_video_sans_autogen/intl/dcgettext.c diff --git a/linphone_avant_multi/intl/dgettext.c b/linphone_multi_20100216_avec_video_sans_autogen/intl/dgettext.c diff --git a/linphone_avant_multi/intl/explodename.c b/linphone_multi_20100216_avec_video_sans_autogen/intl/explodename.c diff --git a/linphone_avant_multi/intl/finddomain.c b/linphone_multi_20100216_avec_video_sans_autogen/intl/finddomain.c diff --git a/linphone_avant_multi/intl/gettext.c b/linphone_multi_20100216_avec_video_sans_autogen/intl/gettext.c diff --git a/linphone_avant_multi/intl/gettext.h b/linphone_multi_20100216_avec_video_sans_autogen/intl/gettext.h diff --git a/linphone_avant_multi/intl/gettextP.h b/linphone_multi_20100216_avec_video_sans_autogen/intl/gettextP.h diff --git a/linphone_avant_multi/intl/hash-string.h b/linphone_multi_20100216_avec_video_sans_autogen/intl/hash-string.h diff --git a/linphone_avant_multi/intl/intl-compat.c b/linphone_multi_20100216_avec_video_sans_autogen/intl/intl-compat.c diff --git a/linphone_avant_multi/intl/l10nflist.c b/linphone_multi_20100216_avec_video_sans_autogen/intl/l10nflist.c diff --git a/linphone_avant_multi/intl/libgettext.h b/linphone_multi_20100216_avec_video_sans_autogen/intl/libgettext.h diff --git a/linphone_avant_multi/intl/linux-msg.sed b/linphone_multi_20100216_avec_video_sans_autogen/intl/linux-msg.sed diff --git a/linphone_avant_multi/intl/loadinfo.h b/linphone_multi_20100216_avec_video_sans_autogen/intl/loadinfo.h diff --git a/linphone_avant_multi/intl/loadmsgcat.c b/linphone_multi_20100216_avec_video_sans_autogen/intl/loadmsgcat.c diff --git a/linphone_avant_multi/intl/localealias.c b/linphone_multi_20100216_avec_video_sans_autogen/intl/localealias.c diff --git a/linphone_avant_multi/intl/po2tbl.sed.in b/linphone_multi_20100216_avec_video_sans_autogen/intl/po2tbl.sed.in diff --git a/linphone_avant_multi/intl/textdomain.c b/linphone_multi_20100216_avec_video_sans_autogen/intl/textdomain.c diff --git a/linphone_avant_multi/intl/xopen-msg.sed b/linphone_multi_20100216_avec_video_sans_autogen/intl/xopen-msg.sed diff --git a/linphone_avant_multi/intltool-extract.in b/linphone_multi_20100216_avec_video_sans_autogen/intltool-extract.in diff --git a/linphone_avant_multi/intltool-merge.in b/linphone_multi_20100216_avec_video_sans_autogen/intltool-merge.in diff --git a/linphone_avant_multi/intltool-update.in b/linphone_multi_20100216_avec_video_sans_autogen/intltool-update.in diff --git a/linphone_avant_multi/linphone-deps.filelist b/linphone_multi_20100216_avec_video_sans_autogen/linphone-deps.filelist diff --git a/linphone_avant_multi/linphone.iss.in b/linphone_multi_20100216_avec_video_sans_autogen/linphone.iss.in diff --git a/linphone_avant_multi/linphone.kdevelop b/linphone_multi_20100216_avec_video_sans_autogen/linphone.kdevelop diff --git a/linphone_avant_multi/linphone.spec.in b/linphone_multi_20100216_avec_video_sans_autogen/linphone.spec.in diff --git a/linphone_avant_multi/m4/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/m4/.gitignore diff --git a/linphone_avant_multi/m4/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/m4/Makefile.am diff --git a/linphone_avant_multi/m4/codeset.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/codeset.m4 diff --git a/linphone_avant_multi/m4/exosip.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/exosip.m4 diff --git a/linphone_avant_multi/m4/gettext.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/gettext.m4 diff --git a/linphone_avant_multi/m4/glibc2.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/glibc2.m4 diff --git a/linphone_avant_multi/m4/glibc21.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/glibc21.m4 diff --git a/linphone_avant_multi/m4/iconv.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/iconv.m4 diff --git a/linphone_avant_multi/m4/ilbc.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/ilbc.m4 diff --git a/linphone_avant_multi/m4/intdiv0.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/intdiv0.m4 diff --git a/linphone_avant_multi/m4/intl.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/intl.m4 diff --git a/linphone_avant_multi/m4/intldir.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/intldir.m4 diff --git a/linphone_avant_multi/m4/intmax.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/intmax.m4 diff --git a/linphone_avant_multi/m4/inttypes-pri.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/inttypes-pri.m4 diff --git a/linphone_avant_multi/m4/inttypes.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/inttypes.m4 diff --git a/linphone_avant_multi/m4/inttypes_h.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/inttypes_h.m4 diff --git a/linphone_avant_multi/m4/isc-posix.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/isc-posix.m4 diff --git a/linphone_avant_multi/m4/lcmessage.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/lcmessage.m4 diff --git a/linphone_avant_multi/m4/lib-ld.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/lib-ld.m4 diff --git a/linphone_avant_multi/m4/lib-link.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/lib-link.m4 diff --git a/linphone_avant_multi/m4/lib-prefix.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/lib-prefix.m4 diff --git a/linphone_avant_multi/m4/lock.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/lock.m4 diff --git a/linphone_avant_multi/m4/longdouble.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/longdouble.m4 diff --git a/linphone_avant_multi/m4/longlong.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/longlong.m4 diff --git a/linphone_avant_multi/m4/nls.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/nls.m4 diff --git a/linphone_avant_multi/m4/ortp.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/ortp.m4 diff --git a/linphone_avant_multi/m4/osip.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/osip.m4 diff --git a/linphone_avant_multi/m4/po.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/po.m4 diff --git a/linphone_avant_multi/m4/printf-posix.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/printf-posix.m4 diff --git a/linphone_avant_multi/m4/progtest.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/progtest.m4 diff --git a/linphone_avant_multi/m4/readline.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/readline.m4 diff --git a/linphone_avant_multi/m4/signed.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/signed.m4 diff --git a/linphone_avant_multi/m4/size_max.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/size_max.m4 diff --git a/linphone_avant_multi/m4/stdint_h.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/stdint_h.m4 diff --git a/linphone_avant_multi/m4/uintmax_t.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/uintmax_t.m4 diff --git a/linphone_avant_multi/m4/ulonglong.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/ulonglong.m4 diff --git a/linphone_avant_multi/m4/video.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/video.m4 diff --git a/linphone_avant_multi/m4/visibility.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/visibility.m4 diff --git a/linphone_avant_multi/m4/wchar_t.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/wchar_t.m4 diff --git a/linphone_avant_multi/m4/wint_t.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/wint_t.m4 diff --git a/linphone_avant_multi/m4/xsize.m4 b/linphone_multi_20100216_avec_video_sans_autogen/m4/xsize.m4 diff --git a/linphone_avant_multi/media_api/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/media_api/.gitignore diff --git a/linphone_avant_multi/media_api/DESIGN.txt b/linphone_multi_20100216_avec_video_sans_autogen/media_api/DESIGN.txt diff --git a/linphone_avant_multi/media_api/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/media_api/Makefile.am diff --git a/linphone_avant_multi/media_api/apitest.c b/linphone_multi_20100216_avec_video_sans_autogen/media_api/apitest.c diff --git a/linphone_avant_multi/media_api/apitest.h b/linphone_multi_20100216_avec_video_sans_autogen/media_api/apitest.h diff --git a/linphone_avant_multi/media_api/basiccall.c b/linphone_multi_20100216_avec_video_sans_autogen/media_api/basiccall.c diff --git a/linphone_avant_multi/media_api/basiccall.h b/linphone_multi_20100216_avec_video_sans_autogen/media_api/basiccall.h diff --git a/linphone_avant_multi/media_api/callmember.c b/linphone_multi_20100216_avec_video_sans_autogen/media_api/callmember.c diff --git a/linphone_avant_multi/media_api/callmember.h b/linphone_multi_20100216_avec_video_sans_autogen/media_api/callmember.h diff --git a/linphone_avant_multi/media_api/ccl b/linphone_multi_20100216_avec_video_sans_autogen/media_api/ccl diff --git a/linphone_avant_multi/media_api/common.h b/linphone_multi_20100216_avec_video_sans_autogen/media_api/common.h diff --git a/linphone_avant_multi/media_api/media_api.c b/linphone_multi_20100216_avec_video_sans_autogen/media_api/media_api.c diff --git a/linphone_avant_multi/media_api/media_api.h b/linphone_multi_20100216_avec_video_sans_autogen/media_api/media_api.h diff --git a/linphone_avant_multi/media_api/mediaflow.c b/linphone_multi_20100216_avec_video_sans_autogen/media_api/mediaflow.c diff --git a/linphone_avant_multi/media_api/mediaflow.h b/linphone_multi_20100216_avec_video_sans_autogen/media_api/mediaflow.h diff --git a/linphone_avant_multi/mediastreamer2/.git/FETCH_HEAD b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/FETCH_HEAD diff --git a/linphone_avant_multi/mediastreamer2/.git/HEAD b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/HEAD diff --git a/linphone_avant_multi/mediastreamer2/.git/config b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/config diff --git a/linphone_avant_multi/mediastreamer2/.git/description b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/description diff --git a/linphone_avant_multi/mediastreamer2/.git/hooks/applypatch-msg.sample b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/hooks/applypatch-msg.sample diff --git a/linphone_avant_multi/mediastreamer2/.git/hooks/commit-msg.sample b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/hooks/commit-msg.sample diff --git a/linphone_avant_multi/mediastreamer2/.git/hooks/post-commit.sample b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/hooks/post-commit.sample diff --git a/linphone_avant_multi/mediastreamer2/.git/hooks/post-receive.sample b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/hooks/post-receive.sample diff --git a/linphone_avant_multi/mediastreamer2/.git/hooks/post-update.sample b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/hooks/post-update.sample diff --git a/linphone_avant_multi/mediastreamer2/.git/hooks/pre-applypatch.sample b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/hooks/pre-applypatch.sample diff --git a/linphone_avant_multi/mediastreamer2/.git/hooks/pre-commit.sample b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/hooks/pre-commit.sample diff --git a/linphone_avant_multi/mediastreamer2/.git/hooks/pre-rebase.sample b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/hooks/pre-rebase.sample diff --git a/linphone_avant_multi/mediastreamer2/.git/hooks/prepare-commit-msg.sample b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/hooks/prepare-commit-msg.sample diff --git a/linphone_avant_multi/mediastreamer2/.git/hooks/update.sample b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/hooks/update.sample diff --git a/linphone_avant_multi/mediastreamer2/.git/index b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/index diff --git a/linphone_avant_multi/mediastreamer2/.git/info/exclude b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/info/exclude diff --git a/linphone_avant_multi/mediastreamer2/.git/logs/HEAD b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/logs/HEAD diff --git a/linphone_avant_multi/mediastreamer2/.git/logs/refs/heads/master b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/logs/refs/heads/master diff --git a/linphone_avant_multi/mediastreamer2/.git/objects/pack/pack-62d586cb60fe2fff1bf9a3b25904d6a9b8c7b115.idx b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/objects/pack/pack-62d586cb60fe2fff1bf9a3b25904d6a9b8c7b115.idx diff --git a/linphone_avant_multi/mediastreamer2/.git/objects/pack/pack-62d586cb60fe2fff1bf9a3b25904d6a9b8c7b115.pack b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/objects/pack/pack-62d586cb60fe2fff1bf9a3b25904d6a9b8c7b115.pack diff --git a/linphone_avant_multi/mediastreamer2/.git/packed-refs b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/packed-refs diff --git a/linphone_avant_multi/mediastreamer2/.git/refs/heads/master b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/refs/heads/master diff --git a/linphone_avant_multi/mediastreamer2/.git/refs/remotes/origin/HEAD b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/.git/refs/remotes/origin/HEAD diff --git a/linphone_avant_multi/mediastreamer2/AUTHORS b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/AUTHORS diff --git a/linphone_avant_multi/mediastreamer2/COPYING b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/COPYING diff --git a/linphone_avant_multi/mediastreamer2/ChangeLog b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/ChangeLog diff --git a/linphone_avant_multi/mediastreamer2/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/Makefile.am diff --git a/linphone_avant_multi/mediastreamer2/Makefile.macosx b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/Makefile.macosx diff --git a/linphone_avant_multi/mediastreamer2/NEWS b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/NEWS diff --git a/linphone_avant_multi/mediastreamer2/README b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/README diff --git a/linphone_avant_multi/mediastreamer2/acinclude.m4 b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/acinclude.m4 diff --git a/linphone_avant_multi/mediastreamer2/autogen.sh b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/autogen.sh diff --git a/linphone_avant_multi/mediastreamer2/build/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/.gitignore diff --git a/linphone_avant_multi/mediastreamer2/build/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/Makefile.am diff --git a/linphone_avant_multi/mediastreamer2/build/win32-novideo/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/win32-novideo/.gitignore diff --git a/linphone_avant_multi/mediastreamer2/build/win32-novideo/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/win32-novideo/Makefile.am diff --git a/linphone_avant_multi/mediastreamer2/build/win32-novideo/alldescs.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/win32-novideo/alldescs.h diff --git a/linphone_avant_multi/mediastreamer2/build/win32-novideo/mediastream.vcproj b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/win32-novideo/mediastream.vcproj diff --git a/linphone_avant_multi/mediastreamer2/build/win32-novideo/mediastreamer2.def b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/win32-novideo/mediastreamer2.def diff --git a/linphone_avant_multi/mediastreamer2/build/win32-novideo/mediastreamer2.vcproj b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/win32-novideo/mediastreamer2.vcproj diff --git a/linphone_avant_multi/mediastreamer2/build/win32native/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/win32native/.gitignore diff --git a/linphone_avant_multi/mediastreamer2/build/win32native/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/win32native/Makefile.am diff --git a/linphone_avant_multi/mediastreamer2/build/win32native/alldescs.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/win32native/alldescs.h diff --git a/linphone_avant_multi/mediastreamer2/build/win32native/mediastream.vcproj b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/win32native/mediastream.vcproj diff --git a/linphone_avant_multi/mediastreamer2/build/win32native/mediastreamer2.def b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/win32native/mediastreamer2.def diff --git a/linphone_avant_multi/mediastreamer2/build/win32native/mediastreamer2.vcproj b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/win32native/mediastreamer2.vcproj diff --git a/linphone_avant_multi/mediastreamer2/build/win32native/videodisplay.vcproj b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/win32native/videodisplay.vcproj diff --git a/linphone_avant_multi/mediastreamer2/build/wince/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/wince/.gitignore diff --git a/linphone_avant_multi/mediastreamer2/build/wince/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/wince/Makefile.am diff --git a/linphone_avant_multi/mediastreamer2/build/wince/alldescs.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/wince/alldescs.h diff --git a/linphone_avant_multi/mediastreamer2/build/wince/mediastreamer2.def b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/wince/mediastreamer2.def diff --git a/linphone_avant_multi/mediastreamer2/build/wince/mediastreamer2.vcproj b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/wince/mediastreamer2.vcproj diff --git a/linphone_avant_multi/mediastreamer2/build/winmob/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/winmob/Makefile.am diff --git a/linphone_avant_multi/mediastreamer2/build/winmob/alldescs.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/winmob/alldescs.h diff --git a/linphone_avant_multi/mediastreamer2/build/winmob/echo/echo.vcproj b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/winmob/echo/echo.vcproj diff --git a/linphone_avant_multi/mediastreamer2/build/winmob/mediastreamer2.def b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/winmob/mediastreamer2.def diff --git a/linphone_avant_multi/mediastreamer2/build/winmob/mediastreamer2.sln b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/winmob/mediastreamer2.sln diff --git a/linphone_avant_multi/mediastreamer2/build/winmob/mediastreamer2.vcproj b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/build/winmob/mediastreamer2.vcproj diff --git a/linphone_avant_multi/mediastreamer2/configure.ac b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/configure.ac diff --git a/linphone_avant_multi/mediastreamer2/help/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/help/.gitignore diff --git a/linphone_avant_multi/mediastreamer2/help/Doxyfile.in b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/help/Doxyfile.in diff --git a/linphone_avant_multi/mediastreamer2/help/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/help/Makefile.am diff --git a/linphone_avant_multi/mediastreamer2/help/doxygen.dox.in b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/help/doxygen.dox.in diff --git a/linphone_avant_multi/mediastreamer2/help/ht0-buildagraph.dox b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/help/ht0-buildagraph.dox diff --git a/linphone_avant_multi/mediastreamer2/include/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/.gitignore diff --git a/linphone_avant_multi/mediastreamer2/include/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/Makefile.am diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/.gitignore diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/Makefile.am diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/allfilters.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/allfilters.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/dsptools.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/dsptools.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/dtmfgen.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/dtmfgen.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/ice.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/ice.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/mediastream.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/mediastream.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/mscommon.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/mscommon.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/msequalizer.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/msequalizer.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/msfileplayer.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/msfileplayer.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/msfilerec.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/msfilerec.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/msfilter.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/msfilter.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/msqueue.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/msqueue.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/msrtp.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/msrtp.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/mssndcard.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/mssndcard.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/msspeexec.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/msspeexec.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/mstee.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/mstee.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/msticker.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/msticker.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/msv4l.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/msv4l.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/msvideo.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/msvideo.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/msvideoout.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/msvideoout.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/msvolume.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/msvolume.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/mswebcam.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/mswebcam.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/rfc3984.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/rfc3984.h diff --git a/linphone_avant_multi/mediastreamer2/include/mediastreamer2/waveheader.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/include/mediastreamer2/waveheader.h diff --git a/linphone_avant_multi/mediastreamer2/mediastreamer.pc.in b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/mediastreamer.pc.in diff --git a/linphone_avant_multi/mediastreamer2/mediastreamer2.spec.in b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/mediastreamer2.spec.in diff --git a/linphone_avant_multi/mediastreamer2/pkg.list b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/pkg.list diff --git a/linphone_avant_multi/mediastreamer2/plugins/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/.gitignore diff --git a/linphone_avant_multi/mediastreamer2/plugins/msilbc/AUTHORS b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msilbc/AUTHORS diff --git a/linphone_avant_multi/mediastreamer2/plugins/msilbc/COPYING b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msilbc/COPYING diff --git a/linphone_avant_multi/mediastreamer2/plugins/msilbc/ChangeLog b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msilbc/ChangeLog diff --git a/linphone_avant_multi/mediastreamer2/plugins/msilbc/INSTALL b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msilbc/INSTALL diff --git a/linphone_avant_multi/mediastreamer2/plugins/msilbc/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msilbc/Makefile.am diff --git a/linphone_avant_multi/mediastreamer2/plugins/msilbc/NEWS b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msilbc/NEWS diff --git a/linphone_avant_multi/mediastreamer2/plugins/msilbc/README b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msilbc/README diff --git a/linphone_avant_multi/mediastreamer2/plugins/msilbc/autogen.sh b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msilbc/autogen.sh diff --git a/linphone_avant_multi/mediastreamer2/plugins/msilbc/configure.ac b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msilbc/configure.ac diff --git a/linphone_avant_multi/mediastreamer2/plugins/msilbc/ilbc-rfc3951.tar.gz b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msilbc/ilbc-rfc3951.tar.gz diff --git a/linphone_avant_multi/mediastreamer2/plugins/msilbc/ilbc.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msilbc/ilbc.c diff --git a/linphone_avant_multi/mediastreamer2/plugins/msx264/AUTHORS b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msx264/AUTHORS diff --git a/linphone_avant_multi/mediastreamer2/plugins/msx264/COPYING b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msx264/COPYING diff --git a/linphone_avant_multi/mediastreamer2/plugins/msx264/ChangeLog b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msx264/ChangeLog diff --git a/linphone_avant_multi/mediastreamer2/plugins/msx264/INSTALL b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msx264/INSTALL diff --git a/linphone_avant_multi/mediastreamer2/plugins/msx264/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msx264/Makefile.am diff --git a/linphone_avant_multi/mediastreamer2/plugins/msx264/NEWS b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msx264/NEWS diff --git a/linphone_avant_multi/mediastreamer2/plugins/msx264/README b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msx264/README diff --git a/linphone_avant_multi/mediastreamer2/plugins/msx264/autogen.sh b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msx264/autogen.sh diff --git a/linphone_avant_multi/mediastreamer2/plugins/msx264/configure.ac b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msx264/configure.ac diff --git a/linphone_avant_multi/mediastreamer2/plugins/msx264/msx264.iss.in b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msx264/msx264.iss.in diff --git a/linphone_avant_multi/mediastreamer2/plugins/msx264/src/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msx264/src/Makefile.am diff --git a/linphone_avant_multi/mediastreamer2/plugins/msx264/src/msx264.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/plugins/msx264/src/msx264.c diff --git a/linphone_avant_multi/mediastreamer2/src/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/.gitignore diff --git a/linphone_avant_multi/mediastreamer2/src/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/Makefile.am diff --git a/linphone_avant_multi/mediastreamer2/src/_kiss_fft_guts.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/_kiss_fft_guts.h diff --git a/linphone_avant_multi/mediastreamer2/src/alaw.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/alaw.c diff --git a/linphone_avant_multi/mediastreamer2/src/alsa.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/alsa.c diff --git a/linphone_avant_multi/mediastreamer2/src/aqsnd.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/aqsnd.c diff --git a/linphone_avant_multi/mediastreamer2/src/arts.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/arts.c diff --git a/linphone_avant_multi/mediastreamer2/src/audiostream.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/audiostream.c diff --git a/linphone_avant_multi/mediastreamer2/src/dsptools.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/dsptools.c diff --git a/linphone_avant_multi/mediastreamer2/src/dtmfgen.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/dtmfgen.c diff --git a/linphone_avant_multi/mediastreamer2/src/dxfilter.cpp b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/dxfilter.cpp diff --git a/linphone_avant_multi/mediastreamer2/src/dxfilter.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/dxfilter.h diff --git a/linphone_avant_multi/mediastreamer2/src/equalizer.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/equalizer.c diff --git a/linphone_avant_multi/mediastreamer2/src/ffmpeg-priv.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/ffmpeg-priv.h diff --git a/linphone_avant_multi/mediastreamer2/src/g711common.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/g711common.h diff --git a/linphone_avant_multi/mediastreamer2/src/gsm.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/gsm.c diff --git a/linphone_avant_multi/mediastreamer2/src/ice.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/ice.c diff --git a/linphone_avant_multi/mediastreamer2/src/kiss_fft.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/kiss_fft.c diff --git a/linphone_avant_multi/mediastreamer2/src/kiss_fft.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/kiss_fft.h diff --git a/linphone_avant_multi/mediastreamer2/src/kiss_fftr.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/kiss_fftr.c diff --git a/linphone_avant_multi/mediastreamer2/src/kiss_fftr.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/kiss_fftr.h diff --git a/linphone_avant_multi/mediastreamer2/src/macsnd.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/macsnd.c diff --git a/linphone_avant_multi/mediastreamer2/src/mire.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/mire.c diff --git a/linphone_avant_multi/mediastreamer2/src/mscommon.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/mscommon.c diff --git a/linphone_avant_multi/mediastreamer2/src/msconf.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/msconf.c diff --git a/linphone_avant_multi/mediastreamer2/src/msdscap-mingw.cc b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/msdscap-mingw.cc diff --git a/linphone_avant_multi/mediastreamer2/src/msfileplayer.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/msfileplayer.c diff --git a/linphone_avant_multi/mediastreamer2/src/msfileplayer_win.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/msfileplayer_win.c diff --git a/linphone_avant_multi/mediastreamer2/src/msfilerec.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/msfilerec.c diff --git a/linphone_avant_multi/mediastreamer2/src/msfilerec_win.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/msfilerec_win.c diff --git a/linphone_avant_multi/mediastreamer2/src/msfilter.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/msfilter.c diff --git a/linphone_avant_multi/mediastreamer2/src/msjoin.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/msjoin.c diff --git a/linphone_avant_multi/mediastreamer2/src/msqueue.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/msqueue.c diff --git a/linphone_avant_multi/mediastreamer2/src/msresample.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/msresample.c diff --git a/linphone_avant_multi/mediastreamer2/src/msrtp.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/msrtp.c diff --git a/linphone_avant_multi/mediastreamer2/src/mssndcard.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/mssndcard.c diff --git a/linphone_avant_multi/mediastreamer2/src/msspeex.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/msspeex.c diff --git a/linphone_avant_multi/mediastreamer2/src/msticker.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/msticker.c diff --git a/linphone_avant_multi/mediastreamer2/src/msv4l.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/msv4l.c diff --git a/linphone_avant_multi/mediastreamer2/src/msv4l2.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/msv4l2.c diff --git a/linphone_avant_multi/mediastreamer2/src/msv4m.m b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/msv4m.m diff --git a/linphone_avant_multi/mediastreamer2/src/msvideo.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/msvideo.c diff --git a/linphone_avant_multi/mediastreamer2/src/msvolume.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/msvolume.c diff --git a/linphone_avant_multi/mediastreamer2/src/mswebcam.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/mswebcam.c diff --git a/linphone_avant_multi/mediastreamer2/src/mtu.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/mtu.c diff --git a/linphone_avant_multi/mediastreamer2/src/nowebcam.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/nowebcam.c diff --git a/linphone_avant_multi/mediastreamer2/src/nowebcam.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/nowebcam.h diff --git a/linphone_avant_multi/mediastreamer2/src/nowebcamCIF.jpg b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/nowebcamCIF.jpg diff --git a/linphone_avant_multi/mediastreamer2/src/oss.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/oss.c diff --git a/linphone_avant_multi/mediastreamer2/src/pasnd.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/pasnd.c diff --git a/linphone_avant_multi/mediastreamer2/src/pixconv.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/pixconv.c diff --git a/linphone_avant_multi/mediastreamer2/src/rfc2429.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/rfc2429.h diff --git a/linphone_avant_multi/mediastreamer2/src/rfc3984.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/rfc3984.c diff --git a/linphone_avant_multi/mediastreamer2/src/sdlout.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/sdlout.c diff --git a/linphone_avant_multi/mediastreamer2/src/sizeconv.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/sizeconv.c diff --git a/linphone_avant_multi/mediastreamer2/src/speexec.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/speexec.c diff --git a/linphone_avant_multi/mediastreamer2/src/swscale.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/swscale.h diff --git a/linphone_avant_multi/mediastreamer2/src/tee.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/tee.c diff --git a/linphone_avant_multi/mediastreamer2/src/theora.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/theora.c diff --git a/linphone_avant_multi/mediastreamer2/src/ulaw.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/ulaw.c diff --git a/linphone_avant_multi/mediastreamer2/src/vfw-missing.h b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/vfw-missing.h diff --git a/linphone_avant_multi/mediastreamer2/src/videodec.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/videodec.c diff --git a/linphone_avant_multi/mediastreamer2/src/videoenc.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/videoenc.c diff --git a/linphone_avant_multi/mediastreamer2/src/videoout.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/videoout.c diff --git a/linphone_avant_multi/mediastreamer2/src/videostream.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/videostream.c diff --git a/linphone_avant_multi/mediastreamer2/src/void.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/void.c diff --git a/linphone_avant_multi/mediastreamer2/src/wincevideods.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/wincevideods.c diff --git a/linphone_avant_multi/mediastreamer2/src/winsnd.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/winsnd.c diff --git a/linphone_avant_multi/mediastreamer2/src/winsnd2.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/winsnd2.c diff --git a/linphone_avant_multi/mediastreamer2/src/winsnd3.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/winsnd3.c diff --git a/linphone_avant_multi/mediastreamer2/src/winsndds.cpp b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/winsndds.cpp diff --git a/linphone_avant_multi/mediastreamer2/src/winvideo.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/winvideo.c diff --git a/linphone_avant_multi/mediastreamer2/src/winvideo2.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/winvideo2.c diff --git a/linphone_avant_multi/mediastreamer2/src/winvideods.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/src/winvideods.c diff --git a/linphone_avant_multi/mediastreamer2/tests/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/tests/.gitignore diff --git a/linphone_avant_multi/mediastreamer2/tests/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/tests/Makefile.am diff --git a/linphone_avant_multi/mediastreamer2/tests/bench.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/tests/bench.c diff --git a/linphone_avant_multi/mediastreamer2/tests/echo.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/tests/echo.c diff --git a/linphone_avant_multi/mediastreamer2/tests/mediastream.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/tests/mediastream.c diff --git a/linphone_avant_multi/mediastreamer2/tests/mtudiscover.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/tests/mtudiscover.c diff --git a/linphone_avant_multi/mediastreamer2/tests/ring.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/tests/ring.c diff --git a/linphone_avant_multi/mediastreamer2/tests/videodisplay.c b/linphone_multi_20100216_avec_video_sans_autogen/mediastreamer2/tests/videodisplay.c diff --git a/linphone_avant_multi/oRTP/.git/FETCH_HEAD b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/FETCH_HEAD diff --git a/linphone_avant_multi/oRTP/.git/HEAD b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/HEAD diff --git a/linphone_avant_multi/oRTP/.git/config b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/config diff --git a/linphone_avant_multi/oRTP/.git/description b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/description diff --git a/linphone_avant_multi/oRTP/.git/hooks/applypatch-msg.sample b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/hooks/applypatch-msg.sample diff --git a/linphone_avant_multi/oRTP/.git/hooks/commit-msg.sample b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/hooks/commit-msg.sample diff --git a/linphone_avant_multi/oRTP/.git/hooks/post-commit.sample b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/hooks/post-commit.sample diff --git a/linphone_avant_multi/oRTP/.git/hooks/post-receive.sample b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/hooks/post-receive.sample diff --git a/linphone_avant_multi/oRTP/.git/hooks/post-update.sample b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/hooks/post-update.sample diff --git a/linphone_avant_multi/oRTP/.git/hooks/pre-applypatch.sample b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/hooks/pre-applypatch.sample diff --git a/linphone_avant_multi/oRTP/.git/hooks/pre-commit.sample b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/hooks/pre-commit.sample diff --git a/linphone_avant_multi/oRTP/.git/hooks/pre-rebase.sample b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/hooks/pre-rebase.sample diff --git a/linphone_avant_multi/oRTP/.git/hooks/prepare-commit-msg.sample b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/hooks/prepare-commit-msg.sample diff --git a/linphone_avant_multi/oRTP/.git/hooks/update.sample b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/hooks/update.sample diff --git a/linphone_avant_multi/oRTP/.git/index b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/index diff --git a/linphone_avant_multi/oRTP/.git/info/exclude b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/info/exclude diff --git a/linphone_avant_multi/oRTP/.git/logs/HEAD b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/logs/HEAD diff --git a/linphone_avant_multi/oRTP/.git/logs/refs/heads/master b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/logs/refs/heads/master diff --git a/linphone_avant_multi/oRTP/.git/objects/pack/pack-dc0f98c0c70247b02aaa9852caca1c95c4453c83.idx b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/objects/pack/pack-dc0f98c0c70247b02aaa9852caca1c95c4453c83.idx diff --git a/linphone_avant_multi/oRTP/.git/objects/pack/pack-dc0f98c0c70247b02aaa9852caca1c95c4453c83.pack b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/objects/pack/pack-dc0f98c0c70247b02aaa9852caca1c95c4453c83.pack diff --git a/linphone_avant_multi/oRTP/.git/packed-refs b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/packed-refs diff --git a/linphone_avant_multi/oRTP/.git/refs/heads/master b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/refs/heads/master diff --git a/linphone_avant_multi/oRTP/.git/refs/remotes/origin/HEAD b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/.git/refs/remotes/origin/HEAD diff --git a/linphone_avant_multi/oRTP/AUTHORS b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/AUTHORS diff --git a/linphone_avant_multi/oRTP/COPYING b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/COPYING diff --git a/linphone_avant_multi/oRTP/ChangeLog b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/ChangeLog diff --git a/linphone_avant_multi/oRTP/INSTALL b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/INSTALL diff --git a/linphone_avant_multi/oRTP/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/Makefile.am diff --git a/linphone_avant_multi/oRTP/NEWS b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/NEWS diff --git a/linphone_avant_multi/oRTP/README b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/README diff --git a/linphone_avant_multi/oRTP/TODO b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/TODO diff --git a/linphone_avant_multi/oRTP/autogen.sh b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/autogen.sh diff --git a/linphone_avant_multi/oRTP/build/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/build/.gitignore diff --git a/linphone_avant_multi/oRTP/build/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/build/Makefile.am diff --git a/linphone_avant_multi/oRTP/build/win32native/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/build/win32native/.gitignore diff --git a/linphone_avant_multi/oRTP/build/win32native/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/build/win32native/Makefile.am diff --git a/linphone_avant_multi/oRTP/build/win32native/oRTP.vcproj b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/build/win32native/oRTP.vcproj diff --git a/linphone_avant_multi/oRTP/build/win32native/ortp.def b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/build/win32native/ortp.def diff --git a/linphone_avant_multi/oRTP/build/wince/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/build/wince/.gitignore diff --git a/linphone_avant_multi/oRTP/build/wince/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/build/wince/Makefile.am diff --git a/linphone_avant_multi/oRTP/build/wince/oRTP.vcproj b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/build/wince/oRTP.vcproj diff --git a/linphone_avant_multi/oRTP/build/wince/ortp.def b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/build/wince/ortp.def diff --git a/linphone_avant_multi/oRTP/build/winmob/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/build/winmob/Makefile.am diff --git a/linphone_avant_multi/oRTP/build/winmob/oRTP.sln b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/build/winmob/oRTP.sln diff --git a/linphone_avant_multi/oRTP/build/winmob/oRTP.vcproj b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/build/winmob/oRTP.vcproj diff --git a/linphone_avant_multi/oRTP/build/winmob/ortp.def b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/build/winmob/ortp.def diff --git a/linphone_avant_multi/oRTP/configure.ac b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/configure.ac diff --git a/linphone_avant_multi/oRTP/docs/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/docs/.gitignore diff --git a/linphone_avant_multi/oRTP/include/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/.gitignore diff --git a/linphone_avant_multi/oRTP/include/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/Makefile.am diff --git a/linphone_avant_multi/oRTP/include/ortp/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/ortp/.gitignore diff --git a/linphone_avant_multi/oRTP/include/ortp/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/ortp/Makefile.am diff --git a/linphone_avant_multi/oRTP/include/ortp/b64.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/ortp/b64.h diff --git a/linphone_avant_multi/oRTP/include/ortp/event.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/ortp/event.h diff --git a/linphone_avant_multi/oRTP/include/ortp/ortp.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/ortp/ortp.h diff --git a/linphone_avant_multi/oRTP/include/ortp/payloadtype.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/ortp/payloadtype.h diff --git a/linphone_avant_multi/oRTP/include/ortp/port.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/ortp/port.h diff --git a/linphone_avant_multi/oRTP/include/ortp/rtcp.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/ortp/rtcp.h diff --git a/linphone_avant_multi/oRTP/include/ortp/rtp.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/ortp/rtp.h diff --git a/linphone_avant_multi/oRTP/include/ortp/rtpsession.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/ortp/rtpsession.h diff --git a/linphone_avant_multi/oRTP/include/ortp/rtpsignaltable.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/ortp/rtpsignaltable.h diff --git a/linphone_avant_multi/oRTP/include/ortp/sessionset.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/ortp/sessionset.h diff --git a/linphone_avant_multi/oRTP/include/ortp/srtp.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/ortp/srtp.h diff --git a/linphone_avant_multi/oRTP/include/ortp/str_utils.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/ortp/str_utils.h diff --git a/linphone_avant_multi/oRTP/include/ortp/stun.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/ortp/stun.h diff --git a/linphone_avant_multi/oRTP/include/ortp/stun_udp.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/ortp/stun_udp.h diff --git a/linphone_avant_multi/oRTP/include/ortp/telephonyevents.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/include/ortp/telephonyevents.h diff --git a/linphone_avant_multi/oRTP/oRTP.prj b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/oRTP.prj diff --git a/linphone_avant_multi/oRTP/oRTP.pws b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/oRTP.pws diff --git a/linphone_avant_multi/oRTP/ortp.doxygen.in b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/ortp.doxygen.in diff --git a/linphone_avant_multi/oRTP/ortp.pc.in b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/ortp.pc.in diff --git a/linphone_avant_multi/oRTP/ortp.spec.in b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/ortp.spec.in diff --git a/linphone_avant_multi/oRTP/pkg.list b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/pkg.list diff --git a/linphone_avant_multi/oRTP/src/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/.gitignore diff --git a/linphone_avant_multi/oRTP/src/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/Makefile.am diff --git a/linphone_avant_multi/oRTP/src/avprofile.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/avprofile.c diff --git a/linphone_avant_multi/oRTP/src/b64.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/b64.c diff --git a/linphone_avant_multi/oRTP/src/dll_entry.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/dll_entry.c diff --git a/linphone_avant_multi/oRTP/src/event.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/event.c diff --git a/linphone_avant_multi/oRTP/src/jitterctl.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/jitterctl.c diff --git a/linphone_avant_multi/oRTP/src/jitterctl.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/jitterctl.h diff --git a/linphone_avant_multi/oRTP/src/master b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/master diff --git a/linphone_avant_multi/oRTP/src/ortp-config-win32.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/ortp-config-win32.h diff --git a/linphone_avant_multi/oRTP/src/ortp.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/ortp.c diff --git a/linphone_avant_multi/oRTP/src/payloadtype.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/payloadtype.c diff --git a/linphone_avant_multi/oRTP/src/port.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/port.c diff --git a/linphone_avant_multi/oRTP/src/posixtimer.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/posixtimer.c diff --git a/linphone_avant_multi/oRTP/src/rtcp.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/rtcp.c diff --git a/linphone_avant_multi/oRTP/src/rtcpparse.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/rtcpparse.c diff --git a/linphone_avant_multi/oRTP/src/rtpparse.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/rtpparse.c diff --git a/linphone_avant_multi/oRTP/src/rtpsession.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/rtpsession.c diff --git a/linphone_avant_multi/oRTP/src/rtpsession_inet.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/rtpsession_inet.c diff --git a/linphone_avant_multi/oRTP/src/rtpsession_priv.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/rtpsession_priv.h diff --git a/linphone_avant_multi/oRTP/src/rtpsignaltable.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/rtpsignaltable.c diff --git a/linphone_avant_multi/oRTP/src/rtptimer.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/rtptimer.c diff --git a/linphone_avant_multi/oRTP/src/rtptimer.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/rtptimer.h diff --git a/linphone_avant_multi/oRTP/src/scheduler.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/scheduler.c diff --git a/linphone_avant_multi/oRTP/src/scheduler.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/scheduler.h diff --git a/linphone_avant_multi/oRTP/src/sessionset.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/sessionset.c diff --git a/linphone_avant_multi/oRTP/src/srtp.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/srtp.c diff --git a/linphone_avant_multi/oRTP/src/str_utils.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/str_utils.c diff --git a/linphone_avant_multi/oRTP/src/stun.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/stun.c diff --git a/linphone_avant_multi/oRTP/src/stun_udp.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/stun_udp.c diff --git a/linphone_avant_multi/oRTP/src/system b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/system diff --git a/linphone_avant_multi/oRTP/src/telephonyevents.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/telephonyevents.c diff --git a/linphone_avant_multi/oRTP/src/tests/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/.gitignore diff --git a/linphone_avant_multi/oRTP/src/tests/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/Makefile.am diff --git a/linphone_avant_multi/oRTP/src/tests/mrtprecv.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/mrtprecv.c diff --git a/linphone_avant_multi/oRTP/src/tests/mrtpsend.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/mrtpsend.c diff --git a/linphone_avant_multi/oRTP/src/tests/rtpmemtest.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/rtpmemtest.c diff --git a/linphone_avant_multi/oRTP/src/tests/rtprecv.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/rtprecv.c diff --git a/linphone_avant_multi/oRTP/src/tests/rtpsend.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/rtpsend.c diff --git a/linphone_avant_multi/oRTP/src/tests/rtpsend_stupid.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/rtpsend_stupid.c diff --git a/linphone_avant_multi/oRTP/src/tests/test_timer.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/test_timer.c diff --git a/linphone_avant_multi/oRTP/src/tests/tevmrtprecv.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/tevmrtprecv.c diff --git a/linphone_avant_multi/oRTP/src/tests/tevrtprecv.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/tevrtprecv.c diff --git a/linphone_avant_multi/oRTP/src/tests/tevrtpsend.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/tevrtpsend.c diff --git a/linphone_avant_multi/oRTP/src/tests/win_receiver/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/win_receiver/.gitignore diff --git a/linphone_avant_multi/oRTP/src/tests/win_receiver/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/win_receiver/Makefile.am diff --git a/linphone_avant_multi/oRTP/src/tests/win_receiver/RTPReceiver.cpp b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/win_receiver/RTPReceiver.cpp diff --git a/linphone_avant_multi/oRTP/src/tests/win_receiver/RTPReceiver.vcproj b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/win_receiver/RTPReceiver.vcproj diff --git a/linphone_avant_multi/oRTP/src/tests/win_sender/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/win_sender/.gitignore diff --git a/linphone_avant_multi/oRTP/src/tests/win_sender/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/win_sender/Makefile.am diff --git a/linphone_avant_multi/oRTP/src/tests/win_sender/RTPSender.cpp b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/win_sender/RTPSender.cpp diff --git a/linphone_avant_multi/oRTP/src/tests/win_sender/RTPSender.vcproj b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/tests/win_sender/RTPSender.vcproj diff --git a/linphone_avant_multi/oRTP/src/utils.c b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/utils.c diff --git a/linphone_avant_multi/oRTP/src/utils.h b/linphone_multi_20100216_avec_video_sans_autogen/oRTP/src/utils.h diff --git a/linphone_avant_multi/pixmaps/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/pixmaps/.gitignore diff --git a/linphone_avant_multi/pixmaps/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/pixmaps/Makefile.am diff --git a/linphone_avant_multi/pixmaps/green.png b/linphone_multi_20100216_avec_video_sans_autogen/pixmaps/green.png diff --git a/linphone_avant_multi/pixmaps/linphone.png b/linphone_multi_20100216_avec_video_sans_autogen/pixmaps/linphone.png diff --git a/linphone_avant_multi/pixmaps/linphone2.png b/linphone_multi_20100216_avec_video_sans_autogen/pixmaps/linphone2.png diff --git a/linphone_avant_multi/pixmaps/linphone2.xpm b/linphone_multi_20100216_avec_video_sans_autogen/pixmaps/linphone2.xpm diff --git a/linphone_avant_multi/pixmaps/mic_active.png b/linphone_multi_20100216_avec_video_sans_autogen/pixmaps/mic_active.png diff --git a/linphone_avant_multi/pixmaps/mic_muted.png b/linphone_multi_20100216_avec_video_sans_autogen/pixmaps/mic_muted.png diff --git a/linphone_avant_multi/pixmaps/red.png b/linphone_multi_20100216_avec_video_sans_autogen/pixmaps/red.png diff --git a/linphone_avant_multi/pixmaps/sip-away.png b/linphone_multi_20100216_avec_video_sans_autogen/pixmaps/sip-away.png diff --git a/linphone_avant_multi/pixmaps/sip-bifm.png b/linphone_multi_20100216_avec_video_sans_autogen/pixmaps/sip-bifm.png diff --git a/linphone_avant_multi/pixmaps/sip-busy.png b/linphone_multi_20100216_avec_video_sans_autogen/pixmaps/sip-busy.png diff --git a/linphone_avant_multi/pixmaps/sip-closed.png b/linphone_multi_20100216_avec_video_sans_autogen/pixmaps/sip-closed.png diff --git a/linphone_avant_multi/pixmaps/sip-online.png b/linphone_multi_20100216_avec_video_sans_autogen/pixmaps/sip-online.png diff --git a/linphone_avant_multi/pixmaps/sip-otl.png b/linphone_multi_20100216_avec_video_sans_autogen/pixmaps/sip-otl.png diff --git a/linphone_avant_multi/pixmaps/sip-otp.png b/linphone_multi_20100216_avec_video_sans_autogen/pixmaps/sip-otp.png diff --git a/linphone_avant_multi/pixmaps/sip-wfa.png b/linphone_multi_20100216_avec_video_sans_autogen/pixmaps/sip-wfa.png diff --git a/linphone_avant_multi/po/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/po/.gitignore diff --git a/linphone_avant_multi/po/ChangeLog b/linphone_multi_20100216_avec_video_sans_autogen/po/ChangeLog diff --git a/linphone_avant_multi/po/Makevars b/linphone_multi_20100216_avec_video_sans_autogen/po/Makevars diff --git a/linphone_avant_multi/po/Makevars.template b/linphone_multi_20100216_avec_video_sans_autogen/po/Makevars.template diff --git a/linphone_avant_multi/po/POTFILES.in b/linphone_multi_20100216_avec_video_sans_autogen/po/POTFILES.in diff --git a/linphone_avant_multi/po/POTFILES.skip b/linphone_multi_20100216_avec_video_sans_autogen/po/POTFILES.skip diff --git a/linphone_avant_multi/po/Rules-quot b/linphone_multi_20100216_avec_video_sans_autogen/po/Rules-quot diff --git a/linphone_avant_multi/po/boldquot.sed b/linphone_multi_20100216_avec_video_sans_autogen/po/boldquot.sed diff --git a/linphone_avant_multi/po/cat-id-tbl.c b/linphone_multi_20100216_avec_video_sans_autogen/po/cat-id-tbl.c diff --git a/linphone_avant_multi/po/cs.po b/linphone_multi_20100216_avec_video_sans_autogen/po/cs.po diff --git a/linphone_avant_multi/po/de.po b/linphone_multi_20100216_avec_video_sans_autogen/po/de.po diff --git a/linphone_avant_multi/po/address@hidden b/linphone_multi_20100216_avec_video_sans_autogen/po/address@hidden diff --git a/linphone_avant_multi/po/address@hidden b/linphone_multi_20100216_avec_video_sans_autogen/po/address@hidden diff --git a/linphone_avant_multi/po/es.po b/linphone_multi_20100216_avec_video_sans_autogen/po/es.po diff --git a/linphone_avant_multi/po/fr.po b/linphone_multi_20100216_avec_video_sans_autogen/po/fr.po diff --git a/linphone_avant_multi/po/hu.po b/linphone_multi_20100216_avec_video_sans_autogen/po/hu.po diff --git a/linphone_avant_multi/po/insert-header.sin b/linphone_multi_20100216_avec_video_sans_autogen/po/insert-header.sin diff --git a/linphone_avant_multi/po/it.po b/linphone_multi_20100216_avec_video_sans_autogen/po/it.po diff --git a/linphone_avant_multi/po/ja.po b/linphone_multi_20100216_avec_video_sans_autogen/po/ja.po diff --git a/linphone_avant_multi/po/nl.po b/linphone_multi_20100216_avec_video_sans_autogen/po/nl.po diff --git a/linphone_avant_multi/po/pl.po b/linphone_multi_20100216_avec_video_sans_autogen/po/pl.po diff --git a/linphone_avant_multi/po/pt_BR.po b/linphone_multi_20100216_avec_video_sans_autogen/po/pt_BR.po diff --git a/linphone_avant_multi/po/quot.sed b/linphone_multi_20100216_avec_video_sans_autogen/po/quot.sed diff --git a/linphone_avant_multi/po/remove-potcdate.sin b/linphone_multi_20100216_avec_video_sans_autogen/po/remove-potcdate.sin diff --git a/linphone_avant_multi/po/ru.po b/linphone_multi_20100216_avec_video_sans_autogen/po/ru.po diff --git a/linphone_avant_multi/po/sv.po b/linphone_multi_20100216_avec_video_sans_autogen/po/sv.po diff --git a/linphone_avant_multi/po/zh_CN.po b/linphone_multi_20100216_avec_video_sans_autogen/po/zh_CN.po diff --git a/linphone_avant_multi/scripts/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/scripts/Makefile.am diff --git a/linphone_avant_multi/scripts/Portfile-devel.tmpl b/linphone_multi_20100216_avec_video_sans_autogen/scripts/Portfile-devel.tmpl diff --git a/linphone_avant_multi/scripts/Portfile.tmpl b/linphone_multi_20100216_avec_video_sans_autogen/scripts/Portfile.tmpl diff --git a/linphone_avant_multi/scripts/builder-mingw.mk b/linphone_multi_20100216_avec_video_sans_autogen/scripts/builder-mingw.mk diff --git a/linphone_avant_multi/share/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/share/.gitignore diff --git a/linphone_avant_multi/share/C/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/share/C/.gitignore diff --git a/linphone_avant_multi/share/C/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/share/C/Makefile.am diff --git a/linphone_avant_multi/share/C/linphone.1 b/linphone_multi_20100216_avec_video_sans_autogen/share/C/linphone.1 diff --git a/linphone_avant_multi/share/C/linphonec.1 b/linphone_multi_20100216_avec_video_sans_autogen/share/C/linphonec.1 diff --git a/linphone_avant_multi/share/C/linphonecsh.1 b/linphone_multi_20100216_avec_video_sans_autogen/share/C/linphonecsh.1 diff --git a/linphone_avant_multi/share/C/manual.lyx b/linphone_multi_20100216_avec_video_sans_autogen/share/C/manual.lyx diff --git a/linphone_avant_multi/share/C/manual.sgml b/linphone_multi_20100216_avec_video_sans_autogen/share/C/manual.sgml diff --git a/linphone_avant_multi/share/C/sipomatic.1 b/linphone_multi_20100216_avec_video_sans_autogen/share/C/sipomatic.1 diff --git a/linphone_avant_multi/share/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/share/Makefile.am diff --git a/linphone_avant_multi/share/Makefile.inc b/linphone_multi_20100216_avec_video_sans_autogen/share/Makefile.inc diff --git a/linphone_avant_multi/share/cs/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/share/cs/.gitignore diff --git a/linphone_avant_multi/share/cs/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/share/cs/Makefile.am diff --git a/linphone_avant_multi/share/cs/linphone.1 b/linphone_multi_20100216_avec_video_sans_autogen/share/cs/linphone.1 diff --git a/linphone_avant_multi/share/cs/linphonec.1 b/linphone_multi_20100216_avec_video_sans_autogen/share/cs/linphonec.1 diff --git a/linphone_avant_multi/share/cs/sipomatic.1 b/linphone_multi_20100216_avec_video_sans_autogen/share/cs/sipomatic.1 diff --git a/linphone_avant_multi/share/fr/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/share/fr/.gitignore diff --git a/linphone_avant_multi/share/fr/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/share/fr/Makefile.am diff --git a/linphone_avant_multi/share/fr/manual.lyx b/linphone_multi_20100216_avec_video_sans_autogen/share/fr/manual.lyx diff --git a/linphone_avant_multi/share/fr/manual.sgml b/linphone_multi_20100216_avec_video_sans_autogen/share/fr/manual.sgml diff --git a/linphone_avant_multi/share/hello16000.wav b/linphone_multi_20100216_avec_video_sans_autogen/share/hello16000.wav diff --git a/linphone_avant_multi/share/hello8000.wav b/linphone_multi_20100216_avec_video_sans_autogen/share/hello8000.wav diff --git a/linphone_avant_multi/share/it/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/share/it/.gitignore diff --git a/linphone_avant_multi/share/it/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/share/it/Makefile.am diff --git a/linphone_avant_multi/share/it/manual.lyx b/linphone_multi_20100216_avec_video_sans_autogen/share/it/manual.lyx diff --git a/linphone_avant_multi/share/it/manual.sgml b/linphone_multi_20100216_avec_video_sans_autogen/share/it/manual.sgml diff --git a/linphone_avant_multi/share/ja/.gitignore b/linphone_multi_20100216_avec_video_sans_autogen/share/ja/.gitignore diff --git a/linphone_avant_multi/share/ja/Makefile.am b/linphone_multi_20100216_avec_video_sans_autogen/share/ja/Makefile.am diff --git a/linphone_avant_multi/share/ja/manual.lyx b/linphone_multi_20100216_avec_video_sans_autogen/share/ja/manual.lyx diff --git a/linphone_avant_multi/share/ja/manual.sgml b/linphone_multi_20100216_avec_video_sans_autogen/share/ja/manual.sgml diff --git a/linphone_avant_multi/share/linphone.desktop b/linphone_multi_20100216_avec_video_sans_autogen/share/linphone.desktop diff --git a/linphone_avant_multi/share/linphone.gnorba b/linphone_multi_20100216_avec_video_sans_autogen/share/linphone.gnorba diff --git a/linphone_avant_multi/share/linphone.pc.in b/linphone_multi_20100216_avec_video_sans_autogen/share/linphone.pc.in diff --git a/linphone_avant_multi/share/linphone_applet.desktop b/linphone_multi_20100216_avec_video_sans_autogen/share/linphone_applet.desktop diff --git a/linphone_avant_multi/share/ringback.wav b/linphone_multi_20100216_avec_video_sans_autogen/share/ringback.wav diff --git a/linphone_avant_multi/share/rings/bigben.wav b/linphone_multi_20100216_avec_video_sans_autogen/share/rings/bigben.wav diff --git a/linphone_avant_multi/share/rings/oldphone-mono.wav b/linphone_multi_20100216_avec_video_sans_autogen/share/rings/oldphone-mono.wav diff --git a/linphone_avant_multi/share/rings/oldphone.wav b/linphone_multi_20100216_avec_video_sans_autogen/share/rings/oldphone.wav diff --git a/linphone_avant_multi/share/rings/orig.wav b/linphone_multi_20100216_avec_video_sans_autogen/share/rings/orig.wav diff --git a/linphone_avant_multi/share/rings/rock.wav b/linphone_multi_20100216_avec_video_sans_autogen/share/rings/rock.wav diff --git a/linphone_avant_multi/share/rings/sweet.wav b/linphone_multi_20100216_avec_video_sans_autogen/share/rings/sweet.wav diff --git a/linphone_avant_multi/share/rings/synth.wav b/linphone_multi_20100216_avec_video_sans_autogen/share/rings/synth.wav diff --git a/linphone_avant_multi/share/rings/tapping.wav b/linphone_multi_20100216_avec_video_sans_autogen/share/rings/tapping.wav diff --git a/linphone_avant_multi/share/rings/toy.wav b/linphone_multi_20100216_avec_video_sans_autogen/share/rings/toy.wav diff --git a/linphone_avant_multi/stamp-h.in b/linphone_multi_20100216_avec_video_sans_autogen/stamp-h.in