Major Update: Email Queues Moved to Laravel Horizon + Fully Rewritten Transcription Engine

pbxgeek

Active Member
Jan 19, 2021
513
141
43
38
We’ve officially retired the old FusionPBX email queue system and migrated all voicemail and system notifications into Laravel Horizon queues — the same high-performance background job framework that powers all core processes in FS PBX.

Why We Moved Away from the FusionPBX Email Queue​

FusionPBX used a “pseudo-queue” system for voicemail notifications. While it was designed to be non-blocking, it wasn’t a true queue in the modern sense.
Here’s how it worked:
  • Every voicemail message inserted email data into a database table.
  • A separate “email queue” process constantly ran in the background, polling that table.
  • When it detected new entries, it ran a PHP script to send each message.
Although this approach avoided blocking the dialplan, it came with several downsides:
  • ⚙️ Constant background process: The email queue service had to run continuously, even when idle.
  • No built-in retry logic: If a send failed, the message was simply lost or had to be manually retried.
  • No visibility or metrics: There was no real dashboard, job tracking, or error recovery.
  • Database dependency: If the email table locked or failed, notifications would stop entirely.
By moving to Laravel Horizon, we now use a true asynchronous queue system that integrates with Redis. This brings reliability, transparency, and scalability to all email and voicemail notification workflows.

⚙️ How to Enable the Modern Queue Strategy​

All new FS PBX installations already use this queue system by default.
If you upgraded from an older version or from FusionPBX, follow these steps:
  1. Go to Advanced → Default Settings
  2. Search for voicemail_queue_strategy
  3. Make sure its Value is set to modern
  4. If not, edit the setting, save, and navigate to Status → SIP Status and click on Flush Cache
Once updated, all voicemail and email notifications will automatically use Laravel Horizon for background delivery.
✅ Tip: Ensure your Horizon worker is active.
You can check it from the dashboard under System → Horizon, or start it manually:
Code:
php artisan horizon

Transcription Engine Completely Rewritten​

Alongside the queue overhaul, all voicemail transcription code has been rewritten and optimized.
The new engine runs asynchronously and supports multiple AI providers with better accuracy and error handling.
Supported providers:
ProviderDescription
OpenAI WhisperDefault engine – fast and accurate
Azure Speech-to-TextEnterprise-grade with regional availability
Google Cloud SpeechExcellent for multi-language detection
IBM WatsonReliable and flexible for complex integrations
Transcription jobs now run through Horizon as well, providing detailed logs, metrics, and automatic retries.

Summary​

This update makes FS PBX more reliable, scalable, and maintainable than ever:
  • ✅ Legacy FusionPBX “email queue” replaced with Laravel Horizon
  • True asynchronous processing with retry support
  • Fully rewritten transcription backend with multiple AI providers
  • ⚙️ Modern queue strategy enabled via voicemail_queue_strategy = modern

This change removes one of the last remaining FusionPBX-era systems and brings FS PBX’s backend architecture fully into Laravel’s ecosystem — faster, cleaner, and far more reliable.
 
  • Love
Reactions: kenn10