DISA (Direct Inward System Access) is a PBX feature which allows callers from the outside to access internal system features. DISA allows teleworkers to call the corporate telephone system, enter an authorization code and gain access to system features. Users interact only through audio messages.
The Abilis DISA driver supports five functionalities:
Calls passing through DISA can be divided in two parts: INCOMING and OUTGOING. The first one, refers to call's arrival to the Abilis until the user identification; the second one refers to post-selection.
The INCOMING part can be divided into 3 phases:
Pre-identification
User identification
Reassignment of the service
It refers to the call arrival to the DISA: it's called pre-identification because Abilis doesn't know if the user will enter the PIN code or the post-selection yet.
During this phase the assignment of the service is made.
Note | |
---|---|
A service is a collection of functions, rules, mechanisms! |
This assignment can be based upon verification of:
Incoming called number (CDI
);
Calling number (CGI
);
Incoming called number AND calling number.
Pre-identification can fail in case of:
Calling number not present in the list of CGI users (if
RESTRICTED-CALLING
parameter is set to
YES
);
Maximum number of simultaneous calls on DISA has been
reached (MAX-CALLS
parameter).
The service defines the operations a certain user is allowed to perform:
The tone set used in different phases;
The maximum number of simultaneous connections for users assigned to the same service;
The activation of Automatic Call Distribution (ACD) or Call Back (CB);
A list of numbers enabled to be called
(PERMIT
parameter).
The Default
service is assigned to all
calls which has not been matched with other configured
services.
The call can come from an ISDN port, a Cluster or other CTI resources like IAX or SIP and it's routed to CtiDisa resource.
When the call arrives to the DISA (if the pre-identification phase doesn't fail), the user who has called hears the tone or the welcome message (this means that the assignment of the service has happened).
It follows the phase of user identification.
The Anonymous
user is created by the system
and identifies all callers not configured in other users.
A user can be identified in three ways:
Calling number
: the user is identified
verifying the number used for the call;
PIN
: the user is identified verifying the
insertion of a PIN code (PIN starts with the
'*
' character and ends with
'#
');
PIN + calling number
: the user is
identified by means of a PIN entering and the calling
number.
Caution | |
---|---|
If CGI and PIN fields are empty, the user will be considered anonymous (default user). |
In the configuration of a user, the service assigned, the maximum number of simultaneous calls, the PIN code, one or more calling numbers (CGI) for the identification and a list of numbers enabled and/or denied to be called (PERMIT and DENY parameter) can be defined.
Tip | |
---|---|
The combination of PERMIT (for services and users) and DENY (only for users) allows to further define the user security clearance level in the post-selection phase; example: if a user is identified as belonging to a service enabled to call numbers starting with 6, you can further define the user as cleared to call only number 601 or deny calls to 605 by specifying the proper value in the user's config file. |
The identification can fail in case of:
Wrong PIN (in this case the call will be immediately rejected).
The OUTGOING part represents the post-selection phase. From this moment a user can:
Call an internal extension number;
Make a new call.
Another interesting characteristic is the TRANSFER functionality. It allows the call's hung up from DISA when the call in post-selection has been connected. Example: if the incoming call is VtoD and the post-selection DtoV, it will be maintained a single “VtoV” (or transparent, TR) call.
If the post-selection fails, loops can be enabled so that the user can make a new post-selection.
There are four types of loops, in case of:
Call not answered (the selected user has not answered);
Busy (the internal extension of the selected user is busy);
Selection not allowed;
Other (all other disconnection codes, e.g: non-existent number, non-existent routing...).
Defining whether loops are active, in case one of the previous conditions happens, can be done. For each condition a tone or a message to inform the user about the “status” of the call can be defined.
The maximum number of allowed loops before the call is
permanently rejected (MAX-LOOPS
parameter) can be
defined. This last phase is named BYE and can be identified from a
specific message (it cannot be replaced by a tone!).
DISA Automatic Call Distribution (ACD) allows Abilis to act like a Call Center device. When all operators are busy, the incoming calls get queued. The waiting calls are forwarded to the first free operator on a FIFO-based approach.
The queues are individually generated for each called number and are totally independent
If the user goes to a service with
MODE
:ACD
, he can't enter the PIN
(the user is in now in the post-selection phase).
If the user goes to a service with
MODE
:DISA
, inserts a PIN and then
goes to another service with
MODE
:ACD
, the user goes to this
post-selection.
If the user goes to a service with
MODE
:ACD
and then goes to another
service with MODE
:DISA
, the
AUTO-CDO
of the first service is maintained.
Queued calls are forwarded to an operator in two cases:
The active call belonging to the same queue becomes disconnected.
If the caller hangs up before the operator, the call is forwarded after 5 seconds; in the opposite situation the call is forwarded after 1 second (because Abilis immediately realizes that the operator is free).
The interval of attempts expires (the timer is reset for every attempt).
This interval is editable in the
ACD-INTERVAL
parameter. During this phase the
caller hears the LOOPDIAL message. The Abilis continues to call
the selected internal extension every
ACD-INTERVAL
seconds and in case the operator
gets free, the call goes to ALERTING status and subsequently to
ACTIVE status.
Note | |
---|---|
When a call in the queue goes to ALERTING status, it's immediately removed from the queue; if it fails (for example, if the operator doesn't answer), the call is re-inserted in the queue (in the last position). |
During the LOOPDIAL phase, the caller has two choices:
To wait that the selected internal extension gets free;
To select a new internal extension entering the last position of the new queue.
Note | |
---|---|
If the user isn't allowed to call the selected number, the call exits from the queue and enters into the loop. The CALLNA message is played and then the AFTERPIN (if it's configured) or INITDIAL message. This sequence is valid also if the call is “aborted” with the “**” during the ALERTING status (in this case the DISC message is played). |
When the ACD is active, the MAX-LOOPS
parameter is automatically set to 99, while the
TRANSFER
parameter is disabled.
An “Automatic Called Number”
(AUTO-CDO
parameter) can be defined in the service
configuration. When the call is connected to DISA, the
AUTO-CDO
simulates the insertion of a called
number. The following situations can happen:
MODE
:DISA
and
AUTO-CDO
configured: after user identification,
in case of a loop, the user will have to insert another
number;
MODE
:ACD
and
AUTO-CDO
configured: the number configured in
AUTO-CDO
will be repeated until it isn't
changed by the user. If the number isn't allowed the INITDIAL and
AFTERPIN tone will be played.
When there is the MODE
:ACD
it is possible to reproduce a single message even when the call goes
into ALERTING or is cancelled with "NO ANSWER" or "BUSY". This
prevents continuous changing/interrupted of the audio message based on
the status of the queue call. This is done by setting the LOOPDIAL
message, and disabling playback of the ALERT message
(ALERT
:#
).
[08:39:24] ABILIS_CPX:d ctidisa service:test
Total number of services:12
-------------------------------------------------------------------------------
SERVICE:test DESCR:
MODE: ACD |INTRO-STATE: CREQ |INTRO:
ROUTING: PREFIX |CONN-DELAY: 6 |WELCOME:
MAX-CALLS: NOMAX |PC-OFFER: * |INITDIAL:
BC: Speech |TRANSFER: NO |AFTERPIN: #
CB: NO |ACD-INTERVAL: 15 |LOOPDIAL: test
CB-DELAY: 5 |DIAL-TOUT: 30 |IDENFAIL:
CB-NRTY: 1 |PIN-TOUT: 15 |CALLNA:
CB-UNK-CDO: 'CGI' |NUM-TOUT: 15 |ALERT: #
CB-NAT-CDO: 0'CGI' |BUSYDISC: 4 |BUSY:
CB-INT-CDO: 00'CGI' |LOOP-BUSY: YES |NOANSWER:
CB-CGO: # |LOOP-NOANSWER: YES |DISC:
CTIP-TYPE-O: * |LOOP-DENIED: YES |HOLD:
AUTO-CDO: # |LOOP-OTHER: YES |BYE: #
TOUT-CDO: # |MAX-LOOPS: 99
END-CDO: # |MAX-LOOPS-CDO: #
PERMIT: * |TRFA: NO
CDI: DISABLED
CGI: #
SUB-SERVICE: #
-------------------------------------------------------------------------------
DISA Call Back is a feature which allows a user to dial into a CPX, get the call refused, and receive a return call which establishes the connection. Once connected, the user can place calls with usual DISA services. The caller isn't charged at all, since the original call is rejected.
DISA Call Back can be described in the following sequences:
User dials-in;
The pre-identification assigns a service;
If the service allows Call Back the user is identified only by its calling number (only users without PIN can use this service);
Caution | |
---|---|
Call Back can proceed only if it's enabled for the service AND the user; otherwise the call-back is aborted, the user identification is cleared, and DISA resumes to “not Call Back” call exactly at the moment where pre-identification is complete. The new user identification requires either a PIN or the first digit of the called number to be entered. |
The call reaches the alerting state and instead of being connected, it's refused;
After a configurable delay DISA calls back the user; the number called is obtained by adding a prefix to the user calling number. There can be different prefixes for the three main different types of calling numbers: UNKNOWN, NATIONAL, INTERNATIONAL;
If Call Back fails, it can be repeated for a configured number of times, with a configurable delay between each call;
Once Call Back gets answered, the DISA proceeds in the same way as if the call was originated by the user itself, except for the user identification which is already complete.
DISA Data Call Back is a feature which allows a user to command an internet connection for a remote device by a call. The call is rejected (so is free of charge) and the configured data resource ( only IP and X25 resources ) is ordered to make a data call.
DISA Data Call Back follows the below steps:
User dials-in;
The pre-identification assigns a service;
The call reaches the alerting state and instead of being connected, it's refused;
The configured data resource makes a data call.
Note | |
---|---|
Once the connection to the internet is established, Abilis can be reached through a FQDN configuring the DDNS resource. |