On Monday, November 10, 2014 06:56:08 PM J Hazenberg wrote:
Hello,
I'm runnig kamailio 4.2.0 and using the lookup_branches function from the register module to lookup all branches after a alias_db_lookup. The function seems to work fine but i see the following error in the log file just after the lookup:
INFO: <core> [mem/f_malloc.c:599]: fm_free(): freeing a free fragment (0x7fad277fe110/0x7fad277fe148) - ignore INFO: <core> [mem/f_malloc.c:599]: fm_free(): freeing a free fragment (0x7fad277fcd38/0x7fad277fcd70) - ignore INFO: <core> [mem/f_malloc.c:599]: fm_free(): freeing a free fragment (0x7fad277fcd88/0x7fad277fcdc0) - ignore
Code:
alias_db_lookup("dbaliases");
if (!lookup_branches("location")) {
This only happens when i have multiple branches, could this be a error in my script?
Jan, I'm seeing the same error (with Kamailio build from the git master def8d26) when I have multiple branches, though mine is proceeded with a uri2dst2() error:
ERROR: tm [ut.h:272]: uri2dst2(): ERROR: uri2dst: bad_uri: INFO: <core> [mem/f_malloc.c:599]: fm_free(): freeing a free fragment (0x7f6717cb7a88/0x7f6717cb7ac0) - ignore INFO: <core> [mem/f_malloc.c:599]: fm_free(): freeing a free fragment (0x7f6717d133a0/0x7f6717d133d8) - ignore INFO: <core> [mem/f_malloc.c:599]: fm_free(): freeing a free fragment (0x7f6717ccb6b0/0x7f6717ccb6e8) - ignore INFO: <core> [mem/f_malloc.c:599]: fm_free(): freeing a free fragment (0x7f6717d11bb0/0x7f6717d11be8) - ignore
Unfortunately, I'm learning Kamailio and trying to work with branch routing and I can't figure out if my script is wrong, or if there's a bug.
My script is as follows:
route[LOCATION] { #!ifdef WITH_SPEEDDIAL # search for short dialing - 2-digit extension if($rU=~"^[0-9][0-9]$") if(sd_lookup("speed_dial")) route(SIPOUT); #!endif
#!ifdef WITH_ALIASDB # search in DB-based aliases if(alias_db_lookup("dbaliases")) { $avp(oexten) = $oU; route(SIPOUT);
} #!endif
if($avp(oexten)==$null) $avp(oexten) = $rU; if(!lookup_branches("location")) { # Save the return code from the lookup function $var(rc_lookup) = $rc;
if(is_method("MESSAGE")) { route(IMC); route(MESSAGEGW); route(MSILO); send_reply("404", "Not Found"); exit; }
# Route to Asterisk if(is_method("INVITE") && !is_subscriber("$ru", "subscriber", "1")) { route(TOASTERISK); exit; }
# Route to VoiceMail route(TOVOICEMAIL); t_newtran(); switch ($var(rc_lookup)) { case -1: case -3: send_reply("404", "Not Found"); exit; case -2: send_reply("405", "Method Not Allowed"); exit; } }
# when routing via usrloc, log the missed calls also if(is_method("INVITE")) { setflag(FLT_ACCMISSED); } }
route[SIPOUT] { if(uri==myself) return;
append_hf("P-hint: outbound\r\n"); route(RELAY); exit; }