diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 7d87e24dbf61f55bb55109d7d6009469560bc055..95999519f1def553d1a3d6b06f7383d91d3ec970 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -3111,7 +3111,7 @@ static void ast_sip_ouraddrfor(const struct ast_sockaddr *them, struct ast_socka
 			}
 			externexpire = time(NULL) + externrefresh;
 		}
-		if (ast_sockaddr_isnull(&externip)) {
+		if (!ast_sockaddr_isnull(&externip)) {
 			ast_sockaddr_copy(us, &externip);
 			switch (p->socket.type) {
 			case SIP_TRANSPORT_TCP: