[asterisk-users] Does Asterisk support DNIS?

Eric "ManxPower" Wieling eric at fnords.org
Sun Feb 18 15:13:34 MST 2007


Ron Fox wrote:
> Arriving late to this discussion, sorry if this has already been mentioned
> but DNIS and ANI can be variable length without confusion if the sender
> uses the "*" DTMF tone as a delimiter. Thus sending *ANI*DNIS* (pronounced
> "Star ANI Star DNIS Star" allows the receiver to identify the two values
> unambiguously and to find the trailing boundary (when the 3rd "*" has been
> received).
> 
> We have a Channelized Voice T1 from a long distance provider that is set
> up this way into our non-Asterisk PBX where the provider sends us ANI as
> the full originating phone number and DNIS as the "last 4 digits".  So the
> DTMF string seen by our PBX for someone calling one of our toll-free
> numbers, say 800-123-4567, from a local phone in Hawaii, say 808-555-1313,
> would be "*8085551313*4567*".  The PBX parses this string and uses the
> last 4 digits DNIS to route the call from the T1 trunk group to the proper
> internal extension or hunt group.
> 
> Do Asterisk and Digium or Sangoma T1/E1 cards know about delimited ANI and 
> DNIS?

Not really, but you can emulate this by something like this (not tested, 
but the idea and method is sound):

exten => _*NXXNXXXXXX*XXXX*,1,Set(MY_ANI=${EXTEN:1:10})
exten => _*NXXNXXXXXX*XXXX*,1,Goto(${EXTEN:12:4},1)

If you really have variable length of ANI and DID/DNIS then you would 
need to use the Cut() function and specify the delimiter as *.  Doing it 
using Cut() is slightly more complicated, and requires more thought for 
the design, but would be more reliable.


More information about the asterisk-users mailing list