diff options
author | Benny Prijono <bennylp@teluu.com> | 2010-11-17 09:05:10 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2010-11-17 09:05:10 +0000 |
commit | 45ac311d10ab73063d97a87dd6866dfbfc13873c (patch) | |
tree | 3488a9ba1937f08f0beca5475c6cffb169fb36a3 /pjsip-apps/src/pjsua | |
parent | 24db562d158b7d978dc2be623dd42705c3800e28 (diff) |
Re #1151 (misc): also enable plain UDP SIP transport when enabling IPv6, since many UA will use IPv4 in their Contacts (keyword: sipit27)
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3370 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip-apps/src/pjsua')
-rw-r--r-- | pjsip-apps/src/pjsua/pjsua_app.c | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/pjsip-apps/src/pjsua/pjsua_app.c b/pjsip-apps/src/pjsua/pjsua_app.c index 7f81b1f5..5c3311d3 100644 --- a/pjsip-apps/src/pjsua/pjsua_app.c +++ b/pjsip-apps/src/pjsua/pjsua_app.c @@ -4817,11 +4817,41 @@ pj_status_t app_init(int argc, char *argv[]) pjsua_acc_id aid; pjsip_transport_type_e type = PJSIP_TRANSPORT_UDP; - if (app_config.ipv6) - type = PJSIP_TRANSPORT_UDP6; + status = pjsua_transport_create(type, + &app_config.udp_cfg, + &transport_id); + if (status != PJ_SUCCESS) + goto on_error; + + /* Add local account */ + pjsua_acc_add_local(transport_id, PJ_TRUE, &aid); + //pjsua_acc_set_transport(aid, transport_id); + pjsua_acc_set_online_status(current_acc, PJ_TRUE); + if (app_config.udp_cfg.port == 0) { + pjsua_transport_info ti; + pj_sockaddr_in *a; + + pjsua_transport_get_info(transport_id, &ti); + a = (pj_sockaddr_in*)&ti.local_addr; + + tcp_cfg.port = pj_ntohs(a->sin_port); + } + } + + /* Add UDP IPv6 transport unless it's disabled. */ + if (!app_config.no_udp && app_config.ipv6) { + pjsua_acc_id aid; + pjsip_transport_type_e type = PJSIP_TRANSPORT_UDP6; + pjsua_transport_config udp_cfg; + + udp_cfg = app_config.udp_cfg; + if (udp_cfg.port == 0) + udp_cfg.port = 5060; + else + udp_cfg.port += 10; status = pjsua_transport_create(type, - &app_config.udp_cfg, + &udp_cfg, &transport_id); if (status != PJ_SUCCESS) goto on_error; |