Feature Codes Module Documentation
Table of Contents
- Module Overview (Technical)
- Module Overview (Commercial/Business)
- Module Overview (End User/Administrator)
- Configuration Fields Reference
- Feature Categories Reference
- Common Scenarios & Examples
- Limitations & Important Notes
- Troubleshooting Tips
- Glossary
- Suggested UI Improvements
---
1. Module Overview (Technical)
What Are Feature Codes?
Feature Codes are dial-activated shortcuts that trigger specific telephony features. When a user dials a code like 67 (anonymous calling) or 72 (call forward), the PBX executes the corresponding feature logic.
Architecture
┌─────────────────────────────────────────────────────────────────┐
│ Feature Codes System │
├─────────────────────────────────────────────────────────────────┤
│ │
│ User dials: *72 (Call Forward All) │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Dialplan Feature Code Lookup │ │
│ │ SELECT * FROM feature_codes │ │
│ │ WHERE (custom_number = '*72' OR default_number = '*72') │ │
│ │ AND enabled = true │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Execute Feature Handler │ │
│ │ │ │
│ │ ├─ call_forward_all → prompt for destination │ │
│ │ ├─ dnd_toggle → toggle DND status in database │ │
│ │ ├─ agent_login → log agent into queue │ │
│ │ ├─ voicemail_access → transfer to voicemail │ │
│ │ └─ etc. │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ Play confirmation tone or prompt → Hangup │
│ │
└─────────────────────────────────────────────────────────────────┘
Key Tables
| Table | Purpose |
|---|
public.feature_codes | Code definitions (default_number, custom_number, enabled) | |
public.feature_categories | Category groupings |
Key Files
| File | Description |
|---|
admin/apps/web/src/modules/featureCodes/ | Frontend module | |
admin/apps/web/src/i18n/en/featureCodes.json | English translations | |
telephony/freeswitch/conf/dialplan/default/ | Feature code dialplan entries |
---
2. Module Overview (Commercial/Business)
Business Value
Feature Codes provide standardized telephony shortcuts:
| Benefit | Description |
|---|
| Industry Standard | Uses familiar codes (67, 72, etc.) | |
| User Empowerment | Users control their own settings | |
| No Training Needed | Many codes are universal | |
| Customizable | Override default codes per organization |
Key Categories
| Category | Example Features |
|---|
| Call Forwarding | Forward all, forward busy, DND | |
| Call Center | Agent login/logout, queue toggle | |
| Spy Modes | Listen, whisper, barge | |
| Business Services | Wakeup call, hotdesking, paging | |
| Recordings | Voicemail access, custom recording | |
| Test Services | Echo test, time announcement |
---
3. Module Overview (End User/Administrator)
What Can You Do?
- Enable/disable feature codes globally
- Customize dial codes (change 67 to 777 if needed)
- View all available features by category
- Search for specific features
Administrator Workflow
┌─────────────────────────────────────────────────────────────────┐
│ Managing Feature Codes │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. Select Category │
│ └─ Call Forwarding │
│ │
│ 2. View Feature Codes in Category │
│ ├─ Toggle No Answer Forwarding (*92) [✓ Enabled] │
│ ├─ Toggle DND (*76) [✓ Enabled] │
│ ├─ Toggle Follow Me (*21) [✗ Disabled] │
│ └─ Clear All Settings (*73) [✓ Enabled] │
│ │
│ 3. Customize a Code │
│ ├─ Feature: Toggle DND │
│ ├─ Default: *76 │
│ └─ Custom: *77 (override to use *77 instead) │
│ │
│ 4. Save Changes │
│ └─ Users can now dial *77 to toggle DND │
│ │
└─────────────────────────────────────────────────────────────────┘
Quick Tips
TIP
Leave Custom Blank: If you want the default code, leave the custom number field empty.
TIP
Disable Unused Features: Disable codes you don't want users to access.
CAUTION
Code Conflicts: Custom codes must not conflict with extensions or other feature codes.
---
4. Configuration Fields Reference
Feature Code Fields
| Field | Description | Example |
|---|
| Feature Code | Name of the feature | Toggle DND | |
| Default Number | Standard dial code | 76 | |
| Custom Number | Override code | 77 (leave blank for default) | |
| Description | What the feature does | Toggle Do Not Disturb on/off | |
| Enabled | Whether users can use it | On/Off |
Category List
| Category | Description |
|---|
| Blacklist | Block/unblock callers | |
| Business Services | Wakeup, reminders, hotdesking | |
| Call Center Features | Agent login, queue management | |
| Call Forwarding | Forward calls, DND | |
| Call Forward Features | Set/cancel forwarding destinations | |
| On Call Features | Transfer, pickup, recording | |
| Call Park Features | Park and retrieve calls | |
| Do Not Disturb | DND toggle and cancel | |
| Directory | Dial-by-name directory | |
| Recordings & Announcements | Voicemail access, custom recordings | |
| Spy Modes | Listen, whisper, barge | |
| Test Services | Echo, time, volume tests |
---
5. Feature Categories Reference
Blacklist
| Feature | Default Code | Description |
|---|
| Add to Blacklist | 30 | Add a number to blocked callers list | |
| Remove from Blacklist | 31 | Remove a number from blocked list | |
| Blacklist Last Caller | 32 | Block the last person who called you |
Business Services
| Feature | Default Code | Description |
|---|
| Wakeup Call (Self) | 68 | Schedule a wakeup call to your extension | |
| Remote Wakeup | 69 | Schedule wakeup call to another extension | |
| Lock/Unlock Phone | 55 | Secure your extension with PIN | |
| Hotdesking Login/Logout | 80 | Login to a shared phone | |
| Anonymous Calling | 67 | Hide your caller ID | |
| Paging | 8 | Page a group of extensions |
Call Center Features
| Feature | Default Code | Description |
|---|
| Queue Toggle | 50 | Join/leave a specific queue | |
| Queue Pause Toggle | 51 | Pause/resume in a queue | |
| Global Queue Toggle | 52 | Join/leave all queues | |
| Global Pause Toggle | 53 | Pause/resume in all queues | |
| Agent Login | 54 | Log into the call center | |
| Agent Logout | 55 | Log out of the call center | |
| Agent Status | 59 | Hear your current status |
Call Forwarding
| Feature | Default Code | Description |
|---|
| Toggle No Answer | 92 | Enable/disable forward on no answer | |
| Set No Answer Dest | 93 | Set destination for no answer | |
| Toggle DND | 76 | Enable/disable Do Not Disturb | |
| Toggle Follow Me | 21 | Enable/disable Follow Me | |
| Clear All Settings | 73 | Reset all forwarding settings | |
| Time Condition Toggle | 99 | Override time-based routing |
Call Forward Set/Cancel
| Feature | Default Code | Description |
|---|
| Call Forward All | 72 | Forward all calls to a number | |
| Call Forward All Cancel | 73 | Cancel forward all | |
| Call Forward Busy | 90 | Forward when busy | |
| Call Forward Busy Cancel | 91 | Cancel forward busy | |
| Call Forward No Answer | 92 | Forward on no answer | |
| Call Forward No Answer Cancel | 93 | Cancel forward no answer |
On Call Features
| Feature | Default Code | Description |
|---|
| Attended Transfer | 2 | Transfer with consultation | |
| Blind Transfer | ## | Transfer without consultation | |
| Direct Pickup | | Answer a specific ringing phone | |
| Group Pickup | 8 | Answer any ringing phone in your group | |
| One-Touch Recording | 1 | Start/stop recording current call | |
| Pause Outbound Recording | 0 | Pause recording on outbound call | |
| Park Call | 70 | Park the current call |
Call Park Features
| Feature | Default Code | Description |
|---|
| Call Park | 70 | Park call in a parking lot | |
| Call Park Retrieve | 71 | Retrieve a parked call |
Do Not Disturb
| Feature | Default Code | Description |
|---|
| DND Toggle | 78 | Enable Do Not Disturb | |
| DND Cancel | 79 | Disable Do Not Disturb |
Directory
| Feature | Default Code | Description |
|---|
| Dial by Name | 411 | Search and dial by name | |
| Directory Search | 411 | Same as dial by name |
Recordings & Announcements
| Feature | Default Code | Description |
|---|
| Custom Recording | 732 | Record a custom announcement | |
| Direct Voicemail | 97 | Access your voicemail | |
| Remote Voicemail | 98 | Access voicemail from external phone |
Spy Modes
| Feature | Default Code | Description |
|---|
| Spy (Normal) | 33 | Listen to a call silently | |
| Spy (Whisper) | 34 | Listen and speak to one party | |
| Spy (Barge) | 35 | Join the call as third party | |
| Spy (Random) | 36 | Listen to a random active call |
Test Services
| Feature | Default Code | Description |
|---|
| Speak Date/Time | 60 | Hear current date and time | |
| Speak Extension | 65 | Hear your extension number | |
| Echo Test | 9196 | Test audio (echo back your voice) | |
| Simulate Incoming Call | 9197 | Test your phone ringing | |
| Test Music on Hold | 9664 | Hear MOH audio | |
| Volume Test | 9198 | Test speaker volume |
---
6. Common Scenarios & Examples
Scenario 1: Disable Spy Features
Problem: Don't want supervisors to spy on calls.
Solution:
- Go to Feature Codes → Spy Modes
- Disable all spy mode codes
- Save
Result: Spy codes no longer work.
Scenario 2: Change DND Code
Problem: Company standard uses 77 for DND, not 76.
Solution:
- Go to Feature Codes → Do Not Disturb
- Find "DND Toggle"
- Enter 77 in Custom Number field
- Save
Result: Users dial 77 to toggle DND.
Scenario 3: Restrict Forwarding
Problem: Prevent users from forwarding calls externally.
Solution:
- Go to Feature Codes → Call Forwarding
- Disable "Call Forward All" (72)
- Keep "Toggle No Answer" enabled (internal only)
- Save
Result: Users can't forward all calls but can set no-answer forwarding.
---
7. Limitations & Important Notes
Technical Limitations
WARNING
Custom Number Conflicts: Custom codes must not conflict with extensions, other feature codes, or emergency numbers.
WARNING
Domain Specific: Feature codes can be configured per domain—changes only affect selected domain.
Best Practices
- Document Changes: Note why you changed default codes
- Train Users: Inform users of any custom codes
- Disable Unused: Reduce confusion by disabling features not in use
- Test After Changes: Verify codes work as expected
Reserved Code Ranges
Some codes are standard across telephony systems:
| Code Range | Typical Use |
|---|
| 67 | Anonymous calling (industry standard) | |
| 69 | Call return | |
| 72/73 | Call forwarding (industry standard) | |
| 78/79 | DND (industry standard) | |
| 911 | Emergency (never override) |
---
8. Troubleshooting Tips
Common Issues
| Symptom | Possible Cause | Solution |
|---|
| Code not working | Feature disabled | Enable the feature code | |
| Wrong feature triggers | Custom code conflict | Check for duplicate codes | |
| Feature not available | Category disabled | Enable the category | |
| "Number not found" | Code not in dialplan | Check domain selection |
Diagnostic SQL
List all feature codes:
SELECT fc.name, fc.default_number, fc.custom_number, fc.enabled,
cat.name as category
FROM public.feature_codes fc
JOIN public.feature_categories cat ON fc.category_id = cat.id
WHERE fc.domain_id = [domain_id]
ORDER BY cat.name, fc.name;
Find code conflicts:
SELECT
COALESCE(fc.custom_number, fc.default_number) as active_code,
fc.name,
COUNT(*) as count
FROM public.feature_codes fc
WHERE fc.domain_id = [domain_id] AND fc.enabled = true
GROUP BY active_code, fc.name
HAVING COUNT(*) > 1;
---
9. Glossary
| Term | Definition |
|---|
| Feature Code | A dial code that activates a specific telephony feature | |
| Default Number | The standard code assigned to a feature | |
| Custom Number | An override code for a specific organization | |
| DND | Do Not Disturb—sends all calls to voicemail | |
| Follow Me | Rings multiple numbers sequentially | |
| Call Forward All | Redirects all calls to another number | |
| Call Park | Places call on hold in a "parking lot" for retrieval | |
| Spy Mode | Supervisor feature to listen to active calls | |
| Whisper | Spy mode where supervisor can speak to agent only | |
| Barge | Spy mode where supervisor joins as third party | |
| Agent Login | Call center agent becomes available for calls | |
| Queue Toggle | Join or leave a specific call queue |
---
10. Suggested UI Improvements
The existing i18n is comprehensive. Minor enhancements:
| Field | Suggested Addition |
|---|
| customNumber | Add real-time conflict detection | |
| category | Show feature count badge |
UX Enhancements
- Conflict Detection: Real-time warning when custom code conflicts with existing codes
- Quick Enable/Disable by Category: Toggle button to enable/disable all codes in a category
- Export/Import: Export feature code configuration for backup or migration
- User Documentation: Generate a PDF of active feature codes for user distribution
- Usage Stats: Show how often each feature code is dialed
Visual Improvements
| Current | Suggested |
|---|
| Plain list | Category tabs with icons | |
| Simple toggle | Color-coded status badges | |
| Text search | Filter by category + search |
---
Lua Script Status ℹ️
Integration Module
| Component | Status | Notes |
|---|
| Feature Codes | ℹ️ Configuration module | Codes parsed by core dialplan router |
---
Documentation last updated: January 2026*