summaryrefslogtreecommitdiff
path: root/pjsip-apps
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2010-11-17 09:05:10 +0000
committerBenny Prijono <bennylp@teluu.com>2010-11-17 09:05:10 +0000
commit45ac311d10ab73063d97a87dd6866dfbfc13873c (patch)
tree3488a9ba1937f08f0beca5475c6cffb169fb36a3 /pjsip-apps
parent24db562d158b7d978dc2be623dd42705c3800e28 (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')
-rw-r--r--pjsip-apps/src/pjsua/pjsua_app.c36
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;