Hi, <br><br>You can use one line to load all user preferences to avps<br><br>&nbsp; avp_db_load(&quot;$ru/username&quot;,&quot;*&quot;)<br><br>Assuming that usr_preferences table have records like that:<br><br><span style="font-family: courier new,monospace;">username | attribute&nbsp;&nbsp; | value <br>
------------------------------<br>abcd &nbsp; &nbsp; | callForward | </span>123456<br><span style="font-family: courier new,monospace;">dcba&nbsp;&nbsp;&nbsp;&nbsp; | voicemail &nbsp; | true</span><br><br>Then you can check user settings asking:<br><br>if (is_avp_set($avp(s:callForward)) {<br>
&nbsp;&nbsp; $rU =&nbsp; $avp(s:callForward)<br>}<br>if (is_avp_set($avp(s:voicemail)) {<br>&nbsp;
if ($avp(s:voicemail)==&quot;true&quot; {<br>&nbsp; &nbsp; &nbsp; # Redirect to voicemail server<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rewritehostport(&quot;XXX.XXX.XXX.XXX:5070&quot;);<br>&nbsp; }<br>
}<br><br>I hope you get the idea, if not please review documentation&nbsp; usr_preferences and avpops module:<br>&nbsp;<a href="http://www.opensips.org/html/docs/db/db-schema-1.4.x.html#AEN581">http://www.opensips.org/html/docs/db/db-schema-1.4.x.html#AEN581</a><br>
&nbsp;<a href="http://www.opensips.org/html/docs/modules/1.4.x/avpops.html">http://www.opensips.org/html/docs/modules/1.4.x/avpops.html</a><br><br>Cheers,<br><br>Gustavo<br><br><div class="gmail_quote">On Tue, Jan 13, 2009 at 11:19 PM, pjgonzalez <span dir="ltr">&lt;<a href="mailto:pgonzalez@dgtec.net.do">pgonzalez@dgtec.net.do</a>&gt;</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;"><br>
Hi every body, i want to be able route calls from my sip, depending on his<br>
status, For example when the user is online he can change his status to<br>
ringOndevice to ring on his sip-phone, voice-mail to route to asterisk<br>
voicemail, and callforward to forward the call to a given number, the two<br>
first escerany are ok bu, i need to know how can i make a call forward base<br>
on users prefenrece.<br>
<br>
i alredy load the user preference from the usr_preference table.<br>
<br>
here my script part:<br>
<br>
if(nat_uac_test(&quot;19&quot;))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;setbflag(6);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fix_nated_contact();<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xlog(&quot;L_INFO&quot;, &quot;Fixing NAT AGAIN- M=$rm RURI=$ru F=$fu USR=$tU<br>
T=$tu IP=$si ID=$ci\n&quot;);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; };<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;if(!lookup(&quot;location&quot;)){<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;avp_db_query(&quot;SELECT count(*) FROM usr_preferences WHERE<br>
uuid=&#39;$tU&#39;&quot;,&quot;$avp(s:hasPreference)&quot;);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xlog(&quot;L_INFO&quot;, &quot;User Preference:<br>
atributo:&#39;$avp(s:hasPreference)&#39;\n&quot;);<br>
<br>
CHECH IF USR is on preference DB to forward to voice Mail server.<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if($avp(s:hasPreference)){<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;route(9);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br>
#OUTBOUNT CALLS/<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (uri=~&quot;^sip:[0-9]*@&quot;) {<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;route(3);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;route(6);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;};<br>
 &nbsp; &nbsp; &nbsp; &nbsp; }<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else<br>
 &nbsp; &nbsp; &nbsp; &nbsp; {<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;route(13);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; }<br>
<br>
route[11]<br>
{<br>
&nbsp;xlog(&quot;L_INFO&quot;,&quot;Here on route 11&quot;);<br>
&nbsp;avp_pushto(&quot;$ru&quot;, &quot;$avp(s:callForward)&quot;);<br>
<br>
&nbsp;rewritehostport(&quot;XXX.XXX.XXX.XXX:5070&quot;);<br>
&nbsp;append_branch();<br>
<br>
xlog(&quot;L_INFO&quot;, &quot;The call was forwarded to: $avp(s:callForward) - M=$rm<br>
RURI=$ru F=$fu USR=$tU T=$tu IP=$si ID=$ci\n&quot;);<br>
#t_on_failure(&quot;1&quot;);<br>
#t_on_reply(&quot;1&quot;);<br>
#t_relay();<br>
#xlog(&quot;L_INFO&quot;, &quot;The call was relay to: $avp(s:callForward) - M=$rm RURI=$ru<br>
F=$fu USR=$tU T=$tu IP=$si ID=$ci\n&quot;);<br>
#route(6);<br>
#t_on_branch(&quot;1&quot;);<br>
&nbsp;route(12);<br>
}<br>
<br>
route[12]{<br>
 &nbsp; &nbsp; &nbsp; &nbsp; xlog(&quot;L_INFO&quot;,&quot;Here on route 12&quot;);<br>
 &nbsp; &nbsp; &nbsp; &nbsp;t_on_failure(&quot;3&quot;);<br>
 &nbsp; &nbsp; &nbsp; &nbsp;t_on_reply(&quot;1&quot;);<br>
 &nbsp; &nbsp; &nbsp; &nbsp;if (!t_relay()) {<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sl_reply_error();<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xlog(&quot;L_INFO&quot;, &quot;The error: &nbsp;- M=$rm RURI=$ru F=$fu USR=$tU T=$tu<br>
IP=$si ID=$ci\n&quot;);<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;};<br>
 &nbsp; &nbsp; &nbsp; &nbsp;exit;<br>
}<br>
<br>
My script is base on sipwise sample.<br>
<br>
thanks a lot.<br>
<br>
route[13]<br>
{<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xlog(&quot;L_INFO&quot;, &quot;User is Online - M=$rm RURI=$ru F=$fu<br>
USR=$tU T=$tu IP=$si ID=$ci\n&quot;);<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(avp_db_load(&quot;$ru/username&quot;,&quot;$avp(s:callForward)&quot;))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#xlog(&quot;L_INFO&quot;, &quot;The call was forwarded to:<br>
$avp(s:callForward) - M=$rm RURI=$ru F=$fu USR=$tU T=$tu IP=$si ID=$ci\n&quot;);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#avp_pushto(&quot;$tu&quot;, &quot;$avp(s:callForward)&quot;);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;route(11);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else if(avp_db_load(&quot;$ru/username&quot;,&quot;$avp(s:ringOnDevice)&quot;))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xlog(&quot;L_INFO&quot;,&quot; The call is ringing on: $ruri&quot;);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;route(3);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;route(8);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else if(avp_db_load(&quot;$ru/username&quot;,&quot;$avp(s:voiceMail)&quot;))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; xlog(&quot;L_INFO&quot;, &quot;Voice Mail HERE!! - M=$rm RURI=$ru<br>
F=$fu T=$tu IP=$si ID=$ci\n&quot;);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;route(9);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; };<br>
<br>
exit;<br>
}<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://n2.nabble.com/DIferent-call-Status-when-base-on-user-Preference-tp2154604p2154604.html" target="_blank">http://n2.nabble.com/DIferent-call-Status-when-base-on-user-Preference-tp2154604p2154604.html</a><br>

Sent from the OpenSIPS - Users mailing list archive at Nabble.com.<br>
<br>
<br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><br>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>Gustavo Mistrinelli<br>