Ctrl K
ring2all.com

DISA (Direct Inward System Access) Module Documentation

Table of Contents

  1. Module Overview (Technical)
  2. Module Overview (Commercial/Business)
  3. Module Overview (End User/Administrator)
  4. Configuration Fields Reference
  5. Call Flow / Logic Explanation
  6. Common Scenarios & Examples
  7. Limitations & Important Notes
  8. Troubleshooting Tips
  9. Glossary
  10. Suggested UI Improvements

---

1. Module Overview (Technical)

What Is DISA?

DISA (Direct Inward System Access) allows external callers to access the PBX dial tone after authenticating with a PIN. Once authenticated, callers can place outbound calls as if they were calling from within the organization.

Architecture

Plaintext
┌─────────────────────────────────────────────────────────────────┐
│                    DISA System Architecture                     │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  External caller dials inbound DID → Routed to DISA code       │
│       │                                                         │
│       ▼                                                         │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │              DISA Entry Lookup                           │   │
│  │  SELECT * FROM public.disa_entries                       │   │
│  │  WHERE context = [code] AND enabled = TRUE               │   │
│  └──────────────────────────────────────────────────────────┘   │
│       │                                                         │
│       ▼                                                         │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │              Authentication                              │   │
│  │                                                          │   │
│  │  1. Play: "Enter your access code"                       │   │
│  │  2. Caller enters PIN: ****#                             │   │
│  │  3. Validate against stored password                     │   │
│  │     ├─ Correct → Continue                               │   │
│  │     └─ Wrong → Play error, retry or hangup              │   │
│  │                                                          │   │
│  └──────────────────────────────────────────────────────────┘   │
│       │                                                         │
│       ▼                                                         │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │              Dial Collection                             │   │
│  │                                                          │   │
│  │  1. Play: "Enter the number you wish to call"            │   │
│  │  2. Caller enters: 15551234567#                          │   │
│  │  3. Apply dial prefix if configured                      │   │
│  │  4. Apply CoS restrictions                               │   │
│  │  5. Override caller ID if configured                     │   │
│  │                                                          │   │
│  └──────────────────────────────────────────────────────────┘   │
│       │                                                         │
│       ▼                                                         │
│  Bridge call to destination through internal context            │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Key Tables

TablePurpose
public.disa_entriesDISA configurations (name, password, settings)
public.class_of_servicesReferenced for CoS restrictions

Key Files

FileDescription
admin/apps/web/src/modules/disaEntries/Frontend module
admin/apps/web/src/i18n/en/disaEntries.jsonEnglish translations
telephony/freeswitch/lua/main/xml_handlers/disa/disa.luaDISA handler
---

2. Module Overview (Commercial/Business)

Business Value

DISA provides remote PBX access for authorized users:

Without DISAWith DISA
Must be in office to use company phonesCall from anywhere
Personal phone shows personal numberCompany caller ID displayed
No access to internal extensionsFull PBX access after authentication
Expensive international from mobileUse company rates

Use Cases

  1. Remote Workers
- Call clients with company caller ID from home

- Access internal extensions while traveling

  1. Sales Teams on the Road
- Present company number to prospects

- Use company trunk for lower international rates

  1. After-Hours Support
- On-call staff can use PBX from mobile

- Consistent caller ID for customer callbacks

  1. Executive Travel
- Maintain professional presence while abroad

- Access internal directory

Feature Highlights

FeatureBenefit
PIN AuthenticationSecure access control
Caller ID OverridePresent company number
CoS RestrictionControl call destinations
Call RecordingCompliance and training
Access LoggingAudit trail for security
---

3. Module Overview (End User/Administrator)

What Can You Do?

  • Create DISA entries with unique PINs
  • Configure caller ID overrides
  • Restrict destinations by Class of Service
  • Set timeouts and retry limits
  • Enable call recording and access logging
  • Receive notifications on successful access

Administrator Workflow

