60.1. CTIDISA overview

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.

60.1.1. User identification

The INCOMING part can be divided into 3 phases:

  1. Pre-identification

  2. User identification

  3. Reassignment of the service Pre-identification

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.


A service is a collection of functions, rules, mechanisms! Assignment of the service

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. 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.


    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.


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). Reassignment of the service

When the user has been identified, he is assigned to a service. Generally, the user is assigned to the same service in which is authenticated; it's also possible to change the destination service (SERVICE parameter).

60.1.2. Post-selection

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. Failure of post-selection

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!).

60.1.3. Automatic Call Distribution

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

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.


    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.


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. AUTO-CDO parameter

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. Management of audio messages with DISA MODE:ACD

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:         #

60.1.4. Call Back

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);


    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.

60.1.5. Data Call Back

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.


Once the connection to the internet is established, Abilis can be reached through a FQDN configuring the DDNS resource.