BroadNet
Numbering & identityNumber routing

Mobile number portability and routing

Updated 6 min readStandards-based
Direct answer

Number portability lets a subscriber keep their MSISDN when switching operator, so the dialed number no longer identifies the serving network. Routing works by resolving the number to a routing number (RN) — either by querying a central database before routing (All-Call-Query) or by relaying via the donor network (Onward Routing) — commonly via an MNP or HLR dip.

§01

The ported-number problem

Historically the NDC of an E.164 number identified the operator that owned it, so routing a call or message meant reading the number's range and sending it to that network. Mobile Number Portability (MNP) breaks that assumption: a subscriber can port their MSISDN to a new operator while keeping the number, so the number's original range no longer indicates who actually serves it. The operator whose range the number belongs to is the 'donor' or 'range holder'; the operator now serving it is the 'recipient'. Every network that originates traffic to that number must therefore discover the current serving network before it can route correctly — a lookup, not an assumption.

§02

Routing numbers and how correction works

Portability is resolved by associating a ported MSISDN with a Routing Number (RN) — a prefix that identifies the recipient network. When a number is found to be ported, the originating or transit network prepends (or otherwise attaches) the RN to the called number so downstream switches route on the RN rather than the original range. The RN is an internal routing artefact, not a dialable number, and it is stripped before delivery. There are two dominant architectures for obtaining and applying this correction — All-Call-Query and Onward Routing — and national regulators typically mandate which one, along with the porting process and the central reference database that backs it.

Number-portability roles and artefacts
TermMeaning
Donor / range holderOperator whose number range the MSISDN belongs to
Recipient networkOperator currently serving the ported number
Routing Number (RN)Prefix identifying the recipient network for routing
MNP databaseReference mapping of ported numbers → recipient/RN
MNP dipA query against that database to resolve the current network
§03

All-Call-Query versus Onward Routing

In All-Call-Query (ACQ), the originating network queries a central MNP database for every call/message to a portable range before routing, retrieves the recipient's routing number, and routes directly to the serving network. It is efficient — one query, one optimal path — but requires every originating network to have database access. In Onward Routing (OR), the call is first routed to the donor network as if the number were not ported; the donor detects the port, looks up the recipient and relays the call onward. OR needs no central query at origin but wastes a leg through the donor and adds latency and cost. Most mature markets favour ACQ; the choice is usually set by the regulator.

ACQ vs Onward Routing
AspectAll-Call-Query (ACQ)Onward Routing (OR)
Query pointOriginating network, before routingDonor network, after first leg
PathDirect to recipientOrigin → donor → recipient
EfficiencyOptimal (single hop)Extra leg via donor
RequirementOrigin needs MNP database accessNo origin query needed
Typical useMature markets, regulator-mandatedSimpler / legacy deployments
§04

MNP databases, dips and HLR lookup

Resolving the current network is done by a 'dip' — a query that returns the serving operator (as MCC-MNC and/or a routing number) for an MSISDN. Two related lookups exist. A dedicated MNP dip consults the national portability database or a maintained equivalent and answers 'which network holds this number now?'. An HLR lookup goes further, signalling toward the network (via SS7/MAP SendRoutingInfoForSM or an equivalent) to confirm the subscriber's current serving network and reachability in real time, which also reveals portability because the returned network differs from the range holder. For messaging, the HLR result yields the accurate MCC-MNC needed to pick the right connection and encode delivery correctly.

Ported-number resolution before deliverytext
Dialed MSISDN : +49 151 00000000   (range historically = Operator A)
        │  MNP dip / HLR lookup
        ▼
Serving network : MCC 262 / MNC 07  (Operator B — number was ported)
Routing Number  : prepended so switches route to Operator B
        │
        ▼
Route/deliver to Operator B (not the range holder)
§05

Portability data in least-cost routing and delivery

Getting the serving network right is not only a correctness requirement but a commercial one. In A2P messaging and voice, interconnect rates differ per destination network, so routing on the number's original range instead of its true serving network can mis-price traffic and select a sub-optimal or failing route. A portability-aware routing engine dips the number, resolves the real MCC-MNC, and then applies least-cost routing over the connections that reach that specific network — choosing the cheapest path that still meets the delivery and quality requirement. Across a footprint spanning 200+ countries and 1,000+ operator connections, this per-message resolution is what keeps delivery reliable and pricing accurate; phone-reputation and number-intelligence checks build on the same lookups.

§06

Regulatory context

Number portability exists because regulators mandate it to promote competition — a subscriber who can keep their number faces a lower barrier to switching operator. National regulators define the porting process (timescales, one-stop-shop rules, gaining-provider-led procedures), the reference database, and the routing method operators must implement (commonly ACQ). Rules vary widely by country: some run a centralised clearinghouse, others a distributed model; some cover only mobile, others fixed and mobile. Because the regulatory model and database access differ per market, a global messaging or voice provider must integrate with many portability regimes and keep its dip data current, which is precisely why an accurate, up-to-date lookup layer is foundational rather than optional.

FAQ

Frequently asked

What is mobile number portability?

Mobile Number Portability (MNP) lets a subscriber keep their MSISDN when switching operator. Because the number stays the same while the serving network changes, the dialed number no longer identifies who serves it — so every network sending traffic to a portable number must first resolve the current serving network by a lookup.

Why can't you route on the phone number's range any more?

Because portability breaks the link between a number's original range (the donor) and the operator that actually serves it (the recipient). A number in operator A's range may now be served by operator B. Routing on the range would send traffic to the wrong network, so the current serving network must be resolved before routing.

What is a routing number (RN)?

A routing number is a prefix that identifies the recipient network serving a ported MSISDN. When a number is found to be ported, the network attaches the RN so downstream switches route on it rather than the original range. The RN is an internal artefact, not dialable, and is stripped before delivery.

What is the difference between All-Call-Query and Onward Routing?

All-Call-Query queries a central MNP database at the originating network before routing and sends the call directly to the recipient — efficient but requires database access. Onward Routing sends the call to the donor network first, which detects the port and relays it onward — no origin query, but an extra leg. Most mature markets mandate ACQ.

What is an MNP dip?

An MNP dip is a query against a number-portability database that returns the current serving operator (as MCC-MNC and/or a routing number) for an MSISDN. It answers 'which network holds this number now?'. An HLR lookup goes further, confirming the serving network and reachability in real time via network signalling.

How does portability data affect message routing and cost?

Interconnect rates differ per destination network, so routing on a number's original range instead of its true serving network can mis-price traffic and pick a failing route. A portability-aware engine dips the number, resolves the real MCC-MNC, then applies least-cost routing over the connections that reach that specific network.

References

Source specifications

The published standards this page is grounded in. Opens in a new tab.

BNMaintained by the BroadNet engineering team·Carrier-grade messaging since 2003
Put it on the wire

Build with a real SMPP bind and REST API.

Request test access with real test keys: send to your own verified number first, then move to production across 200+ countries once your sender identity and routes are approved.