[OpenSIPS-Users] Nathelper module doesn't send OPTIONS keepalive
Bogdan-Andrei Iancu
bogdan at opensips.org
Tue May 3 14:33:18 CEST 2016
Hi Julian,
When handling the REGISTER, set the bflag 8 (for options pinging) before
the save() function, not after it.
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 02.05.2016 13:50, Julian Santer wrote:
> Hi guys,
>
> my mistake was to configure the nathelper module on edge server.
> As it has to use the usrloc module and the usrloc module is on the
> core server.
>
> So I have loaded now the nathelper module on the core server:
>
> loadmodule "usrloc.so"
> modparam("usrloc", "user_column", "username")
> ...
>
> loadmodule "nathelper.so"
> modparam("nathelper", "natping_interval", 10)
> modparam("nathelper", "ping_nated_only", 0)
> modparam("nathelper", "natping_partitions", 1)
> modparam("nathelper", "sipping_bflag", 8)
> modparam("nathelper", "sipping_from", "sip:keepalive at lab.rolvoice.it")
> modparam("nathelper", "sipping_method", "OPTIONS")
>
> route[R_REGISTER]
> {
> if (! save("LOCATION_TABLE", "vp1"))
> {
> xlog("L_ERR", "Saving contact from EDGE failed - LF_BASE");
> exit;
> }
> xlog("L_INFO", "Saving contact received from EDGE, replicate to
> REGISTRAR_FAILOVER - LF_BASE");
>
> if (proto == UDP)
> {
> setbflag(8);
> xlog("L_INFO", "Nat keepalive sip_ping_flag - LF_BASE");
> }
>
> In log I see:
> May 2 12:42:59 core2 OpenSIPS[34111]: Saving contact received from
> EDGE - M=REGISTER RURI=sip:1.2.3.5 F=sip:dev-lab1 at domain
> T=sip:dev-lab1 at domain SRC=1.2.3.4:5060 UAC=snom760/8.7.5.35
> ID=3134363034303936373734333636-kohhuu6fsruo B=<null>
> May 2 12:42:59 core2 OpenSIPS[34111]: Nat keepalive sip_ping_flag -
> M=REGISTER RURI=sip:1.2.3.5 F=sip:dev-lab1 at domain
> T=sip:dev-lab1 at domain SRC=1.2.3.4:5060 UAC=snom760/8.7.5.35
> ID=3134363034303936373734333636-kohhuu6fsruo B=<null>
>
> For tests I set the ping_nated_only to 0, so all clients should
> receive a keepalive.
> I hoped that the core sends now:
> - OPTIONS with data from usrloc
> - uses the path from usrloc to send the OPTIONS to the edge server,
> and then I could relay to the client
>
> But the core sends now the 4 bytes (zero filled) UDP packages to the
> edge server.
> Why the nathelper module doesn't use the usrloc?
> Maybe you could give a hint, what is missing in the config.
>
> Kind regards,
> Julian Santer
> Raiffeisen OnLine
>
> Am 03.03.2016 um 17:05 schrieb Julian Santer:
>> Hi guys,
>>
>> we tried to switch from nat_traversal to nathelper.
>> The reason is the keepalive mechanism.
>>
>> The nat_traversal module sends OPTIONS with the following to header:
>> sip:UAC_IP:UAC_PORT
>> Most of the UAC's answers with a 404 Not found.
>> On AVM Fritzbox with firmware >= 6.04, this OPTIONS may activate a
>> security feature.
>> So after a certain time, the Fritzbox blocks all packages send from
>> our proxy.
>> As we have ca. 80% AVM Fritzbox as UAC, we got a big problem.
>> So we deactivated the nat_keepalive vor this UAC's and we have to
>> enable the keepalive Feature on the Fritzbox.
>>
>> The better solution would be, if we could send OPTIONS with a to
>> header like: sip:username at UAC_IP:UAC_PORT.
>> As I understood the nathelper module could send OPTIONS like this.
>> Because it is looking into the userloc table. Right?
>>
>> The nathelper module is on our edge server, the registrar on our core
>> server.
>> The problem now is, that the module does not sends any OPTIONS at all.
>>
>> We are using the version 2.1.2 from git. Last pull on 2016/03/01.
>>
>> The nathelper config looks like:
>> #### nathelper module
>> loadmodule "nathelper.so"
>> modparam("nathelper", "natping_interval", 56)
>> modparam("nathelper", "ping_nated_only", 0)
>> modparam("nathelper", "natping_partitions", 1)
>> modparam("nathelper", "natping_socket", "IP_PROXY:5060")
>> modparam("nathelper", "sipping_bflag", "SIP_PING_FLAG")
>> modparam("nathelper", "sipping_from", "sip:keepalive at DEFAULT_REALM")
>> modparam("nathelper", "sipping_method", "OPTIONS")
>> modparam("nathelper", "nortpproxy_str", "")
>> modparam("nathelper", "natping_tcp", 0)
>>
>> For the test, in the register route I tried to set always the
>> sipping_bflag:
>> if (proto == UDP)
>> {
>> setbflag(SIP_PING_FLAG);
>> xlog("L_INFO", "Nat keepalive sip_ping_flag - LF_BASE");
>> }
>>
>> But in my traces I can't find any OPTIONS send by the nathelper module.
>> Could you give me a hint?
>>
>> Kind regards,
>> Julian Santer
>> Raiffeisen OnLine
>>
>>
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
More information about the Users
mailing list