freeswitch Module

Table of Contents

1. Admin Guide
1.1. Overview
1.2. External Libraries or Applications
1.3. Exported Parameters
1.3.1. event_heartbeat_interval (integer)
1.3.2. esl_connect_timeout (integer)
1.3.3. esl_cmd_timeout (integer)
1.3.4. esl_cmd_polling_itv (integer)
1.4. Exported Functions
2. Contributors
2.1. By Commit Statistics
2.2. By Commit Activity
3. Documentation
3.1. Contributors

List of Tables

2.1. Top contributors by DevScore(1), authored commits(2) and lines added/removed(3)
2.2. Most recently active contributors(1) to this module

List of Examples

1.1. Setting the event_heartbeat_interval parameter
1.2. Setting the esl_connect_timeout parameter
1.3. Setting the esl_cmd_timeout parameter
1.4. Setting the esl_cmd_polling_itv parameter

Chapter1.Admin Guide


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.

1.2.External Libraries or Applications

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

  • None

1.3.Exported Parameters

1.3.1.event_heartbeat_interval (integer)

The expected interval between FreeSWITCH HEARTBEAT event arrivals.

Default value is 1 (second).

Example1.1.Setting the event_heartbeat_interval parameter

modparam("freeswitch", "event_heartbeat_interval", 20)

1.3.2.esl_connect_timeout (integer)

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

Default value is 5000 (milliseconds).

Example1.2.Setting the esl_connect_timeout parameter

modparam("freeswitch", "esl_connect_timeout", 3000)

1.3.3.esl_cmd_timeout (integer)

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

Default value is 5000 (milliseconds).

Example1.3.Setting the esl_cmd_timeout parameter

modparam("freeswitch", "esl_cmd_timeout", 3000)

1.3.4.esl_cmd_polling_itv (integer)

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).

Example1.4.Setting the esl_cmd_polling_itv parameter

modparam("freeswitch", "esl_cmd_polling_itv", 3000)

1.4.Exported Functions


2.1.By Commit Statistics

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

NameDevScoreCommitsLines ++Lines --
1. Liviu Chircu (@liviuchircu)1054640921498
2. Razvan Crainea (@razvancrainea)1082720
3. Vlad Patrascu (@rvlad-patrascu)532141
4. rance4360
5. Bogdan-Andrei Iancu (@bogdan-iancu)4263
6. Peter Lemenkov (@lemenkov)3122

(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. Regarding imported patches/code, we do our best to count the work on behalf of the proper owner, as per the "fix_authors" and "mod_renames" arrays in opensips/doc/ If you identify any patches/commits which do not get properly attributed to you, please submit a pull request which extends "fix_authors" and/or "mod_renames".

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

2.2.By Commit Activity

Table2.2.Most recently active contributors(1) to this module

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

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



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

Documentation Copyrights:

Copyright 2017