diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 2abec0b2bb3ed7bc6d4bb743b6e3b2ded44f2963..435c8520c8bda3d88a26c2fa184fe2555fdc8f4c 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -3164,6 +3164,9 @@ static void ast_sip_ouraddrfor(const struct ast_sockaddr *them, struct ast_socka
 			if (!ast_sockaddr_is_any(&bindaddr)) {
 				ast_sockaddr_copy(us, &bindaddr);
 			}
+			if (!ast_sockaddr_port(us)) {
+				ast_sockaddr_set_port(us, ast_sockaddr_port(&bindaddr));
+			}
 		}
 	} else if (!ast_sockaddr_is_any(&bindaddr)) {
 		ast_sockaddr_copy(us, &bindaddr);