Every caller has heard it: “Before we begin, can I get your phone number?” It’s the slowest, most robotic moment in any AI call. The caller already gave you their number the moment they dialed.
VitalPBX 4.5.4 Release 2 removes that moment. AI voice agent caller ID is now built in: Asterisk passes the caller’s number straight to your Realtime AI Voice Agent, so it can look up the account, greet the person by name and get to work. This release also ships Asterisk v20.21.0 R2, which fixes a queue deadlock that could freeze busy call centers.
Here’s what changed, how to use it, and why it matters for your deployments.
Why caller ID matters for AI voice agents
An AI agent is only as good as the context it starts with. Without caller ID, every call starts cold. The agent has to ask who you are, wait for you to say ten digits out loud, and hope speech recognition got them right.
That costs time on every call, adds a point of failure to every CRM lookup, and makes the experience feel automated in the worst way. For call centers handling hundreds of calls a day, those extra 20 seconds add up fast.
What’s new: caller ID pass-through for Realtime AI Voice Agents
In 4.5.4 R2, Asterisk sends the inbound number (CALLERID(num)) directly to the Realtime Voice Agent service. You get four practical wins:
- No repetitive questions. The agent stops asking “What’s your phone number?”
- Frictionless lookups. Account queries run instantly through your Custom Tools.
- Personal conversations. Greetings and instructions adapt to the caller.
- Smarter warm transfers. Human agents hear the caller’s number in the transfer announcement, so they pick up with context.
The release also adds audio flow control for Realtime AI agents and refines caller ID handling for hot desking.
How to use AI voice agent caller ID in VitalPBX
1. Automatic recognition, zero setup. The AI model is now told the caller’s number automatically. When it runs an account or database lookup, it uses that number first and only asks the caller to verify.
2. Personalized greetings and instructions. Use dynamic placeholders in your agent’s Greeting Message, Identity and Main Goal:
- {{caller_number}} (also {{caller_id}} or {{caller_num}})
- {{caller_name}}
- {{agent_name}}
Example greeting: “Hello {{caller_name}}! Thanks for calling our support team. How can I help you today?”
3. Caller data in Custom Tools and webhooks. When your agent calls a REST API, such as Salesforce or your own customer database, you can inject the caller’s details without relying on the AI to hear them correctly. Placeholders work in URLs, headers and request bodies:
GET https://crm.yourdomain.com/api/v1/customers?phone={{caller_number}}
X-Caller-ID: {{caller_number}}
X-Call-Unique-ID: {{cdr_uniqueid}}
{
"caller_phone": "{{caller_number}}",
"caller_name": "{{caller_name}}",
"cdr_id": "{{cdr_uniqueid}}"
}
Passing {{cdr_uniqueid}} also lets you tie every API request back to the exact call record in your CDR.
Critical fix: Asterisk v20.21.0 R2 ends the app_queue deadlock
If you run queues with shared_lastcall=yes, this part of the update matters most.
The problem: when a member finished a call, Asterisk updated that member’s statistics across all queues while still holding a queue lock. That reversed the normal locking order. Under heavy traffic, it could deadlock against other state updates or a queue reload, freezing queue channels or Asterisk itself.
The fix: Asterisk v20.21.0 R2 separates local queue accounting from cross-queue updates. Member stats now propagate only after queue locks are released, which removes the deadlock completely. High-volume contact centers get the stability they need at peak hours.
Who should upgrade first
- Call centers using queues with shared_lastcall=yes — upgrade now for the deadlock fix.
- Teams running AI Voice Agents — add caller placeholders to greetings and Custom Tools to cut call time.
- MSPs and integrators — offer clients a smarter AI receptionist and CRM-aware routing with no extra development.
VitalPBX licensing has no per-user fees, so every extension on your system benefits from this update at no extra cost. See the full list of changes in the VitalPBX changelog.
Frequently asked questions
What is caller ID pass-through in VitalPBX? It’s a 4.5.4 R2 feature where Asterisk sends the inbound caller’s number to the Realtime AI Voice Agent. The agent can use it for lookups, greetings and transfers without asking the caller for their number.
Do I need to configure anything for my AI agent to use the caller’s number? No. After upgrading, the AI model receives the caller ID automatically and uses it before asking for verification. Placeholders in greetings and Custom Tools are optional extras.
Which placeholders can I use in a VitalPBX AI agent? In the Greeting Message, Identity and Main Goal you can use {{caller_number}}, {{caller_id}}, {{caller_num}}, {{caller_name}} and {{agent_name}}. Custom Tools also accept {{cdr_uniqueid}} in URLs, headers and request bodies.
Can the AI agent look up customers in my CRM? Yes, through Custom Tools that call your CRM’s or database’s REST API with {{caller_number}} injected. VitalPBX also offers native integrations with Salesforce, Zoho CRM and Odoo.
What does the Asterisk v20.21.0 R2 update fix? It fixes a lock-inversion deadlock in app_queue that could occur with shared_lastcall=yes, which could freeze queues or Asterisk under heavy traffic. Member statistics are now updated after queue locks are released.
Is VitalPBX priced per user? No. VitalPBX plans are priced by feature set, not by extension, so the cost stays the same as you add users.
Get the update
Already on VitalPBX? Upgrade to 4.5.4 R2 and put caller-aware AI to work today. New to VitalPBX? Book a live demo or try the Call Center plan free for 30 days.



