Ok,
you got the easiest way ... :)
:-) the known way is the easiest one ...
using assignment with $rU is the nicer (and cleaner), imho...
Cheers,
Daniel
thanks !
I used this one :
# callee is behind an ipbx (avp ipbx) ?
if (is_avp_set("$avp(s:callee_ipbx)"))
{
xlog("L_INFO", "-> user is behind an ipbx
($avp(s:callee_ipbx)), set flag ipbx and rewrite request-uri");
setflag(14); # flag IPBX
=> subst_user('/(.*)/$avp(s:callee_ipbx)/');
xlog("L_INFO", "-> verif: to-uri = $tu , request-uri =
$ru");
}
in the debug, result is the same :
Nov 6 11:32:32 ser0 kamailio[6616]: -> user is behind an ipbx
(spa9000), set flag ipbx and rewrite request-uri
Nov 6 11:32:32 ser0 kamailio[6616]: -> verif: to-uri =
sip:0123452001@sip.720.fr <mailto:sip%3A0123452001@sip.720.fr> ,
request-uri = sip:spa9000@sip.720.fr <mailto:sip%3Aspa9000@sip.720.fr>
you remember to me that the pseudo-variable $rU is R/W too ...
many thanks !
.Sam.
On Wed, Nov 5, 2008 at 6:43 PM, Daniel-Constantin Mierla
<miconda(a)gmail.com <mailto:miconda@gmail.com>> wrote:
Hello,
if you want to set the R-URI username with the value from the avp,
then use:
$rU = $avp(s:callee_ipbx);
Cheers,
Daniel
On 11/05/08 14:16, Samuel Muller wrote:
Hello all,
I've a little question :
I got a username in an AVP by avp_load_radius, and I would
rewrite the uri with it.
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).
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).
actually, it does not work, i tried many ways :
# load radius attributes of the callee
if (!avp_load_radius("callee"))
{
xlog("L_INFO","-> user unknown in radius usr db
: $ru");
route(15); # route PSTN
}
# verify the AVPs we got (caller and callee)
xlog("L_INFO", "
-AVP------------------------------------- ");
avp_print();
xlog("L_INFO", "
----------------------------------------- ");
# callee is behind an ipbx (avp ipbx) ?
if (is_avp_set("$avp(s:callee_ipbx)"))
{
xlog("L_INFO", "-> callee is behind an ipbx :
$avp(s:callee_ipbx)");
setflag(14); # flag IPBX
#subst_user('/$rU$/$avp(s:callee_ipbx)/');
#rewriteuri("sip:$avp(s:callee_ipbx)@$rd"**);
rewriteuser($avp(s:callee_ipbx));
}
# callee in usrloc ?
if (lookup("location"))
{
append_hf("P-hint: usrloc applied\r\n");
xlog("L_INFO","-> registered user called :
$tu");
route(7); # route FORWARD
}
else
{
xlog("L_INFO","-> 480: local user not found in
usrloc : $tu");
sl_send_reply("480","Temporarily
Unavailable");
drop;
}
and in the debugs log :
Nov 5 13:04:51 ser0 kamailio[2930]:
-ROUTE--INBOUND--------------------------
Nov 5 13:04:51 ser0 kamailio[2930]:
DBG:avp_radius:load_avp_user: rc_auth Success
Nov 5 13:04:51 ser0 kamailio[2930]:
DBG:avp_radius:load_avp_user: AVP
'callee_asserted_id'/0='0123452000'/0 has been added
Nov 5 13:04:51 ser0 kamailio[2930]:
DBG:avp_radius:load_avp_user: AVP 'callee_ipbx'/0='spa9000'/0
has been added
Nov 5 13:04:51 ser0 kamailio[2930]:
-AVP-------------------------------------
Nov 5 13:04:51 ser0 kamailio[2930]:
INFO:avpops:ops_print_avp: p=0x7fb3d7e5cfe8, flags=0x0003
Nov 5 13:04:51 ser0 kamailio[2930]:
INFO:avpops:ops_print_avp: ^I^I^Iname=<callee_ipbx>
Nov 5 13:04:51 ser0 kamailio[2930]:
INFO:avpops:ops_print_avp: ^I^I^Ival_str=<spa9000 / 7>
Nov 5 13:04:51 ser0 kamailio[2930]:
INFO:avpops:ops_print_avp: p=0x7fb3d7e5cf88, flags=0x0003
Nov 5 13:04:51 ser0 kamailio[2930]:
INFO:avpops:ops_print_avp: ^I^I^Iname=<callee_asserted_id>
Nov 5 13:04:51 ser0 kamailio[2930]:
INFO:avpops:ops_print_avp: ^I^I^Ival_str=<0123452000 / 10>
Nov 5 13:04:51 ser0 kamailio[2930]:
INFO:avpops:ops_print_avp: p=0x7fb3d7e5ced8, flags=0x0003
Nov 5 13:04:51 ser0 kamailio[2930]:
INFO:avpops:ops_print_avp: ^I^I^Iname=<caller_asserted_id>
Nov 5 13:04:51 ser0 kamailio[2930]:
INFO:avpops:ops_print_avp: ^I^I^Ival_str=<0123451011 / 10>
Nov 5 13:04:51 ser0 kamailio[2930]:
INFO:avpops:ops_print_avp: p=0x7fb3d7e5ce38, flags=0x0003
Nov 5 13:04:51 ser0 kamailio[2930]:
-----------------------------------------
Nov 5 13:04:51 ser0 kamailio[2930]: -> callee is behind an
ipbx : spa9000
Nov 5 13:04:51 ser0 kamailio[2930]: DBG:registrar:lookup:
'$avp(s(a)sip.720.fr <mailto:s@sip.720.fr> <mailto:s@sip.720.fr
<mailto:s@sip.720.fr>>' Not found in usrloc
Nov 5 13:04:51 ser0 kamailio[2930]: -> 480: local user not
found in usrloc : sip:0123452000@sip.720.fr
<mailto:sip%3A0123452000@sip.720.fr>
<mailto:sip%3A0123452000@sip.720.fr
<mailto:sip%253A0123452000@sip.720.fr>>
Nov 5 13:04:51 ser0 kamailio[2930]: DBG:core:parse_headers:
flags=ffffffffffffffff
Nov 5 13:04:51 ser0 kamailio[2930]:
DBG:core:check_via_address: params 77.246.81.162
<http://77.246.81.162> <http://77.246.81.162>, 192.168.0.134
<http://192.168.0.134> <http://192.168.0.134>, 0
Nov 5 13:04:51 ser0 kamailio[2930]:
DBG:core:destroy_avp_list: destroying list 0x7fb3d7e5d040
Nov 5 13:04:51 ser0 kamailio[2930]: DBG:core:receive_msg:
cleaning up
-> But, if I did it by :
if (uri =~ "^sip:012345200{1}")
{
rewriteuri("sip:spa9000@sip.720.fr
<mailto:sip%3Aspa9000@sip.720.fr>
<mailto:sip%3Aspa9000@sip.720.fr
<mailto:sip%253Aspa9000@sip.720.fr>>");
}
if (lookup("location"))
{
append_hf("P-hint: usrloc applied\r\n");
xlog("L_INFO","-> registered user called :
$tu");
route(7); # route FORWARD
}
it works great, and the call is ok (the ipbx forward correctly
the request the phone behind him).
Anyone has an idea ? thanks in advance !
--
Samuel MULLER
------------------------------------------------------------------------
_______________________________________________
Users mailing list
Users(a)lists.kamailio.org <mailto:Users@lists.kamailio.org>
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
--
Daniel-Constantin Mierla
http://www.asipto.com
--
Samuel MULLER
Ingénieur Reseaux & Telecom
720 DEGRES
+33 (0)663 128 505
sml(a)720.fr <mailto:sml@720.fr>
------------------------------------------------------------------------
_______________________________________________
Users mailing list
Users(a)lists.kamailio.org
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users