Queue forwarding to Vapi sends main trunk caller ID on V20 U10, but preserves original caller ID on U9

farman khan

Bronze Partner
Joined
Jul 30, 2026
Messages
4
Reaction score
0
Title: Queue forwarding to Vapi sends main trunk caller ID on V20 U10, but preserves original caller ID on U9

Hello 3CX Community,

I’m troubleshooting a caller ID issue when a queue forwards an unanswered incoming call to an external Vapi AI assistant number.

The call reaches Vapi successfully, but Vapi’s call log displays the main trunk number instead of the original caller’s number.

Call flow

  1. An external caller, with a number ending 7317, calls our DID ending 8153.
  2. The call enters queue 80029 — TEST QUE.
  3. If unanswered, the queue uses Forward to Outside Number to call the Vapi number ending 4788.
  4. Vapi answers, but displays the main trunk number ending 9552 as the customer/caller.
The expected result is for Vapi to display the original caller’s number ending 7317, with this working dynamically for every caller.

Comparison between two PBX systems

I tested the same forwarding scenario on two systems:

SettingWorking systemAffected system
PBX3ctel.3cx.ca3ctel1.my3cx.ca
VersionV20 Update 9, Build 995V20 Update 10, Build 1621
EditionPROAI
HostingHosted by 3CXSelf Hosted
Vapi caller ID resultOriginal caller numberMain trunk number
I compared the visible trunk, queue, and outbound rule settings, and they appear equivalent. However, the results differ.

On the affected system, the forwarding call report shows that the external call uses the “Outbound Calls voip.ms” rule and VoIP.MS trunk. The incoming DID belongs to a separate Twilio trunk, and the number displayed in Vapi matches that incoming trunk’s main number.

Could someone help clarify the following?

  • Is there a known caller ID forwarding issue or behavior change in Update 10 Build 1621?
  • Which SIP fields should carry OriginatorCallerID for this queue forwarding scenario: From, Remote-Party-ID, or P-Asserted-Identity?
  • Could the saved provider template and the active trunk mappings differ even when the visible settings match?
  • Which logs or SIP capture details would establish whether 3CX sends the main trunk number or the provider replaces the original caller ID afterward?
I have attached the queue configuration, call report, Vapi call log, trunk details, and dashboards showing both versions. I can provide the provider templates and matching test captures if needed.

Any guidance on the correct configuration or further troubleshooting would be appreciated. Thank you.
 
Hello @farman khan

Since the behavior differs between the two systems, could you please confirm whether both systems are using the same SIP Trunk provider and whether they are configured using the default system template or a custom/modified template?

That said, please note that presenting the original Caller ID when forwarding an incoming call to an external number depends on the outbound SIP trunk configuration and whether the provider supports CLIP No Screening.

If CLIP No Screening is supported by your provider, please also clarify with them which SIP header they require the original Caller ID to be presented on outbound calls.

Additionally, does the outbound rule used for forwarding the call have an explicit Outbound Caller ID configured?

Please advise.
 

Forum statistics

Threads
112,209
Messages
591,286
Members
165,264
Latest member
Tperry-NIS