1.7 Fixed-Length vs. Variable-Length Numbering Plans

This topic describes fixed-length versus variable-length numbering plans. The figure illustrates an international deployment with various numbering schemes.

The example in the figure features a main site in the United States. The NANP PSTN number is 408 555-1234. DID is not used. All calls placed to the main site are managed by an attendant. There is a remote site in Germany with a PSTN number of +49 404 13267. The German location uses four-digit extensions and DID is allowed because digits can be added to the PSTN number. When calling the German office attendant (not knowing a specific extension), users in the United States dial +9 011 49 404 13267. If they know that they want to contact extension 1001 directly, they dial +9 011 49 404 13267 1001.

The following table compares the characteristics of a fixed-length numbering plan with the characteristics of a variable-length numbering plan.


  • Within U.S.: 9 1 408 555-1234 or 9 555-1234 (within the same area code)
  • U.S. to Austria: 9 011 43 1 12345
  • Within Austria: 0 0 1 12345 or 0 1234 (within the same area code)
  • Austria to U.S.: 0 00 1 408 555-1234 (1 is the country code, not the national access code)
Components Fixed-Length Numbering Plan Variable-Length Numbering Plan
Example NANP Austria
Country code 1 43
Area code 3 digits 1–4 digits
Subscriber number 3-digit exchange code + 4-digit station code 3 or more digits
PSTN access code 9 0
National access code 1 0
International access code 011 00 or + (“+” used by cell phones)

A fixed-length numbering plan, such as the plan used in North America, features fixed-length area codes and local numbers. An open numbering plan, such as the plan used in various countries that have not yet standardized their numbering plans, features variance in the length of the area code or the local number, or both.

A country code is used to reach the particular telephone system for each country or special service.

An area code is used within many countries to route calls to a particular city, region, or special service. Depending on the country or region, it may also be referred to as an NPA, subscriber trunk dialing code, national destination code, or routing code.

The subscriber number represents the specific telephone number to be dialed, but does not include the country code, area code (if applicable), international prefix, or trunk prefix.

A trunk prefix refers to the initial digits that are dialed in a call within the United States, preceding the area code and the subscriber number.

An international prefix is the code that is dialed before an international number (the country code, the area code, if any, and then the subscriber number).

The table contrasts the NANP and a variable-length numbering plan (the Austrian numbering plan, in this example).

Detection of End of Dialing in Variable-Length Numbering Plans

There are three ways to detect end of dialing in variable-length numbering plans.

There are three ways to detect end of dialing in variable-length numbering plans:

  • Interdigit timeout
    1. Simple to configure
    2. Least convenient
  • Use of # key
    1. Different implementation in Cisco IOS Software (simple) versus Cisco Unified Communications Manager (complex)
    2. Convenient
    3. Requires users to be aware of this option
  • Use of overlap sending and overlap receiving
    1. Convenient
    2. Must be supported by PSTN
    3. Complex implementation

From an implementation perspective, the simplest way to detect end of dialing is to wait for an interdigit timeout to expire. This approach, however, provides the least comfort to the end user because it adds postdial delay. In an environment with only a few numbers of variable length (for example, the NANP, where only international calls are of variable length), waiting for the interdigit timeout might be acceptable. However, even in such an environment, it might make sense to at least reduce the value of the timer, because the default value in Cisco Unified Communications Manager is rather high (15 seconds).


In Cisco Unified Communications Manager, the interdigit timer is set by the clusterwide Cisco CallManager service parameter T302 Timer, which you can find under Device > General.

In Cisco IOS Software, the default for the interdigit timeout is 10 seconds. You can modify this value using the voice port timeouts interdigit command.

Another solution for detecting end of dialing on variable-length numbers is the use of the pound (#) key. An end user can press the # key to indicate that dialing has finished. The implementation of the # key is different in Cisco Unified Communications Manager versus Cisco IOS Software. In Cisco IOS gateways, the # is interpreted as an instruction to stop digit collection. It is not interpreted as part of the dialed string. Therefore, the # is not part of the configured destination pattern. In Cisco Unified Communications Manager, the # is considered to be part of the dialed number, and therefore its usage must be explicitly permitted by the administrator by creating patterns that include the #. If a pattern includes the #, the # must be used; if a pattern does not include the #, the pattern is not matched if the user presses the # key. Therefore, it is common in Cisco Unified Communications Manager to create a variable-length pattern twice: once with the # at the end and once without the #.

An alternative way of configuring such patterns is to end the pattern with ![0–9#]. In this case, a single pattern supports both ways of dialing: with the # and without the #. However, be aware that the use of such patterns can introduce other issues, such as, for example, using discard digits instructions that include Trailing-# (for example, PreDot-Trailing-#). This discard digit instruction will have an effect only when there is a trailing # in the dialed number. If the # is not used, the discard digit instruction is ignored and the PreDot component of the discard digit instruction is not performed.

Allowing the use of the # to indicate end of dialing provides more comfort to end users than having them wait for the interdigit timeout. However, this possibility must be communicated to the end users, and it should be implemented consistently. As mentioned earlier, it is automatically permitted in Cisco IOS Software but not in Cisco Unified Communications Manager.

The third way to indicate end of dialing is the use of overlap send and overlap receive. If overlap is supported end to end, the digits that are dialed by the end user are sent one by one over the signaling path. Then the receiving end system can inform the calling device to route the call when it has received enough digits (number complete). Overlap send and receive is common in some European countries, such as Germany and Austria. From a dial plan implementation perspective, overlap send and receive is difficult to implement when different PSTN calling privileges are desired. In this case, you must collect enough digits locally (for example, in Cisco Unified Communications Manager or Cisco IOS Software) to be able to decide to permit or deny the call. Only then can you start passing digits on to the PSTN one by one using overlap. For the end user, however, overlap send and receive is very comfortable, because each call is processed as soon as enough digits have been dialed. The number of digits that are sufficient varies per dialed PSTN number. For example, one local PSTN destination may be reachable by a seven-digit number, whereas another local number may be uniquely identified only after receiving nine digits.