]> sjero.net Git - linphone/commitdiff
bugfixes in pause/resume
authorSimon Morlat <simon.morlat@linphone.org>
Thu, 3 Feb 2011 11:54:42 +0000 (12:54 +0100)
committerSimon Morlat <simon.morlat@linphone.org>
Thu, 3 Feb 2011 11:54:42 +0000 (12:54 +0100)
coreapi/callbacks.c
coreapi/offeranswer.c

index af7d8b6bab49b0cb771de5c4ba306c7da8feb8bb..ab48f88374e6d563e0bbc5bc1ee5c6a607144f5b 100644 (file)
@@ -362,6 +362,7 @@ static void call_updating(SalOp *op){
        if (md && !sal_media_description_empty(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)){
                                /* we are being paused */
                                if(lc->vtable.display_status)
index e9f4bcbe4c5a832d0d3e12998c97777c07143ae9..aea3f87e7943ada2f4c193a98843968f71b0f765 100644 (file)
@@ -133,19 +133,16 @@ static SalStreamDir compute_dir_incoming(SalStreamDir local, SalStreamDir offere
                        res=SalStreamSendOnly;
                if (offered==SalStreamInactive)
                        res=SalStreamInactive;
+               else
+                       res=SalStreamSendRecv;
        }else if (local==SalStreamSendOnly){
-               if (offered==SalStreamSendOnly)
-                       res=SalStreamInactive;
                if (offered==SalStreamRecvOnly)
                        res=SalStreamSendOnly;
-               if (offered==SalStreamInactive)
-                       res=SalStreamInactive;
+               else res=SalStreamInactive;
        }else if (local==SalStreamRecvOnly){
-               if (offered==SalStreamSendOnly)
+               if (offered==SalStreamSendOnly || offered==SalStreamSendRecv)
                        res=SalStreamRecvOnly;
-               if (offered==SalStreamRecvOnly)
-                       res=SalStreamInactive;
-               if (offered==SalStreamInactive)
+               else
                        res=SalStreamInactive;
        }else res=SalStreamInactive;
        return res;
@@ -177,7 +174,7 @@ static void initiate_incoming(const SalStreamDescription *local_cap,
        result->payloads=match_payloads(local_cap->payloads,remote_offer->payloads, FALSE, one_matching_codec);
        result->proto=local_cap->proto;
        result->type=local_cap->type;
-       result->dir=compute_dir_incoming(result->dir,remote_offer->dir);
+       result->dir=compute_dir_incoming(local_cap->dir,remote_offer->dir);
        if (result->payloads && !only_telephone_event(result->payloads)){
                strcpy(result->addr,local_cap->addr);
                result->port=local_cap->port;