Test Dialplan
Test Dialplan asks the call engine what it would do with a call, without placing one. You enter the called number and the details of the caller, and the screen shows which account or DID the call is authenticated to, which tariff and rate price it, and the list of vendor connections in the order they would be tried. Use it after every change to routing, rates or DIDs, and as the first step when a customer reports a failed call.
Where to find it
Section titled “Where to find it”Open Tools & Debugs → Test Dialplan in the left sidebar. The URL is /test_dialplan.php. The screen requires system management rights. Block Connection, Increase Preference and Decrease Preference in the result also need the edit right of your access level.
What you see
Section titled “What you see”The form has two modes:
- Not Authenticated Call checks a call as it arrives from the network: the switch authenticates it by the remote address, the numbers and the domains, through the authentication rules of accounts and the rules of DIDs. Use it for trunks, IP-authenticated customers and calls from DID providers.
- Authenticated Call checks a call of a given account: select it in Authenticated as. Authentication rules and DIDs are not checked, so this is the mode for registered devices that authenticate with a password and for calls placed by an IVR application on behalf of an account.
| Field | Meaning |
|---|---|
| CLD (destination) | The called number as the switch receives it. Required |
| Mode | Not Authenticated Call or Authenticated Call |
| Authenticated as | The calling account, in Authenticated Call mode. Type the beginning of its name |
| CLI | The caller’s number. Anonymous by default |
| Remote Address[:Port] | The IP address the call comes from, optionally with the port, in Not Authenticated Call mode |
More opens the less common fields:
| Field | Meaning |
|---|---|
| Call Start Date/Time | When the call starts, now by default. Set a future date to check rates and routes with an activation date |
| Protocol | The signalling protocol of the call, SIP in nearly every case |
| Caller is behind NAT | Simulate a NATed caller, which affects media relay |
| To Domain, From Domain | The domains of the To and From headers; the switch’s own address by default. They matter for authentication rules with To Domain or From Domain |
| P-Asserted-Identity, Remote-Party-Id | Identity headers of the incoming call, for accounts that trust them |
Run a test
Section titled “Run a test”- Enter CLD (destination), for example
441632960123. - Select Mode. For Authenticated Call select the account in Authenticated as; for Not Authenticated Call enter Remote Address[:Port] of the customer’s or provider’s gateway.
- Enter CLI if rules or prices depend on the caller’s number.
- Click Proceed.
When the call cannot be authenticated the screen says so: check the remote address and the numbers against the account’s authentication rules, or switch to Authenticated Call. A CLD that fails a length check of the Destinations table returns the expected length for its prefix.
The result
Section titled “The result”| Field | Meaning |
|---|---|
| Call Type | Regular for a call routed to vendors, On-Net for a call to another account, IVR for a call to an IVR application |
| Call Start Date/Time | The time the test was run for |
| DID, DID Authentication Rule | The DID and its rule that matched, for a call from a DID provider |
| IVR | The IVR application the DID leads to |
| Authentication Rule | The account’s rule that matched |
| Authenticated Account | The account the call belongs to |
| On-Net DID, On-Net Account | The callee of an on-net call |
| Minute Plan, Included Minutes, Minutes Left | The service plan minutes that cover the destination, if any |
| Routing Group, Tariff, Prefix | The routing group and the tariff used, and the rate’s prefix that matched |
| LRN CLI, LRN CLD | The numbers after an LRN lookup, when LRN is enabled |
| Price or Price 1 / Price N | The customer’s price per minute |
| Estimated Cost | What the customer pays for a call of the tariff’s Avg. Call Duration |
The values link to the objects they name, so you can open the rule, the account or the rate to fix it.
Routing entries
Section titled “Routing entries”The table lists the connections in the order the switch tries them under the routing group’s policy. With Weighted Distribution the real order is random per call, so the table shows one possible order.
| Column | Meaning |
|---|---|
| Status | Quality monitoring of the connection: good, preference lowered or blocked for bad quality |
| # | The attempt number. An exclamation mark instead means the route is skipped: Forbidden, over the loss limit of Loss Protection, or anonymous calls not allowed. Hover over it for the reason |
| CLD, CLI | The numbers sent to the vendor, after the connection’s translation rules |
| Vendor/Trunk, Connection | Where the attempt goes. For on-net calls to a trunk, the trunk and its destination |
| Media Relay | The relay used if the call is relayed |
| Termination Route, Route | The vendor price list and the prefix that matched |
| STIR/SHAKEN Mode | The attestation, when STIR/SHAKEN is enabled |
| Timeouts, sec 100, 1xx, 2xx | Reply Timeout of the connection, 1xx Timeout and 2xx Timeout of the route. The last entry shows the routing group’s Final 2xx Timeout; on-net legs show the group’s on-net timeouts |
| Channels Current, Max | Calls on the connection right now and its Capacity, or Unlimited |
| Est. Cost | The vendor’s cost of a call of the tariff’s Avg. Call Duration, in your base currency |
Row 0 appears when the call is authenticated to an account. It shows the CLD and CLI after the account’s incoming translation rules, the numbers used for rating and routing. The numbers on rows 1 and further are only sent to the vendors.
Act on the result
Section titled “Act on the result”- Block Connection next to a connection blocks it at once, as Blocked in the connection form. Use it to take a failing vendor out of all routing.
- Increase Preference and Decrease Preference next to a route change the route’s Preference by one and run the test again. They are refused while an upload to the termination route is in progress.