7 dec 2012 kl. 00:08 skrev Juha Heinanen <jh(a)tutpro.com>om>:
after sleeping on it, i propose the following simple
implementation of
instance-id/reg-id aware load_contacts()/next_contacts():
- load_contacts() does the same as it currently does, i.e., load
contacts to an avp and orders them based on q value.
- next_contacts() creates destination set that includes highest q value
contacts, but if there is two contacts with same instance-id, only one
of them is included. next_contacts() also stores the current q value
in an avp.
- in failure route, if response code is 408 or 430, a new function
next_contacts_skip() is called that works as described above, but
skips next contacts with the stored q value (if any). otherwise,
next_contacts() is called.
is this acceptable to everyone? feel welcome to propose a better name
for next_contacts_skip().
next_contact_flow()
#If we have no spare flow for current contact, go to next q level.
if (!next_contact_flow())
next_contacts();
/O