FlexPBX Feature Implementation Summary
Date: October 14, 2025
Status: Production Ready
๐ฏ Completed Features
1. Conditional Queue Audio System โ
Feature Codes:
- \*45 - Queue Login (support queue)
- \*46 - Queue Logout (support queue)
- \*47 - Queue Status (support queue)
- Different audio plays depending on current queue membership status
- Uses
QUEUE_MEMBER()function to check status before taking action - Prevents duplicate login/logout attempts
callcueue-loged-out-to-in-prompt.wav- Plays when successfully joining queue via \*45callcueue-login.wav- Plays when dialing \*45 but already logged incallcueue-loged-in-to-out-prompt.wav- Plays when successfully leaving queue via \*46callcueue-logout.wav- Plays when dialing \*46 but already logged out- Location:
/etc/asterisk/extensions.conflines 936-963 - Audio files:
/var/lib/asterisk/sounds/callcueue-* - Formats: WAV (16-bit, 8kHz, mono) and ulaw
- Permissions: asterisk:asterisk, 644
Conditional Logic:
Audio Files:
Technical Implementation:
Testing:
Dial *45 first time โ Hear login success message โ Added to queue
Dial *45 again โ Hear "already logged in" message โ No action
Dial *46 first time โ Hear logout success message โ Removed from queue
Dial *46 again โ Hear "already out" message โ No action2. Music on Hold Streaming System โ
Configuration File: /etc/asterisk/musiconhold.conf
Supported Sources:
/var/lib/asterisk/moh/MOH Classes Available:
default - Local files, random playbackstream-volume-quiet - 50% volume streamingstream-volume-normal - 70% volume streamingstream-volume-loud - 80% volume streamingstream-volume-full - 100% volume streamingicecast-soma-fm - Example Soma FM stream at 70% volumesupport-queue - Dedicated for support queuesales-queue - Dedicated for sales queueVolume Control:
Uses sox to adjust volume during streaming:
mpg123 -q -r 8000 --mono -s -@ | sox -t raw -r 8000 -c 1 -e signed -b 16 - -t raw -r 8000 -c 1 -e signed -b 16 - vol 0.7Web Interface: /home/flexpbxuser/public_html/admin/moh-manager.html
3. Audio Upload Auto-Conversion โ
Admin Interface: /home/flexpbxuser/public_html/admin/audio-upload.php
User Interface: /home/flexpbxuser/public_html/user-portal/my-recordings.php
Automatic Processing:
Categories Supported:
/var/lib/asterisk/sounds/custom//var/lib/asterisk/sounds//var/spool/asterisk/voicemail/{context}/{mailbox}//var/lib/asterisk/moh/Technical Details:
sox input.wav -r 8000 -c 1 -b 16 output.wav norm -3
sox output.wav -r 8000 -c 1 -t ul output.ulaw4. Asterisk API Integration Documentation โ
Location: /home/flexpbxuser/publichtml/api/ASTERISKAPI_INTEGRATION.md
Documented Interfaces:
Features Documented:
Code Examples Included:
5. Admin Dashboard Consolidation โ
Location: /home/flexpbxuser/public_html/admin/dashboard.html
Sections:
Design:
๐ง System Configuration
Audio File Locations
/var/lib/asterisk/sounds/ - Custom prompts and queue audio
/var/lib/asterisk/sounds/en/ - English language prompts
/var/lib/asterisk/moh/ - Music on hold files
/usr/share/asterisk/sounds/ - System default sounds
/var/spool/asterisk/voicemail/ - Voicemail greetingsConfiguration Files Modified
/etc/asterisk/extensions.conf - Dialplan with queue features
/etc/asterisk/musiconhold.conf - MOH classes and streaming
/etc/asterisk/queues.conf - Queue configurationPermissions
Owner: asterisk:asterisk
Audio files: 644
Directories: 755๐ Queue System Details
Queue Name: support
Members: Dynamic (agents login/logout via \45/\46)
Strategy: ringall (can be changed in queues.conf)
Features:
AMI Events Generated:
๐ต Music on Hold Technical Details
Audio Processing Chain:
Stream URL โ mpg123 โ sox (volume adjust) โ AsteriskFormat Requirements:
Example Stream Configuration:
[icecast-soma-fm]
mode=custom
application=/usr/bin/bash -c 'echo "http://ice1.somafm.com/groovesalad-128-mp3" | /home/linuxbrew/.linuxbrew/bin/mpg123 -q -r 8000 --mono -s -@ | sox -t raw -r 8000 -c 1 -e signed -b 16 - -t raw -r 8000 -c 1 -e signed -b 16 - vol 0.7'
format=slinLocal Files Configuration:
[default]
mode=files
directory=/var/lib/asterisk/moh
sort=random๐ Reload Commands
Reload dialplan:
asterisk -rx "dialplan reload"Reload music on hold:
asterisk -rx "module reload res_musiconhold.so"Show MOH classes:
asterisk -rx "moh show classes"Show queue members:
asterisk -rx "queue show support"Check queue status:
asterisk -rx "queue show"๐งช Testing Procedures
Test Queue Audio
asterisk -rx "queue show support"Test Music on Hold
asterisk -rx "module reload res_musiconhold.so"Test Audio Upload
ls -l /var/lib/asterisk/sounds/๐ System Status
Asterisk Version: 18.12.1
Active Extensions: 2000, 2001, 2002, 2003
Active Trunks: CallCentric (registered)
Queues Configured: support, sales
MOH Classes: 11 classes (8 streaming, 3 local files)
Audio Files: 50+ prompts including conditional queue audio
๐ Security Notes
File Permissions:
Network Security:
๐ Future Enhancements
Potential Additions:
๐ Documentation References
Internal Docs:
/home/flexpbxuser/publichtml/api/ASTERISKAPI_INTEGRATION.md/etc/asterisk/extensions.conf - Dialplan/etc/asterisk/musiconhold.conf - MOH configuration/etc/asterisk/queues.conf - Queue settingsExternal Resources:
Maintained by: FlexPBX Development Team
Last Updated: October 14, 2025
Version: 1.0