Thanks for Your answer some more question below:)
On Wed, 2007-01-31 at 12:32 +0100, tzieleniewski wrote:
hi!
I am trying to set up the call forwarding feature and I have some question bout the idea how to realize this.
My Idea was to do it with the usage of avp's. First thing I do is the check if there is a call_forward parameter set in the database in user_attrs table. I do this by invoking load_attrs("$fu", "$f.uid"); and then I do the check if ($tu.call_forward)
Sorry here my copy/paste error, wrong line I was considering load_attrs("$tu","$f.uid")
This will NOT work for sure as you load attributes for the caller (FROM/USER based on the FROM uid attr) and then check the callees preferences (TO/USER call_forward attribute).
It is not clear whether you have already $f.uid set (using either lookup_user or authenticate function call).
On the "what's new site" in the avps and selects article I found another method which performs similar task: lookup_user("$tu","@ruri")
lookup_user just creates AVP named uid with the value found in database.
so it simply
Just make sure if I understood right: So lookup_user loads from the database (check if exists) a uid value from record corresponding to "@ruri" select value and then this uid avp will be accessible through $tu.uid or $t.uid?? If yes then does it load any other attributes?? Are the data loaded from the user_attrs table?? Is there a documentation for this functions: lookup-user and load_attrs because I have doubts what for the first "$tu" value stands for?
If this call was successful (e.g. it is your known subscriber) you can continue and call load_attrs which will load the user attributes.
should be used (for example): if (!lookup_user("$tu","@ruri")) { t_reply("404", "Unknown user"); drop; }
if (!load_attrs("$tu", "$t.uid")) { # might happen, that there are no attrs }
if ($t.call_forward) { ... your code here }
Check the ser.cfg from CVS, it is using this approach of handling attributes.
What is the difference between those to methods?? Are they part of the SER core?
Pay attention to the caller/callee attributes (e.g. from/to track (the letter before the dot in the avp name))
No, uri_db module.
previously in ser 0.9.x I have it done by, first loading the avp by avp_db_load() and then in case of call forwarding by making avp_pushto("$ruri","something") or rewriteuri() and then t_relay(). What is now a preferred way to realized similar functions. I mean can I utilize those methods like load_attrs or lookup_user() and then substitute the ruri without avp_pushto or rewriteuri??
Yes, it was intended to replace functions from the avp_db module.
Michal