Ignore:
Timestamp:
Apr 24, 2012 5:40:32 AM (12 years ago)
Author:
nanang
Message:

Fix #1423:

  • Added provisional media in call for generating initial and subsequent SDP offer/answer. If a reoffer is rejected by peer, the main call media will remain unchanged and the provisional media will be cleaned up (the cleanup is currently delayed until call gets destroyed or another reoffer/answer occurs).
  • Reenabled media transport dump in pjsua_core.c.
File:
1 edited

Legend:

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

    r4043 r4071  
    27712771 
    27722772    PJ_LOG(3,(THIS_FILE, "Dumping media transports:")); 
    2773     // Suppress compile warning caused by unreferenced var. 
    2774     PJ_UNUSED_ARG(i); 
    2775 #if DISABLED_FOR_TICKET_1185 
    27762773    for (i=0; i<pjsua_var.ua_cfg.max_calls; ++i) { 
    27772774        pjsua_call *call = &pjsua_var.calls[i]; 
    2778         pjmedia_transport_info tpinfo; 
    2779         char addr_buf[80]; 
    2780  
    2781         /* MSVC complains about tpinfo not being initialized */ 
    2782         //pj_bzero(&tpinfo, sizeof(tpinfo)); 
    2783  
    2784         pjmedia_transport_info_init(&tpinfo); 
    2785         pjmedia_transport_get_info(call->med_tp, &tpinfo); 
    2786  
    2787         PJ_LOG(3,(THIS_FILE, " %s: %s", 
    2788                   (pjsua_var.media_cfg.enable_ice ? "ICE" : "UDP"), 
    2789                   pj_sockaddr_print(&tpinfo.sock_info.rtp_addr_name, addr_buf, 
    2790                                     sizeof(addr_buf), 3))); 
    2791     } 
    2792 #endif 
     2775        pjmedia_transport *tp[PJSUA_MAX_CALL_MEDIA*2]; 
     2776        unsigned tp_cnt = 0; 
     2777        unsigned j; 
     2778 
     2779        /* Collect media transports in this call */ 
     2780        for (j = 0; j < call->med_cnt; ++j) { 
     2781            if (call->media[j].tp != NULL) 
     2782                tp[tp_cnt++] = call->media[j].tp; 
     2783        } 
     2784        for (j = 0; j < call->med_prov_cnt; ++j) { 
     2785            pjmedia_transport *med_tp = call->media_prov[j].tp; 
     2786            if (med_tp) { 
     2787                unsigned k; 
     2788                pj_bool_t used = PJ_FALSE; 
     2789                for (k = 0; k < tp_cnt; ++k) { 
     2790                    if (med_tp == tp[k]) { 
     2791                        used = PJ_TRUE; 
     2792                        break; 
     2793                    } 
     2794                } 
     2795                if (!used) 
     2796                    tp[tp_cnt++] = med_tp; 
     2797            } 
     2798        } 
     2799 
     2800        /* Dump the media transports in this call */ 
     2801        for (j = 0; j < tp_cnt; ++j) { 
     2802            pjmedia_transport_info tpinfo; 
     2803            char addr_buf[80]; 
     2804 
     2805            pjmedia_transport_info_init(&tpinfo); 
     2806            pjmedia_transport_get_info(tp[j], &tpinfo); 
     2807            PJ_LOG(3,(THIS_FILE, " %s: %s", 
     2808                      (pjsua_var.media_cfg.enable_ice ? "ICE" : "UDP"), 
     2809                      pj_sockaddr_print(&tpinfo.sock_info.rtp_addr_name, 
     2810                                        addr_buf, 
     2811                                        sizeof(addr_buf), 3))); 
     2812        } 
     2813    } 
    27932814 
    27942815    pjsip_tsx_layer_dump(detail); 
Note: See TracChangeset for help on using the changeset viewer.