Appendix C: Glossary
This glossary defines the terms used throughout the FreeSWITCH Users Manual as they apply to FreeSWITCH configuration and operation. Definitions are consistent with standard SIP and VoIP usage except where FreeSWITCH assigns a more specific meaning.
A
| Term | Definition |
|---|---|
| ACL | Access Control List. A named list of CIDR network blocks or IP addresses used to permit or deny network access to FreeSWITCH services. ACLs are defined in autoload_configs/acl.conf.xml and referenced by name in Sofia profiles and other modules. |
| Action | A dialplan directive that executes an application or sets a variable when all conditions in its enclosing extension have matched. Actions are evaluated in document order within a <condition> block. |
B
| Term | Definition |
|---|---|
| Bridge | The act of connecting two or more call legs so that media flows between them. In the dialplan, the bridge application connects the current channel to one or more destination endpoints. A bridge does not merge channels into a single session; each leg retains its own channel. |
| Bypass media | A signaling mode in which FreeSWITCH instructs endpoints to exchange RTP directly with each other, removing the FreeSWITCH media server from the media path. Enabled per-call with the channel variable bypass_media=true. The SIP signaling path still passes through FreeSWITCH. |
C
| Term | Definition |
|---|---|
| Call | A logical communication instance that consists of one or more legs. A two-party call has 2 legs (an A leg and a B leg). A call is represented internally as a session and may span multiple channels. |
| CDR | Call Detail Record. A structured record written at the end of a call that captures metadata such as caller ID, destination, duration, disposition, and channel variables. FreeSWITCH can emit CDRs in XML or JSON format via modules such as mod_cdr_csv and mod_cdr_sqlite. |
| Channel | The fundamental unit of a call leg in FreeSWITCH. Each channel corresponds to one endpoint connection and carries its own state machine, media stream references, and set of channel variables. A channel is created when a call leg is established and destroyed when that leg ends. |
| Channel variable | A key-value pair scoped to a single channel. Channel variables control call behavior (e.g., hangup_after_bridge, effective_caller_id_number), carry call metadata, and are readable and writable from the dialplan and from applications throughout the life of the channel. |
| Codec | A coder-decoder specification that defines how audio (or video) is encoded for transmission over RTP. FreeSWITCH negotiates codecs during SDP exchange. Supported codecs are registered by modules (e.g., mod_opus, mod_g729). |
| Condition | A dialplan element that tests one or more attributes of the current channel (such as destination_number or caller_id_name) against a regular expression. Actions within the condition execute only when all tests match. |
| Context | A named collection of dialplan extensions. Incoming calls are assigned to a context (e.g., public or default) based on the SIP profile or directory configuration. The dialplan engine searches only the extensions within the assigned context. |
D
| Term | Definition |
|---|---|
| Dialplan | The routing engine that determines what happens to a call after it is received by FreeSWITCH. The default dialplan (XML dialplan) is a hierarchical structure of contexts, extensions, conditions, and actions stored in dialplan/ XML files. |
| Directory | The XML-based user and domain database consumed by FreeSWITCH (primarily by mod_sofia). It defines domains, users, gateways, and per-user parameters. The directory is stored under directory/ and loaded at startup or on reloadxml. |
| Domain | A logical namespace within the FreeSWITCH directory, typically corresponding to a SIP domain (e.g., pbx.example.com). Users and gateways are defined within a domain. A single FreeSWITCH instance can host multiple domains. |
| DTLS | Datagram Transport Layer Security. A protocol used to negotiate encryption keys for SRTP in WebRTC and other secure media scenarios. DTLS replaces the SDES key exchange method and is required for WebRTC. Supported via mod_sofia with appropriate TLS settings. |
| DTMF (RFC 2833) | Dual-Tone Multi-Frequency signaling carried out-of-band in RTP as telephone-event payloads defined in RFC 2833 (superseded by RFC 4733). FreeSWITCH can send and receive DTMF via RFC 2833, SIP INFO, or in-band audio, configurable per profile or per call. |
E
| Term | Definition |
|---|---|
| Early media | Audio or video sent by a called endpoint before the call is fully answered (i.e., before a SIP 200 OK). Early media arrives in a provisional 183 Session Progress response. FreeSWITCH can generate or pass through early media using the pre_answer application. |
| Endpoint | A module that implements a signaling and media protocol, enabling FreeSWITCH to originate and terminate calls. mod_sofia is the SIP endpoint. mod_verto is the Verto/WebRTC endpoint. Each endpoint registers with the FreeSWITCH core and handles its own protocol stack. |
| Event Socket | A TCP-based interface provided by mod_event_socket that exposes FreeSWITCH events and commands to external applications. It operates in inbound mode (external app connects to FreeSWITCH) or outbound mode (FreeSWITCH connects out per-call). |
| Extension | A dialplan element within a context that groups one or more conditions and their associated actions. FreeSWITCH tests each extension in order until one matches the incoming call. An extension match triggers execution of its actions. |
F
| Term | Definition |
|---|---|
| FIFO | First In, First Out queue. Implemented by mod_fifo, a FIFO holds callers waiting to be answered by agents. Callers enter a queue with the fifo application; agents retrieve callers from the queue using the same application in consumer mode. |
G
| Term | Definition |
|---|---|
| Gateway | A SIP trunk definition within the FreeSWITCH directory or Sofia profile configuration that describes how to register with or send calls to an upstream SIP provider. A gateway specifies a proxy address, credentials, and registration parameters. |
I
| Term | Definition |
|---|---|
| IVR | Interactive Voice Response. A call flow that plays prompts and collects DTMF or speech input from the caller to route or serve the call programmatically. In FreeSWITCH, IVR logic can be implemented via the XML IVR menu system (mod_ivr), Lua, JavaScript, or other scripting modules. |
L
| Term | Definition |
|---|---|
| Leg | One side of a call. A standard 2-party call has an A leg (the originating channel) and a B leg (the terminated channel). Each leg is a distinct channel with independent signaling and media. |
M
| Term | Definition |
|---|---|
| MOH | Music on Hold. Audio streamed to a held caller. In FreeSWITCH, MOH is typically implemented by placing a caller into a park or hold state and using a local audio file or stream as the source, configured via the hold_music channel variable or profile parameter. |
N
| Term | Definition |
|---|---|
| NAT | Network Address Translation. A mechanism by which a router rewrites IP addresses and ports between a private network and a public network. FreeSWITCH includes NAT traversal helpers in mod_sofia (e.g., STUN, ext-rtp-ip, ext-sip-ip) to ensure correct SDP addressing for endpoints behind NAT. |
P
| Term | Definition |
|---|---|
| Preprocessor variable | A variable defined in vars.xml or via X-PRE-PROCESS directives that is substituted into XML configuration files before the configuration is parsed. Preprocessor variables use the syntax $${variable_name} and are resolved once at load time, unlike channel variables which are runtime values. |
| Profile (Sofia profile) | A named SIP stack instance configured within mod_sofia. A profile defines a listening address and port, transport protocols (UDP, TCP, TLS), codec preferences, NAT handling, and many other SIP-layer parameters. FreeSWITCH can run multiple profiles simultaneously (e.g., an internal profile and an external profile). |
| proxy media | A media handling mode in which FreeSWITCH passes RTP between endpoints without decoding or re-encoding the audio. FreeSWITCH remains in the RTP path but does not transcode. Enabled with the channel variable proxy_media=true. Differs from bypass media in that FreeSWITCH still receives and forwards each RTP packet. |
| ptime | Packet time. The duration of audio, in milliseconds, encoded in each RTP packet. Common values are 20 ms and 30 ms. Mismatched ptime between endpoints may require FreeSWITCH to repacketize audio, which is handled transparently when transcoding is active. |
R
| Term | Definition |
|---|---|
| Registration | The process by which a SIP user agent sends a REGISTER request to FreeSWITCH (via mod_sofia) to associate its current contact address with a SIP address of record (AOR). Registered contacts are stored in the FreeSWITCH registration database and used for inbound call routing. |
| RTP | Real-time Transport Protocol. The UDP-based protocol used to carry audio and video media between endpoints. RTP packets include a sequence number, timestamp, and payload type that identify the codec and packet ordering. |
S
| Term | Definition |
|---|---|
| SDP | Session Description Protocol. A text format carried in SIP message bodies that describes the media capabilities of an endpoint: IP address, port, codecs, ptime, and security parameters. FreeSWITCH generates and parses SDP during call setup to negotiate the media session. |
| Session | The FreeSWITCH-internal object that owns a channel and its associated state for the lifetime of a call leg. A session ties together the signaling (endpoint), media (RTP), and dialplan execution context for one leg. |
| SRTP | Secure Real-time Transport Protocol. An encrypted extension of RTP that provides confidentiality and message authentication for media streams. FreeSWITCH supports SRTP using SDES key exchange (via SDP) or DTLS key exchange (for WebRTC). |
T
| Term | Definition |
|---|---|
| T.38 | An ITU standard for transmitting fax over IP (FoIP) using UDP or TCP rather than audio-band modem tones over RTP. mod_sofia can negotiate a switch from audio RTP to T.38 mid-call when a fax tone is detected, enabling reliable fax transmission over lossy networks. |
| Transcoding | The process of decoding audio from one codec and re-encoding it into another. FreeSWITCH performs transcoding when the A and B legs negotiate different codecs. Transcoding requires CPU resources and is not performed when bypass media or proxy media is active. |
U
| Term | Definition |
|---|---|
| User | An entry in the FreeSWITCH directory representing a SIP subscriber. A user is defined within a domain and may specify credentials, caller ID, codec preferences, and per-user variables. Users are referenced during SIP registration and inbound call routing via the user dialplan destination. |
V
| Term | Definition |
|---|---|
| Verto | A FreeSWITCH-native JSON-RPC signaling protocol designed for WebRTC clients, implemented by mod_verto. Verto operates over a WebSocket connection and provides call control, media negotiation, and conferencing capabilities without requiring a SIP stack on the client. |
W
| Term | Definition |
|---|---|
| WebRTC | Web Real-Time Communication. A set of browser APIs and protocols (ICE, DTLS, SRTP, SDP) that enable peer-to-peer audio and video in web browsers. FreeSWITCH supports WebRTC clients via mod_verto (Verto signaling) and via SIP over WebSocket (mod_sofia with WSS transport). |