fix rpid and from correctly when auto-nat is enabled so polycom won't display the flipping URI and freak some poor souls out :P
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16473 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
46595b5470
commit
940781259c
|
@ -1468,7 +1468,7 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
|
||||||
sofia_set_flag_locked(tech_pvt, TFLAG_READY);
|
sofia_set_flag_locked(tech_pvt, TFLAG_READY);
|
||||||
|
|
||||||
if (!tech_pvt->nh) {
|
if (!tech_pvt->nh) {
|
||||||
char *d_url = NULL, *url = NULL, *dest_host = NULL, *url_str = NULL;
|
char *d_url = NULL, *url = NULL, *url_str = NULL;
|
||||||
sofia_private_t *sofia_private;
|
sofia_private_t *sofia_private;
|
||||||
char *invite_contact = NULL, *to_str, *use_from_str, *from_str;
|
char *invite_contact = NULL, *to_str, *use_from_str, *from_str;
|
||||||
const char *t_var;
|
const char *t_var;
|
||||||
|
@ -1497,11 +1497,6 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
|
||||||
|
|
||||||
url_str = url;
|
url_str = url;
|
||||||
|
|
||||||
if ((dest_host = strchr(url_str, '@'))) {
|
|
||||||
dest_host++;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!tech_pvt->from_str) {
|
if (!tech_pvt->from_str) {
|
||||||
const char* sipip;
|
const char* sipip;
|
||||||
const char* format;
|
const char* format;
|
||||||
|
@ -1509,7 +1504,7 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
|
||||||
|
|
||||||
sipip = tech_pvt->profile->sipip;
|
sipip = tech_pvt->profile->sipip;
|
||||||
|
|
||||||
if (sofia_glue_check_nat(tech_pvt->profile, dest_host)) {
|
if (sofia_glue_check_nat(tech_pvt->profile, tech_pvt->remote_ip)) {
|
||||||
sipip = tech_pvt->profile->extsipip;
|
sipip = tech_pvt->profile->extsipip;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1527,7 +1522,6 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
|
||||||
!zstr(cid_num) ? "@" : "",
|
!zstr(cid_num) ? "@" : "",
|
||||||
sipip);
|
sipip);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (from_var) {
|
if (from_var) {
|
||||||
if (strncasecmp(from_var, "sip:", 4) || strncasecmp(from_var, "sips:", 5)) {
|
if (strncasecmp(from_var, "sip:", 4) || strncasecmp(from_var, "sips:", 5)) {
|
||||||
|
@ -1559,6 +1553,14 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
|
||||||
rpid_domain = "cluecon.com";
|
rpid_domain = "cluecon.com";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (sofia_test_pflag(tech_pvt->profile, PFLAG_AUTO_NAT)) {
|
||||||
|
if (sofia_glue_check_nat(tech_pvt->profile, tech_pvt->remote_ip)) {
|
||||||
|
rpid_domain = tech_pvt->profile->extsipip;
|
||||||
|
} else {
|
||||||
|
rpid_domain = tech_pvt->profile->sipip;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Ignore transport chanvar and uri parameter for gateway connections
|
* Ignore transport chanvar and uri parameter for gateway connections
|
||||||
* since all of them have been already taken care of in mod_sofia.c:sofia_outgoing_channel()
|
* since all of them have been already taken care of in mod_sofia.c:sofia_outgoing_channel()
|
||||||
|
@ -1592,7 +1594,7 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
|
||||||
if ((contact = switch_channel_get_variable(channel, "sip_contact_user"))) {
|
if ((contact = switch_channel_get_variable(channel, "sip_contact_user"))) {
|
||||||
char *ip_addr;
|
char *ip_addr;
|
||||||
char *ipv6;
|
char *ipv6;
|
||||||
|
|
||||||
if (sofia_glue_check_nat(tech_pvt->profile, tech_pvt->remote_ip)) {
|
if (sofia_glue_check_nat(tech_pvt->profile, tech_pvt->remote_ip)) {
|
||||||
ip_addr = (switch_check_network_list_ip(tech_pvt->remote_ip, tech_pvt->profile->local_network))
|
ip_addr = (switch_check_network_list_ip(tech_pvt->remote_ip, tech_pvt->profile->local_network))
|
||||||
? tech_pvt->profile->sipip : tech_pvt->profile->extsipip;
|
? tech_pvt->profile->sipip : tech_pvt->profile->extsipip;
|
||||||
|
@ -1628,7 +1630,6 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
|
||||||
from_str = sofia_overcome_sip_uri_weakness(session, use_from_str, 0, SWITCH_TRUE, invite_from_params);
|
from_str = sofia_overcome_sip_uri_weakness(session, use_from_str, 0, SWITCH_TRUE, invite_from_params);
|
||||||
to_str = sofia_overcome_sip_uri_weakness(session, invite_to_uri ? invite_to_uri : tech_pvt->dest_to, 0, SWITCH_FALSE, invite_to_params);
|
to_str = sofia_overcome_sip_uri_weakness(session, invite_to_uri ? invite_to_uri : tech_pvt->dest_to, 0, SWITCH_FALSE, invite_to_params);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Does the "genius" who wanted SIP to be "text-based" so it was "easier to read" even use it now,
|
Does the "genius" who wanted SIP to be "text-based" so it was "easier to read" even use it now,
|
||||||
or did he just suggest it to make our lives miserable?
|
or did he just suggest it to make our lives miserable?
|
||||||
|
@ -1646,7 +1647,7 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
|
||||||
call_id = switch_core_session_get_uuid(session);
|
call_id = switch_core_session_get_uuid(session);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tech_pvt->nh = nua_handle(tech_pvt->profile->nua, NULL,
|
tech_pvt->nh = nua_handle(tech_pvt->profile->nua, NULL,
|
||||||
NUTAG_URL(url_str),
|
NUTAG_URL(url_str),
|
||||||
TAG_IF(call_id, SIPTAG_CALL_ID_STR(call_id)),
|
TAG_IF(call_id, SIPTAG_CALL_ID_STR(call_id)),
|
||||||
|
|
Loading…
Reference in New Issue