Ole Kaas wrote:
Hello,

Hello Ole
Any idea why this fails:

$var(carrier) = "carriername";
$var(domainname) = "domain";
if(cr_route( "$var(carrier)", "$var(domainname)", "$rU", "$rU", "call_id"))
with tis in the log:

INFO: carrierroute [cr_func.c:598]: uri domain was rewritten to sip:domain, 
carrier 2, domain 2

You are right, if you use 2 PV in the cr_route function things will go badly.

The reason is that the core function get_str_fparam() returns a pointer to a static buffer, and in total there are three(3) static buffers to return, so after a fourth call the first value (if cached which is the case in your proof) will be overwritten by the fourth. A solution is to increase the number of buffers to a number larger than 3 (but still small - keep in mind that each buffer is 1kB). I have tested with 6 and it works.

Please modify PV_PRINT_BUF_NO in sr_module.c(line 1418) to a larger value , compile and retest.

Thanks
Marius
/Ole
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users



_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to