diff options
Diffstat (limited to 'res/res_pjsip_multihomed.c')
-rw-r--r-- | res/res_pjsip_multihomed.c | 23 |
1 files changed, 4 insertions, 19 deletions
diff --git a/res/res_pjsip_multihomed.c b/res/res_pjsip_multihomed.c index e1abff34f..437a1cbe9 100644 --- a/res/res_pjsip_multihomed.c +++ b/res/res_pjsip_multihomed.c @@ -30,12 +30,6 @@ #include "asterisk/res_pjsip.h" #include "asterisk/module.h" -/*! \brief Local host address for IPv4 */ -static char host_ipv4[PJ_INET_ADDRSTRLEN + 2]; - -/*! \brief Local host address for IPv6 */ -static char host_ipv6[PJ_INET6_ADDRSTRLEN + 2]; - /*! \brief Helper function which returns a UDP transport bound to the given address and port */ static pjsip_transport *multihomed_get_udp_transport(pj_str_t *address, int port) { @@ -75,8 +69,10 @@ static int multihomed_rewrite_sdp(struct pjmedia_sdp_session *sdp) } /* If the host address is used in the SDP replace it with the address of what this is going out on */ - if ((!pj_strcmp2(&sdp->conn->addr_type, "IP4") && !pj_strcmp2(&sdp->conn->addr, host_ipv4)) || - (!pj_strcmp2(&sdp->conn->addr_type, "IP6") && !pj_strcmp2(&sdp->conn->addr, host_ipv6))) { + if ((!pj_strcmp2(&sdp->conn->addr_type, "IP4") && !pj_strcmp2(&sdp->conn->addr, + ast_sip_get_host_ip_string(pj_AF_INET()))) || + (!pj_strcmp2(&sdp->conn->addr_type, "IP6") && !pj_strcmp2(&sdp->conn->addr, + ast_sip_get_host_ip_string(pj_AF_INET6())))) { return 1; } @@ -204,7 +200,6 @@ static int unload_module(void) static int load_module(void) { char hostname[MAXHOSTNAMELEN] = ""; - pj_sockaddr addr; CHECK_PJSIP_MODULE_LOADED(); @@ -213,16 +208,6 @@ static int load_module(void) hostname); } - if (!pj_gethostip(pj_AF_INET(), &addr)) { - pj_sockaddr_print(&addr, host_ipv4, sizeof(host_ipv4), 2); - ast_verb(3, "Local IPv4 address determined to be: %s\n", host_ipv4); - } - - if (!pj_gethostip(pj_AF_INET6(), &addr)) { - pj_sockaddr_print(&addr, host_ipv6, sizeof(host_ipv6), 2); - ast_verb(3, "Local IPv6 address determined to be: %s\n", host_ipv6); - } - if (ast_sip_register_service(&multihomed_module)) { ast_log(LOG_ERROR, "Could not register multihomed module for incoming and outgoing requests\n"); return AST_MODULE_LOAD_FAILURE; |