On Fri, Feb 27, 2015 at 3:11 PM, Daniel-Constantin Mierla <miconda(a)gmail.com
wrote:
I would use an extra branch flag here.
Keepalives are sent based on nat_bflag and sipping_bflag. You can set both
no matter it is actually a register from a natted phone or not.
That's the solution we tried to implement this afternoon. We saved an
additional location entry on the loadbalancer (just as a proof of concept)
and then set the NAT flag configured for the nathelper module. Via kamcmd I
can see that the location entry is there. But I don't see any keepalives
being sent out. I even set the ping_nated_only parameter to 0 so that all
clients would get pings. On the proxy I can see them (for IPv4 cllients).
Is there anything special? This is what I did:
modparam("registrar", "max_contacts", 50)
modparam("registrar", "received_avp", "$(avp(i:801))")
modparam("registrar", "default_expires", 600)
modparam("registrar", "min_expires", 60)
modparam("registrar", "max_expires", 600)
modparam("registrar", "gruu_enabled", 0)
modparam("usrloc", "db_mode", 0)
modparam("usrloc", "nat_bflag", 4)
modparam("usrloc", "use_domain", 1)
modparam("usrloc", "hash_size", 14)
modparam("usrloc", "timer_interval", 180)
modparam("usrloc", "timer_procs", 4)
modparam("nathelper", "received_avp", "$(avp(i:801))")
modparam("nathelper", "natping_interval" , 14)
modparam("nathelper", "ping_nated_only" , 0)
modparam("nathelper", "sipping_bflag", 20)
modparam("nathelper", "sipping_from", "natping(a)sipgate.de")
And then in the onreply_route I added the following:
if (is_method("REGISTER") && $rs == 200) {
setbflag(4);
save("location");
}
(Again, this is just a proof of concept.)
Now I would expect to see NAT pings every 14 seconds to each registered
client. But I don't see any.
Does the NAT pinging work only for IPv4 maybe?
Best Regards,
Sebastian