Hello all,<br><br>I&#39;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 :&nbsp; 0123452000 is behind a spa9000. The user 0123452000 has
an AVP called &quot;ipbx&quot;, that i&#39;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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # load radius attributes of the callee<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!avp_load_radius(&quot;callee&quot;))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog(&quot;L_INFO&quot;,&quot;-&gt; user unknown in radius usr db : $ru&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; route(15);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # route PSTN<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # verify the AVPs we got (caller and callee)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog(&quot;L_INFO&quot;, &quot; -AVP------------------------------------- &quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; avp_print();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog(&quot;L_INFO&quot;, &quot; ----------------------------------------- &quot;);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # callee is behind an ipbx (avp ipbx) ?<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (is_avp_set(&quot;$avp(s:callee_ipbx)&quot;))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog(&quot;L_INFO&quot;, &quot;-&gt; callee is behind an ipbx : $avp(s:callee_ipbx)&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setflag(14);&nbsp;&nbsp;&nbsp; # flag IPBX<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #subst_user(&#39;/$rU$/$avp(s:callee_ipbx)/&#39;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #rewriteuri(&quot;sip:$avp(s:callee_ipbx)@$rd&quot;<strong></strong>);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rewriteuser($avp(s:callee_ipbx));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # callee in usrloc ?<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (lookup(&quot;location&quot;))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; append_hf(&quot;P-hint: usrloc applied\r\n&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog(&quot;L_INFO&quot;,&quot;-&gt; registered user called : $tu&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; route(7);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # route FORWARD<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog(&quot;L_INFO&quot;,&quot;-&gt; 480: local user not found in usrloc : $tu&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply(&quot;480&quot;,&quot;Temporarily Unavailable&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; drop;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>and in the debugs log :<br><br>Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]:&nbsp; -ROUTE--INBOUND-------------------------- <br>Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]: DBG:avp_radius:load_avp_user: rc_auth Success <br>
Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]: DBG:avp_radius:load_avp_user: AVP &#39;callee_asserted_id&#39;/0=&#39;0123452000&#39;/0 has been added <br>Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]: DBG:avp_radius:load_avp_user: AVP &#39;callee_ipbx&#39;/0=&#39;spa9000&#39;/0 has been added <br>
Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]:&nbsp; -AVP------------------------------------- <br>Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: p=0x7fb3d7e5cfe8, flags=0x0003 <br>Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: ^I^I^Iname=&lt;callee_ipbx&gt; <br>
Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: ^I^I^Ival_str=&lt;spa9000 / 7&gt; <br>Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: p=0x7fb3d7e5cf88, flags=0x0003 <br>Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: ^I^I^Iname=&lt;callee_asserted_id&gt; <br>
Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: ^I^I^Ival_str=&lt;0123452000 / 10&gt; <br>Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: p=0x7fb3d7e5ced8, flags=0x0003 <br>Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: ^I^I^Iname=&lt;caller_asserted_id&gt; <br>
Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: ^I^I^Ival_str=&lt;0123451011 / 10&gt; <br>Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]: INFO:avpops:ops_print_avp: p=0x7fb3d7e5ce38, flags=0x0003 <br>Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]:&nbsp; ----------------------------------------- <br>
Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]: -&gt; callee is behind an ipbx : spa9000<br>Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]: DBG:registrar:lookup: &#39;$avp(<a href="mailto:s@sip.720.fr">s@sip.720.fr</a>&#39; Not found in usrloc <br>
Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]: -&gt; 480: local user not found in usrloc : <a href="mailto:sip%3A0123452000@sip.720.fr">sip:0123452000@sip.720.fr</a><br>Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]: DBG:core:parse_headers: flags=ffffffffffffffff <br>
Nov&nbsp; 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&nbsp; 5 13:04:51 ser0 kamailio[2930]: DBG:core:destroy_avp_list: destroying list 0x7fb3d7e5d040 <br>
Nov&nbsp; 5 13:04:51 ser0 kamailio[2930]: DBG:core:receive_msg: cleaning up <br><br><br>-&gt; But, if I did it by :<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (uri =~ &quot;^sip:012345200{1}&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rewriteuri(&quot;<a href="mailto:sip%3Aspa9000@sip.720.fr">sip:spa9000@sip.720.fr</a>&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (lookup(&quot;location&quot;))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; append_hf(&quot;P-hint: usrloc applied\r\n&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog(&quot;L_INFO&quot;,&quot;-&gt; registered user called : $tu&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; route(7);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # route FORWARD<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<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>