[asterisk-dev] [Code Review] Add a SIP nat=auto setting
Kevin Fleming
reviewboard at asterisk.org
Thu Feb 9 09:36:02 CST 2012
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/1698/#review5452
-----------------------------------------------------------
Ship it!
A bunch of minor stuff, and it would be better with bacon, but otherwise looks good. Nicely done.
/trunk/CHANGES
<https://reviewboard.asterisk.org/r/1698/#comment10042>
Stray semicolon here.
/trunk/CHANGES
<https://reviewboard.asterisk.org/r/1698/#comment10043>
To be more pedantic, I'd suggest saying 'if Asterisk detects that an incoming SIP request crossed a NAT after being sent by the remote endpoint.'
/trunk/CHANGES
<https://reviewboard.asterisk.org/r/1698/#comment10044>
Unbalanced quotes here.
/trunk/channels/chan_sip.c
<https://reviewboard.asterisk.org/r/1698/#comment10045>
s/clients are/the requesting UA is/
There is only one UA in the mix here, so using a plural seems misleading.
What does 'later' mean in this context? The handling of 'auto' is done right here in this code block.
/trunk/channels/chan_sip.c
<https://reviewboard.asterisk.org/r/1698/#comment10046>
Add output of comedia-related options?
/trunk/channels/chan_sip.c
<https://reviewboard.asterisk.org/r/1698/#comment10047>
We could add SIP-Comedia here too.
/trunk/channels/sip/config_parser.c
<https://reviewboard.asterisk.org/r/1698/#comment10048>
Minor typo.
/trunk/channels/sip/config_parser.c
<https://reviewboard.asterisk.org/r/1698/#comment10049>
I know it didn't do this before, and it's not documented this way, but using ast_false() and ast_true() would be better than direct comparisons against 'no' and 'yes'... just in case someone tries 'on' or 'off' :-)
/trunk/channels/sip/include/config_parser.h
<https://reviewboard.asterisk.org/r/1698/#comment10051>
Same typo here. It's probably not worth repeating the doxygen docs in both the header and the implementation files.
/trunk/configs/sip.conf.sample
<https://reviewboard.asterisk.org/r/1698/#comment10053>
s/ouside of/other than/
/trunk/configs/sip.conf.sample
<https://reviewboard.asterisk.org/r/1698/#comment10054>
s/therefor/therefore/
s/it's/its/
/trunk/configs/sip.conf.sample
<https://reviewboard.asterisk.org/r/1698/#comment10056>
Suggest changing all references to port in this block to 'address/port', since both are taken into account.
/trunk/configs/sip.conf.sample
<https://reviewboard.asterisk.org/r/1698/#comment10057>
Same thing here... port should become 'address/port'.
- Kevin
On Feb. 8, 2012, 11:34 p.m., Terry Wilson wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/1698/
> -----------------------------------------------------------
>
> (Updated Feb. 8, 2012, 11:34 p.m.)
>
>
> Review request for Asterisk Developers.
>
>
> Summary
> -------
>
> First, this patch as originally posted is from JIRA user pedro-garcia. It has been in JIRA for a long while, and has finally come up to be considered. There were some changes that I wanted to made to the original patch, so I tried contacting the author to get them to put the patch on reviewboard, but after a week I got no response. So, I'm putting the original patch up, then will immediately add a review with my changes. Many thanks to pedro-garcia for his contribution.
>
> From the JIRA issue:
>
> I have some devices in the following scenario:
>
> Asterisk server with public IP address
> Mobile devices (clients):
>
> When in internal network, no NAT between the client and the server
> When in "roaming" (i.e. a Hotel with WiFi), the client is behing a NAT
> When in 3G, operator transparent sip proxy so it looks as no NAT, but does not support symmetric RTP.
> Sometime, the device gets a public IP with no NAT at all.
> No NAT setting available in asterisk works for all these scenarios at the same time, and I can not request the user to activate different accounts depending on its location.
>
> I have added a new NAT setting (nat=auto) to the current ones. When set, chan_sip auto detects from the Via header, the recv sockaddr, and the rport setting if the client is behind a NAT.
>
> It also adds to cli interface results (sip show peer/s) info on this (so now you could see "N" for NAT and nothing for no NAT as before, "a" for auto detect no NAT, and "A" for autodetect NAT.
>
>
> This addresses bug ASTERISK-17860.
> https://issues.asterisk.org/jira/browse/ASTERISK-17860
>
>
> Diffs
> -----
>
> /trunk/configs/sip.conf.sample 354465
> /trunk/channels/sip/config_parser.c 354465
> /trunk/channels/sip/include/config_parser.h 354465
> /trunk/channels/sip/include/sip.h 354465
> /trunk/channels/sip/include/sip_utils.h 354465
> /trunk/channels/sip/utils.c PRE-CREATION
> /trunk/CHANGES 354465
> /trunk/channels/chan_sip.c 354465
>
> Diff: https://reviewboard.asterisk.org/r/1698/diff
>
>
> Testing
> -------
>
> Lots of reloads with changing values, and registry natted and un-natted phones. I also set the nat_supertest in testsuite to run with nat=auto to make sure that it responded the same with existing and non-existing peers.
>
>
> Thanks,
>
> Terry
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20120209/b43f393b/attachment-0001.htm>
More information about the asterisk-dev
mailing list