Ignore:
Timestamp:
Aug 3, 2018 2:33:28 AM (6 years ago)
Author:
ming
Message:

Re #2096: DTLS updates

  • Fix assertion when DTLS tries to attach transport, but the ICE transport's source RTP address hasn't been updated.
  • Fix DTLS transport attachment in dtls_media_start() which misses rtcp-mux checking, causing rtcp-mux to be disabled.
File:
1 edited

Legend:

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

    r5847 r5852  
    13301330    dtls_srtp *ds = (dtls_srtp *)tp; 
    13311331    pj_ice_strans_state ice_state; 
     1332    pj_bool_t use_rtcp_mux = PJ_FALSE; 
    13321333    pj_status_t status = PJ_SUCCESS; 
    13331334 
     
    13691370    } 
    13701371 
    1371     /* Check and update ICE status */ 
     1372    /* Check and update ICE and rtcp-mux status */ 
    13721373    { 
    13731374        pjmedia_transport_info info; 
     
    13761377        pjmedia_transport_info_init(&info); 
    13771378        pjmedia_transport_get_info(ds->srtp->member_tp, &info); 
     1379        if (pj_sockaddr_cmp(&info.sock_info.rtp_addr_name, 
     1380                            &info.sock_info.rtcp_addr_name) == 0) 
     1381        { 
     1382            use_rtcp_mux = PJ_TRUE; 
     1383        } 
    13781384        ice_info = (pjmedia_ice_transport_info*) 
    13791385                   pjmedia_transport_info_get_spc_info( 
     
    14351441                pj_sockaddr_init(pj_AF_INET(), &ap.rem_addr, 0, 0); 
    14361442 
    1437             if (pj_sockaddr_has_addr(&ds->rem_rtcp)) 
     1443            if (use_rtcp_mux) { 
     1444                /* Using RTP & RTCP multiplexing */ 
     1445                pj_sockaddr_cp(&ap.rem_rtcp, &ds->rem_addr); 
     1446            } else if (pj_sockaddr_has_addr(&ds->rem_rtcp)) { 
    14381447                pj_sockaddr_cp(&ap.rem_rtcp, &ds->rem_rtcp); 
    1439             else 
     1448            } else if (pj_sockaddr_has_addr(&ds->rem_addr)) { 
     1449                pj_sockaddr_cp(&ap.rem_rtcp, &ds->rem_addr); 
     1450                pj_sockaddr_set_port(&ap.rem_rtcp, 
     1451                                     pj_sockaddr_get_port(&ap.rem_rtcp) + 1); 
     1452            } else { 
    14401453                pj_sockaddr_init(pj_AF_INET(), &ap.rem_rtcp, 0, 0); 
     1454            } 
    14411455 
    14421456            ap.addr_len = pj_sockaddr_get_len(&ap.rem_addr); 
Note: See TracChangeset for help on using the changeset viewer.