Use this file to discover all available pages before exploring further.
Application modules extend the FreeSWITCH dialplan with actions that can be performed on a call. When a call matches an extension in the XML dialplan, the <action> elements that follow invoke application modules — answering the call, playing audio, bridging to another party, placing the caller in a conference room, routing to voicemail, and much more. Almost everything that happens to a call after it is matched by the dialplan is the responsibility of one application module or another.
mod_dptools (“dialplan tools”) is the most important application module in FreeSWITCH. It registers the fundamental set of dialplan applications that nearly every deployment relies upon. The module is defined in src/mod/applications/mod_dptools/mod_dptools.c and loads dozens of individual applications.
<extension name="set_vars_example"> <condition field="destination_number" expression="^1234$"> <!-- set only affects this leg --> <action application="set" data="effective_caller_id_name=Support Line"/> <!-- export copies the variable to the B-leg as well --> <action application="export" data="sip_h_X-Custom-Header=myvalue"/> <action application="bridge" data="sofia/internal/1001@${domain_name}"/> </condition></extension>
mod_conference provides full-featured multi-party audio and video conferencing. Each conference room is identified by a name and a profile. Multiple callers can join the same room and talk simultaneously. The source is split across several focused files: conference_member.c, conference_loop.c, conference_api.c, conference_event.c, conference_record.c, and conference_video.c.
Conference rooms can be managed at runtime via mod_conference’s API commands:
# List all active conferencesconference list# Kick member 2 from the room "3001-example.com"conference 3001-example.com kick 2# Record a conference to a fileconference 3001-example.com record /tmp/conference.wav# Play a file to the entire conferenceconference 3001-example.com play /sounds/announce.wav
mod_voicemail is a full voicemail system built into FreeSWITCH. Callers can leave messages, and users can retrieve, save, delete, and forward messages via a DTMF-driven menu. Optional email-to-voicemail notification forwards new messages as audio attachments.
Email notification is configured in the <email> block of the voicemail profile. FreeSWITCH can send an email with the audio file attached when a new message arrives:
<email> <param name="email-from" value="${voicemail_account}@${voicemail_domain}"/> <param name="email-headers" value="X-Mailer: FreeSWITCH X-Priority: 2 (High)"/> <param name="email-body" value="You have a new voicemail from ${caller_id_name}. "/> <param name="email-audio-file" value="attach"/> <param name="notify-template" value="voicemail.notify.tpl"/></email>
FreeSWITCH includes a declarative XML-based IVR (Interactive Voice Response) engine. The ivr dialplan application is registered by mod_dptools (in src/mod/applications/mod_dptools/) and uses menu definitions from conf/ivr_menus/. Each menu specifies greetings, digit bindings, and exit actions. The ivr application handles the entire play-collect-route loop without requiring any scripting.
mod_callcenter provides queue-based automatic call distribution (ACD). Inbound calls are placed in a named queue and distributed to available agents using configurable strategies (round-robin, longest-idle, top-down). Agents can log in and out of queues dynamically.
# Add an agentcallcenter_config agent add 1001@example.com callback# Set agent availabilitycallcenter_config agent set status 1001@example.com Available# Log an agent into a queue tiercallcenter_config tier add support@default 1001@example.com 1 1# Show queue statisticscallcenter_config queue list
Registers the core FreeSWITCH API commands (status, version, reloadxml, uuid_kill, etc.) used from the CLI and ESL.
mod_fifo
A lightweight FIFO queue for basic call parking and retrieval without the overhead of a full ACD system.
mod_hash
In-memory key-value store shared across all channels. Useful for inter-call data sharing like call parking slots and ring groups.
mod_curl
Makes HTTP GET/POST requests from the dialplan using curl and curl_getresponsecode applications. Ideal for simple webhook callbacks.
mod_httapi
Implements the HTTAPI (HTTP API) protocol — FreeSWITCH fetches an XML document from a remote URL at each dialplan step, enabling fully HTTP-driven IVR logic.
mod_signalwire
Connects FreeSWITCH to the SignalWire cloud platform, enabling SIP trunking, phone number management, and cloud features through the SignalWire API.