Operation

Dial Peers, step by step

A dial peer answers three questions about a call: which numbers it handles, how the call goes out and who may use it. The form is laid out in exactly that order, in three numbered sections.

Go to Routing → Dial Peers → CONFIGURE (or + New Dial Peer). First comes Dial Peer Info: Name (required, make it self-explanatory — “Colombia mobile → CarrierX”) and Description. Save it and the three sections appear.

1 · Which numbers this peer handles (Dial Rules)

Two fixed slots, not a list:

  • ALLOWrequired. It defines what the peer routes. Until you set it the peer routes nothing, and the row is flagged in orange.
  • DENYoptional. It carves an exception out of the ALLOW. By default nothing is restricted.

A call uses this peer when it matches the ALLOW and does not match the DENY. Typical shape: ALLOW all of Colombia, DENY the premium ranges you do not want to carry.

The wizard: three ways to write the same thing

Pressing Set Allow rule, Add exception or Edit opens a wizard with three tabs. All three produce the same thing — a pattern on the dialled number — at three levels of detail.

Whole Country (recommended)

You pick a country and NEXIA builds a short rule from its calling code and its number length. It is the default because it keeps the rule stable: who connects and at what price is the tariff's job, not the regex's.

CountryGenerated ruleWhat it accepts
Colombia (+57)^57[0-9]{10}$12 digits: 57 + 10
Spain (+34)^34[0-9]{9}$11 digits: 34 + 9
USA / NANP (+1)^1[2-9][0-9]{2}[2-9][0-9]{6}$NANP-valid numbers only

The +1 rule deserves a note: under the NANP neither the area code nor the exchange may start with 0 or 1, so the rule enforces that and throws out junk like 10001234567 that a plain ^1[0-9]{10}$ would let through. Mind that the +1 zone is shared (USA, Canada, the Caribbean): this rule covers all of it. For a single +1 country or a single state, use By Destinations.

The same tab carries the A-Z (all destinations) shortcut: it generates ^[0-9]+$, which matches any E.164 number. That is the “everything else” peer, usually sitting at the lowest priority (highest number) of the routing group.

The preview shows the generated pattern and comes with a tester: type a number and it tells you MATCH or NO MATCH with the digit count.

By Destinations

You pick a country and its catalogue destinations (Routing → Destinations) appear with their type — Mobile, Fixed, Area, Premium… — and their defining prefixes. Tick the ones you want and NEXIA builds the pattern from those prefixes plus each destination's declared length, sorting longest prefix first so the most specific one wins.

This is for surgical scope: only Colombia Mobile, or a single US state by its area codes. A counter tells you how many prefixes went into the rule. If a destination has no declared length, the wizard says so: that branch will accept any length until you set it in Routing → Destinations.

Manual Regex

For the genuinely irregular. You write the pattern yourself, with two helpers:

  • Quick build from a sample number: paste a real number and Detect looks it up in the catalogue (longest prefix). It returns the destination and country and offers ready-made regexes: the strict one (exact length), the loose one (any length with that prefix) and broader variants — from 57310 up to Colombia Mobile (573) and up to all of Colombia (57). Use drops it into the field.
  • Live tester: under the pattern, type a number and the pill shows ✓ Match, ✗ No match or Invalid regex as you type.

Numbers travel through NEXIA in E.164 without the “+”: country code plus number, digits only (573001234567). Write your patterns against that format. Full guide in Regex for routes and numbers.

Saving a rule REPLACES the one of the same type. Lists never accumulate: the peer has one ALLOW and, at most, one DENY. Save a second ALLOW and the first is gone. To edit what is there, press Edit: the wizard opens on Manual Regex with the current pattern loaded, and you can switch tabs to regenerate it from the catalogue.
A DENY that matches everything (say ^[0-9]+$) leaves the peer routing nothing at all — the panel warns you before saving. If what you want is to turn the peer off, use its Enabled switch instead: a disabled peer is ignored in every routing group it belongs to, and comes back with its configuration intact.

The Simulator

Right under the rules, the Simulator section shows what happens to a call with the current configuration, without routing anything. Type the dialled number and, if the peer filters by origin, the calling number too; press Simulate.

The result is the real evaluation, step by step, as a row of chips:

