184 lines
7.4 KiB
Plaintext
184 lines
7.4 KiB
Plaintext
; This file configures the cache module
|
|
|
|
|
|
[general]
|
|
; This section sets global variables of the implementation
|
|
|
|
; size: integer: The number of hash lists to use in each cache
|
|
; Defaults to 17, can't be less then 3 or greater then 1024
|
|
; This parameter can be overridden in cache sections
|
|
;size=17
|
|
|
|
; ttl: integer: Cache item time to live in seconds
|
|
; Minimum allowed value is 10
|
|
; This parameter is not applied on reload for already created cache objects
|
|
;ttl=
|
|
|
|
; limit: integer: Maximum number of stored cache items
|
|
; This value must be at least the power of 2 of cache hash list size, e.g. for
|
|
; cache size 5 limit must be at least 25
|
|
; This parameter is applied on reload and can be overridden in cache sections
|
|
;limit=
|
|
|
|
; loadchunk: integer: The number of items to load in a database request
|
|
; Minimum allowed value is 500, maximum allowed value is 50000
|
|
; Set it to 0 to load the whole cache using a single database request
|
|
; This parameter is applied on reload and can be overridden in cache sections
|
|
; NOTES for non 0 value:
|
|
; - The 'query_loadcache' parameter in cache sections should contain an 'ORDER BY'
|
|
; clause to make sure the cache table is parsed in the same order
|
|
; - The 'query_loadcache' query MUST be a parameterized query containing
|
|
; LIMIT ${chunk} OFFSET ${offset}. The module will replace chunk and offset for each
|
|
; sent database request
|
|
;loadchunk=0
|
|
|
|
; maxchunks: integer: Maximum number of chunks to load from cache
|
|
; Minimum allowed value is 1, maximum allowed value is 10000
|
|
; Defaults to 1000
|
|
; This parameter is applied on reload
|
|
; WARNING:
|
|
; - Set a large value only if you are sure the cache load queries are correct
|
|
; - Setting a large value for a query without LIMIT or OFFSET will lead to
|
|
; useless extra processing
|
|
;maxchunks=1000
|
|
|
|
; loadcache_priority: keyword: The priority of the cache load thread
|
|
; This parameter is applied on reload and can be overridden in cache sections
|
|
; Can be one of: lowest, low, normal, high, highest
|
|
; High priorities need superuser privileges on POSIX operating systems
|
|
; Defaults to normal
|
|
;loadcache_priority=normal
|
|
|
|
; expire_check_interval: integer: The interval (in seconds) to check cache expire
|
|
; Defaults to 10, minimum allowed value 1, maximum allowed value 300
|
|
; This parameter is applied on reload
|
|
;expire_check_interval=10
|
|
|
|
; account: string: Database name
|
|
; This parameter is applied on reload and can be overridden in cache sections
|
|
;account=
|
|
|
|
; account_loadcache: string: Optional database account used to load an entire cache
|
|
; This parameter is applied on reload and can be overridden in cache sections
|
|
;account_loadcache=
|
|
|
|
|
|
; The following parameters can be set in cache sections
|
|
|
|
; reload_interval: integer: Interval (in seconds) to reload the cache
|
|
; This parameter is applied on reload
|
|
; This parameter will be ignored if the cache don't have a load account and query
|
|
; Minimum allowed value is 10. Set it to 0 to disable cache reload
|
|
; Defaults to 0 (no reload)
|
|
;reload_interval=0
|
|
|
|
|
|
[lnp]
|
|
; This section configures the LNP cache
|
|
; Database query examples assume a 'lnp' table with the following fields:
|
|
; - id TEXT The called number
|
|
; - routing TEXT Routing number (may be empty)
|
|
; - timeout TIMESTAMP Expire time
|
|
|
|
; enable: boolean: Enable LNP cache
|
|
; Defaults to no
|
|
; This parameter is applied on reload
|
|
;enable=no
|
|
|
|
; store_failed_requests: boolean: Store failed LNP requests in cache
|
|
; Defaults to no
|
|
; This parameter is applied on reload
|
|
;store_failed_requests=no
|
|
|
|
; store_npdi_before: boolean: Store routing number from incoming calls with LNP
|
|
; This parameter can be overidden by a 'cache_lnp_store' parameter when routing
|
|
; Defaults to no
|
|
; This parameter is applied on reload
|
|
;store_npdi_before=no
|
|
|
|
; copyparams: string: Parameters to handle (store in cache or copy to handled messages)
|
|
; This parameter is applied on reload and can be overridden when routing by
|
|
; a 'cache_lnp_parameters' parameter
|
|
;copyparams=routing
|
|
|
|
; routebefore: integer: The priority of the call.route message handler used to
|
|
; intercept incoming calls and set the routing number if found in cache or
|
|
; update the cache if LNP was already done
|
|
; Defaults to 25
|
|
;routebefore=25
|
|
|
|
; routeafter: integer: The priority of the call.route message handler used to
|
|
; intercept the message after LNP was done locally and update the cache
|
|
; Defaults to 75
|
|
;routeafter=75
|
|
|
|
; query_loadcache: string: Database query used to load the LNP cache when created
|
|
; This parameter is applied on reload
|
|
;query_loadcache=SELECT FLOOR(EXTRACT('EPOCH' FROM (timeout - CURRENT_TIMESTAMP))) AS expires,* FROM lnp
|
|
; For non 0 'loadchunk'
|
|
;query_loadcache=SELECT FLOOR(EXTRACT('EPOCH' FROM (timeout - CURRENT_TIMESTAMP))) AS expires,* FROM lnp ORDER BY timeout LIMIT ${chunk} OFFSET ${offset}
|
|
|
|
; query_loaditem: string: Database query used to load an item when created
|
|
; This parameter is applied on reload
|
|
;query_loaditem=SELECT FLOOR(EXTRACT('EPOCH' FROM (timeout - CURRENT_TIMESTAMP))) AS expires,* FROM lnp WHERE id='${id}'
|
|
|
|
; query_save: string: Database query used to save an item
|
|
; This parameter is applied on reload
|
|
;query_save=INSERT INTO lnp(id,routing,timeout) VALUES('${id}','${routing}',CURRENT_TIMESTAMP + INTERVAL '${expires} s')
|
|
|
|
; query_expire: string: Database query used to expire items
|
|
; This parameter is applied on reload
|
|
;query_expire=DELETE FROM lnp WHERE CURRENT_TIMESTAMP >= timeout
|
|
|
|
|
|
[cnam]
|
|
; This section configures the CNAM cache
|
|
; Database query examples assume a 'cnam' table with the following fields:
|
|
; - id TEXT The caller number
|
|
; - callername TEXT Caller's name (may be empty)
|
|
; - timeout TIMESTAMP Expire time
|
|
|
|
; enable: boolean: Enable CNAM cache
|
|
; Defaults to no
|
|
; This parameter is applied on reload
|
|
;enable=no
|
|
|
|
; store_empty: boolean: Store empty caller name returned by local CNAM query in cache
|
|
; Defaults to no
|
|
; This parameter is applied on reload
|
|
;store_empty=no
|
|
|
|
; copyparams: string: Parameters to handle (store in cache or copy to handled messages)
|
|
; This parameter is applied on reload and can be overridden when routing by
|
|
; a 'cache_cnam_parameters' parameter
|
|
;copyparams=callername
|
|
|
|
; routebefore: integer: The priority of the call.preroute message handler used to
|
|
; intercept incoming calls and set the callername if found in cache or
|
|
; update the cache from caller name
|
|
; Defaults to 25
|
|
;routebefore=25
|
|
|
|
; routeafter: integer: The priority of the call.preroute message handler used to
|
|
; intercept the message after CNAM was done locally and update the cache
|
|
; Defaults to 75
|
|
;routeafter=75
|
|
|
|
; query_loadcache: string: Database query used to load the CNAM cache when created
|
|
; This parameter is applied on reload
|
|
;query_loadcache=SELECT FLOOR(EXTRACT('EPOCH' FROM (timeout - CURRENT_TIMESTAMP))) AS expires,* FROM cnam
|
|
; For non 0 'loadchunk'
|
|
;query_loadcache=SELECT FLOOR(EXTRACT('EPOCH' FROM (timeout - CURRENT_TIMESTAMP))) AS expires,* FROM cnam ORDER BY timeout LIMIT ${chunk} OFFSET ${offset}
|
|
|
|
; query_loaditem: string: Database query used to load an item when created
|
|
; This parameter is applied on reload
|
|
;query_loaditem=SELECT FLOOR(EXTRACT('EPOCH' FROM (timeout - CURRENT_TIMESTAMP))) AS expires,* FROM cnam WHERE id='${id}'
|
|
|
|
; query_save: string: Database query used to save an item
|
|
; This parameter is applied on reload
|
|
;query_save=INSERT INTO cnam(id,callername,timeout) VALUES('${id}','${callername}',CURRENT_TIMESTAMP + INTERVAL '${expires} s')
|
|
|
|
; query_expire: string: Database query used to expire items
|
|
; This parameter is applied on reload
|
|
;query_expire=DELETE FROM cnam WHERE CURRENT_TIMESTAMP >= timeout
|