diff --git a/coreapi/callbacks.c b/coreapi/callbacks.c index af7d8b6bab49b0cb771de5c4ba306c7da8feb8bb..ab48f88374e6d563e0bbc5bc1ee5c6a607144f5b 100644 --- a/coreapi/callbacks.c +++ b/coreapi/callbacks.c @@ -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) diff --git a/coreapi/offeranswer.c b/coreapi/offeranswer.c index e9f4bcbe4c5a832d0d3e12998c97777c07143ae9..aea3f87e7943ada2f4c193a98843968f71b0f765 100644 --- a/coreapi/offeranswer.c +++ b/coreapi/offeranswer.c @@ -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;