Ignore:
Timestamp:
May 9, 2018 6:58:48 AM (14 months ago)
Author:
ming
Message:

Fixed #2087: Support for RTP and RTCP multiplexing

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjmedia/src/pjmedia/transport_srtp.c

    r5781 r5788  
    234234    pjmedia_srtp_setting setting; 
    235235    unsigned             media_option; 
     236    pj_bool_t            use_rtcp_mux;      /**< Use RTP& RTCP multiplexing?*/ 
    236237 
    237238    /* SRTP policy */ 
     
    11381139    } 
    11391140 
     1141    /* Check if we are multiplexing RTP & RTCP. */ 
     1142    srtp->use_rtcp_mux = (pj_sockaddr_has_addr(&param->rem_addr) && 
     1143                          pj_sockaddr_cmp(&param->rem_addr, 
     1144                                          &param->rem_rtcp) == 0); 
    11401145    srtp->member_tp_attached = PJ_TRUE; 
    11411146    return PJ_SUCCESS; 
     
    13471352        return; 
    13481353    } 
     1354 
     1355    /* Check if multiplexing is allowed and the payload indicates RTCP. */ 
     1356    if (srtp->use_rtcp_mux) { 
     1357        pjmedia_rtp_hdr *hdr = (pjmedia_rtp_hdr *)pkt; 
     1358   
     1359        if (hdr->pt >= 64 && hdr->pt <= 95) {    
     1360            pj_lock_release(srtp->mutex); 
     1361            srtp_rtcp_cb(srtp, pkt, size); 
     1362            return; 
     1363        } 
     1364    } 
     1365     
    13491366    err = srtp_unprotect(srtp->srtp_rx_ctx, (pj_uint8_t*)pkt, &len); 
     1367     
    13501368    if (srtp->probation_cnt > 0 && 
    13511369        (err == srtp_err_status_replay_old || 
Note: See TracChangeset for help on using the changeset viewer.