Hi,
On Dec 9, 2024, at 3:51 am, Benoit Panizzon via sr-users sr-users@lists.kamailio.org wrote:
Hi List
With the dispatcher module, you can use different ways of load balanced and weighted serial or parallel forking.
Is there a corresponding way to achieve load balanced serial forking to a destination set loaded from registered locations?
Use case:
Customer with a high availability set-up has two redundant PBX registered to the same AoR.
Calls can not be sent in parallel as this would generate two concurrent calls to the end device but call should be distributed evenly between the two contacts registered with that AoR.
Yes, there is such a use-case, but it does not require `dispatcher`. You may use the mode=1 argument to t_load_contacts() instead, provided the devices are registered with equal q= values.
https://kamailio.org/docs/modules/5.8.x/modules/tm.html#idm1307
i.e.
route[REGISTRAR_SERIAL_TRY] { if(!lookup("location")) { send_reply("404", "Not Found"); exit; }
t_load_contacts(1); t_next_contacts();
# ... # t_on_failure("REGISTRAR_SERIAL_TRY_NEXT"), t_relay(), etc... }
failure_route[REGISTRAR_SERIAL_TRY_NEXT] { if(t_is_canceled()) exit;
if(!t_next_contacts()) { send_reply("408", "Request Timeout"); exit; }
t_on_failure("REGISTRAR_SERIAL_TRY_NEXT"); t_relay(); }