Dial plans
The ability to convert a user dialed number to a number that is accepted by the PSTN
A dial plan is the rulebook for outbound calls: when someone dials a number, the dial plan decides which trunk carries the call and how the dialled digits are rewritten before they go out. Each tenant account points at one dial plan, and you can keep several — for example a default and a variant for a different region.
The Dial plans tab lists each plan with its Name, Scope (for example Local), Status (whether it is in use), and an Edit link. + Add dial plan creates a new one.
How a dial plan works
A plan is an ordered list of pattern → action rules. When a call is placed, the PBX tries each rule in preference order (lower numbers first) and uses the first whose pattern matches the dialled digits. That rule decides which trunk the call takes and how the number is transformed. Because order matters, you put specific rules above general ones.
Dial plan settings
At the top of the editor are the plan-wide settings. Name and Trunk-name glob are straightforward; the four next to them are the ones people find confusing, so here is what each actually does:
- Name — what the plan is called.
- Trunk-name glob — an optional filter that limits which trunks this plan's rules can use (leave it empty and the rules can use any trunk). Most tenants leave this blank.
- Star codes — the list of star codes (feature codes beginning with
*) that this plan handles. Each entry starts with*, and you can use a trailing*as a wildcard — for example*54*covers*54,*541, and*54123. Leave it empty unless you are deliberately routing star codes through the plan; the standard feature codes work without touching this. - Global (toggle) — share this dial plan with other tenants on the system. For a normal single-business tenant this stays off; it is only for setups that reuse one plan across many tenants.
- DNC (toggle) — do-not-call enforcement. When on, the plan refuses to dial any number flagged do-not-call in your address book. Turn it on if you keep a do-not-call list and want the phone system to block those numbers.
- Internal (toggle) — when on, if the dialled number belongs to someone inside your tenant (an extension, queue, and so on) the call is sent straight there and the dial-plan rules are skipped. This is normally on — it stops an internal call from being pushed out to a carrier by mistake.
Rules
The Rules table is the body of the plan — the ordered list of "if the number looks like this, send it out like that". Each rule is one row; + Add rule, reorder with the up/down arrows, or remove with ×. The columns are:
- Pref — preference / priority. Lower numbers run first, and the first rule that matches wins, so put specific rules above general ones.
- Trunk / Action — where a matching call goes: out a named trunk, or another action.
- Pattern — the shape a dialled number must have for this rule to fire (see below).
- Replacement — how the number is rewritten before it is handed to the trunk — for example dropping the leading 0 and adding
61(see below). - Service flag — an optional time-based switch that turns the rule on or off by schedule (service flags are covered in Call flow).
- Status — whether the rule is Enabled.
After editing, Save changes (or Reset to discard). Most tenants never need to touch the default plan — it ships set up to route correctly for Australia out of the box.
Patterns and replacements, explained
This is the fiddliest part of the dial plan, so here it is in plain terms with Australian examples.
Every rule answers two questions:
- Pattern — does the number I dialled look like this?
- Replacement — if so, how should it be rewritten before it goes to the carrier?
Carriers generally want Australian numbers in full international form — 61 followed by the number without its leading 0 (so 04xx xxx xxx becomes 61 4xx xxx xxx). The pattern spots the number you dialled; the replacement reshapes it into what the carrier expects.
Pattern building blocks
| You type | It means | Example |
|---|---|---|
| plain digits | those exact digits | 000 matches only 000 |
x | any single digit | 13xxxx matches a 6-digit number starting 13 |
* | any run of digits (the rest of the number) | 0* matches a 0 followed by anything |
+ | a leading plus (a number already in +61… form) | + matches +61 2 9999 0000 |
[2-9] | any one digit in that range | [2-9] matches 2–9 but not 0 or 1 |
| | "or" — either pattern | 13|18 matches numbers starting 13 or 18 |
Replacement building blocks
| You type | It means |
|---|---|
| plain digits | added exactly as written (e.g. a 61 prefix) |
* | put back the whole number that was dialled |
\1, \2 | put back only the part matched by the first / second * in the pattern |
\r | the system fills in the route to the trunk automatically (you rarely type this by hand) |
The key distinction is * versus \1: use * when you want to keep the whole number and just add something in front; use \1 when your pattern used * to grab part of the number and you want to keep only that part — which is how you drop a leading 0.
The default Australian plan, rule by rule
This is the plan every new tenant starts with:
| What it's for | Pattern | Replacement |
|---|---|---|
| Emergency | 000 | * |
| Any AU number dialled with a leading 0 | 0* | sip:61\1@\r |
| 13 numbers (e.g. 13 12 34) | 13xxxx | 61* |
| 1300 numbers | 13xxxxxxxx | 61* |
| 1800 freecall | 18xxxxxxxx | 61* |
| A number already in +61 / international form | + | * |
Two worked examples:
- You dial
0412 345 678** (a mobile).** The0*rule matches: the0is literal and*grabs the rest —412345678— as\1. The replacementsip:61\1@\rrebuilds it as61+412345678, i.e. 61412345678, and\rpoints it at the trunk. The leading 0 has been swapped for 61. - You dial
13 12 34. The13xxxxrule matches (13 followed by four more digits). Its replacement is61*, and here*means the whole dialled number, so it becomes61+131234= 61131234. Nothing is dropped — 61 is simply added in front.
Because rules are tried top to bottom, the emergency 000 rule sits first so it can never be caught by a broader rule below it, and the + pass-through sits last to catch anything already in international form.
Everyday Task
- Change how outbound calls are routed → edit the relevant Dial plan rule; see Patterns and replacements, explained above if you are unsure of the syntax.
- Ellis is more than happy to help → you can always chat with Ellis to help you come up with a more complex dial plan if you are ever in doubt.
Next: Call flow — how inbound calls are answered and routed once a number delivers them.