[sr-dev] reset dst_uri in t_load_contacts

Juha Heinanen jh at tutpro.com
Sat Oct 17 14:34:55 CEST 2009


Jan Janak writes:

 > At least for me
 > personally, having the branches cleared in t_load_contacts is kinda
 > unexpected side-effect. We should probably document it in the README
 > (I can take care of that, I want to update the README anyway).

there has been no effort to somehow merge the existing branches with
load_contacts branches.  when you call load_contacts(), you start from
scratch.

 > Yes, that's how it works, I checked that. t_load_contacts clears
 > branches only if it produces something that can actually by used by
 > t_next_contacts. And because t_load_contacts clears branches, the
 > script writer has to call t_next_contacts in this case, otherwise some
 > of the contacts could be lost.

yes, no branches exist after load_contacts() is called and if you don't
call next_contacts(), you will not have anything.  this is the intended
behavior.

 > Things could break if the script writer calls t_load_contacts and does
 > not call t_next_contacts.

this is how it is supposed to work.

 > I suggest that we change this after the
 > release and make t_next_contacts to clear the branches if needed. Then
 > nothing bad would happen if the script writer only calls
 > t_load_contacts, it will just create the AVP but if you do not call
 > t_next_contacts then things would work as usual, the request will be
 > forked to all branches in parallel.

i don't know if that kind of change is necessary, because
next_contacts() is supposed to be called after load_contacts().  if
script writer does not do that, it is his/her fault.  in that case
better not to call load_contacts() either.

 > This way it would be also possible to fill the AVP with contacs from
 > other sources than t_load_contacts (i.e. the database). That is not
 > possible right now, because t_next_contacts does not clear branches
 > for itself--t_load_contacts has to be called first.

you get contacts from wherever, e.g. database, and append them as
branches before calling load_contacts().

while we are at this, i suggest that also sr simplifies r-uri/branch
handling as described in this message:

http://lists.opensips.org/pipermail/users/2009-January/002365.html

-- juha



More information about the sr-dev mailing list