[Asterisk-Dev] DISA

Ed Devine ncfm at airmail.net
Thu Feb 5 18:43:21 MST 2004


Thanks for your interest and courteous response. My company is a facilities
based CLEC. By way of background, I'm new to Asterisk and Digium, but I have
a good deal of past experience with Dialogic and NMS products in the telco
environment. I spend most of my time working with Nortel DMS-XXX switchgear
and managing the company ISP facilities.

I've been using a variation of a dialplan that I got from John Todd (see
below). The problem I've allways encountered is that for Asterisk to work in
our environment, it must allow the following:


user (whether automatic dialer, PBX ARS, PBX LCR, or even manually dialing
from any phone) accesses the switch (asterisk system) via a 10 digit did

dial 972-NXX-XXXX

the switch answers and returns dialtone immediately

(we use a seven digit authorization code sometimes in conjunction with
caller-id to verify that this is a valid account, etc...) followed
immediately by the 10 or 11 digit number you want to reach. The switch
selects an outbound trunk, strips the MSD if necessary, and ships the dialed
number digits.

The problem I've encountered is that inbound disa calls don't return
dialtone unless you enter something or until the unchangeable (John's word,
not mine) timer values time out.

John Todd has been most helpful, and his brief communications have been
incredible insights into how Asterisk works, he recently sent the following:

**** John's stuff starts here

"app_disa will give answer and give you dial tone, wait for an
authentication code, then dump you into a context where you can make your
outgoing calls.  Unfortunately, it needs a "#" at the end of the
authentication code.

A quick glance at the code suggests that it could be changed to expect a
fixed 7 digit access code.

It would be easy enough just to cut the first seven digits off the number
and run it through a comparison pass, and not use the authentication
routines at all.
; for North American numbers...
; Take any number, and give it to the DISA.  The DISA
;  just then takes anything typed in within the (unchangeable)
;  timer values, and hands it off to main2 to be post-processed.
; I include the standard i,h,t values for pedantic reasons.
exten => _X.,1,DISA(no-password,main2)
exten => _X.,2,Hangup
exten => h,1,Hangup
exten => i,1,Congestion
exten => i,2,Hangup
exten => t,1,Congestion
exten => t,2,Hangup
; Now, set the AUTHCODE to be the first seven digits of EXTEN
; ...and then forward this call out to a new context and extension,
;  where the new extension is the 7th through 17th digit of the old EXTEN,
;  which should translate into 1-123-456-7890 or whatever it was that
;  the user entered as the desired destination phone number.
exten => _XXXXXXX1XXXXXXXXXX,2,Goto(main-dial-routine,${EXTEN:7:17},1)
exten => h,1,Hangup
exten => i,1,Congestion
exten => i,2,Hangup
exten => t,1,Congestion
exten => t,2,Hangup
; end of example

This would end up (if the user entered the appropriate 7 digits and
1-npa-xxx-yyyy phone number) with passing the authentication code to
the main-dial-routine contained in ${AUTHCODE} and the ${EXTEN} set
to the number dialed.

You could also use the "Cut" application to perform a similar purpose
to my example using substring identifiers, if you wanted to put a
pound or star (or for those telephonically exotic among you, the
A/B/C/D) key separator in between the passcode digits and the phone


The upshot of my attempts was that, unless something is entered, dialtone
takes 5 seconds.

The same effect is apparent whether dialing inbound via the 10 digit did, or
when selecting a line from the Norstar
attached to the Digium T410P. If I dial in, the asterisk won't provide
dialtone unless I enter something. The same
is true when I select a line and go off hook on the Norstar. However; once
I've exceeded the time out and gotten dialtone, I can pretty much
dial the calls I want, and I've setup several routing patterns (dialplans)
that just let me enter the digits I want and route the calls. Once I get
it's not too difficult to get the Asterisk system to route calls.

The necessity of answering and returning dialtone immediately  is predicated
primarily on the large number of customers we have who
access our systems using automatic dialers (the dialer captures digits,
calls our switch, waits for dialtone, and sends the 7 digit authcode
followed by the called number digits), PBX's using Automatic Route Selection
(works essentially the same
as the dialers, think "digit insertion") and our own remote central office
switches (which are a mix of digital and anlog switching).  Essentially, a
of the gear that we communicate with, doesn't know to proceed to the next
step of it's programming until it detects or 'dialtone' other event
coming from the switch.  Indeed, a lot of CLEC stuff I'm familiar with works
the same way, it would be pretty simple to convert many of the
available calling card applications to Asterisk if I could just clear this

Surprisingly, one of the local "political committee's" contacted me recently
looking for an application almost exactly like the one I've been working on.
I said I'd get back to him before the campaign's for his side got started.

Heck, even my 20 year old SL1 allows me to dial in, answers with dialtone,
and processes the digits.

----- Original Message ----- 
From: "Andrew Kohlsmith" <akohlsmith-asterisk at benshaw.com>
To: <asterisk-dev at lists.digium.com>
Sent: Thursday, February 05, 2004 5:42 PM
Subject: Re: [Asterisk-Dev] DISA

> > I've reviewed, massaged, monkeyed with app_disa.c, and while it is a
> > done and serviceable application, it lacks the flexibility necessary to
> > adequately address real world uses.
> It lacks this functionality?
> You can't use the DISA applcation and then dial anything you want in your
> dialplan?
> > Anyway, before I trash the project entirely and sell the equipment, I
> > wanted to make sure that I really inderstood that Asterisk isn't (at
> > present) capable of  volume call switching in a DISA application.
> What was the dialplan you were using?  It seems to do what I expected it
> do.
> Regards,
> Andrew
> _______________________________________________
> Asterisk-Dev mailing list
> Asterisk-Dev at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-dev
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-dev

More information about the asterisk-dev mailing list