diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 45410f64f91a165507dbd1ead37be8ec39d0d11e..dab0bd9d12bc6f1b2e1eda23ff7580259d65b88a 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -4638,7 +4638,9 @@ static int create_addr(const char *peername, struct ast_channel *c, struct socka return -1; } ast_sockaddr_to_sin(&sin_tmp, sin); - sin->sin_port = htons(IAX_DEFAULT_PORTNO); + if (sin->sin_port == 0) { + sin->sin_port = htons(IAX_DEFAULT_PORTNO); + } /* use global iax prefs for unknown peer/user */ /* But move the calling channel's native codec to the top of the preference list */ memcpy(&ourprefs, &prefs, sizeof(ourprefs));