VitalPBX 4.5.4 R2 Released: Smarter Realtime AI Agents

We are excited to announce the immediate availability of VitalPBX 4.5.4 Release 2!

This release delivers major reliability and intelligence upgrades across the entire platform. Highlights include an upgraded Asterisk v20.21.0 R2 engine fixing a critical queue deadlock issue, native Caller ID pass-through and audio flow control for Realtime AI Voice Agents, refined hot desking caller ID handling, and more.


:shield: Critical Engine Upgrade: Asterisk v20.21.0 R2 (app_queue Deadlock Fix)

For call centers and busy queue environments using shared_lastcall=yes, this release addresses a significant concurrency bug.

• The Problem: Previously, when a member completed a call, Asterisk’s device and extension state callbacks attempted to update member statistics across all queues while already holding a queue lock. This inverted the locking order, leading to potential deadlocks against other simultaneous state updates or queue reloads, which could cause queue channels or Asterisk to freeze under heavy traffic.
• The Solution: With Asterisk v20.21.0 R2, local queue accounting is safely separated from cross-queue propagation. Member statistics are now propagated only after releasing queue locks, eliminating the lock-inversion deadlock completely and providing maximum stability for high-volume contact centers.

:glowing_star: Spotlight: Realtime AI Agents Now Access Caller ID / Phone Numbers!

Our AI Voice Agents can now instantly identify inbound callers! Asterisk now passes the inbound caller’s number (CALLERID(num)) directly to the Realtime Voice Agent service.

:bullseye:Why this is a game-changer:

  • No more repetitive questions: Your AI no longer needs to ask, “What is your phone number?” every time someone calls.
  • Frictionless CRM lookups: Instant customer identification and account queries via custom API tools.
  • Personalized conversations: Custom greetings and prompt instructions tailored to the caller.
  • Context-aware transfers: Human agents receive the caller’s number in warm transfer announcements.

:hammer_and_wrench:How to Use This Feature

Here is how you can put this new feature to work in your AI agent configurations:

1. Automatic Recognition in AI Prompts (Zero Setup Needed)

The AI model is now automatically instructed with the caller’s Caller ID. When performing database or account lookups, the AI will use this number directly before prompting the caller for verification.

2. Personalized Greetings & Instructions

You can now use dynamic placeholders in your agent’s Greeting Message, Identity, and Main Goal:

  • {{caller_number}} (also supports {{caller_id}} or {{caller_num}})
  • {{caller_name}}
  • {{agent_name}}

Greeting Example:
“Hello {{caller_name}! Thank you for calling our support team. How may I assist you today?”

3. Automatic Data Injection in Custom Tools & Webhooks

When configuring Custom Tools (REST API endpoints) for your AI agent to query external systems (such as Salesforce, HubSpot, or custom databases), you can inject the caller’s phone number without relying on the AI to parse it from voice audio.

You can use {{caller_number}} across URLs, headers, and request bodies:

  • In Endpoint URLs (GET):
https://crm.yourdomain.com/api/v1/customers?phone={{caller_number}}
  • In Request Headers:
X-Caller-ID: {{caller_number}}
X-Call-Unique-ID: {{cdr_uniqueid}}
  • In Request Bodies (POST / PUT):
{
"caller_phone": "{{caller_number}}",
"caller_name": "{{caller_name}}",
"cdr_id": "{{cdr_uniqueid}}"
}

:page_facing_up: Full Changelog

For the complete list of changes included in this release, visit our official changelog:
:backhand_index_pointing_right: View the Full VitalPBX Changelog