|
|
|
@ -1610,14 +1610,13 @@ static void build_via(struct sip_pvt *p)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*! \brief NAT fix - decide which IP address to use for ASterisk server?
|
|
|
|
|
* Only used for outbound registrations */
|
|
|
|
|
static enum sip_result ast_sip_ouraddrfor(struct in_addr *them, struct in_addr *us)
|
|
|
|
|
{
|
|
|
|
|
/*
|
|
|
|
|
* Using the localaddr structure built up with localnet statements
|
|
|
|
|
*
|
|
|
|
|
* Using the localaddr structure built up with localnet statements in sip.conf
|
|
|
|
|
* apply it to their address to see if we need to substitute our
|
|
|
|
|
* externip or can get away with our internal bindaddr
|
|
|
|
|
*/
|
|
|
|
|
static enum sip_result ast_sip_ouraddrfor(struct in_addr *them, struct in_addr *us)
|
|
|
|
|
{
|
|
|
|
|
struct sockaddr_in theirs, ours;
|
|
|
|
|
|
|
|
|
|
/* Get our local information */
|
|
|
|
@ -1642,7 +1641,6 @@ static enum sip_result ast_sip_ouraddrfor(struct in_addr *them, struct in_addr *
|
|
|
|
|
if (option_debug) {
|
|
|
|
|
char iabuf[INET_ADDRSTRLEN];
|
|
|
|
|
ast_inet_ntoa(iabuf, sizeof(iabuf), *(struct in_addr *)&them->s_addr);
|
|
|
|
|
|
|
|
|
|
ast_log(LOG_DEBUG, "Target address %s is not local, substituting externip\n", iabuf);
|
|
|
|
|
}
|
|
|
|
|
} else if (bindaddr.sin_addr.s_addr)
|
|
|
|
|