The Kannel patch info has grown, so I've decided to dedicate a page to it )
Features list:
Short summary of the patch contents: added ldap/ldap_acct.{c,h}, added a call to ldap_acct_get_msisdn() near radius_acct_get_msisdn() in gw/wap-appl.c with a preprocessor switch, added a config definition to gwlib/cfg.def; modified some lines in the Redhat init script :D and added #ifndef LDAP_PROVISIONING where needed. Also, added a small bash script with an mk() function to compile wapbox quickly, if only ldap_acct.{c,h} files were modified. //useful for the coding process )
This provisioning when being developed was supposed to match the client application requirements from our carrier partner. Thus, it includes a powerful failover scheme:
x,y and z are names to different errors, each retries_* number means the number of retries before switching to the next server (yes, `servers' is a list of servers ;)
x - timeout when receiving answer to a ldap search (assumes a successful bind)
y - timeout/error when binding
z - timeout when connecting (TCP timeout)
When the provisioning module is running not on the 'first' (clearer: more primary //relating to the next one/) server in the servers list it runs a dummy check in a separate thread, to ensure reversal to the previous server, which has a higher priority, when it's back up again. dummy_request_ip option means the ip used for the search of the dummy process / can be absolutely anything, because receiving an empty result is also accepted as success,
dummy_request_interval option is quite self-explanatory,
lookup_table_size - a size (in items ;) of the ip<->msisdn cache (formally - a hash table),
cache_stale_time - a time (in seconds) for the cache entry to get expired.