mod_hiredis
About
mod_hiredis implements an interface for running basic redis commands on configured servers and also deprecated old mod_redis implementing the limit backend.
Click here to expand Table of Contents
- 1 Loading
- 2 Configuration
- 3 Usage
- 3.1 Limit interface
- 3.2 Dialplan application
- 3.3 API function
- 4 Channel variables
Loading
Once you have installed FreeSWITCH from packages, configure FreeSWITCH to load mod_hiredis in autoload_configs/modules.conf.xml by uncommenting the line:
<load module="mod_hiredis"/>
Configuration
Edit the redis server connection configuration in autoload_configs/hiredis.conf.xml
and set the hostname, password, and port as applicable.
Configuration example:
<configuration name="hiredis.conf" description="mod_hiredis">
<profiles>
<profile name="default">
<connections>
<connection name="primary">
<param name="hostname" value="172.18.101.101"/>
<param name="password" value="redis"/>
<param name="port" value="6379"/>
<param name="timeout_ms" value="500"/>
</connection>
<connection name="secondary">
<param name="hostname" value="localhost"/>
<param name="password" value="redis"/>
<param name="port" value="6380"/>
<param name="timeout_ms" value="500"/>
</connection>
</connections>
<params>
<param name="ignore-connect-fail" value="true"/>
</params>
</profile>
</profiles>
</configuration>
Connection parameters:
hostname
: DNS hostname or IP address of the server (default:localhost
)port
: TCP port where Redis server is listening (default:6379
)password
: if set, the AUTH command is sent to the server (default: no authentication)timeout_ms
: timeout waiting for the server connection, in milliseconds (default:500
)max-connections
: the module keeps a pool of simultaneously open connections, and this sets their limit (default:3
)
Profile parameters:
ignore-connect-fail
: if set totrue
, a socket connection error is ignored and the call processing continues; otherwise the call is set to error status (default:false
)ignore_error
: if set to true, Redis command execution error is ignored, and the call processing continues; otherwise the call is set to error status (default:false
)
After configuring the module. apply the changes in fs_cli
:
reloadxml
reload mod_hiredis
Usage
Limit interface
<action application="limit" data="hiredis realm id 10 limit_exceeded" />
See also: Limit.
Dialplan application
In both the dialplan application and the API function, the Redis command is preceded with the profile name. See also: Redis command reference.
<action application="hiredis_raw" data="default LPUSH Callers ${effective_caller_id_number}" />
API function
hiredis_raw default set test 01
hiredis_raw default get test
Channel variables
hiredis_raw_response
is set after the Redis command execution.