Hello,
I have been researching the work needed to implement forking of outbound
flows based on the discussions by Peter, Olle and others on this list.
I suggest the following:
A new route type "branch_failure_route" which can be called on a failure
response for every branch created.
Change t_next_contact_flows() so that it can only be called from the
branch_failure route.
Modify t_next_contact_flows() so that it will search the xavp of
alternative flows and select the next instance that matches the failed
instance. This will create another branch.
t_relay() can be used in the branch_failure route to fork to the new branch.
There will be a few more functions that can be called in the
branch_failure route, including unregister_contact().
If no new flows are available, the response is passed on to be handled
by the failure route handler. If a new flow is available, and a branch
created, the failure response must not be passed on. A response from the
new branch, plus all other branches must be received before the failure
route is called with the best response.
If the failure route is called, t_next_contacts() can be called to
implement serial forking based on q-value, as before.
Any comments before I start work?
Hugh
--
Hugh Waite
Principal Design Engineer
Crocodile RCS Ltd.