-
- Downloads
Enhance NAT support as discussed on the -dev list, i.e.:
+ extensive documentation changes both in sip.conf.sample and in the source; + allow "externip" and "externhost" to include a port number as well; + allow "bindaddr" to have a port number (making bindport unnecessary, even though it is still present for backward compatibility); + introduce the new "stunaddr" parameter to specify an STUN server to be used from the main SIP socket; + extend the "sip show settings" output to show all the above. Internally: + change related data structures from struct in_addr to struct sockaddr_in to store the port numbers as well; + reorganize ast_sip_ouraddrfor() (should also be renamed to sip_ouraddrfor() because it is not a generic API, though it might become so if called with a socket as an additional argument, in which case it can be moved elsewhere). As mentioned in the documentation, media sessions still do not use STUN so the port numbers may still be incorrect when Asterisk is behind a NAT On passing, some of the debugging messages printing media addresses are probably using the wrong values, but this will be checked/fixed in a subsequent commit if needed. Part of the following chunk in the function that handles a "sip reload" is probably needed on previous versions as well, to avoid leaking the memory used for the "localaddr" list: @@ -17244,13 +17274,17 @@ /* Reset IP addresses */ memset(&bindaddr, 0, sizeof(bindaddr)); + memset(&stunaddr, 0, sizeof(stunaddr)); + memset(&internip, 0, sizeof(internip)); + /* Free memory for local network address mask */ + ---> ast_free_ha(localaddr); <----- memset(&localaddr, 0, sizeof(localaddr)); memset(&externip, 0, sizeof(externip)); memset(&default_prefs, 0 , sizeof(default_prefs)); git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76221 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Please register or sign in to comment