V20 Update 9 – PWA queue call history incorrectly handles caller number/name depending on provider template

arma_admin

Bronze Partner
Joined
Jun 24, 2024
Messages
11
Reaction score
5
Hello,

I am investigating a caller ID / caller name issue with 3CX V20 Update 9, Build 995, using the PWA/Web Client and a SIP provider.
I believe there is an issue with how 3CX handles the incoming caller information from the SIP trunk and subsequently displays it in the PWA queue call history.

Initial problem​

For an incoming call to a queue from an unknown external number, the PWA's Abandoned Queue Calls list does not display the caller's phone number.
Instead, the queue/department name is displayed.

However:
  • The caller number is correctly present in the 3CX Event Log.
  • Event 105 (Lost Call in Queue) contains the correct Caller ID.
  • Searching the PWA call history for the caller's number finds the call.
  • Opening the call in the PWA displays the caller's number.
  • The Windows Client displays the caller's number correctly.
  • If I add the caller's number to the 3CX contacts, the PWA displays the contact correctly.
So the caller number is clearly available inside 3CX.

SIP trace​

I also checked the incoming SIP INVITE.
The relevant headers are essentially:
From: <sip:CALLER_NUMBER@...>
To: <sip:CALLED_NUMBER@...>
There is no display name in the From header for this particular call.

With the current template mapping:
<field name="ParameterIn" custom="" parameter="FromUserPart">$CallerNum</field>
<field name="ParameterIn" custom="" parameter="FromDisplayName">$CallerName</field>
<field name="ParameterIn" custom="" parameter="ToUserPart">$CalledNum</field>

the caller number is correctly assigned to $CallerNum, but $CallerName is empty.

The PWA then does not fall back to $CallerNum when displaying an unknown caller in the abandoned queue-call list.

Further testing with the provider​

I then tested calls from another customer using the same SIP provider.
This produced another interesting result.
When using my original provider template, the caller's outgoing name is correctly displayed in the queue.
When using the modified/current template, the caller name is no longer displayed, only the number is shown.

The original template contains this inbound mapping:
<field name="ParameterIn" custom="" parameter="FromUserPart">$CallerNum</field>
<field name="ParameterIn" custom="" parameter="FromDisplayName">$CallerName</field>
<field name="ParameterIn" custom="" parameter="ToUserPart">$CalledNum</field>
The modified template changed the caller-name mapping to:
<field name="ParameterIn" custom="" parameter="ToUserPart">$CalledNum</field>
<field name="ParameterIn" custom="" parameter="FromUserPart">$CallerName</field>
<field name="ParameterIn" custom="" parameter="FromUserPart">$CallerNum</field>
The first is logically more obvious from a SIP perspective, but it does not work correctly with this provider's caller-name presentation.

What I find confusing​

The same SIP provider can apparently provide caller-name information, because:
Original template:
Caller number → displayed correctly
Caller name → displayed correctly
Modified template:
Caller number → available
Caller name → not available/displayed
And for an unknown caller, the PWA does not simply fall back to the available caller number.

The Windows Client does display the number correctly.

Example​

Screenshot 2026-09-22 161455.png

Expected behavior​

For an incoming queue call, I would expect 3CX to consistently retain the caller number as the caller identity and use the caller name when one is available.
If no caller name is available, the PWA should fall back to displaying the caller number rather than displaying the queue name.

Questions​

Could someone from 3CX clarify:
  1. How should $CallerNum and $CallerName be mapped for a provider that sends the caller number in FromUserPart?
  2. How should caller-name information from this type of provider be handled?
  3. Why does the PWA not fall back to $CallerNum when $CallerName is empty?
  4. Why does the Windows Client display the caller number correctly while the PWA abandoned-call list displays the queue name?
  5. Is mapping both $CallerNum and $CallerName to FromUserPart an intended/valid workaround for this situation?
At the moment I have a workaround that makes the PWA display the caller number, but it has the side effect of changing how caller-name information is handled.

I would prefer to have the provider template and 3CX caller-ID handling configured correctly rather than relying on a workaround.

Thanks.
 
Hi, what voip provider is this? is a supported sip trunk?

also, if it works with the default template, why are you trying to edit it?
 
It is not a supported provider, but this should not matter.
Because 3CX PWA is not reverting back to the incoming number, when there is no CallerName.

This only happens in the Abandoned Queue Calls list.
Missed direct calls, or accepted ones for that matter work fine.

I am using a custom template, which the provider has build and i edited it so i can test my theorie.