Ignore:
Timestamp:
Aug 7, 2012 2:18:15 AM (12 years ago)
Author:
bennylp
Message:

Fixed #1412: Account specific NAT settings: STUN, ICE, and TURN

File:
1 edited

Legend:

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

    r4204 r4218  
    197197                                        const pjsua_transport_config *src) 
    198198{ 
     199    pj_memcpy(dst, src, sizeof(*src)); 
     200    pj_strdup(pool, &dst->public_addr, &src->public_addr); 
     201    pj_strdup(pool, &dst->bound_addr, &src->bound_addr); 
     202} 
     203 
     204PJ_DEF(void) pjsua_ice_config_from_media_config( pj_pool_t *pool, 
     205                                           pjsua_ice_config *dst, 
     206                                           const pjsua_media_config *src) 
     207{ 
     208    PJ_UNUSED_ARG(pool); 
     209 
     210    dst->enable_ice = src->enable_ice; 
     211    dst->ice_max_host_cands = src->ice_max_host_cands; 
     212    dst->ice_opt = src->ice_opt; 
     213    dst->ice_no_rtcp = src->ice_no_rtcp; 
     214} 
     215 
     216PJ_DEF(void) pjsua_ice_config_dup( pj_pool_t *pool, 
     217                                pjsua_ice_config *dst, 
     218                                const pjsua_ice_config *src) 
     219{ 
    199220    PJ_UNUSED_ARG(pool); 
    200221    pj_memcpy(dst, src, sizeof(*src)); 
    201222} 
    202223 
     224PJ_DEF(void) pjsua_turn_config_from_media_config(pj_pool_t *pool, 
     225                                                 pjsua_turn_config *dst, 
     226                                                 const pjsua_media_config *src) 
     227{ 
     228    dst->enable_turn = src->enable_turn; 
     229    dst->turn_conn_type = src->turn_conn_type; 
     230    if (pool == NULL) { 
     231        dst->turn_server = src->turn_server; 
     232        dst->turn_auth_cred = src->turn_auth_cred; 
     233    } else { 
     234        if (pj_stricmp(&dst->turn_server, &src->turn_server)) 
     235            pj_strdup(pool, &dst->turn_server, &src->turn_server); 
     236        pj_stun_auth_cred_dup(pool, &dst->turn_auth_cred, 
     237                              &src->turn_auth_cred); 
     238    } 
     239} 
     240 
     241PJ_DEF(void) pjsua_turn_config_dup(pj_pool_t *pool, 
     242                                   pjsua_turn_config *dst, 
     243                                   const pjsua_turn_config *src) 
     244{ 
     245    pj_memcpy(dst, src, sizeof(*src)); 
     246    if (pool) { 
     247        pj_strdup(pool, &dst->turn_server, &src->turn_server); 
     248        pj_stun_auth_cred_dup(pool, &dst->turn_auth_cred, 
     249                              &src->turn_auth_cred); 
     250    } 
     251} 
     252 
    203253PJ_DEF(void) pjsua_acc_config_default(pjsua_acc_config *cfg) 
    204254{ 
     255    pjsua_media_config med_cfg; 
     256 
    205257    pj_bzero(cfg, sizeof(*cfg)); 
    206258 
     
    225277#endif 
    226278    pjsua_transport_config_default(&cfg->rtp_cfg); 
     279 
     280    pjsua_media_config_default(&med_cfg); 
     281    pjsua_ice_config_from_media_config(NULL, &cfg->ice_cfg, &med_cfg); 
     282    pjsua_turn_config_from_media_config(NULL, &cfg->turn_cfg, &med_cfg); 
     283 
    227284    cfg->use_srtp = pjsua_var.ua_cfg.use_srtp; 
    228285    cfg->srtp_secure_signaling = pjsua_var.ua_cfg.srtp_secure_signaling; 
     
    28062863    for (i=0; i<pjsua_var.ua_cfg.max_calls; ++i) { 
    28072864        pjsua_call *call = &pjsua_var.calls[i]; 
     2865        pjsua_acc_config *acc_cfg; 
    28082866        pjmedia_transport *tp[PJSUA_MAX_CALL_MEDIA*2]; 
    28092867        unsigned tp_cnt = 0; 
     
    28312889        } 
    28322890 
     2891        acc_cfg = &pjsua_var.acc[call->acc_id].cfg; 
     2892 
    28332893        /* Dump the media transports in this call */ 
    28342894        for (j = 0; j < tp_cnt; ++j) { 
     
    28392899            pjmedia_transport_get_info(tp[j], &tpinfo); 
    28402900            PJ_LOG(3,(THIS_FILE, " %s: %s", 
    2841                       (pjsua_var.media_cfg.enable_ice ? "ICE" : "UDP"), 
     2901                      (acc_cfg->ice_cfg.enable_ice ? "ICE" : "UDP"), 
    28422902                      pj_sockaddr_print(&tpinfo.sock_info.rtp_addr_name, 
    28432903                                        addr_buf, 
Note: See TracChangeset for help on using the changeset viewer.