[Kamailio-Users] load/next_contacts question

Juha Heinanen jh at tutpro.com
Mon Oct 20 11:37:14 CEST 2008


Klaus Darilion writes:

 > But I wonder what if all the branches after enum_query() have the same q 
 > value. According to the README:
 > load_contact: If all contacts in the destination set have the same 
 > qvalue, load_contacts() does not do anything thus minimizing performance 
 > impact of sequential forking capability when it is not needed. Returns 1 
 > if loading of contacts succeeded or there was nothing to do.
 > 
 > Thus, next_contacts() will be called although there are no AVPs to 
 > fetch. Do I miss something here?

klaus.

i don't think you miss anything.  if all contacts have same q value,
load_contacts() does not do anything and does not add anything to the
avp.  when next_contacts() is then called, it, in turn. does not do
anything because there is no avp values.

but this part of your script does not work

   if (load_contacts()) {
     if (next_contacts()) {
       t_on_failure("1");
       t_relay();

if t_relay fails, for example, due to tcp connect failure to the first
contact.  your failure route will never get called and no other contacts
even if they exist, will never be tried.

i personally think this is a major problem with current t_relay
implementation.  i my opinion, failure route should be called also in
case of internally generated negative replies.

-- juha




More information about the sr-users mailing list