]> sjero.net Git - linphone/commitdiff
Conference's pause/resume issue fixed
authorSylvain Berfini <Sylvain.Berfini@belledonne-communications.com>
Fri, 14 Oct 2011 15:36:44 +0000 (17:36 +0200)
committerSylvain Berfini <Sylvain.Berfini@belledonne-communications.com>
Fri, 14 Oct 2011 15:36:44 +0000 (17:36 +0200)
coreapi/callbacks.c
coreapi/linphonecall.c

index 2470606ab8309df900b7e292963a832e76a3c41d..550c98736c0a74c7f3d8e15f3f6131582e0763b5 100644 (file)
@@ -400,6 +400,8 @@ static void call_updating(SalOp *op){
        
        if (md && !sal_media_description_empty(md))
        {
+               linphone_core_update_streams (lc,call,md);
+
                if (sal_media_description_has_dir(call->localdesc,SalStreamSendRecv)){
                        ms_message("Our local status is SalStreamSendRecv");
                        if (sal_media_description_has_dir (md,SalStreamRecvOnly) || sal_media_description_has_dir(md,SalStreamInactive)){
@@ -415,12 +417,13 @@ static void call_updating(SalOp *op){
                                        lc->current_call=call;
                        }else{
                                prevstate=call->state;
+                               if(lc->vtable.display_status)
+                                       lc->vtable.display_status(lc,_("Call has been updated by remote..."));
                                linphone_call_set_state(call, LinphoneCallUpdatedByRemote,"Call updated by remote");
                        }
                }
                /*accept the modification (sends a 200Ok)*/
                sal_call_accept(op);
-               linphone_core_update_streams (lc,call,md);
                if (prevstate!=LinphoneCallIdle){
                        linphone_call_set_state (call,prevstate,"Connected (streams running)");
                }
index 15b1aa72325a59868ab810f7664713dc61ac600f..cbe12af743f5d706b7332b5d34260630824c8742 100644 (file)
@@ -1083,7 +1083,7 @@ static void linphone_call_start_video_stream(LinphoneCall *call, const char *cna
                lc->previewstream=NULL;
        }
        call->current_params.has_video=FALSE;
-       if (vstream && vstream->dir!=SalStreamInactive && vstream->port!=0) {
+       if (vstream!=NULL && vstream->dir!=SalStreamInactive && vstream->port!=0) {
                const char *addr=vstream->addr[0]!='\0' ? vstream->addr : call->resultdesc->addr;
                call->video_profile=make_profile(call,call->resultdesc,vstream,&used_pt);
                if (used_pt!=-1){
@@ -1158,13 +1158,15 @@ void linphone_call_start_media_streams(LinphoneCall *call, bool_t all_inputs_mut
        cname=linphone_address_as_string_uri_only(me);
 
 #if defined(VIDEO_ENABLED)
-       if (vstream && vstream->dir!=SalStreamInactive && vstream->payloads!=NULL){
+       if (vstream!=NULL && vstream->dir!=SalStreamInactive && vstream->payloads!=NULL){
                /*when video is used, do not make adaptive rate control on audio, it is stupid.*/
                use_arc=FALSE;
        }
 #endif
        linphone_call_start_audio_stream(call,cname,all_inputs_muted,send_ringbacktone,use_arc);
-       if (call->videostream!=NULL) linphone_call_start_video_stream(call,cname,all_inputs_muted);
+       if (call->videostream!=NULL) {
+               linphone_call_start_video_stream(call,cname,all_inputs_muted);
+       }
 
        call->all_muted=all_inputs_muted;
        call->playing_ringbacktone=send_ringbacktone;