Hello all,<br><br>I've a little question :<br>I got a username in an AVP by avp_load_radius, and I would rewrite the uri with it.<br><br>The objectives is to replace the r-uri by an ipbx uri, then forward
the call to it by a new branch (to not loose the phone number
requested).<br>
in this case : 0123452000 is behind a spa9000. The user 0123452000 has
an AVP called "ipbx", that i'm using to do some groups and permissions
(plus the rewrite).<br><br clear="all">actually, it does not work, i tried many ways :<br><br> # load radius attributes of the callee<br> if (!avp_load_radius("callee"))<br> {<br> xlog("L_INFO","-> user unknown in radius usr db : $ru");<br>
route(15); # route PSTN<br> }<br><br> # verify the AVPs we got (caller and callee)<br> xlog("L_INFO", " -AVP------------------------------------- ");<br> avp_print();<br>
xlog("L_INFO", " ----------------------------------------- ");<br><br> # callee is behind an ipbx (avp ipbx) ?<br> if (is_avp_set("$avp(s:callee_ipbx)"))<br> {<br>
xlog("L_INFO", "-> callee is behind an ipbx : $avp(s:callee_ipbx)");<br> setflag(14); # flag IPBX<br> #subst_user('/$rU$/$avp(s:callee_ipbx)/');<br>
#rewriteuri("sip:$avp(s:callee_ipbx)@$rd"<strong></strong>);<br> rewriteuser($avp(s:callee_ipbx));<br> }<br><br> # callee in usrloc ?<br> if (lookup("location"))<br>
{<br> append_hf("P-hint: usrloc applied\r\n");<br> xlog("L_INFO","-> registered user called : $tu");<br> route(7); # route FORWARD<br>
}<br> else<br> {<br> xlog("L_INFO","-> 480: local user not found in usrloc : $tu");<br> sl_send_reply("480","Temporarily Unavailable");<br>
drop;<br> }<br><br>and in the debugs log :<br><br>Nov 5 13:04:51 ser0 kamailio[2930]: -ROUTE--INBOUND-------------------------- <br>Nov 5 13:04:51 ser0 kamailio[2930]: DBG:avp_radius:load_avp_user: rc_auth Success <br>
Nov 5 13:04:51 ser0 kamailio[2930]: DBG:avp_radius:load_avp_user: AVP 'callee_asserted_id'/0='0123452000'/0 has been added <br>Nov 5 13:04:51 ser0 kamailio[2930]: DBG:avp_radius:load_avp_user: AVP 'callee_ipbx'/0='spa9000'/0 has been added <br>
Nov 5 13:04:51 ser0 kamailio[2930]: -AVP------------------------------------- <br>Nov 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: p=0x7fb3d7e5cfe8, flags=0x0003 <br>Nov 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: ^I^I^Iname=<callee_ipbx> <br>
Nov 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: ^I^I^Ival_str=<spa9000 / 7> <br>Nov 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: p=0x7fb3d7e5cf88, flags=0x0003 <br>Nov 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: ^I^I^Iname=<callee_asserted_id> <br>
Nov 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: ^I^I^Ival_str=<0123452000 / 10> <br>Nov 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: p=0x7fb3d7e5ced8, flags=0x0003 <br>Nov 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: ^I^I^Iname=<caller_asserted_id> <br>
Nov 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: ^I^I^Ival_str=<0123451011 / 10> <br>Nov 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: p=0x7fb3d7e5ce38, flags=0x0003 <br>Nov 5 13:04:51 ser0 kamailio[2930]: ----------------------------------------- <br>
Nov 5 13:04:51 ser0 kamailio[2930]: -> callee is behind an ipbx : spa9000<br>Nov 5 13:04:51 ser0 kamailio[2930]: DBG:registrar:lookup: '$avp(<a href="mailto:s@sip.720.fr">s@sip.720.fr</a>' Not found in usrloc <br>
Nov 5 13:04:51 ser0 kamailio[2930]: -> 480: local user not found in usrloc : <a href="mailto:sip%3A0123452000@sip.720.fr">sip:0123452000@sip.720.fr</a><br>Nov 5 13:04:51 ser0 kamailio[2930]: DBG:core:parse_headers: flags=ffffffffffffffff <br>
Nov 5 13:04:51 ser0 kamailio[2930]: DBG:core:check_via_address: params <a href="http://77.246.81.162">77.246.81.162</a>, <a href="http://192.168.0.134">192.168.0.134</a>, 0 <br>Nov 5 13:04:51 ser0 kamailio[2930]: DBG:core:destroy_avp_list: destroying list 0x7fb3d7e5d040 <br>
Nov 5 13:04:51 ser0 kamailio[2930]: DBG:core:receive_msg: cleaning up <br><br><br>-> But, if I did it by :<br><br> if (uri =~ "^sip:012345200{1}")<br> {<br> rewriteuri("<a href="mailto:sip%3Aspa9000@sip.720.fr">sip:spa9000@sip.720.fr</a>");<br>
}<br> if (lookup("location"))<br>
{<br>
append_hf("P-hint: usrloc applied\r\n");<br>
xlog("L_INFO","-> registered user called : $tu");<br>
route(7); # route FORWARD<br>
}<br><br>it works great, and the call is ok (the ipbx forward correctly the request the phone behind him).<br><br><br> Anyone has an idea ? thanks in advance !<br><br><br>-- <br>Samuel MULLER<br><br>