[OpenSIPS-Users] Strange multiple replicated registers
Bogdan-Andrei Iancu
bogdan at opensips.org
Wed Nov 18 23:25:07 CET 2015
Hi Julian,
There are 2 REGISTERs because of authentication - first is without
credentials, the second has credentials (as a reaction of the auth
challenge from the first REGISTER)
In the second trace, the additional REGISTERs from master to slave are
SIP transmissions (the t_replicate() acts as a t_relay(), so it does
retransmissions until it gets a reply back) - I see not SIP reply from
the slave back to master
Best regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 17.11.2015 18:37, Julian Santer wrote:
> Hi guys,
>
> we have encountered the following problem.
> Our UAC (Snom 760) sends 2 register for the same contact to our edge
> servers.
> Our edge server sends the register to registrar (master). The
> registrar replicates the register to the registrar (slave).
> The flow of first register seems ok
> (http://siptrace.rolbox.net/register_first.html).
> The second register ends also in a 200 OK. But the register master
> replicates the register 9 times
> (http://siptrace.rolbox.net/register_second.html).
>
> So my qeustions are:
> - why the UAC send the register twice for the same contact? Also other
> clients like a AVM Fritzbox send the register twice.
> - why the registrar master replicates the register multiple times?
>
> IP's and domains are obfuscated.
>
> On the edge server we do (5.6.7.8):
>
> $rd = "5.6.7.9";
> t_on_branch("BR_REGISTER");
> if (! t_relay("0x05"))
> {
> send_reply("500", "Internal server error - failed to relay");
> xlog("L_ERR", "Unable to relay REGISTER - LF_BASE");
> }
> xlog("L_INFO", "Routing register to registrar - LF_BASE");
>
> On the registrars (5.6.7.9 and 5.6.7.10):
>
> xlog("L_INFO", "REGISTER received from $si - LF_BASE");
>
> if (src_ip == 5.6.7.9 || src_ip == 5.6.7.10)
> {
> if (! save("LOCATION_DB", "vmrp1"))
> {
> xlog("L_ERR", "Saving contact from master failed - LF_BASE");
> exit;
> }
> xlog("L_INFO", "Saving contact received from master - LF_BASE");
> t_on_branch("BR_DROP");
> }
> else
> {
> if(!save("LOCATION_DB", "vp1"))
> {
> xlog("L_ERR", "Saving contact from edge failed - LF_BASE");
> t_replicate("sip:REGISTRAR_SLAVE", "0x04");
> exit;
> }
> xlog("L_INFO", "Saving contact received from edge, replicate
> to REGISTRAR_SLAVE - LF_BASE");
> t_replicate("sip:REGISTRAR_SLAVE", "0x04");
> t_on_branch("BR_DROP");
> }
>
> if ($(hdr(Contact)) == null)
> {
> xlog("L_INFO", "Retrieving locations - LF_BASE");
> } else {
> xlog("L_INFO", "Registration successful - LF_BASE");
> }
> exit;
>
> LOCATION_DB is the location table name for the registrars (2
> registrars, 2 tables)
> REGISTRAR_SLAVE is the domain name of the respective registrar slave.
> The servers are in the same network, connected over layer 2.
>
> Let me know if you need further informations.
>
> Best 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