Self-Hosted PBX¶
A Private Branch Exchange (PBX) is a private telephone network used within an organization to manage internal and external calls. It allows users to share a set of external phone lines while providing advanced telephony features such as call forwarding, voicemail, conferencing, and automated attendants. Traditional PBXs were hardware-based and connected to analog phone lines. Modern PBXs are software-based and often use Internet technologies such as VoIP/SIP to reduce costs and increase flexibility.
A self-hosted PBX refers to a telephony system that is installed, managed, and operated by the user on their own infrastructure, rather than relying on cloud-based services or third-party providers. In the context of a home network, this means running a PBX platform like Asterisk
with a web-based GUI such as FreePBX
on a local server, hosted server or virtual machine. This setup gives you full control over your call routing, extension management, and feature set.
System Architecture¶

I currently have a mixed VoIP setup at home consisting of two analog telephones and one SIP-based VoIP phone. The analog phones are connected to a Grandstream ATA (Analog Telephone Adapter), allowing them to integrate with my SIP-based telephony system. One of the analog phones is a rotary pulse-dial phone, retained for nostalgic reasons, while the other supports DTMF tone dialing. For mobile access, I've installed Zoiper, a software SIP client, on my smartphone.
Rotary phones are a fascinating relic of the past that many in today’s digital generation have never seen, let alone used. Unlike modern smartphones or even push-button landlines, rotary phones require the user to insert a finger into a numbered dial and rotate it clockwise until it stops. There’s no touchscreen, no contacts list, just a slow, mechanical process that feels almost meditative today.
I recently showed a vintage rotary phone to my 5-year-old son, who was both puzzled and amazed. After a quick lesson, he lit up with excitement as he learned how to dial a number by physically turning the dial and hearing the satisfying clicks of the mechanism.

