Hi all,
I have a prioritised list of endpoints, where endpoints with the same priority should be
sent in parallel:
- endpoint_1_uri; p = 1
- endpoint_2_uri; p = 2
- endpoint_3_uri; p = 4
- endpoint_4_uri; p = 5
As some of the lower priority endpoints are not known upfront, I can not load entire list
into the contact list and use TM module's “forking based on Q value” to take care of
the rest. So my plan is to load all endpoints with the same priority and fork them in
parallel. If none succeed - obtain next endpoint(s) and repeat the process.
As I go through the above process, I need to update some counters each time delivery to
one of the endpoints succeeds or fails. To be able to perform these “housekeeping” tasks I
need to be able to clearly identify branches and link them to the destination URI
(endpoint URI) of the forked INVITE that started them. Ideally I would like to be able to
maintain relationship “branch_id” => “destination URI” where “branch_id” is the
identifier that is appended to Via branch parameter. What is the best/most reliable way to
achieve this?
I tried logging and observing the value of $du - it was available just before sending out
a forked INVITE, but in branch_failure and onreply_route it was <null>.
I tried logging and observing $T_req($du) - I only expected it to work from onreply_route,
but it was also <null>.
I tried logging and observing $T_branch_idx - while it was showing meaningful data before
sending forked INVITE and during branch_failure route, I couldn’t access it from
onreply_route so I couldn’t tell which of the branches current reply is for.
Are there any more variables that could help me build “branch_id” => “destination URI”
relationship and access information about “branch_id” and/or “destination URI” from
branch_failure and onreply_route?
Apologies in advance for a lengthy description, I did my best to summarise the situation
and what I’m trying to achieve.
Regards,
Ivan
Show replies by date