I am trying to configure VitalPBX so that when a softphone sends an outbound INVITE containing a P-Asserted-Identity (PAI) header, VitalPBX reads this header and uses its value as the Caller ID in the From header sent to our outbound PJSIP trunk.
Current Scenario:
· Softphone sends an outbound INVITE with: P-Asserted-Identity: <sip:[email protected]>
· Goal: Extract the data and use it as the From header user when making the outbound call over the PJSIP trunk.
What was tested:
1. Set extension Dynamic External CID to YES.
2. Set trunk Trust ID Inbound to YES
Questions for the community:
· What is the recommended practice in VitalPBX to extract an incoming softphone PAI header and pass it to the outbound trunk From field?
Any examples or best-practice recommendations would be greatly appreciated!
Hi mo10, I did see that post, but it doesn’t really apply to my use case. It seems overcomplicated for something so many people actually need. I’m not sure if this is a bug or just designed this way.
Why the Sofphone is not sending that information in the Caller ID headers. The Dynamic External CID only works when the caller sends a Caller ID value that needs to be pass to the destination.
We are using a few different PBX systems, and we can’t simply map or overwrite the From header using the PAI (P-Asserted-Identity) value because it causes authentication failures on outbound INVITE packets from the PBX side.
The softphone constructs its From header using its SIP authentication credentials—which is standard behavior, as a registered SIP client’s From header must match the AOR used for authentication—rather than the caller ID/display number you wish to present.
This is precisely why rewriting the outbound From header based on the PAI makes sense: if the softphone sends a valid identity via P-Asserted-Identity alongside its technical From header, that is the value the PBX should extract and use for outbound caller ID.