Hello @all,
want to use the remote register function of the UAC module.
We need to register 42 accounts on one openSER server.
At kamailio startup those 42 remote register requests will be startet at the same time.
This leads to a kind of FlodAttact on the openSER server of our provider, which will
block us :-(
We would like to delay each initial remote register by 1 second.
We searched the UAC module and taught that at some place the uac.so module has to
load the uacreg table and do some for loop to start the remote register process.
We found function child_init() in uac.c where the function uac_reg_load_db() is
called followed uac_reg_timer().
Our change to uac_reg_timer() is the sleep(1).
After compiling it seems to us - that this function is not called.
Is there anybody how has a tip for us?
Thanks,
René
/**
*
*/
void uac_reg_timer(unsigned int ticks, unsigned int initial_reg_call)
{
LM_ERR("----------------------- uac_reg_timer() -- enter \n");
<------>int i;
<------>reg_item_t *it =bsp;NULL;
<------>time_t tn;
<------>tn =bsp;time(NULL);
<------>for(i= i<_reg_htable->htsize; i++)
<------>{
<------><------>/* free entries */
<------><------>it =bsp;_reg_htable->entries[i].byuuid;
<------><------>while(it)
<------><------>{
LM_ERR("----------------------- uac_reg_timer() -- 1
\n");
<------><------><------>if (initial_reg_call =nbsp;1)
<------><------><------>{
LM_ERR("----------------------- uac_reg_timer() -- 2
\n");
<------><------><------><------>sleep(1);
<------><------><------>}
<------><------><------>uac_reg_update(it->r, tn);
<------><------><------>it =bsp;it->next;
<------><------>}
<------>}
}