Ok,<br><br>you got the easiest way ... :)<br>thanks !<br><br>I used this one :<br><br> # callee is behind an ipbx (avp ipbx) ?<br> if (is_avp_set("$avp(s:callee_ipbx)"))<br> {<br> xlog("L_INFO", "-> user is behind an ipbx ($avp(s:callee_ipbx)), set flag ipbx and rewrite request-uri");<br>
setflag(14); # flag IPBX<br><br>=> subst_user('/(.*)/$avp(s:callee_ipbx)/');<br><br> xlog("L_INFO", "-> verif: to-uri = $tu , request-uri = $ru");<br>
}<br><br>in the debug, result is the same :<br>Nov 6 11:32:32 ser0 kamailio[6616]: -> user is behind an ipbx (spa9000), set flag ipbx and rewrite request-uri<br>Nov 6 11:32:32 ser0 kamailio[6616]: -> verif: to-uri = <a href="mailto:sip%3A0123452001@sip.720.fr">sip:0123452001@sip.720.fr</a> , request-uri = <a href="mailto:sip%3Aspa9000@sip.720.fr">sip:spa9000@sip.720.fr</a><br>
<br>you remember to me that the pseudo-variable $rU is R/W too ...<br><br>many thanks !<br><br>.Sam.<br><br><br><br><div class="gmail_quote">On Wed, Nov 5, 2008 at 6:43 PM, Daniel-Constantin Mierla <span dir="ltr"><<a href="mailto:miconda@gmail.com">miconda@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hello,<br>
<br>
if you want to set the R-URI username with the value from the avp, then use:<br>
<br>
$rU = $avp(s:callee_ipbx);<br>
<br>
Cheers,<br>
Daniel<div><div></div><div class="Wj3C7c"><br>
<br>
<br>
On 11/05/08 14:16, Samuel Muller wrote:<br>
</div></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div class="Wj3C7c">
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>
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"**);<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></div></div>
Nov 5 13:04:51 ser0 kamailio[2930]: DBG:registrar:lookup: '$avp(<a href="mailto:s@sip.720.fr" target="_blank">s@sip.720.fr</a> <mailto:<a href="mailto:s@sip.720.fr" target="_blank">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" target="_blank">sip:0123452000@sip.720.fr</a> <mailto:<a href="mailto:sip%253A0123452000@sip.720.fr" target="_blank">sip%3A0123452000@sip.720.fr</a>><div class="Ih2E3d">
<br>
Nov 5 13:04:51 ser0 kamailio[2930]: DBG:core:parse_headers: flags=ffffffffffffffff<br></div>
Nov 5 13:04:51 ser0 kamailio[2930]: DBG:core:check_via_address: params <a href="http://77.246.81.162" target="_blank">77.246.81.162</a> <<a href="http://77.246.81.162" target="_blank">http://77.246.81.162</a>>, <a href="http://192.168.0.134" target="_blank">192.168.0.134</a> <<a href="http://192.168.0.134" target="_blank">http://192.168.0.134</a>>, 0<div class="Ih2E3d">
<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></div>
rewriteuri("<a href="mailto:sip%3Aspa9000@sip.720.fr" target="_blank">sip:spa9000@sip.720.fr</a> <mailto:<a href="mailto:sip%253Aspa9000@sip.720.fr" target="_blank">sip%3Aspa9000@sip.720.fr</a>>");<div class="Ih2E3d">
<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></div>
------------------------------------------------------------------------<div class="Ih2E3d"><br>
<br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.kamailio.org" target="_blank">Users@lists.kamailio.org</a><br>
<a href="http://lists.kamailio.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.kamailio.org/cgi-bin/mailman/listinfo/users</a><br>
<br>
</div></blockquote><font color="#888888">
<br>
-- <br>
Daniel-Constantin Mierla<br>
<a href="http://www.asipto.com" target="_blank">http://www.asipto.com</a><br>
<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Samuel MULLER<br>Ingénieur Reseaux & Telecom<br>720 DEGRES<br>+33 (0)663 128 505<br><a href="mailto:sml@720.fr">sml@720.fr</a><br>