Hello
I am having an issue handling UN-REGISTERs.
This is my config file:
route{ xlog("L_INFO", "mylog: starting_main_logic.\n"); if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); xlog("L_INFO","mylog: Too Many Hops.\n"); exit; };
if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); xlog("L_INFO","mylog: Message too big.\n"); exit; };
if (!method=="REGISTER") { xlog("L_INFO","mylog: Recording Route. Method: [$rm].\n"); record_route(); }
if (loose_route()) { # mark routing logic in request xlog("L_INFO","mylog: Loose Route section. Method: [$rm].\n"); append_hf("P-hint: rr-enforced\r\n"); route(1); };
if (uri==myself) { if (method=="REGISTER" && (!search("expires=0"))) { xlog("L_INFO","mylog: starting to process REGISTER.Info: [$au].\n"); if (!www_authorize("", "subscriber")) { xlog("L_INFO","mylog: REGISTER came without auth, sending challenge.\n"); www_challenge("", "0"); exit; }; save("location"); xlog("L_INFO","mylog: save-location successful.\n"); exit; } else if (method=="INVITE") { xlog("L_INFO","mylog: Processing INVITE.\n"); if (!proxy_authorize("","subscriber")) { xlog("L_INFO","mylog: INVITE came without auth, sending challenge.\n"); proxy_challenge("","0"); exit; }; consume_credentials(); };
# native SIP destinations are handled using our USRLOC DB if (!lookup("location")) { sl_send_reply("404", "Not Found"); xlog("L_INFO","mylog: lookup-location failed, sending 404 Not Found. Method: [$rm].\n"); exit; }; append_hf("P-hint: usrloc applied\r\n"); }; route(1); }
route[1] { # send it out now; use stateful forwarding as it works reliably # even for UDP2TCP if (t_relay()) { xlog("L_INFO","mylog: Route 1 section. Method [$rm]."); } else { sl_reply_error(); xlog("L_INFO","mylog: Route 1 section. T_Relay failed. Method [$rm]."); }; exit; }
I added the "&& (!search("expires=0"))" to make sure that only the REGISTER requests will be processed by the next lines and the AOR will be saved in those cases. The X-lite sends "expires=0" in the Contact HF when it is unregistering. This is how the processing of a REGISTER looks like as per my code:
Nov 10 12:33:08 sp1094a ../../sbin/kamailio[26069]: mylog: starting_main_logic. Nov 10 12:33:08 sp1094a ../../sbin/kamailio[26069]: mylog: starting to process REGISTER.Info: [<null>]. Nov 10 12:33:08 sp1094a ../../sbin/kamailio[26069]: mylog: REGISTER came without auth, sending challenge. Nov 10 12:33:08 sp1094a ../../sbin/kamailio[26069]: mylog: starting_main_logic. Nov 10 12:33:08 sp1094a ../../sbin/kamailio[26069]: mylog: starting to process REGISTER.Info: [101]. Nov 10 12:33:08 sp1094a ../../sbin/kamailio[26069]: mylog: save-location successful.
and when the phone UN-REGISTERs this is what I see:
Nov 10 12:33:17 sp1094a ../../sbin/kamailio[26069]: mylog: starting_main_logic. Nov 10 12:33:17 sp1094a ../../sbin/kamailio[26069]: mylog: lookup-location failed, sending 404 Not Found. Method: [REGISTER].
My question is, do I need to use the lookup section for REGISTERs and UN-REGISTERs? If I comment out that part this is how the log looks like:
#if (!lookup("location")) { # sl_send_reply("404", "Not Found"); # xlog("L_INFO","mylog: lookup-location failed, sending 404 Not Found. Method: [$rm].\n"); # exit; #};
log:
the 1st part [REGISTER] looks the same
[root@sp1094a kamailio]# tail -f /var/log/kamailio_logs | grep mylog Nov 10 12:36:35 sp1094a ../../sbin/kamailio[26203]: mylog: starting_main_logic. Nov 10 12:36:35 sp1094a ../../sbin/kamailio[26203]: mylog: starting to process REGISTER.Info: [<null>]. Nov 10 12:36:35 sp1094a ../../sbin/kamailio[26203]: mylog: REGISTER came without auth, sending challenge. Nov 10 12:36:35 sp1094a ../../sbin/kamailio[26203]: mylog: starting_main_logic. Nov 10 12:36:35 sp1094a ../../sbin/kamailio[26203]: mylog: starting to process REGISTER.Info: [101]. Nov 10 12:36:35 sp1094a ../../sbin/kamailio[26203]: mylog: save-location successful.
and this is what the log shows when the phone is UN-REGISTERING
Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: starting_main_logic. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: Route 1 section. Method [REGISTER]. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: starting_main_logic. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: Route 1 section. Method [REGISTER]. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: starting_main_logic. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: Route 1 section. Method [REGISTER]. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: starting_main_logic. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: Route 1 section. Method [REGISTER]. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: starting_main_logic. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: Route 1 section. Method [REGISTER]. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: starting_main_logic. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: Route 1 section. Method [REGISTER]. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: starting_main_logic. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: Route 1 section. Method [REGISTER]. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: starting_main_logic. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: Route 1 section. Method [REGISTER]. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: starting_main_logic. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: Route 1 section. Method [REGISTER]. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: starting_main_logic. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: Route 1 section. Method [REGISTER]. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: starting_main_logic. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: Route 1 section. Method [REGISTER]. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: starting_main_logic. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: Route 1 section. Method [REGISTER]. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: starting_main_logic. Nov 10 12:36:42 sp1094a ../../sbin/kamailio[26203]: mylog: Route 1 section. Method [REGISTER]. Nov 10 12:36:43 sp1094a ../../sbin/kamailio[26203]: mylog: starting_main_logic. Nov 10 12:36:43 sp1094a ../../sbin/kamailio[26203]: mylog: Route 1 section. Method [REGISTER]. Nov 10 12:36:43 sp1094a ../../sbin/kamailio[26203]: mylog: starting_main_logic. Nov 10 12:36:43 sp1094a ../../sbin/kamailio[26203]: mylog: Route 1 section. Method [REGISTER]. Nov 10 12:36:43 sp1094a ../../sbin/kamailio[26203]: mylog: starting_main_logic. Nov 10 12:36:43 sp1094a ../../sbin/kamailio[26203]: mylog: Message too big.
[root@sp1094a kamailio]#
Regards
Fabian
_________________________________________________________________ Stay up to date on your PC, the Web, and your mobile phone with Windows Live http://clk.atdmt.com/MRT/go/119462413/direct/01/