Skip to content

FREESWITCH module

The “freeswitch” module is a C driver for the FreeSWITCH Event Socket Layer interface. It can interact with one or more FreeSWITCH servers either by issuing commands to them, or by receiving events from them.

This driver can be seen as a centralized FreeSWITCH ESL connection manager. OpenSIPS modules may use its API in order to easily establish, reference and reuse ESL connections.

A FreeSWITCH ESL URL is of the form: fs://[username]:password@host[:port]. The default ESL port is 8021.

The following libraries or applications must be installed before running OpenSIPS with this module loaded:

  • None

The expected interval between FreeSWITCH HEARTBEAT event arrivals.

Default value is “1” (second).

Setting the event_heartbeat_interval parameter
...
modparam("freeswitch", "event_heartbeat_interval", 20)
...

The maximally allowed duration for the establishment of an ESL connection.

Default value is “5000” (milliseconds).

Setting the esl_connect_timeout parameter
...
modparam("freeswitch", "esl_connect_timeout", 3000)
...

The maximally allowed duration for the execution of an ESL command. This interval does not include the connect duration.

Default value is “5000” (milliseconds).

Setting the esl_cmd_timeout parameter
...
modparam("freeswitch", "esl_cmd_timeout", 3000)
...

The sleep interval used when polling for an ESL command response. Since the value of this parameter imposes a minimal duration for any ESL command, you should run OpenSIPS in debug mode in order to first determine an expected response time for an arbitrary ESL command, then tune this parameter accordingly.

Default value is “1000” (microseconds).

Setting the esl_cmd_polling_itv parameter
...
modparam("freeswitch", "esl_cmd_polling_itv", 3000)
...

Top contributors by DevScore(1), authored commits(2) and lines added/removed(3)

#NameDevScoreCommitsLines++Lines—
1.Liviu Chircu (@liviuchircu)974534421382
2.Razvan Crainea (@razvancrainea)1082313
3.Stefan Darius (@dariusstefan)7413117
4.Vlad Patrascu (@rvlad-patrascu)5343
5.Bogdan-Andrei Iancu (@bogdan-iancu)4242
6.Peter Lemenkov (@lemenkov)3111
7.rance2110

(1) DevScore = author_commits + author_lines_added / (project_lines_added / project_commits) + author_lines_deleted / (project_lines_deleted / project_commits)

(2) including any documentation-related commits, excluding merge commits

(3) ignoring whitespace edits, renamed files and auto-generated files

#NameCommit Activity
1.Stefan Darius (@dariusstefan)Jun 2026 - Jul 2026
2.Razvan Crainea (@razvancrainea)Feb 2017 - Jun 2026
3.ranceOct 2020 - Oct 2020
4.Liviu Chircu (@liviuchircu)Jan 2017 - Jul 2020
5.Bogdan-Andrei Iancu (@bogdan-iancu)Jan 2018 - Apr 2019
6.Vlad Patrascu (@rvlad-patrascu)May 2017 - Apr 2019
7.Peter Lemenkov (@lemenkov)Jun 2018 - Jun 2018

(1) including any documentation-related commits, excluding merge commits

Last edited by: Razvan Crainea (@razvancrainea), Peter Lemenkov (@lemenkov), Liviu Chircu (@liviuchircu).

All documentation files (i.e. .md extension) are licensed under the Creative Common License 4.0