Yesterday I used the UAC module to register 10.000 accounts while testing a platform. I
guess this is something it wasn't built for. I just wanted to add some notes to the
archives about this:
- The module seems to read all 10.000 entries from the database in one go and then add
them to shared memory.
It may be good for the future to limit the amounts of records for each read and take it
in multiple batches (other modules
have this functionality).
- The module registers all at once, it's very fast. I think we could add a throttle
and register in batches in the future.
- The error handling seems very simple. If something goes bad, we disable the account. I
am not sure if the
TM module will handle failover and retries if we get a 503 with retry-after. There's
no code in uac_reg.c for it.
- There's no different handling of local timeouts and remote 408s. Again, maybe the TM
module handles some
of that.
- Maybe we need an event route for disabling/enabling registrations.
I created a branch and added counter support for all database entries, disabled entries
and active entries (working registrations). Pull request will come :-)
All in all, while this is not a normal use of it, I think it is a very good tool for
testing of new platforms. As usual - Kamailio rocks!
/O