Plaintext
┌─────────────────────────────────────────────────────────────────┐
│                 Creating a DISA Entry                           │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Step 1: General Information                                    │
│  ├─ Name: "Sales DISA"                                         │
│  └─ Access PIN: 4567                                           │
│                                                                 │
│  Step 2: Caller ID Settings                                     │
│  ├─ Caller ID Name: "Sales Team"                               │
│  ├─ Caller ID Number: +1-555-100-0000                          │
│  └─ Inherit Caller ID: Off                                     │
│                                                                 │
│  Step 3: Dial Settings                                          │
│  ├─ Dial Prefix: 9 (for external lines)                        │
│  └─ Class of Service: Standard (restrict international)        │
│                                                                 │
│  Step 4: Timeout Settings                                       │
│  ├─ Response Timeout: 10 seconds                               │
│  ├─ Inter-Digit Timeout: 3 seconds                             │
│  └─ Max Call Duration: 3600 seconds                            │
│                                                                 │
│  Step 5: Security Settings                                      │
│  ├─ Max PIN Attempts: 3                                        │
│  ├─ Hangup on Fail: ✓                                          │
│  ├─ Log Access Attempts: ✓                                     │
│  └─ Notify on Access: security@company.com                     │
│                                                                 │
│  Step 6: Enable and Save                                        │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

User Workflow (Using DISA)

Plaintext
1. Call company DISA DID from external phone
2. Hear: "Enter your access code"
3. Enter PIN: 4567#
4. Hear: "Enter the number you wish to call"
5. Enter: 15551234567#
6. Call connects with company caller ID

Quick Tips

TIP
Strong PINs: Use at least 6 digits for security.
TIP
CoS Restriction: Always apply CoS to prevent toll fraud.
CAUTION
DISA Security: DISA is a common target for toll fraud. Monitor access logs regularly.

---

4. Configuration Fields Reference

General Section

FieldDescriptionExampleRequired
NameDisplay nameSales DISAYes
Access PINAuthentication code456789Yes
Class of ServiceDial restrictionsStandardNo
EnabledActive statusOn/OffYes

Caller ID Settings

FieldDescriptionDefault
Caller ID NameOutbound nameOriginal caller
Caller ID NumberOutbound numberOriginal caller
Inherit Caller IDUse caller's original IDOff
Dial PrefixPrefix before dialed number(empty)

Timeout Settings

FieldDescriptionRangeDefault
Response TimeoutTime to enter first digit1-60 sec10
Inter-Digit TimeoutTime between digits1-10 sec3
Max Call DurationMaximum call length60-3600 sec3600

Security Settings

FieldDescriptionDefault
Max PIN AttemptsRetries before hangup3
Hangup on FailDisconnect after max attemptsOn
Record CallEnable recordingOff
Log Access AttemptsAudit loggingOn
Allow Local CallsPermit internal extensionsOn
Allow InternationalPermit internationalOff
Retry on FailRetry if call failsOff
Notify on AccessEmail/webhook notification(empty)

Audio Prompts

FieldDescriptionDefault
Greeting PromptInitial greeting(system default)
Invalid PIN SoundWrong password audioivr/ivr-that_was_an_invalid_entry.wav
Timeout SoundNo input audioivr/ivr-time_out.wav
---

5. Call Flow / Logic Explanation

DISA Authentication Flow

Plaintext
┌─────────────────────────────────────────────────────────────────┐
│                    DISA Call Flow                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  1. Inbound call arrives at DISA DID                            │
│     │                                                           │
│     ▼                                                           │
│  2. Look up DISA entry by context/code                          │
│     ├─ Found & enabled → Continue                              │
│     └─ Not found → "Feature not available" → Hangup            │
│     │                                                           │
│     ▼                                                           │
│  3. Play greeting (if configured)                               │
│     │                                                           │
│     ▼                                                           │
│  4. Prompt for PIN                                              │
│     │                                                           │
│     ▼                                                           │
│  5. Validate PIN                                                │
│     ├─ Correct → Continue                                      │
│     └─ Wrong → Attempt counter                                 │
│         ├─ Attempts < max → Retry from step 4                  │
│         └─ Attempts >= max → "Invalid" → Hangup                │
│     │                                                           │
│     ▼                                                           │
│  6. Log successful access (if log_access enabled)               │
│     │                                                           │
│     ▼                                                           │
│  7. Send notification (if notify_on_access configured)          │
│     │                                                           │
│     ▼                                                           │
│  8. Prompt for destination number                               │
│     │                                                           │
│     ▼                                                           │
│  9. Apply settings:                                             │
│     ├─ Dial prefix: prepend to number                          │
│     ├─ Caller ID: override name/number                         │
│     ├─ CoS: set class_of_services_id                           │
│     └─ Recording: start if enabled                             │
│     │                                                           │
│     ▼                                                           │
│  10. Bridge call to destination                                 │
│     ├─ Connected → Call in progress                            │
│     └─ Failed → Retry or hangup based on settings              │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

