Origin-based rating: two prices, one prefix

4 min read

Woman in a blazer pointing at a monitor with two rate columns. Title on the left: Origin-based rating, two prices, one prefix.

Suppliers list prefix 356 twice on a Malta deck. You pay one price when the caller is inside the European Economic Area. You pay the other when the caller is outside it. Load a single rate for 356 and one of those calls bills at the wrong price.

PortaOne’s origin-based pricing note (25 March 2026) uses a vendor called GlobalNet and a wholesale customer called EasyCall. Destination code 356 is Malta. A call from Italy takes the in-EEA price. A call from the United States takes the outside-EEA price. The figures below are theirs, in EUR per minute:

Who is billed Rate within EEA Rate outside EEA
GlobalNet charges the operator 0.1 0.5
The operator charges EasyCall 0.3 0.8

Italy to Malta: GlobalNet bills 0.1, EasyCall pays 0.3. United States to Malta: GlobalNet bills 0.5, EasyCall pays 0.8. Both calls use prefix 356. You pick the row from the A-number.

MOR has no built-in EEA country list, and it does not price Malta at 0.1 or 0.8 EUR. You enter the split as two wholesale rate rows. Each row has destination prefix 356 and a CLI Group: the caller-ID prefixes allowed to use that price.


What the second price is for

iCONX (20 January 2024) describes origin-based rating as a charge on where the call started and where it ends. Their note says origin rates are “often 10 times” a normal termination rate, and a missing or undialable CLI can take a higher premium because the origin is unknown.

You are loading that deck. The called number (CLD) leaves both 356 rows in play. The calling number (CLI, the A-number) selects which row bills the call.

A sales sheet that says “CLI” can mean a different product. My Country Mobile’s May 2026 termination guide prices a CLI route 30–60% above a non-CLI route on the same destination. The CLI route delivers the original calling number. The non-CLI route strips or replaces it. Delivery of the number is one product. A second price based on which digits arrived is another. You deliver the caller’s number and you owe the out-of-zone rate when those digits say so.

Which prefix matched

On a wholesale rate, a CLI Group is a list of numeric prefixes, the leading digits of the caller’s number. The CLI Groups wiki uses values such as 30767 and 3706 as the kind of prefix a group holds. MOR keeps them as a comma-separated list on the rate. The same destination prefix can sit on several active rows. MOR applies the row where the called number matches the destination prefix and the caller’s number starts with at least one prefix in that row’s group.

MOR picks the longest suitable CLI prefix inside the group, on the same idea as longest destination match.

Italy’s country code is 39 (telephone numbers in Italy). From abroad, Italian landlines keep the trunk 0, so a Rome number looks like 3906… and a mobile looks like 393…. A CLI Group that contains 39 matches both. A group that lists 393 and not 39 matches the mobile and misses the Rome landline.

Put 39 in the in-zone group on the cheaper 356 row. The Italy call matches 39. MOR can apply that row.

The United States call in PortaOne’s example is outside the EEA, so its CLI does not start with 39. MOR skips the in-zone row. MOR applies the outside row when that row’s CLI Group contains the leading digits of the US number as your switch received them. Copy those digits from the supplier file. The rate screen has prefixes, not country names. The wiki says the match uses the CLI on the SIP leg. It names the From header as the usual source, and it tells you to follow what upstream sends.

Call Destination prefix CLI presented Prefix that matches Row
Italy to Malta 356 3906… or 393… 39 in the in-zone group Within-EEA price
United States to Malta 356 does not start with 39 a prefix in the out-of-zone group Outside-EEA price

An empty CLI Group does not filter on the A-number. That row is destination-only. If the cheap 356 row has an empty group, MOR can match the US call on it as well as the Italy call. The out-of-zone row stays unused.


A caller ID that matches nothing

If the Italy call arrives with no CLI, with an anonymous CLI, or with digits outside the in-zone list, MOR skips the in-zone row. The wiki’s operational note tells you to add an explicit row for unknown or non-EEA origin. A lone 356 row with no CLI Group is a default price for every origin, including the ones the supplier meant to surcharge.

iCONX describes the same hole from the supplier side: an undialable A-number can be billed at the premium, and a manipulated A-number can be rewritten into a prefix that avoids the surcharge. The row rates the digits it received.

The 2021 article picks a vendor

Call routing by Caller ID (16 September 2021) is about the path. The post’s line is: if a call comes in from a given number, send it to a given destination. Offices, queues, blocks, and a vendor who does not surcharge non-EEA origin all sit on that page. Kolmisoft’s wording there also calls the feature origin-based routing.

That article chooses where the call goes. CLI Groups choose which price on prefix 356 is allowed to bill it. Routing by caller ID and two 356 prices can both be on for one call. One picks the vendor. The other picks the price.

Device CLIs are a third screen. CLIs (Incoming CallerIDs) authenticate a caller into MOR (E.164, and a domain if you set one). The prefixes on a wholesale rate are the billing match.

Where the two rows live

Open SETTINGS → Billing → Tariffs, then Rates on the wholesale tariff, then Details on the rate. You add or clear the group in the CLI Prefixes block. The rates list shows the group in a column. Hover shows the full prefix list.

The manual CSV rate import maps prefix, rate, and related columns. It has no CLI Group column. For a deck that splits 356 into in-zone and out-of-zone, use Automatic Tariff Import (the add-on, when it is on your system) or type the prefixes after a basic import. On a tariff template the CLI Group block can read one column of prefixes, or a mapping sheet: group name on the main sheet, plus the mapping sheet’s name column and prefix column. You set all five mapping fields in mapping mode. Import rejects a non-numeric prefix, a duplicate inside one group, a prefix longer than 30 digits, and a group whose combined list exceeds the system limit.

The wiki documents the same CLI Group behavior on M4. M4 Switch is the wholesale product. You cannot upgrade MOR to M4.


Check one Italy call before you accept the deck

Take a CLI that starts with 39 and a destination that starts with 356. You want the in-zone row to match. Take a US CLI that does not start with 39. That call misses the in-zone row and hits the outside row. If both calls price the same, the cheap 356 row has an empty CLI Group, or 39 is missing from the in-zone list.

FAQ

Does MOR include PortaOne’s EEA country list?

No. You type the prefixes your supplier counts as in-zone. For the Italy call in this example, that list has to include 39 if the CLI arrives in international form.

What if From shows Anonymous?

Anonymous fails the prefix test. The in-zone row matches a CLI that starts with a prefix in its group. Add a row for unknown origin, at the price your agreement uses when the A-number is missing. The wiki does not say MOR rates the hidden number from P-Asserted-Identity.

Can one 356 row carry both prices?

Each price is its own rate row: same destination prefix, different CLI Group. An empty group on the cheap row lets every origin use it.

What to open next

Read CLI Groups – CLI Prefixes before you import an EEA split. Then open the MOR online demo and look at SETTINGS → Billing → Tariffs. The demo is the admin interface. It does not place live calls, and it will not contain this Malta example unless you add the rows yourself.


Two prices on one prefix

Open the CLI Groups page before you load an EEA split, then look at Tariffs in the MOR demo.

Contact us

Leave a Reply

Your email address will not be published. Required fields are marked *