ANI basics

Last Updated : Aug 20, 2015 |

Calling Party Number and Billing Number

ANI is based on the Calling Party Number (CPN), which is not always identical to the Billing Number. For example, if the call is placed by a user from Communication Manager, the CPN can be either the Communication Manager-based billing number or the station identification number.

String length

The ANI routing digit string can contain up to 16 digits. This supports international applications. However, ANI information in those countries that use the North American dial plan contains only 10 digits.

Call types that use ANI

The following call types have associated ANI values:

  • Incoming ISDN (including PRI, BRI, and H.323) calls that send ANI.

  • Incoming SIP calls that send SIP contact headers.

  • Incoming R2-MFC signaling calls that send ANI.

  • Distributed Communications Services (DCS) calls.

  • Internal calls.

Note:

If ANI is not provided by the network for an incoming call, ANI is not available for vector processing on the call.

Use of wildcards

The goto...if ANI vector uses wildcards for either a direct comparison (‘if ani = 123+’) or comparison in a vector routing table (‘if ani in table 12’). You can use either ‘+’ or ‘?’ wildcards.

  • ‘+’: Only one trailing, or starting ‘+’ is allowed per digit string and it matches zero or more digits, or a single ‘#’. The wildcard ‘+’ is not the same as the leading ‘+’ that SIP stations can send on an ANI. The leading ‘+’ makes goto...if ANI comparison fail.

  • ‘?’: As many ‘?’ as possible digits placed anywhere in the digit string are allowed. A ‘?’ matches exactly one digit in the location of the ‘?’.

Use with vector routing tables

ANI data can be tested against ANI numbers provided in vector routing tables.

EAS agent calls

When an EAS agent makes a call to a VDN, the agent login ID is used as the ANI in place of the physical terminal number.

Internal transfer to VDN

When a call is transferred internally to a VDN, the following outcomes can occur:

  • If the transfer completes before the call reaches the ANI conditional, the ANI value of the originator of the call is used.

  • If the transfer completes after the call reaches the ANI conditional, the ANI value of the terminal that executes the transfer is used.

Tip:

To ensure that the ANI of the originator is preserved during a transfer, add a filler step such as wait with silence, to the beginning of the vector. In this way, a transfer can be completed before the ANI conditional is encountered.