diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c index 147ebadd636fd9470d0244f289cb62ead61d897f..f07ee38adbe8bec598689e4de6091dcbc0210164 100644 --- a/res/res_pjsip_session.c +++ b/res/res_pjsip_session.c @@ -2194,11 +2194,13 @@ static pj_bool_t session_reinvite_on_rx_request(pjsip_rx_data *rdata) pjmedia_sdp_media *m = local->media[i]; pjmedia_sdp_attr *recvonly; pjmedia_sdp_attr *inactive; + pjmedia_sdp_attr *sendonly; recvonly = pjmedia_sdp_attr_find2(m->attr_count, m->attr, "recvonly", NULL); inactive = pjmedia_sdp_attr_find2(m->attr_count, m->attr, "inactive", NULL); - if (recvonly || inactive) { - pjmedia_sdp_attr *to_remove = recvonly ?: inactive; + sendonly = pjmedia_sdp_attr_find2(m->attr_count, m->attr, "sendonly", NULL); + if (recvonly || inactive || sendonly) { + pjmedia_sdp_attr *to_remove = recvonly ?: inactive ?: sendonly; pjmedia_sdp_attr *sendrecv; pjmedia_sdp_attr_remove(&m->attr_count, m->attr, to_remove);