[sr-dev] db version of nat pinger
Daniel-Constantin Mierla
miconda at gmail.com
Sat Sep 15 09:58:59 CEST 2012
Hello,
On 9/15/12 9:22 AM, Juha Heinanen wrote:
> current implementation of nathelper nat pinging is based on obtaining
> contact info from usrloc module:
>
> static void
> nh_timer(unsigned int ticks, void *timer_idx)
> {
> ...
> rval = ul.get_all_ucontacts(buf, cblen, (ping_nated_only?ul.nat_flag:0),
> ((unsigned int)(unsigned long)timer_idx)*natping_interval+iteration,
> natping_processes*natping_interval);
>
> would it be feasible to have another mode where the contact info is
> obtained from database location table? this would make it possible to
> ping nated contacts also from other hosts than the registrar, such as a
> dispatcher.
>
> any comments?
the pinging is using the local socket where the register was received,
that could fail on the dispatcher host. Also, the path header may create
troubles in routing.
Overall, I would not like to get nathelper connecting to database of
usrloc, instead usrloc can be updated for a runtime mode where it does
only read operations - in db only mode, if save() is not used, then only
thing to be disabled is the timer for deleting auto-expired records. In
this way, any change to database structure/backend type has to be
updated in one place.
Cheers,
Daniel
--
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio Advanced Training, Berlin, Nov 5-8, 2012 - http://asipto.com/u/kat
Kamailio Advanced Training, Miami, USA, Nov 12-14, 2012 - http://asipto.com/u/katu
More information about the sr-dev
mailing list