On Fri, Feb 27, 2015 at 3:11 PM, Daniel-Constantin Mierla <miconda@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@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