diff --git a/channels/chan_sip.c b/channels/chan_sip.c index bf236f853bdf28946ca01cdfe51ba08f6b93123c..5ad3affedff0b3939d72144000e1689731baaa9e 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -5582,7 +5582,9 @@ static int transmit_register(struct sip_registry *r, int sipmethod, char *auth, ast_string_field_set(r, callid, p->callid); if (r->portno) p->sa.sin_port = htons(r->portno); - ast_set_flag(&p->flags[0], SIP_OUTGOING); /* Registration is outgoing call */ + else /* Set registry port to the port set from the peer definition/srv or default */ + r->portno = p->sa.sin_port; + ast_set_flag(p, SIP_OUTGOING); /* Registration is outgoing call */ r->call=p; /* Save pointer to SIP packet */ p->registry = ASTOBJ_REF(r); /* Add pointer to registry in packet */ if (!ast_strlen_zero(r->secret)) /* Secret (password) */