Hello all,
I have a trouble that is related to the way of usage of dispatcher module.
I am working with Kamailio 5.3.2 and using dispatcher module as load
balancer to route calls to the media gateways.
My dispatching routes are below as simply,
route[DISPATCH]Â {
if(ds_select_domain("2", "4"))Â {
                route(MYRELAY);
        } else {
                send_reply("503","Service Unavailable - No MGW");
                exit;
        }
}
route[MYRELAY]Â {
        t_on_failure("MYFAILURE");
if(!t_relay())Â {
                sl_reply_error();
        }
        exit;
}
failure_route[MYFAILURE]Â {
        route(NATMANAGE);
        revert_uri();
if (t_is_canceled()) {
                exit;
        }
if ($T_reply_code == 408 || $T_reply_code == 503) {
if(ds_next_domain())Â {
                        route(MYRELAY);
                } else {
                        send_reply("503","Service Unavailable");
                        exit;
                }
        } else {
if(ds_select_domain("6", "4"))Â {
                        route(MYVMRELAY);
                } else {
                        send_reply(486,"Busy");
                        exit;
                }
        }
}
route[MYVMRELAY]Â {
        t_on_failure("MYVMFAILURE");
if(!t_relay())Â {
                sl_reply_error();
        }
        exit;
}
failure_route[MYVMFAILURE]Â {
        route(NATMANAGE);
        revert_uri();
if (t_is_canceled()) {
                exit;
        }
if(ds_next_domain())Â {
                route(MYVMRELAY);
        } else {
                send_reply("503","Service Unavailable");
                exit;
        }
}
I have multiple media gateways(setid=2) and voicemail servers(setid=6).
As can be seen from the configuration,
after first routing, for transaction reply code except 408 or 503, I am
routing call to the voicemail server using dispatcher.
In that phase, dispatcher module is remembering previously loaded
destinations that come from first ds_select_domain
and module try to route these destinations in the case that all
voicemail servers are unavailable.
So basically, I want to unload all destinations comes from previous
ds_select_domain.
From the documentation, i tried ds_load_update and ds_load_unset
methods but not worked for me.
Is there any way to overcome that problem or any right usages of these
methods.
Thank you,
Serdar