Re: Re: [Serusers] ser 0.10.99 - call forwarding issue

tzieleniewski tzieleniewski at o2.pl
Wed Jan 31 13:37:06 CET 2007


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
> 




More information about the sr-users mailing list