- Free Virtual PBXConnect your hardware phones and
softphone together at no extra cost. - SIP / IAX Trunking for PBXConnect your Software PBX to our
platform for your communications. - Wholesale VoIPBenefit from our reliable platform and
competitive rates for a large volume. - Affiliates & Referral ProgramPartner with us to earn unlimited income with our affiliate program.
-
Q: Dynamic Routing in IVR (Advanced Call Routing by Location and Rules)A:
Dynamic Routing allows advanced call routing based on call attributes such as caller number, destination number, caller location, destination location, or number patterns.
This is a power-user feature available through manual JSON configuration within the IVR structure. It is commonly used to route callers to the correct branch office based on their source location, while defaulting to a head office or central branch when the caller's source cannot be identified.
Common use cases
- Route callers to the correct branch office based on their province, state, country, or rate center.
- Route specific callers or specific DIDs differently.
- Apply custom routing logic based on number patterns.
- Override Caller ID, DNIS, Music on Hold, or rate center behavior when required.
How Dynamic Routing is evaluated
Dynamic Routing uses a structured selection process. Routes are first separated into three categories:
- Filtered routes: routes with one or more matching conditions.
- Unfiltered routes: routes with no matching conditions.
- Default route: a route explicitly marked with
"is_default": 1.
The system then selects a route using the following priority:
- Filtered routes where all conditions match.
- Unfiltered routes, if no filtered route matches.
- Default route, if defined.
If multiple routes are eligible, the system attempts to select the closest rate center match based on the caller's source location. If no closest match can be determined, the first eligible route is used.
Important: If no route is selected and no default route is defined, the IVR continues its normal flow to the next action or menu.Matching logic
- All conditions inside a route must match. This means conditions use AND logic.
- Multiple values inside the same field use OR logic.
- Phone numbers are automatically normalized to E.164 format before comparison.
Example:
{ "match_source_number": ["15143127030", "15145551212"], "source_state": "QC", "forward_number": "15145550001", "description": "Quebec callers from selected numbers" }In this example, the caller must be from Quebec and must match one of the listed source numbers.
Available matching conditions
Field Description match_source_numberMatches the caller's number. match_target_numberMatches the dialed number or DID. source_countryMatches the caller's country code, such as CAorUS.target_countryMatches the destination country code. source_stateMatches the caller's province or state code, such as QCorON.target_stateMatches the destination province or state code. source_lirMatches the caller's internal LIR or rate center identifier. target_lirMatches the destination internal LIR or rate center identifier. source_regexpMatches the caller's number using a regular expression. target_regexpMatches the destination number using a regular expression. Actions applied when a route is selected
Field Action forward_numberForwards the call to this number. callerid_name_overrideOverrides the Caller ID name. callerid_number_overrideOverrides the Caller ID number. dnis_overrideOverrides the destination number seen internally. override_ratecenter_idForces a specific rate center, commonly used for LCA behavior. client_moh_profile_idApplies a specific Music on Hold profile. descriptionInternal reference only. This does not affect routing. Example: Route callers to the correct branch office
In this example, callers from Quebec are routed to the Quebec branch, callers from Ontario are routed to the Ontario branch, and all other callers are routed to the head office.
{ "menu_0-action_0-dynamic_routing": [ { "source_state": "QC", "forward_number": "15145550001", "callerid_name_override": "QC Branch", "description": "Quebec Branch" }, { "source_state": "ON", "forward_number": "14165550001", "callerid_name_override": "Ontario Branch", "description": "Ontario Branch" }, { "is_default": 1, "forward_number": "18005550000", "callerid_name_override": "Head Office", "description": "Fallback to Head Office" } ] }Result:
- Calls from Quebec are sent to the Quebec branch.
- Calls from Ontario are sent to the Ontario branch.
- All other calls are sent to the head office.
Important notes
- This is a power-user feature. Incorrect routing logic may result in unexpected call behavior.
- Filtered routes always take priority over unfiltered routes.
- If multiple routes match, rate center proximity may influence which route is selected.
- Always define a fallback route when predictable behavior is required.
- If the routing data structure is incorrect, the Dynamic Routing configuration will not be applied.
-
Q: Adding a virtual attendant / IVRA:
What is an interactive virtual attendant?
An Interactive virtual attendant allows customers to interact with a company’s automated host system via a telephone keypad and connects customers to the right department or representatives.
Please make sure the following prerequisites have been done:
- You have recorded media files available in your account. [ See FAQ ]
- We highly suggest you plan your IVR call flow in advance and have our team review it for you.
To add a virtual attendant / IVR, access your account and follow these steps:
-
Access "Virtual Attendant / IVR" in the "PBX Cloud" section, via the main menu.
-
Click on the "New" button. You will be prompted to accept the charges, if applicable.
-
Insert a "Friendly Name" to label your new entry.
-
Select a "Sub-Account", if applicable.
- Follow the steps below to configure the IVR:



