[Freeswitch-users] New feature - NAT handling, keep-alive OPTIONS

Anthony Minessale anthony.minessale at gmail.com
Tue Apr 15 15:15:11 PDT 2008

Did you know that you can set the params and variables separate in each
<user> if you wish.
The default example where it puts them in the <domain> is not mandatory,
when you add params to the domain it implies every user in that domain.

On Tue, Apr 15, 2008 at 4:40 PM, kokoska rokoska <kokoska.rokoska at post.cz>

> Hi all,
> First of all I have say I'm very impressed by FreeSWITCH SIP handling.
> It way differs from what I know from Asterisk :-)
> A lot of my previous questions about adding/modifying SIP headers are
> irrelevant becasuse FreeSWITCH do the job automagically...
> -----
> Now why I want to say:
> I think about new feature which may (or may not :-) slightly off-load
> the FreeSWITCH in case of handling a lot of SIP clients behind NAT.
> If I understand my pcap dumps right, now in case of 10.000 UACs behind
> NAT FreeSWITCH tries to send more than 2000 OPTIONS per second to the
> UACs. If I don't miss something, it is too much, I think :-)
> My idea is to use NAT-hack for only some of UACs, send NAT keep-alive
> OPTIONS for only UACs it realy need it (based on administrator decision)
> and make periodicity of NAT keep-alive packets configurable.
> I briefly looked into the sources and I think the solution could be like
> this:
> 1. Introduce new "per profile" variable "nat_keep_alive" meaning number
> of seconds between sending of OPTIONS.
> 2. Introduce new variable "sip_contact_ip" in Directory http post to
> xml_curl. This is helpful - if compared to "ip" - to decide if NAT-hack
> should be applied.
> 3. Introduce new variable "enable_nat_ping" which defaults to "yes".
> This var could be in replies to Directory http posts.
> 4. Remove sofia_reg_nat_callback from sofia_reg_check_expire and
> introduce independant call from sofia_profile_worker_thread_run driven
> by value of "nat_keep_alive" variable.
> 5. Modify DB table sip_registrations - add indexed TINYINT column
> "nat_ping" and write to this column value of variable "enable_nat_ping".
> 6. Select UACs for sending NAT keep-alive OPTINS from DB based by
> indexed column search instead of by expensive fullscan of table with
> "LIKE '%sometihng%'".
> This is what I think could be useful. Any comments are welcome :-)
> Expecially if somebody see it handy too or even works on something
> similar - to work together.
> If you see I miss something important or you see any drawback in my
> suggestion, please tell me it :-). Thanks!
> Best regards,
> kokoska.rokoska
> _______________________________________________
> Freeswitch-users mailing list
> Freeswitch-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org

Anthony Minessale II

FreeSWITCH http://www.freeswitch.org/
ClueCon http://www.cluecon.com/

AIM: anthm
MSN:anthony_minessale at hotmail.com <MSN%3Aanthony_minessale at hotmail.com>
GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com<PAYPAL%3Aanthony.minessale at gmail.com>
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888 at conference.freeswitch.org <sip%3A888 at conference.freeswitch.org>
iax:guest at conference.freeswitch.org/888
googletalk:conf+888 at conference.freeswitch.org<googletalk%3Aconf%2B888 at conference.freeswitch.org>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20080415/d88892ab/attachment-0002.html 

More information about the FreeSWITCH-users mailing list