Registrar

Last modified by Buildbot on 2021/08/03 04:38

 Documentation based on repostory git version commit 2.0.7-2-ga93725b0 

Module Registrar

The ModuleRegistrar module handles REGISTERs for domains it is in charge of, and store the address of record in order to allow routing requests destinated to the client who registered. REGISTERs for other domains are simply ignored and given to the next module.
----

Configuration options:

NameDescriptionDefault ValueType
enabled

Indicate whether the module is activated.

 trueBoolean
filter

A request/response enters module if the boolean filter evaluates to true. Ex: from.uri.domain contains 'sip.linphone.org', from.uri.domain in 'a.org b.org c.org', (to.uri.domain in 'a.org b.org c.org') && (user-agent == 'Linphone v2')

 BooleanExpr
reg-domains

List of whitespace separated domain names which the registar is in charge of. It can eventually be the '*' (wildcard) in order to match any domain name.

 localhostStringList
reg-on-response

Register users based on response obtained from a back-end server. This mode is for using flexisip as a front-end server to hold client connections but registeracceptance is deferred to backend server to which the REGISTER is routed.

 falseBoolean
max-contacts-by-aor

Maximum number of registered contacts per address of record.

 12Integer
unique-id-parameters

List of contact URI parameters that can be used to identify a user's device. The contact parameters are searched in the order of the list, the first matching parameter is used and the others ignored.

 +sip.instance pn-tok lineStringList
max-expires

Maximum expire time for a REGISTER, in seconds.

 86400Integer
min-expires

Minimum expire time for a REGISTER, in seconds.

 60Integer
force-expires

Set a value that will override expire times given by the REGISTER requests. A null or negative value disables that feature. If it is enabled, max-expires and min-expires will not have any effect.

 -1Integer
static-records-file

File containing the static records to add to database on startup. Format: one 'sip_uri contact_header' by line. Example:
<sip:contact@domain> <sip:127.0.0.1:5460>,<sip:192.168.0.1:5160>

 String
static-records-timeout

Timeout in seconds after which the static records file is re-read and the contacts updated.

 600Integer
db-implementation

Implementation used for storing the contact URIs of each address of record. Two backends are available:
 - redis : contacts are stored in a Redis database, which allows persistent and shared storage accross multiple Flexisip instances.
 - internal : contacts are stored in RAM. Of course, if flexisip is restarted, all the contact URIs are lost until clients update their registration.
The redis backend is recommended, the internal being more adapted to very small deployments.

 internalString
redis-server-domain

Hostname or address of the Redis server.

 localhostString
redis-server-port

Port of the Redis server.

 6379Integer
redis-auth-password

Authentication password for Redis. Empty to disable.

 String
redis-server-timeout

Timeout in milliseconds of the Redis connection.

 1500Integer
redis-slave-check-period

When Redis is configured in master-slave, Flexisip will periodically ask which Redis instances are the slaves and the master. This is the period with which it will query the server. It will then determine whether is is connected to the master, and if not, let go of the connection and migrate to the master.
Note: This requires that all Redis instances have the same password. Otherwise the authentication will fail.

 60Integer
service-route

Sequence of proxies (space-separated) where requests will be redirected through (RFC3608)

 String
message-expires-param-name

Name of the custom Contact header parameter which is to indicate the expire time for chat message delivery.

 message-expiresString
register-expire-randomizer-max

If not zero, the expire time put in the 200 OK response won't be the one required by the user agent, but will be slightly modified by substracting a random value. The value given by this parameter is the maximum percentage of the initial expire that can be substracted.
If zero, no randomization is applied.

 0Integer