[Users] Serial forking

Matteo Piazza matteo.piazza at create-net.it
Thu Dec 1 12:28:22 CET 2005


Hi,
yuo can me send an example of a LCR DAtabase compiled
Thank's

| prefix | from_uri | grp_id | pryority |
-----------------------------------------
|    ?   |    ?     |    ?   |    ?     |
|    ?   |    ?     |    ?   |    ?     |



Bogdan-Andrei Iancu wrote:
> Hi Tim,
> 
> 
> Tim Klein wrote:
> 
>> Bogdan said:
>>
>>> I just committed serial proper forking support into core - it was 
>>> migrated from LCR module. I mean proper, since it has q value support 
>>> and it can be used by any module without any inter-module dependencies.
>>>
>>> The idea behind was to allow to all module that performs parallel 
>>> forking to do also serial forking - exec, enum, registrar, etc.
>>
>>
>>
>> That's good news!  Thank you!
>>
>> But I have some questions to help me understand the new functions. 
>> Please see below...
>>
>>> There are two new script functions :
>>>     *serialize_branches(n)* : it inherits the functionality of 
>>> load_contacts() from LCR; gets all parallel branches and convert them 
>>> into AVPs for serial forking; numerical parameter 'n' says if any 
>>> previous AVP should be removed (if non-0) or not (if 0). Returns true 
>>> is no error (even if no serialization happened).
>>>     *next_branches()* : it inherits the functionality of 
>>> next_contacts() from LCR; get (based on q value) the next contact(s) 
>>> to be used in  sequential forking. Returns true only if a new contact 
>>> was got to be used.
>>>
>>> The AVP containing the branches is accessible only via alias - its ID 
>>> is not configurable or visible; the alias (automatically exported by 
>>> core) is "serial_branch" - it is visible from any module that uses 
>>> the avp core aliasing system.
>>
>>
>>
>> My questions:
>>
>> Let's say there are 4 contacts registered.  Two of the contacts ("A" 
>> and "B") have q value of 1.0.  The other two contacts ("C" and "D") 
>> have q value of 0.5.
>>
>> Using the following routing script, which contacts will be tried in 
>> the main route block, and which will be tried in the failure_route block?
>>
> according to RFC and Q interpretation, you will get in request route the 
> C and D contacts (as they have the lower q (higher priority) and their q 
> is equal. In failure route you get A and B (as they have the same q).
> 
> regards,
> bogdan
> 
>>       modparam("registrar", "append_branches", 1)
>>       .....
>>       {
>>          .....
>>          lookup("location");
>>          serialize_branches(1);
>>          t_on_failure("1");
>>          t_relay();
>>       }
>>
>>       failure_route[1] {
>>          if (next_branches()) {
>>              t_relay();
>>          }
>>       }
>>
>>
>> Thank you!
>>
>> Tim
>>
>>
> 
> 
> _______________________________________________
> Users mailing list
> Users at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/users
> 


-- 
=======================================
  Matteo Piazza, Junior Researcher
  CREATE-NET
  Via Solteri, 38 - 38100 Trento - Italy
  email: matteo.piazza at create-net.it
  Tel: +39-0461-408400ext:308
  www.create-net.it
=======================================




More information about the Users mailing list