diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 834472e7c5bbda00131c1965f667b9466393bb05..de7378fa014cc1a347f03d6a6cd6d5a0b05e6384 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -22849,6 +22849,9 @@ static int reload_config(enum channelreloadreason reason)
 			if (ast_parse_arg(externhost, PARSE_INADDR, &externip))
 				ast_log(LOG_WARNING, "Invalid address for externhost keyword: %s\n", externhost);
 			externexpire = time(NULL);
+			/* If no port was specified use the value of bindport */
+			if (!externip.sin_port)
+				externip.sin_port = bindaddr.sin_port;
 		} else if (!strcasecmp(v->name, "externrefresh")) {
 			if (sscanf(v->value, "%d", &externrefresh) != 1) {
 				ast_log(LOG_WARNING, "Invalid externrefresh value '%s', must be an integer >0 at line %d\n", v->value, v->lineno);