The core of my setup runs on Asterisk, with FreePBX serving as the web-based management interface. This system is hosted on a Debian 12.x virtual machine within my home lab. I have configured three SIP extensions:
Extension | Device(s) |
---|---|
xxx | Analog Phone 1 (Rotary, ATA FXS1) |
yyy | Analog Phone 2 (DTMF, ATA FXS2), Mobile Phone SIP App |
zzz | Desktop SIP Phone |
Extension xxx is dedicated to the analog rotary phone connected via ATA Port 1 (FXS1). This phone uses pulse dialing, and the ATA has been configured to support it, allowing even vintage equipment to function properly in the modern SIP environment.
Extension yyy is a shared extension, configured on both the analog DTMF-capable phone (connected via ATA Port 2) and my mobile phone’s SIP app. When someone dials this extension, both devices ring at the same time, allowing me to answer the call from either location, whether I'm at home or on the go.
Lastly, extension zzz is assigned to a hardware SIP phone located on my desktop, which I use primarily for work-related communication. This device connects directly to the SIP server over the network and functions as a dedicated VoIP phone, offering a reliable and professional calling experience throughout the workday.
To enable external calling, I’ve configured a SIP trunk with VoIP.ms
and obtained a public telephone number, which allows incoming and outgoing calls to and from my home network using any standard telephone number. To handle this flow, I’ve defined an inbound route in my PBX that directs calls received on this number to a specific internal extension. Similarly, I’ve set up an outbound route that allows internal devices to place calls to external numbers by matching dial patterns and routing them through the configured SIP trunk. You can find more details in here.
Applications of Self-hosted PBX¶
In a home environment, a self-hosted PBX unlocks a variety of interesting applications:
- Connect multiple SIP phones throughout the house to enable room-to-room intercom functionality
- Configure voicemail-to-email forwarding so missed messages are delivered directly to your inbox
- Set up call routing rules based on time of day (e.g., block robocalls at night or redirect to voicemail during quiet hours)
- Integrate mobile softphones to make and receive home calls remotely over Wi-Fi or cellular networks
- Use a SIP-enabled video doorbell or intercom system that rings your internal phones or mobile device
- Implement a personalized automated call attendant with menus for household members or functions (e.g., "Press 1 to leave a message for Dad")
- Experiment with SIP trunk providers to make outbound calls via the internet at low cost
- Learn and test enterprise-grade VoIP technologies, including dial plans, call queues, and call recordings
- Develop custom voice applications or services (e.g., reminders, alarms, family announcements)
POTS (Plain Old Telephone Service)¶
POTS, or "Plain Old Telephone Service", refers to the traditional analog telephone system that was developed in the late 19th century and standardized throughout the 20th century. It is the foundation of fixed-line telephony and operates over the Public Switched Telephone Network (PSTN) using twisted-pair copper wires. POTS is a circuit-switched system, meaning a dedicated electrical circuit is established between two endpoints for the duration of a call.
Analog signaling refers to the use of continuously varying electrical signals to represent information. POTS uses analog transmission to carry voice
signals within a narrow frequency range of approximately 300-3400 Hz, which is sufficient for human speech but limited in fidelity. In addition to carrying voice, the same line also transmits call control
signals. For example:
- A constant voltage indicates the phone is on-hook.
- Removing the handset (off-hook) alters the circuit, signaling the central office to provide a dial tone.
- Ringing voltage is sent to notify an incoming call.
- Pulse dialing or tone dialing (depending on the phone type) are used to route the call.
One of the key advantages of POTS is its reliability and independence from local power sources. Telephones connected via POTS receive a constant low-voltage DC power supply (typically 48V) from the telephone company’s central office, which enables basic analog phones to operate even during power outages.
Pulse Signaling (Pulse Dialing)
Pulse signaling, also known as pulse dialing, was the first method used by telephones to communicate dialed digits to the telephone exchange. This method originated with rotary dial phones. When a user rotated the dial to a specific number and released it, the phone created a series of rapid electrical interruptions (pulses) on the line, each representing a digit. For example, dialing "6" would generate six electrical breaks; "0" would send ten pulses.
Pulse signaling relies on detecting the number of loop interruptions in the telephone circuit. While effective for its time, pulse dialing is slow and error-prone, particularly on long or noisy lines. As telephone systems modernized, pulse dialing became obsolete and was replaced by faster and more accurate methods like tone signaling.
Tone Signaling (DTMF Dialing)
Tone signaling, most commonly in the form of Dual-Tone Multi-Frequency (DTMF) dialing, is the method used by touch-tone phones. Each key on the keypad generates two simultaneous audio frequencies: one from a low-frequency group and one from a high-frequency group. These tone pairs are uniquely associated with each digit (0-9), as well as the *
and #
symbols, and are carefully chosen to minimize false detection and avoid harmonic overlap. For example, pressing the "5" key produces a combination of 770 Hz and 1336 Hz tones.
The result is a distinctive sound for each key, which can be heard when dialing. These sounds are not just auditory feedback for the user - they are also functional signals interpreted by telephone switching equipment to determine the digit being dialed. Tone signaling is significantly faster and more reliable than pulse dialing. It also enables interaction with automated systems, such as voicemail menus, Interactive Voice Response (IVRs), or banking services.
In digital and VoIP networks, DTMF signals can be transmitted as in-band audio (where the actual tones are embedded in the audio stream) or as out-of-band signaling using protocols like RFC 2833 (RTP events) or SIP INFO, ensuring compatibility across both analog and IP-based telephony systems.
Voice over Internet Protocol (VoIP)¶
Voice over Internet Protocol (VoIP) is a technology that enables voice communication and multimedia sessions over Internet Protocol (IP) networks, such as the Internet or local area networks (LANs). Unlike traditional circuit-switched telephony systems, VoIP digitizes voice signals, segments them into data packets, and transmits them over IP networks.
To deliver high-quality real-time voice communication, VoIP systems impose specific network performance requirements. These include adequate bandwidth, low latency (delay), minimal jitter, and low packet loss. Failing to meet these parameters results in degraded call quality, such as delays, echoes, or robotic voice artifacts.
Parameter | Recommended Value | Notes |
---|---|---|
Bandwidth | 30-100 kbps per call | Depends on codec (e.g., G.729 vs. G.711) |
Latency | <150 ms one-way (ideal) | <400 ms maximum for usability |
Jitter | <30 ms | Use jitter buffers to smooth delivery |
Packet Loss | <1% | Higher loss leads to choppy audio |
Bandwidth¶
Bandwidth refers to the amount of data a VoIP call consumes per second. It depends primarily on the audio codec used. Uncompressed codecs like G.711 require approximately 64 kbps, while compressed codecs like G.729 or Opus can use as little as 8-30 kbps. However, actual bandwidth usage is higher due to protocol overhead (IP/UDP/RTP headers). A safe estimate for planning purposes is 30-100 kbps per call. For multiple simultaneous calls, you must multiply the bandwidth accordingly and ensure sufficient upstream capacity, especially on asymmetric residential connections.
Latency¶
Latency is the time it takes for a voice packet to travel from sender to receiver. For natural, real-time conversation, one-way latency should ideally stay below 150 milliseconds. While delays up to 400 milliseconds are considered tolerable, anything beyond that can cause noticeable echo, interruptions, or difficulty in turn-taking during conversation. Latency accumulates from several sources: codec processing time, buffering, network propagation, and queuing delays. Low-latency networks and hardware are crucial for maintaining a seamless VoIP experience.
Jitter¶
Jitter refers to the variation in packet arrival times caused by network congestion, inconsistent routing paths, or hardware delays. In VoIP, even small fluctuations can affect the smooth playback of audio. To mitigate this, endpoints employ jitter buffers that store incoming packets temporarily and play them in steady succession. However, larger buffers increase latency. Ideally, jitter should be kept below 30 milliseconds to prevent audio clipping or distortion. A well-designed network with QoS settings can help minimize jitter.
Packet Loss¶
Packet loss occurs when one or more voice packets fail to reach their destination. Since VoIP uses UDP, lost packets are not retransmitted. While minor packet loss (below 1%) can be masked by audio repair techniques, anything above 2–3% degrades audio quality noticeably, causing dropouts or robotic sounds. Consistent or bursty loss is especially harmful. Causes include congestion, poor Wi-Fi conditions, and faulty network equipment. Ensuring a stable network and prioritizing VoIP traffic can significantly reduce packet loss.
Session Initiation Protocol (SIP)¶
SIP is a signaling protocol used to initiate, manage, and terminate voice, video, and messaging sessions over IP networks. Defined in RFC 3261, SIP plays a central role in VoIP architecture. It operates as a client-server protocol following a request-response model, but it's important to note that SIP handles signaling only. Actual media transmission (audio or video) is typically managed by RTP (Real-time Transport Protocol).
A SIP server manages signaling functions within a SIP network. It can serve in different roles such as a registrar
server (handles user registration and maintains location information), a proxy
server (forwards SIP requests between clients and enforces routing policies), or a redirect
server (responds with alternative contact information, directing clients where to send requests). SIP servers act as the control plane, enabling user discovery, authentication, and reliable session management.
A SIP client is any device or application that uses SIP to participate in communication sessions. The client sends SIP requests to the server to initiate communication and also handles incoming signaling from other peers. A SIP client must be configured with a SIP account (username, password, SIP server address). It manages the user interface, interacts with the media layer, sends DTMF tones, and controls call behavior on behalf of the user.
SIP Methods¶
SIP defines a set of methods, similar to HTTP verbs, used to establish, manage, and terminate multimedia sessions. The core methods include:
SIP Method | Description |
---|---|
REGISTER | Registers a user's location (IP address) with a SIP server. |
INVITE | Initiates a call session or modifies an existing session (e.g., re-INVITE). |
ACK | Confirms receipt of a final response to an INVITE. |
CANCEL | Cancels a pending request (typically an INVITE before it's answered). |
BYE | Terminates an active session between two users. |
OPTIONS | Queries the capabilities of a server or endpoint (like a ping). |
There are also extension methods that provide additional control and messaging capabilities:
SIP Method | Description |
---|---|
INFO | Sends mid-session signaling information (e.g., DTMF tones). |
PRACK | Provisional acknowledgment for reliable provisional responses (RFC 3262). |
SUBSCRIBE | Requests notification of an event (used in presence and voicemail systems). |
NOTIFY | Sends information about an event subscribed to. |
REFER | Asks the recipient to initiate a call to a third party (call transfer). |
MESSAGE | Sends instant messages using SIP (RFC 3428). |
UPDATE | Modifies session parameters before a final response is received. |
PUBLISH | Sends event state information to a server (used in presence systems). |
SIP can use UDP or TCP as its transport protocol, depending on the network requirements and configuration. UDP is commonly used because it is lightweight and has lower latency, making it suitable for real-time voice applications. However, TCP is preferred when reliable delivery is required, such as in networks where packet loss is more common or messages exceed the typical UDP size limit (1300-1500 bytes). Additionally, SIP over TLS (Transport Layer Security) is used to encrypt signaling data for secure communication. The choice between UDP, TCP, and TLS is often specified in the SIP client's configuration or dictated by the SIP server’s capabilities.
Open-source SIP Servers¶
Open-source SIP servers are software platforms that manage SIP signaling. Popular options include Asterisk
, a powerful PBX framework that supports call routing, voicemail, conferencing, and more that is often managed through the FreePBX
web GUI; and FreeSWITCH
, a scalable telephony engine suited for high-volume VoIP, video, and conferencing applications, commonly paired with the FusionPBX
GUI.
Server | Year | GUI (Optional) | Description |
---|---|---|---|
Asterisk | 1999 | FreePBX | A full-featured PBX framework. Handles SIP, media, dial plans, and voice apps. |
FreeSWITCH | 2006 | FusionPBX | A scalable, modular telephony platform for VoIP, video, conferencing, etc. |
These servers act as the core of VoIP systems, handling registration, session control, and media negotiation, and are widely used in both home labs and enterprise environments due to their flexibility, extensibility, and active community support.
FreePBX¶
Using Asterisk with FreePBX for a home network offers advantages for VoIP experimentation, self-hosted telephony, and local SIP device integration. It allows you to create a fully customizable, feature-rich PBX without relying on third-party cloud services. With FreePBX's intuitive web interface, you can easily configure SIP extensions, voicemail, call routing, and integration with mobile or desktop softphones. Whether you're building a smart intercom system, learning VoIP technology, or connecting IP phones across your home lab, this open-source solution provides enterprise-grade capabilities tailored to a local environment.
For testing and evaluation purposes, FreePBX can be installed on a virtual machine running Debian 12.x, providing a controlled environment for development, configuration, and feature exploration. In typical PBX deployments, system management is performed through the FreePBX web interface and SSH access, eliminating the need for a graphical desktop environment. You may use the official FreePBX Debian Install Script, which automates the setup of all necessary components on a Debian-based system.
You can find a great video series on FreePBX in here.
Port Forwarding¶
I have configured these port forwarding on my firewall:
Purpose | Protocol | Port(s) | Notes |
---|---|---|---|
SIP signaling (UDP) | UDP | 5060 | Default port for SIP (PJSIP or ChanSIP) using UDP |
SIP signaling (TCP) | TCP | 5060 | SIP over TCP (must be explicitly enabled in FreePBX) |
SIP TLS | TCP | 5061 | Encrypted SIP signaling (SIPS) using TLS |
RTP media stream | UDP | 10000-20000 | Used for audio/video streams; set in Asterisk SIP settings |
UCP WebSocket (UCP) | TCP | 8001, 8003, 8088, 8089 | Required for WebRTC & User Control Panel (UCP) functionality |
IAX2 | UDP | 4569 | Inter-Asterisk Exchange protocol (for trunking or remote extensions) |
HTTP/HTTPS (optional) | TCP | 80, 443 | Used for accessing FreePBX web interface |
If you want to use a softphone SIP app on your mobile device outside of your home network, the SIP client must be able to reach your PBX server using a resolvable domain name. To achieve this, you need to assign a DNS domain name that points to your PBX server’s public IP address or to a dynamic DNS (DDNS) hostname if your IP is not static.
In addition to SIP access, you can also make the FreePBX web interface accessible publicly. To secure this access, FreePBX supports HTTPS via a "Let's Encrypt" SSL certificate through its built-in "Certificate Manager" module. Enabling HTTPS ensures encrypted communication and protects your login credentials when accessing the admin portal remotely. Refer to this video guide for more information.
Configuring Outgoing Email¶
FreePBX relies on email for a variety of essential communications, including:
- Voicemail-to-email notifications: Sends recorded voicemails as audio file attachments.
- System alerts: Notifies administrators about service failures, security issues, or update availability.
- Fax-to-email (if enabled): Delivers received faxes as PDF attachments.
- User notifications: In multi-user setups, users may receive extension-specific alerts or updates.
To enable these features, FreePBX uses the underlying Linux mail system (Postfix by default) to send email from the server. Once configured, all modules that rely on email will use the system's mail transport service. Follow these steps to configure Postfix on your FreePBX Debian host to send emails via Gmail:
Open /etc/postfix/main.cf:
sudo nano /etc/postfix/main.cf
At the bottom of the file, add the following lines:
# === Gmail SMTP Relay Settings ===
relayhost = [smtp.gmail.com]:587
# TLS and SASL authentication
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
Create or edit the credentials file:
sudo nano /etc/postfix/sasl_passwd
Add the following line, replacing with your Gmail credentials:
[smtp.gmail.com]:587 your_email@gmail.com:your_app_password
This must be a Gmail App Password (a 16-character password with no spaces, generated from your Google account with 2FA enabled).
Secure and activate the configuration:
sudo postmap /etc/postfix/sasl_passwd
sudo chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
sudo chown root:root /etc/postfix/sasl_passwd*
sudo systemctl restart postfix
Send a test email:
echo "Test via Gmail relay" | mail -s "Gmail Relay Test" your_email@gmail.com
Check Postfix logs for success or errors:
sudo tail -n 50 /var/log/mail.log
You should see a line like:
status=sent (250 2.0.0 OK ...)
FreePBX uses the sendmail
binary to send voicemail and system-related emails. Once Postfix is correctly configured as described above, FreePBX will automatically use it for its own purpose.
SIP Clients¶
SIP clients can be divided into the following main categories:
Hardware SIP clients refers to physical devices like IP phones, ATA adapters, and DECT cordless phones. These are dedicated appliances that connect to a SIP server over Ethernet or Wi-Fi. These are reliable, always-on solutions ideal for offices and homes where a dedicated phone is preferred.
Embedded SIP devices are specialized hardware units with built-in SIP clients, designed for automated communication tasks rather than manual dialing. Unlike traditional IP phones, these devices are used in systems like intercoms, door entry panels, paging systems, and IP speakers. When integrated into a SIP-based telephony system, they can make or receive calls automatically. For example, a doorbell panel placing a SIP call to a receptionist, or an IP speaker receiving a broadcast announcement. These devices enhance facility automation, access control, and public safety by enabling voice (and sometimes video) communication using standard SIP protocols without requiring a physical handset or softphone interface.
Software SIP clients, also called
softphones
, are applications installed on desktops, laptops, smartphones, or tablets. Examples include Zoiper, Clearly Anywhere, and Grandstream Wave. They offer flexibility and mobility, making them ideal for remote work or BYOD setups.Browser-based SIP clients are a special type of software SIP clients that run entirely in a web browser using technologies like WebRTC and SIP over WebSocket. Examples include JsSIP and SIP.js. These are often used in web-based call centers, customer portals, or PBX user panels to enable calling without installing any software.
Analog Telephone Adapter (ATA)¶
An Analog Telephone Adapter (ATA) is a small hardware device that allows traditional analog telephones or fax machines to connect to a modern VoIP (SIP) network. It acts as a bridge by converting analog audio signals from the phone into digital data packets that can be transmitted over the internet using SIP. ATAs typically have one or more FXS
ports (for connecting analog phones) and an Ethernet port for network access. This offers a cost-effective way to transition from legacy telephony to IP-based communication without replacing all handsets.
Grandstream ATA devices are known for their reliability, ease of setup, and compatibility, catering to both residential and small business needs. These devices support essential features such as T.38 fax relay, SIP TLS/SRTP encryption, three-way calling, call waiting, and failover SIP servers. They are fully compatible with most SIP platforms, including FreePBX. Grandstream ATAs are among the few available adapters that support pulse dialing, making them suitable for use with rotary phones. Here is a good introduction video.

Numbering in Telephony Systems¶
Public Telephone Number¶
A public telephone number is a globally unique identifier used to route calls over the public telephony network. These numbers are assigned by national regulatory authorities and follow international standards to ensure consistency and avoid duplication. The global uniqueness of a public number is maintained by the E.164
international numbering plan developed by the ITU-T. E.164 defines a maximum length of 15 digits and includes:
- Country Code (CC): 1-3 digits, assigned uniquely to each country or region.
- National Destination Code (NDC): Often called the area code, helps route the call within the country.
- Subscriber Number (SN): The individual's unique number within that area.
For example, the number +1-408-555-1234
can be broken down as:
+1
→ Country code (United States)408
→ Area code (e.g., San Jose, California)555-1234
→ Local subscriber number
This format ensures that a call dialed from any location on Earth can be correctly routed to its destination. These numbers are not only used in traditional landline systems (POTS), but also in mobile networks and VoIP systems. In landline systems, they are often physically tied to copper wire infrastructure at a fixed location. In mobile and VoIP systems, phone numbers can be virtual and more easily ported across devices and geographic locations.
Extension Number¶
An extension number is a short numeric identifier used within a PBX system to identify internal endpoints such as users, phones, departments, or automated services. These are not globally unique and only have meaning within the context of the PBX they belong to. Extensions typically range from 2 to 5 digits (e.g., 100, 2001, 9876), and their format is usually determined by the internal dial plan of the PBX system. They allow internal users to call each other quickly without dialing the full public number. For instance, in an office where the main number is +1-408-555-1000, extension 102 might connect directly to the support desk.
Extension Types¶
In PBX systems like FreePBX, you can create several types of extensions depending on the device or line technology being used. chan_pjsip
is the most common extension type which is the modern SIP channel driver in Asterisk.
By default, an extension maps to a SIP user account with a unique username (usually the extension number) and password. You can register multiple SIP devices or softphones using the same extension number. When multiple devices register using the same SIP extension:
- All registered devices are treated as contacts for that extension.
- All devices ring simultaneously when a call is made to that extension.
- You can answer the call on any of the devices.
This is useful for users who want to be reachable on multiple devices (e.g. desk phone at work and mobile phone app while on the go). In FreePBX using chan_pjsip
, the "Max Contacts" setting controls how many SIP registrations (endpoints) are allowed for that extension. If set to 1, only one device can be registered at a time. If you want multiple devices to share the same extension and ring together, you need to increase Max Contacts to match the number of devices you plan to use.
Feature Codes¶
Feature codes are short, predefined numeric sequences that trigger special telephony functions within a PBX system. These functions include actions such as call forwarding (*72
), voicemail access (*98
), call parking, redial, or "Do Not Disturb". Feature codes provide users with quick access to advanced calling features without requiring complex navigation menus. They are often customizable and usually begin with *
or specific digit patterns.
Because many feature codes start with *1xx
, *2xx
, or even just 1xx
(depending on the system configuration), using extension numbers in the 1xx
range (e.g., 100, 101) can conflict with feature codes, leading to unpredictable behavior or failed call routing. For this reason, it's generally recommended to avoid assigning extensions that begin with 1xx unless you're sure they don't overlap with existing or reserved feature code patterns.
Caller ID (CID)¶
Caller ID is a telephony feature that displays the identity of the calling party to the recipient before the call is answered. It typically includes a caller name (CNAM) and a caller number, which may be either a public telephone number (in the case of external calls) or an internal extension number (for calls within a PBX system). In public networks, the caller ID is usually set to the caller’s assigned phone number (e.g., +1-408-555-1234) and is controlled by the telecom provider or SIP trunk. In PBX systems like FreePBX, the administrator can customize the caller ID per extension, allowing internal calls to show meaningful names (e.g., "LivingRoom 401") and outgoing calls to display a desired public number if allowed by the SIP provider.
E911¶
E911 or "Enhanced 911" is a critical emergency service feature in telephony systems that automatically provides emergency responders with the caller's phone number and location when a 911 call is placed. In VoIP and mobile networks, where users are not tied to a fixed physical line, traditional 911 systems may not accurately determine the caller's location. E911 addresses this by requiring service providers to maintain and transmit up-to-date location data (either through GPS, registered address, or network-based triangulation) so that first responders can be dispatched accurately and promptly. It is essential for public safety, ensuring that even if a caller is unable to speak or describe their location, emergency services can still reach them. VoIP users are often required to register their physical address with their service provider to enable E911 functionality.
SIP Trunking¶
SIP trunking is a method of delivering voice and other unified communications services over the Internet using SIP. Instead of relying on traditional analog or ISDN phone lines, SIP trunking allows users to connect their on-premise PBX systems (like FreePBX or Asterisk) to the PSTN through a VoIP provider. This enables SIP-based systems to make and receive calls to and from regular phone numbers, including landlines and mobile phones, effectively bridging the gap between modern IP communications and legacy telephony infrastructure.
SIP trunking eliminates the need for physical phone lines by routing calls over IP networks, making it a cost-effective, flexible, and scalable solution. It supports outbound and inbound calling, caller ID, number portability, and advanced features such as failover routing, global call delivery, and dynamic call capacity. SIP trunks can carry voice, video, messaging, and presence data, all over a single virtual connection.
To enable inbound calling to specific users or departments, SIP trunking relies on Direct Inward Dialing (DID). A DID is a virtual phone number assigned by the SIP trunk provider that maps to an internal extension or device within your PBX. This allows external callers to reach individuals directly without going through a receptionist or auto-attendant. For example, you could assign a unique DID to each family member or home office line.
DIDs are essential for receiving calls via SIP trunks. They act as your publicly reachable numbers. You can typically purchase them from your provider for a low monthly fee. One SIP trunk can carry multiple DIDs, and the PBX handles call routing internally based on the number dialed. While SIP trunks provide the channel or "pipe" for voice traffic, DIDs provide the "addresses" people call.
SIP Trunk Providers¶
There are many different SIP trunk providers available in the market today, each offering distinct service models, regional coverage, and pricing structures. Some providers operate globally, offering worldwide number provisioning and international calling capabilities, while others focus on specific regions such as North America, Europe, or Asia-Pacific, optimizing for local call quality and compliance with regional telecom regulations.
SIP trunking services are typically priced using one of three common models. The first is per-minute or metered billing, where you are charged based on usage, allowing for unlimited concurrent calls without channel restrictions, ideal for dynamic or unpredictable call volumes. The second model is per-channel pricing, where you pay a fixed fee per simultaneous call path (channel), regardless of usage. This model is common in traditional business phone systems and provides predictable costs. Lastly, enterprise-grade SIP trunking may involve dedicated circuits or private interconnects delivered directly to the customer’s premises for maximum reliability, security, and quality of service.