@ -557,6 +557,8 @@ static int global_t1min; /*!< T1 roundtrip time minimum */
static int global_autoframing ; /*!< Turn autoframing on or off. */
static enum transfermodes global_allowtransfer ; /*!< SIP Refer restriction scheme */
static int global_matchexterniplocally ; /*!< Match externip/externhost setting against localnet setting */
/*! \brief Codecs that we support by default: */
static int global_capability = AST_FORMAT_ULAW | AST_FORMAT_ALAW | AST_FORMAT_GSM | AST_FORMAT_H263 ;
@ -1781,7 +1783,7 @@ static enum sip_result ast_sip_ouraddrfor(struct in_addr *them, struct in_addr *
if ( localaddr & & externip . sin_addr . s_addr & &
( ast_apply_ha ( localaddr , & theirs ) ) & &
( ! ast_apply_ha ( localaddr , & ours ) ) ) {
( ! global_matchexterniplocally | | ! ast_apply_ha ( localaddr , & ours ) ) ) {
if ( externexpire & & time ( NULL ) > = externexpire ) {
struct ast_hostent ahp ;
struct hostent * hp ;
@ -16204,6 +16206,8 @@ static int reload_config(enum channelreloadreason reason)
global_callevents = FALSE ;
global_t1min = DEFAULT_T1MIN ;
global_matchexterniplocally = FALSE ;
/* Copy the default jb config over global_jbconf */
memcpy ( & global_jbconf , & default_jbconf , sizeof ( struct ast_jb_conf ) ) ;
@ -16443,6 +16447,8 @@ static int reload_config(enum channelreloadreason reason)
default_maxcallbitrate = atoi ( v - > value ) ;
if ( default_maxcallbitrate < 0 )
default_maxcallbitrate = DEFAULT_MAX_CALL_BITRATE ;
} else if ( ! strcasecmp ( v - > name , " matchexterniplocally " ) ) {
global_matchexterniplocally = ast_true ( v - > value ) ;
}
}