---

6. Common Scenarios & Examples

Scenario 1: Sales Team DISA

Setup:
SettingValue
NameSales DISA
PIN789456
Caller ID NameSales Team
Caller ID Number+1-555-100-0000
CoSStandard
Allow InternationalOff
Result: Sales team can make domestic calls with company caller ID.

Scenario 2: Executive DISA

Setup:
SettingValue
NameExecutive DISA
PIN147258 (stronger)
Caller IDInherit from Caller
CoSExecutive (full access)
Allow InternationalOn
Notify on Accesssecurity@company.com
Result: Executives can call anywhere, security notified on each use.

Scenario 3: On-Call Support

Setup:
SettingValue
NameSupport DISA
PIN369258
Allow LocalOn (internal extensions)
Max Call Duration1800 (30 min)
Record CallOn
Result: Support can access internal extensions, calls are recorded.

---

7. Limitations & Important Notes

Security Warnings

CAUTION
Toll Fraud Risk: DISA is a prime target for hackers. Weak PINs can lead to thousands in fraudulent calls.
CAUTION
PIN Complexity: Use at least 6-digit PINs with no obvious patterns (not 123456).
WARNING
Monitor Access Logs: Review DISA access logs regularly for suspicious activity.

Best Practices

  1. Strong PINs: Minimum 6 digits, no patterns
  2. CoS Restriction: Always limit destinations
  3. Max Attempts: Keep low (3) to prevent brute force
  4. Hangup on Fail: Enable to stop attackers
  5. Notifications: Set up alerts for access
  6. Time Restrictions: Consider schedule windows
  7. Regular Audits: Review usage monthly

Technical Limitations

IMPORTANT
Single PIN per Entry: Each DISA entry has one PIN. Create multiple entries for different users/groups.

---

8. Troubleshooting Tips

Common Issues

SymptomPossible CauseSolution
"Feature not available"Entry not found/disabledCheck entry exists and is enabled
Wrong caller IDOverride not setConfigure caller_id fields
Call restrictedCoS blockingCheck Class of Service permissions
No dial tone after PINTimeout too shortIncrease response_timeout
Immediate hangupMax attempts exceededCheck attempt counter, reset

Diagnostic SQL

List DISA entries:

Sql
SELECT name, context, password, 
       class_of_services_id, enabled
FROM public.disa_entries
WHERE domain_id = [domain_id];

Check access logs:

Sql
SELECT * FROM public.disa_access_logs
WHERE domain_id = [domain_id]
ORDER BY created_at DESC
LIMIT 50;

---

9. Glossary

TermDefinition
DISADirect Inward System Access—remote PBX dial tone access
PINPersonal Identification Number for authentication
CoSClass of Service—dial permission restrictions
Dial PrefixDigits prepended before dialed number (e.g., 9 for outside line)
Response TimeoutTime to wait for first digit input
Inter-Digit TimeoutTime between keypress entries
Toll FraudUnauthorized use of phone system for expensive calls
Brute ForceAttempting many PINs to guess correct one
---

10. Suggested UI Improvements

Security Enhancements

  1. PIN Strength Indicator: Show weak/medium/strong for entered PIN
  2. Failed Attempt Alerts: Dashboard widget for failed DISA attempts
  3. IP Restriction UI: Easy interface for whitelisting IPs

UX Enhancements

  1. Usage Statistics: Show call count and duration per entry
  2. Quick Test: "Test DISA" button to verify configuration
  3. Clone with New PIN: Duplicate entry with auto-generated PIN



Lua Script Status ✅

Integration Module

ComponentStatusLocation
DISA Handler✅ Activeapp/disa/disa.lua
--- Documentation last updated: January 2026
AI Assistant

👋 Hello! I'm your Ring2All documentation assistant. I can help you find information about configuring and using the Ring2All PBX platform.

How can I help you today?