> For the complete documentation index, see [llms.txt](https://kb.hostednetwork.com.au/support/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kb.hostednetwork.com.au/support/services/voice-over-ip-voip/general/yeastar/getting-started/setting-up-dial-plan.md).

# Setting Up Dial Plan

Every time a user dials a number, the PBX checks it against the dial patterns configured on each outbound route, from highest to lowest priority, until it finds a match. Once matched, the call is sent out through that route, using the trunk(s) assigned to it.

A dial pattern has three parts:

| Component   | Required? | What it does                                                                                         |
| ----------- | --------- | ---------------------------------------------------------------------------------------------------- |
| **Pattern** | Yes       | Defines which dialed numbers match this rule.                                                        |
| **Strip**   | Optional  | Removes a set number of digits from the front of the dialed number before sending it to the carrier. |
| **Prepend** | Optional  | Adds digits to the front of the dialed number before sending it to the carrier.                      |

If both Strip and Prepend are set, the PBX strips first, then prepends.

### Pattern Syntax Reference

The **Pattern** field accepts full numbers or special characters to match a range of numbers:

| Character | Matches                                                                                                                                         |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `X`       | Any single digit, 0–9                                                                                                                           |
| `Z`       | Any single digit, 1–9                                                                                                                           |
| `N`       | Any single digit, 2–9                                                                                                                           |
| `[...]`   | Any digit inside the brackets, e.g. `[123]` matches 1, 2, or 3. Ranges can use a dash, e.g. `[136-8]` matches 1, 3, 6, 7, or 8                  |
| `.`       | One or more digits, matching anything *after* the preceding characters. E.g. `9011.` matches any number starting with 9011, but not 9011 itself |
| `!`       | One or more digits, matching the preceding characters *and* anything after. E.g. `9011!` matches 9011 itself and anything starting with 9011    |

### How Strip and Prepend Work

**Strip** removes digits the user dialed that the carrier doesn't need, most commonly a trunk access code.

> Example: Pattern `9.`, Strip `1`. A user dials **9** 1588902923 to reach an outside line. The PBX strips the leading `9` and sends 1588902923 to the carrier.

**Prepend** adds digits the carrier needs but the user doesn't want to dial every time, most commonly a default area code.

> Example: To make it faster to call the local Washington D.C. area code (202), set Prepend to `202`. A user dialing 5553097 will have the PBX send 2025553097 to the carrier.

### Configuring a Dial Pattern

1. Log in to the PBX web portal, go to **Call Control > Outbound Route**.
2. Click **Add** to create a new route, or edit an existing one.
3. Under **General**, name the route.
4. Under **Dial Pattern**, click **Add** and configure:
   * **Pattern** - the number format this route should handle.
   * **Strip** - digits to remove from the front of the dialed number (e.g. a trunk access code).
   * **Prepend** - digits to add to the front of the dialed number (e.g. an area code).
   * Repeat to add further patterns to the same route if needed.
5. Under **Trunk**, select Hosted Network SIP Trunk.
6. Choose which extensions, extension groups, or organizations are allowed to use this route.
7. Click **Save and Apply**, then check the route's priority under **Manage Outbound Routes**.

**Default route note**: Yeastar ships with a default outbound route using the pattern `X.`, which allows any number to be dialed. If you delete it, make sure your new routes collectively still cover every number format your users need to dial.

### Example Dial Patterns (Australian Numbering)

These are illustrative starting points — always confirm exact formats against your specific trunk/carrier requirements before applying them.

| Call type             | Example number          | Suggested Pattern         | Notes                                                                                      |
| --------------------- | ----------------------- | ------------------------- | ------------------------------------------------------------------------------------------ |
| National (STD) number | 02 9XXX XXXX            | `0ZXXXXXXXX`              | Matches 10-digit numbers starting with 0, second digit 1–9 (covers 02/03/07/08 area codes) |
| Mobile                | 04XX XXX XXX            | `04XXXXXXXX`              | Matches 10-digit Australian mobile numbers                                                 |
| 13 / 1300 numbers     | 13 XX XX / 1300 XXX XXX | `13XXXX` and `1300XXXXXX` | Two separate patterns, since lengths differ                                                |
| 1800 (freecall)       | 1800 XXX XXX            | `1800XXXXXX`              | 10-digit number starting with 1800                                                         |
| International         | 0011 44 XXXXXXXXXX      | `0011.`                   | Matches any number starting with the 0011 international prefix                             |

If you run into an issue that isn't covered here, [our support team is here to help.](/support/getting-started/getting-support.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://kb.hostednetwork.com.au/support/services/voice-over-ip-voip/general/yeastar/getting-started/setting-up-dial-plan.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
