Ignore:
Timestamp:
Mar 11, 2008 9:38:05 PM (14 years ago)
Author:
bennylp
Message:

Ticket #479: allow media transport framework to return transport specific info (for example, to know whether SRTP is enabled)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/src/pjsua-lib/pjsua_call.c

    r1849 r1860  
    22012201    pj_status_t status; 
    22022202    int len; 
     2203    pjmedia_transport_info tp_info; 
    22032204 
    22042205    PJ_ASSERT_RETURN(call_id>=0 && call_id<(int)pjsua_var.ua_cfg.max_calls, 
     
    22572258        *p++ = '\n'; 
    22582259        *p = '\0'; 
     2260    } 
     2261 
     2262    /* Get SRTP status */ 
     2263    pjmedia_transport_get_info(call->med_tp, &tp_info); 
     2264    if (tp_info.specific_info_cnt > 0) { 
     2265        int i; 
     2266        for (i = 0; i < tp_info.specific_info_cnt; ++i) { 
     2267            if (tp_info.spc_info[i].type == PJMEDIA_TRANSPORT_TYPE_SRTP)  
     2268            { 
     2269                pjmedia_srtp_info *srtp_info =  
     2270                            (pjmedia_srtp_info*) tp_info.spc_info[i].buffer; 
     2271 
     2272                len = pj_ansi_snprintf(p, end-p,  
     2273                                       "%s  SRTP status: %s Crypto-suite: %s", 
     2274                                       indent, 
     2275                                       (srtp_info->active?"Active":"Not active"), 
     2276                                       srtp_info->tx_policy.name.ptr); 
     2277                if (len > 0 && len < end-p) { 
     2278                    p += len; 
     2279                    *p++ = '\n'; 
     2280                    *p = '\0'; 
     2281                } 
     2282                break; 
     2283            } 
     2284        } 
    22592285    } 
    22602286 
     
    24432469    { 
    24442470        pjmedia_sdp_session *local_sdp; 
    2445         pjmedia_sock_info si; 
    2446  
    2447         call->med_tp->op->get_info(call->med_tp, &si); 
     2471        pjmedia_transport_info ti; 
     2472 
     2473        pjmedia_transport_get_info(call->med_tp, &ti); 
    24482474        status = pjmedia_endpt_create_sdp(pjsua_var.med_endpt, tdata->pool,  
    2449                                           1, &si, &local_sdp); 
     2475                                          1, &ti.sock_info, &local_sdp); 
    24502476        if (status == PJ_SUCCESS) { 
    24512477            pjsip_create_sdp_body(tdata->pool, local_sdp, 
     
    25522578    pjmedia_sdp_conn *conn; 
    25532579    pjmedia_sdp_attr *attr; 
    2554     pjmedia_sock_info skinfo; 
     2580    pjmedia_transport_info tp_info; 
    25552581    pjmedia_sdp_session *sdp; 
    25562582 
    25572583    /* Get media socket info */ 
    2558     pjmedia_transport_get_info(call->med_tp, &skinfo); 
     2584    pjmedia_transport_get_info(call->med_tp, &tp_info); 
    25592585 
    25602586    /* Create new offer */ 
    25612587    status = pjmedia_endpt_create_sdp(pjsua_var.med_endpt, pjsua_var.pool, 1, 
    2562                                       &skinfo, &sdp); 
     2588                                      &tp_info.sock_info, &sdp); 
    25632589    if (status != PJ_SUCCESS) { 
    25642590        pjsua_perror(THIS_FILE, "Unable to create local SDP", status); 
Note: See TracChangeset for help on using the changeset viewer.