Penguin
Note: You are viewing an old revision of this page. View the current version.

E164 is an ITU recommendation for passing number information. This is especially helpfull when dealing with VoiceOverIP and distinguishing between national and international calling.

How does it work

Basically what the E164 recommendation says is that a telephone number should be passed in the format of [country code prefix?normal local number with the national access code removed?] to a maximum length of 15 digits.

So for example a New Zealand 0800 number such as 0800 000 000 would be displayed as 64800000000. (the first 0 is the New Zealand national access code). This numbering format is commonly prefixed by a + in emails and on websites to indicate the local users international access code should be used to dial that number. ie. +64800000000, which would be dialled in NZ with 0064800000000.

Why

In the ISDN world a national or international call can be identified by the TON (Type of Number) identifier (which should be set by the TelCo).

Due to the SIP protocol not providing a standard means of identifying if an incoming call is from a national source or an international source there needs to be a way of identifying this from the Caller-ID of the callee.

If we received a Caller-ID for the callee as 99740000 for example at a first glance we would recognize that as a Auckland NZ number. However, if we get a Caller-ID for example of 8001234567, you'd expect that to be a NZ 0800 number, however 8001234567 also matches the UIFN range of International Free Phone numbers. There's no way to distinguish between the two in that format, and what we have here is a number space clash between the International country calling code prefixes and a national number prefix.

Q: How about if we prefix it with a 0?

A: This works for most cases, there are however local area codes around the world which do have a 0 in them. In New Zealand we have the 02, 03, 04, 06, 07,09 local area codes where the initial 0 is the local access code. Certain countries use 2-3 digit area codes, and if using their local 0 access code you would get 009 for example. Stripping away the local 0 access code for that country, we are still left with a 09 prefix. And again would result in a number space clash.

Q: How about if we use the length of a number to distinguish between number space clashes

A: Again this works in most cases, for example in the 800 range described earlier the UIFN number is 800 with 8 additional digits, whilst the NZ 800 numbers have an additional 5-7 digits (there is a clash here between the Number Administration Deed document which states exactly 6 digits, and the NZ Dialplan provided to the ITU by the NZ Goverment which provides a range of 5-7 digits). A case where it does not work for example is the 230 number range, which is defined in NZ as part of the 23 number range with 6-7 additional digits, and Mauritius which has a country code prefix of 230 with an additional 6 digits to indicate the local number. And yes, the 023 number range in NZ has been allocated to a TelCo, it is not quite yet in use.

NB: As for number length, I don't think you'd want to program the dialplan for your local region into your PBX especially not if your developing a commercial product with International customers.

By using the E164 recommendation you avoid any number space clashes between National and International numbers.

References


CategoryTelCo