What is DISA?
DISA (Direct Inward System Access) is a mechanism available on some PBX’s that permits inbound calls to be answered and immediately presented with system dial tone. The caller is then able to dial a number that the PBX uses to decide how to forward the call. It is like the caller is able to dial twice – first to reach the PBX, then a second time to reach the final destination using the facilities of the PBX.
It is generally used as an alternative to having a bank of DDI numbers – with DISA, you only need one PSTN number, yet callers are still able to make direct calls to a specific desk phone or to phones at other branch offices networked with the main PBX. They may even be able to make onward calls that go out onto the PSTN again (via a different trunk line) thereby putting the toll charges for the onward leg of the call to the company that operates the PBX rather than the cost being incurred on their own telephone bill. This means it opens the PBX to the risk of toll fraud and that is why the Asterisk implementation allows you to specify a password.
DISA may also be available to callers on networked switches where they are calling from one node to another – a typical scenario would be multi-office businesses with a PBX node at each office. It can also be considered as a poor man’s Automated Attendant – it provides much the same functionality, but there are no voice prompts, just dial tone!
DISA implementation within Asterisk
Asterisk includes a command that allows it to mimic DISA – i.e. the caller hears dial tone and is able to dial a number which is then processed in a specific context.
Here is an example:
|Example of dial plan offering DISA to an inbound caller|
|exten => s,1,Answer|
|exten => s,2,DISA(123,default)|
In the above example, the caller has to enter a password (123) before they hear the dial tone. The number they dial is handled in the “default” context.
The role of DISA in SLA for outbound call handling
Part of the requirement for outbound dialling using SLA just happens to look exactly the same as the DISA mechanism. The only difference is that DISA is normally used for inbound calls, but its role in Asterisk SLA is to provide dial tone for outbound calls.
DISA is especially useful for SIP trunks. Whereas an analogue trunk can be taken “off-hook” allowing users to hear dial tone generated at the exchange, the same is simply not possible with a SIP trunk. SIP signalling requires the SIP client (the IP phone) to generate dial tone and an INVITE to only be sent after the number has been dialled. Using SLA, the IP phone sends an initial INVITE to Asterisk, but it is then the responsibility of the Asterisk PBX to generate the audible dial tone to your IP phone. The DISA command available in the Asterisk dial plan provides a very convenient solution – it even allows you to specify a new context within which the dialled number is subsequently processed.