StepWhat it tells you
ALLOWWhether the number matches the rule (and which rule, in the tooltip). A missing rule is flagged as an error.
DENYblocked if the exception caught it, not hit if not, or a dash when there is no DENY.
CALLERWhether the origin passes section 3's filters. If filters exist and you left the calling number empty, it asks for it.
DestinationThe catalogue country and destination for that number, with its prefix. Informational: it neither enables nor blocks the call.

Below that, the verdict: ROUTES or NO ROUTE with the exact reason (“the number does not match the ALLOW rule”, “no termination points assigned”, “no carrier clears the margin floor for this number”…).

When it routes, it also shows the real carrier order — numbered, with each one's P, %, its cost for that number and the margin it leaves — plus a final then STOP chip if the peer has stop hunting. With margin control on, you also get the configured floor, the selling price of that number, and the list of carriers rejected on margin with the reason for each.

2 · How the call goes out

Carrier order

The Try the carriers… dropdown has two options:

  • In my order (priority & weight) — your configuration rules: sorted by P ascending and, within the same P, shared by percentage.
  • Cheapest first (LCR) — price rules: for each number every carrier's cost rate is compared and the cheapest is tried first. Carriers with no rate for that number sink to the end.

Stop hunting

The checkbox If all carriers here fail, do not try other dial peers. With it on, once this peer's carriers are exhausted the call ends there instead of falling through to the next dial peer in the group.

Termination Points

+ Assign TP adds each carrier. On every row you edit two numbers, saved instantly:

  • P (priority): the order. Lower is tried first.
  • % (weight): the share among TPs on the same P. Two carriers at P1 with 50 and 50 split the traffic evenly; at 90 and 10 you can trial a new one with 10% of it.

The IP and the Edit TP button both open the termination point, in case you need to fix its IP, its tech prefix or its cost tariff. The × unassigns it from this dial peer; it does not delete it.

With Cheapest first, price decides the order instead of P.

Protect the margin (optional)

It compares what you sell that number for against what each carrier charges you, and drops the ones that do not leave enough. Three fields:

FieldWhat it is for
Selling tariff to protectThe selling tariff to measure against. Empty = no margin check.
Min. margin / minThe floor in money per minute (sell − cost).
or min. margin %The floor as a percentage of the selling rate.

Set one or both: with both set, a carrier must clear both. Picking the tariff without any floor checks nothing, and the panel says so.

  • A carrier that misses the floor is not used for that number — it stays available for every other destination where it does pay off.
  • If none clears the floor, that number does not go out through this peer and the call falls through to the next dial peer in the routing group.
  • Floor 0 = never lose money. A negative floor tolerates losing up to that much (-1, for instance, leaves the check effectively inert).
  • When the selling or the cost rate for that number is missing, the margin cannot be computed and the carrier is kept: routing never vanishes silently because of a hole in a rate sheet. The Simulator tells you when that happens.

Changes in this section are applied with the section's Save button.

3 · Who is allowed to call (optional)

This section filters by the CALLER ID — the source number — and never by the dialled destination. That is the most common mix-up: to limit destinations, use section 1.

It has the same two slots and the same wizard:

  • ALLOW CALLERS — only matching origins may use the peer. Blank: anyone may call.
  • BLOCK CALLERS — matching origins are kept out. Blank: nobody is blocked.

Block wins over allow: a number matching both is blocked. The × on each row returns it to the default. These filters take up to 255 characters, so use short forms — Whole Country or a brief manual regex — instead of enumerating prefixes.

Real use cases: letting only one customer's DIDs out through a premium route with verified caller ID, or blocking a source range that is generating irregular traffic.

Used in Routing Groups

At the bottom of the form, this list tells you which routing groups the peer belongs to and with what P and % in each. Check it before changing rules or deleting the peer: it is the list of customers depending on it. The links open each group.

Best practices

  • One dial peer per business intent (“LATAM premium”, “Spain cheap landline”), not a giant one with everything: it reads, tests and turns off independently.
  • Always start with Whole Country. Drop to By Destinations only when you genuinely need a subset, and to Manual Regex only when the case is irregular.
  • After every change, simulate three numbers: one that must pass, one that must not, and an edge case (minimum or maximum length).
  • Carrier switch: add it at 10% weight, watch ASR/ACD for a day, and only then move the rest of the traffic.
  • Do not use ever-finer rules to block destinations: that belongs to the tariff. See Routing.
© 2026 NEXIA Networks · This wiki grows with every install: if something was missing, tell us and we add it.
On this page