Inbound Call Routing:
Route Selection & Failover
The definitive guide to designing intelligent inbound call routing β DID matching, IVR trees, ring groups, time-based routing, and automatic failover that ensures no customer call is ever missed.
Inbound call routing is the system that determines what happens the instant a customer calls your business number β which department they reach, which phone rings, which IVR menu they hear, and what occurs when everyone is busy or offline. A well-designed inbound routing system ensures every call reaches the right person, at the right time, through the right destination β and automatically recovers when something goes wrong. This guide covers the complete architecture of inbound call routing: how DID matching works, the difference between ring groups, hunt groups, and queues, how to design time-based routing rules, how to build automatic failover chains that protect against downtime, and how to configure all of this in real PBX systems including FreePBX and Asterisk with NetViaVoice SIP trunks.
π Table of Contents
- How Inbound Call Routing Works End-to-End
- DID Matching: How the PBX Identifies Your Call
- Routing Destinations: Extension, IVR, Ring Group, Queue
- Ring Strategies: Sequential, Simultaneous & Memory Hunt
- Time-Based Routing: Business Hours, After Hours & Holidays
- IVR Design: Building an Intelligent Call Tree
- Inbound Call Failover: Automatic Recovery Architecture
- Configuring Inbound Routes in FreePBX (Step-by-Step)
- Multi-DID Routing: One Trunk, Many Numbers, Many Destinations
- Monitoring & Reporting Inbound Route Performance
- Frequently Asked Questions
- Related Articles
1. How Inbound Call Routing Works End-to-End
When a customer dials your business phone number, a precisely coordinated chain of events unfolds before their call reaches a human voice. Understanding this chain is the foundation of designing a routing system that works reliably at scale. The journey begins at your SIP trunk carrier's network and ends at a ringing phone on your team's desk β or their mobile, or a voicemail box, depending on the routing rules you have defined.
At the carrier level, the dialled number (your DID β Direct Inward Dialing number) is matched to your account in the carrier's routing table. The call is then delivered as an inbound SIP INVITE to your PBX via your SIP trunk. The SIP INVITE message contains the dialled number in the Request-URI or To header β this is the information your PBX uses to decide where to route the call. Your PBX compares this number against its configured inbound routes, finds the matching route, and executes the routing logic defined for that number.
The routing logic can be simple (ring extension 101) or highly sophisticated (play a greeting, check the time, if business hours route to IVR, if after hours play a message and go to voicemail, if voicemail full send a text to the manager). All of this happens automatically, in milliseconds, for every single inbound call. Getting it right means customers always reach the right destination. Getting it wrong means calls get lost, dropped, or sent to the wrong team. For the outbound routing counterpart that works alongside inbound configuration, read our guide: FreePBX Outbound Routes Guide.
Need Expertly Designed Inbound Call Routing?
NetViaVoice configures inbound routes, IVR systems, time-based routing, and failover chains for businesses on FreePBX, Asterisk, and 3CX β with our SIP trunks as the foundation.
2. DID Matching: How the PBX Identifies Your Call
Every inbound call is identified by the DID β the specific number the caller dialled. Your PBX uses this number to look up which inbound route applies. This matching process is the gateway to all routing decisions. Configure it incorrectly and all calls will either fail to route, route to a default destination, or trigger the wrong routing logic.
| DID Format | Example | Typical Carrier | FreePBX Inbound DID Field |
|---|---|---|---|
| 10-digit US | 2125550100 | Most US carriers | 2125550100 |
| 11-digit US (with 1) | 12125550100 | Some US/CA carriers | 12125550100 |
| E.164 | +12125550100 | International SIP | +12125550100 |
| UK (with country code) | 442071234567 | UK carriers | 442071234567 |
| Any / blank | (empty) | Catch-all | Leave DID blank in FreePBX |
Key Troubleshooting Tip: The most common inbound routing failure is a DID format mismatch. Your carrier delivers the number in E.164 format (+12125550100) but your inbound route has it as 10-digit (2125550100). Use Asterisk CLI verbose logging or FreePBX's Admin β Asterisk Logfiles to see exactly what DID format is arriving in the SIP INVITE β then match your inbound route to that format exactly.
3. Routing Destinations: Extension, IVR, Ring Group & Queue
Once the DID is matched, the call is sent to a destination. Choosing the right destination type is one of the most impactful routing decisions you will make. Each destination type serves a different purpose and customer experience:
Direct Extension
Routes the call immediately to a specific phone or softphone. Best for direct lines to known individuals (receptionist, CEO direct line). No menu, no waiting β just ringing.
Fastest for direct linesIVR / Auto-Attendant
Plays a recorded greeting and menu. Callers press digits to self-route to the right department. Best for businesses with multiple departments and high call volumes.
Most professionalRing Group
Rings multiple extensions simultaneously or sequentially. Best for small teams where any available agent can answer. Simpler than a queue β no position announcements.
Best for small teamsCall Queue
Places callers on hold with music, position announcements, and estimated wait time. Routes to next available agent. Best for high-volume inbound call centres.
Call centre gradeFollow-Me / Find-Me
Tries multiple numbers in sequence or simultaneously β office phone, then mobile, then voicemail. Ensures mobile workers never miss important calls.
Best for mobile workersVoicemail
Routes directly to a voicemail box. Used as a final destination in failover chains or after business hours. Can trigger email notification with audio attachment.
Always-available fallback4. Ring Strategies: Sequential, Simultaneous & Memory Hunt
Within ring groups and hunt groups, the ring strategy controls the order and method in which agents' phones are rung. Choosing the right strategy significantly affects both agent workload distribution and customer wait time:
| Ring Strategy | How It Works | Best For | Customer Experience |
|---|---|---|---|
| Ringall (Simultaneous) | All extensions ring at once β first to answer gets the call | Small teams, urgent lines | Fastest answer time |
| Hunt / Sequential | Ring extension 1, wait N seconds, try extension 2, etc. | Tiered support teams | Moderate wait |
| Round Robin | Distributes calls evenly β each agent gets equal share | Sales teams, even workload | Fair distribution |
| Memory Hunt | Round robin but remembers where it left off last call | Call centres needing continuity | Most balanced |
| Random | Rings a random available agent each time | Teams with equal skills | Unpredictable but fair |
| Linear Priority | Always tries the top agent first, escalates only if unavailable | Dedicated account managers | Preferred contact first |
| Least Recently Called | Routes to agent who received a call longest ago | Large agent pools | Most rested agent answers |
5. Time-Based Routing: Business Hours, After-Hours & Holidays
One of the most important routing layers for any business is time-based routing β automatically sending calls to different destinations based on the time of day, day of week, or specific holidays. A law firm should not route calls to the same IVR at 2 AM as it does at 2 PM. A retail support line should automatically switch to after-hours voicemail without anyone having to remember to change a setting.
π Time-Based Routing Architecture
Business Hours Route
MondayβFriday, 9:00 AM β 6:00 PM: Route to main IVR β Sales queue or Support queue based on digit pressed β Agent answers
After Hours Route
Evenings and weekends: Play after-hours greeting β Offer option to leave voicemail or reach emergency extension β Voicemail or on-call mobile
Lunch Break Route (Optional)
12:00 PM β 1:00 PM: Play temporary routing message β Offer callback option β Route to reduced-staff ring group or voicemail
Holiday Route
Public holidays: Play holiday greeting with return date β Voicemail β Email notification to manager with recording
Emergency Override
Any time: Designated override extension or PIN-activated redirect β Immediate routing to on-call person's mobile regardless of time condition
In FreePBX, this is implemented using the Time Conditions module. In Asterisk, it uses GotoIfTime() in extensions.conf. In 3CX, it uses Office Hours settings per DID. All three systems support calendar-based holiday exceptions.
6. IVR Design: Building an Intelligent Call Tree
An IVR (Interactive Voice Response) system is the automated voice menu that greets callers and helps them self-route to the right destination. A well-designed IVR reduces agent workload, speeds up call resolution, and creates a professional brand impression. A poorly designed IVR frustrates callers and increases abandonment rates.
β IVR Best Practices for 2026
- Keep it shallow: Maximum 2 levels deep β most callers hang up by the 3rd menu level
- Limit options: 4β5 choices per menu maximum β "Press 1 for Sales, Press 2 for Support, Press 3 for Billing, Press 0 for Operator"
- Always offer 0 for operator: Some callers want a human immediately β give them an exit route
- State the option before the number: "For Sales, press 1" β not "Press 1 for Sales" (caller waits to know if relevant)
- Keep greeting under 10 seconds: Callers skip long intros β get to the menu quickly
- Handle timeouts: If no digit pressed within 5 seconds, repeat the menu or default to operator
- Handle invalid input: If caller presses wrong digit, play "that was not a valid option" and repeat
7. Inbound Call Failover: Automatic Recovery Architecture
Failover is the routing mechanism that automatically redirects inbound calls when the primary destination is unavailable. A call that cannot be answered because of a system outage, a busy queue, or an unavailable agent is a lost customer β and potentially a lost sale or unresolved support issue. Intelligent failover design ensures this never happens.
Normal State: Primary Route Active
Call arrives on DID β matches inbound route β routes to IVR or ring group β agent answers within ring timeout. All systems functioning normally.
Failover Trigger: Primary Unavailable
Ring group timeout exceeded (e.g., 30 seconds, no answer) β Queue full or wait time exceeds threshold β SIP trunk returns 503 β System outage detected.
Failover Layer 1: Secondary Destination
Call automatically routes to failover destination β secondary ring group, overflow agent pool, or mobile phone. Caller hears brief hold music, not a dropped call.
Failover Layer 2: Mobile / External Forward
If Layer 1 also fails β call forwards to a mobile number or external PSTN destination. Even a total system outage can be covered with a carrier-level forwarding rule.
Final Fallback: Voicemail with Notification
If no agent is reachable at any layer β voicemail records the message and sends instant email/SMS notification to the team. No call is ever silently lost.
| Failover Type | Trigger Condition | Destination | Configuration Location |
|---|---|---|---|
| Ring Group Timeout | All extensions ring unanswered for N seconds | Voicemail, IVR, or another ring group | FreePBX: Ring Group β Destination if no answer |
| Queue Timeout | Caller waits longer than max queue time | Voicemail, external number, or different queue | FreePBX: Queue β Failover Destination |
| Trunk Failover | SIP trunk returns 503 or is unregistered | Secondary SIP trunk or PSTN failover | FreePBX: Outbound route secondary trunk |
| Time Condition | Call arrives outside business hours | After-hours IVR, voicemail, or on-call mobile | FreePBX: Time Conditions module |
| Carrier-Level Failover | Your entire PBX is unreachable (internet down) | Mobile number or PSTN backup line | NetViaVoice portal: DID forwarding rules |
Best Practice: Configure a carrier-level failover rule directly in your NetViaVoice portal as a last-resort backup. This forwards inbound calls to your mobile number if your PBX becomes completely unreachable β protecting you against internet outages, server crashes, and power failures that would otherwise drop all inbound calls.
8. Configuring Inbound Routes in FreePBX (Step-by-Step)
Navigate to Inbound Routes
Log into the FreePBX Admin GUI. Go to Connectivity β Inbound Routes. Click + Add Inbound Route.
Set the DID Number
In the "DID Number" field, enter the number exactly as your SIP carrier delivers it. Check Asterisk CLI logs to confirm the format. Use the "ANY" / blank DID only as a catch-all for numbers with no specific route.
Configure the Set Destination
Under "Set Destination", choose where to send the call: Extensions, Ring Groups, IVR, Queues, Time Conditions, Voicemail, or Announcement. For most businesses, setting the destination to a Time Condition is the recommended first step β so calls route differently during and after business hours automatically.
Configure a Time Condition (Recommended)
Go to Applications β Time Conditions. Create a condition for business hours (e.g., MondayβFriday, 9:00β18:00). Set the "Match" destination to your IVR or ring group, and the "No Match" destination to your after-hours voicemail or announcement. Return to the inbound route and set its destination to this Time Condition.
Configure Ring Group / Queue with Failover
In your Ring Group (Applications β Ring Groups), set the ring strategy, add the extensions, configure ring time (recommended: 20β30 seconds), and critically β set the "Destination if no answer" to your voicemail or after-hours IVR. This is your Tier 1 failover.
Apply Config and Test
Click Apply Config. Test by calling each DID from an external phone at different times. Verify business hours routing, after-hours routing, and ring group timeout failover all behave as expected. For DTMF-related issues in IVR routing, see our guide: FreePBX DTMF Configuration.
9. Multi-DID Routing: One Trunk, Many Numbers, Many Destinations
One of the greatest advantages of SIP Trunking is the ability to run dozens or hundreds of DID numbers over a single trunk connection β each with completely independent routing logic. A single NetViaVoice SIP trunk can simultaneously handle:
| DID Number | Purpose | Routing Destination | Time Condition |
|---|---|---|---|
| +1 (212) 555-0100 | Main business line | Auto-attendant IVR | Business hours β IVR / After hours β Voicemail |
| +1 (212) 555-0101 | Sales direct line | Sales ring group | All hours β Ring group β Sales voicemail |
| +1 (800) 555-0199 | Customer support toll-free | Support queue | Business hours β Queue / After hours β Callback form |
| +1 (212) 555-0150 | VIP client line | Account manager direct | Always β Account manager find-me/follow-me |
| +44 (20) 7123 4567 | UK local presence | UK language IVR β US team | UK business hours (EST adjusted) β UK team |
| +1 (212) 555-0175 | Marketing campaign tracking | Sales ring group | All hours β CRM-tagged routing |
10. Monitoring & Reporting Inbound Route Performance
Configuring inbound routes is not a one-time task β it requires ongoing monitoring to identify bottlenecks, missed calls, and routing inefficiencies. The key metrics to track for every inbound route are:
For comprehensive NAT and routing configuration that underpins reliable call delivery, also review our guide on 3CX NAT Configuration and our complete FreePBX SIP Trunk Setup Guide β both of which affect whether inbound calls are delivered correctly before routing even begins.
11. Frequently Asked Questions
Inbound call routing is the system your PBX uses to determine where to send a call the moment it arrives from your SIP trunk. In FreePBX, inbound call routing works through the Inbound Routes module (Connectivity β Inbound Routes). Each inbound route is defined by the DID number it matches β the specific phone number the caller dialled. When a call arrives, FreePBX reads the DID from the SIP INVITE message and finds the matching inbound route. It then executes the routing destination defined for that route β which could be an extension, a ring group, an IVR (auto-attendant), a call queue, a time condition, or a voicemail box.
The power of FreePBX's inbound routing comes from layering these destinations. A typical professional setup routes the incoming call first to a Time Condition (which checks if it is business hours or after hours), then to an IVR (where callers self-route by pressing digits), then to a Ring Group (where multiple phones ring simultaneously), with a Voicemail destination if no agent answers within the timeout period.
Ring groups and call queues serve similar purposes β routing inbound calls to multiple agents β but they handle caller experience very differently:
- Ring Group: Rings one or more extensions and if no one answers within the ring timeout, routes to a failover destination. There is no waiting β the caller either gets answered within the ring timeout or is redirected. No position announcements, no hold music queue, no agent status management. Simple and fast for small teams.
- Call Queue: Places the caller in a virtual waiting line. Callers hear hold music, periodic position announcements ("You are caller number 3..."), and estimated wait times. The queue routes to the next available agent when one becomes free. Agents can log in and out of the queue. Provides full reporting on wait times, abandonment rates, and agent performance.
When to use which: Use a ring group for small teams (2β8 agents) with low-to-medium call volumes where a simple answer-or-failover approach is sufficient. Use a call queue when you have high call volumes that regularly exceed agent capacity, require callers to wait in order, or need detailed reporting. Most businesses start with ring groups and upgrade to queues as they scale.
Protecting inbound calls against a total internet outage requires failover at the carrier level β not just the PBX level. If your internet connection is down, your PBX is unreachable and cannot process any routing rules. This means your PBX-based failover logic is irrelevant during an outage.
The solution is to configure failover directly with your SIP trunk provider (NetViaVoice) at the DID level:
- Log into your NetViaVoice customer portal
- Navigate to your DID number settings
- Configure a Backup Forwarding Number β typically your mobile phone or a secondary PSTN line
- Set the failover trigger: "If SIP registrar is unreachable for X seconds, forward to [mobile number]"
- NetViaVoice detects that your SIP trunk registration has lapsed (internet down) and automatically routes all inbound calls to your mobile number
This carrier-level failover activates within 30β60 seconds of your PBX going offline and requires no action on your part. It is the ultimate last-resort protection for business continuity.
Time-based routing in FreePBX is handled by the Time Conditions module. Here is the complete setup process:
- Go to Applications β Time Conditions β Add Time Condition
- Name it (e.g., "Business Hours") and configure the hours and days: MonβFri, 9:00β18:00
- Set Match destination: your business hours IVR or ring group
- Set No Match destination: your after-hours announcement and voicemail
- Go to your Inbound Route (Connectivity β Inbound Routes β your DID)
- Set the "Set Destination" to your Time Condition
- Click Submit β Apply Config
For holiday exceptions, create separate Time Groups (Admin β Time Groups) for specific dates and add them to your Time Condition. FreePBX evaluates holiday time groups before standard day-of-week conditions, so holidays will override normal business hours automatically.
For DTMF IVR digit routing that follows your time-based routing, see our guide: FreePBX DTMF Configuration.
Inbound call routing failures have four main causes, each with a specific diagnostic and fix:
- DID Format Mismatch (most common): The DID in your inbound route does not match the format your carrier delivers. Enable Asterisk verbose logging (
asterisk -rx "core set verbose 5"), make a test call, and look for the DID in the console output. Copy that exact format into your inbound route's DID field. - No matching inbound route: The call arrives on a DID you have not configured a route for. FreePBX falls back to the default destination (often voicemail or disconnect). Create a specific inbound route for the DID, or set a sensible default route with a blank DID field as a catch-all.
- Time Condition misconfiguration: Your Time Condition routing incorrectly β calls going to after-hours during business hours. Verify the Time Condition's hours, days, and timezone setting (Admin β Admin β Display Timezone). FreePBX time conditions evaluate server time β ensure your Asterisk server's system clock is correct.
- Ring group timeout too short: Agents are not answering in time and calls are routing to the failover destination before agents have a real chance to answer. Increase the ring group ring time to at least 20β25 seconds.
For SIP trunk setup issues that can prevent inbound delivery entirely, see: FreePBX SIP Trunk Setup Guide.
π Design Your Perfect Inbound Routing System
NetViaVoice provides expert inbound call routing design, FreePBX configuration, IVR setup, and failover engineering for businesses of all sizes β all backed by our reliable SIP Trunking infrastructure in 160+ countries. Every inbound call deserves to reach the right person. Let us make that happen.