[Asterisk-code-review] res_pjsip_nat: Restore original contact for REGISTER responses (...asterisk[13])

George Joseph asteriskteam at digium.com
Fri Sep 13 13:32:49 CDT 2019


George Joseph has posted comments on this change. ( https://gerrit.asterisk.org/c/asterisk/+/12824 )

Change subject: res_pjsip_nat: Restore original contact for REGISTER responses
......................................................................


Patch Set 4:

> Patch Set 4:
> 
> > Patch Set 4:
> > 
> > > Patch Set 4:
> > > 
> > > > Patch Set 4:
> > > > 
> > > > It's worse, it writes asterisk's ip-address to contact host
> > > This happens when set external_signaling_address on transport.
> > 
> > Are you sure? It's working for me and I do have external_signalling_address set on the transport.  The code takes exactly what's in the incoming contact header.
> 
> 
> Sure.
> I even placed a debug before and after
> pj_strdup2(tdata->pool, &uri->host, ast_sockaddr_stringify_host(&transport_state->external_signaling_address));
> to check it.
> 
> If set external_signaling_address
> res_pjsip_nat.c: Saving contact 'endpoint-private-ip:65160'
> res_pjsip_nat.c: got contact endpoint-public-ip:65160
> res_pjsip_nat.c: Found orig host: endpoint-private-ip:65160
> res_pjsip_nat.c: Before Contact URI host:port endpoint-private-ip:65160
> res_pjsip_nat.c: After Contact URI host:port external_signaling_address:65160
> 
> SIP 200 REGISTER
> Contact: <sip:endpoint at external_signaling_address:65160>;expires=179
> 
> If not set external_signaling_address
> res_pjsip_nat.c: Saving contact 'endpoint-private-ip:65160'
> res_pjsip_nat.c: got contact endpoint-public-ip:65160
> res_pjsip_nat.c: Found orig host: endpoint-private-ip:65160
> 
> SIP 200 REGISTER
> Contact: <sip:endpoint at endpoint-private-ip:65160>;expires=179

Are endpoint-private-ip and endpoint-public-ip the addresses of the device or the pbx?  Are you testing from the same machine as the pbx?  I think you discovered a completely separate bug.  If you look further down in nat_on_tx_message we're setting the Contact host to the external_signalling_address but we should only be doing that for outgoing requests, not responses.


-- 
To view, visit https://gerrit.asterisk.org/c/asterisk/+/12824
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: 13
Gerrit-Change-Id: Idc263ad2d2d7bd8faa047e5804d96a5fe1cd282e
Gerrit-Change-Number: 12824
Gerrit-PatchSet: 4
Gerrit-Owner: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Alexei Gradinari <alex2grad at gmail.com>
Gerrit-Reviewer: Friendly Automation
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Kevin Harwell <kharwell at digium.com>
Gerrit-Comment-Date: Fri, 13 Sep 2019 18:32:49 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20190913/aead7984/attachment-0001.html>


More information about the asterisk-code-review mailing list