Dear list, I'm trying to implement registration replication between 2 SERs (ver. 0.9.4, they are AA behind an F5 BigIP). Both SERs are using the same mysql database and mediaproxy is used for RTP relaying (whenever needed). The basis for my configuration is the mediaproxy config from onsip.org (excellent work, many thanx guys).
My servers are 10.21.128.232 and 10.21.128.233. I'm using forward_tcp and save_memory for replication purposes, as can be seen in the following registration route block:
route[2] {
# ----------------------------------------------------------------- # REGISTER Message Handler # ----------------------------------------------------------------
sl_send_reply("100", "Trying");
if(src_ip==10.21.128.233) { # If it is a forward from our brother then... if (client_nat_test("3")) { # check if the user is NATed setflag(6); fix_nated_register(); force_rport(); }; save_memory("location"); break;
} else { if (!search("^Contact:[ ]**") && client_nat_test("7")) { setflag(6); fix_nated_register(); force_rport(); };
if (!radius_www_authorize("domain.com")) { www_challenge("domain.com","0"); xlog("L_NOTICE","Could not authorize user %fu, IP %is \n"); break; };
if (!check_to()) { sl_send_reply("401", "Unauthorized"); xlog("L_NOTICE","From: does not match URI:, user %fu, IP %is \n"); break; };
consume_credentials();
if (!save("location")) { xlog("L_WARN","MYSQL down? Could not save location\n"); sl_reply_error(); }; xlog("L_INFO","Updating registration for user %fu, IP %is \n"); add_rcv_param(); if (!forward_tcp("10.21.128.233", 5060)) { xlog("L_WARN","Cannot replicate user %fu at server 10.21.128.233\n"); }; }; }
When performing a "serctl ul show" on the servers, the results are as follows:
1) For UAs coming from real IPs, serctl shows identical results on both servers. 2) For NATed UAs there is difference in the "Flags:" field. On the server that initialy proccessed the request, the value of the "Flags" is 1 (OK!), while on the server that the registration was forwarded, the value of the "Flags" field is 257(??).
My impression is that the Flags field should be 1 if a UA is NATed and 0 if not. Am I wrong?
If I'm right on the above, then shouldn't both servers show the same result in Flags (i.e. 1) for NATed clients?
On the other hand, if I restart SER (and the contacts are read from the database), then every "weird" 257 Flag is reset to 1, until the next UA re-registration (where it returns again to 257).
Thanx for any help, George.