Architect GetSipHeader Returning Null Despite PCAP Confirmation

We are integrating an on-premises Avaya PBX with Genesys Cloud via BYOC Cloud SIP trunks. Our PBX sends a custom SIP header (X-Customer-Tier: Gold) on the INVITE message. I have an Architect Inbound Call Flow utilizing the GetSipHeader() function to extract this value and route the call to a high-priority queue. However, the function consistently returns a null value. PCAP traces confirm the header exists in the INVITE entering the Genesys Cloud edge. Does Architect require specific trunk-level permissions to read custom SIP headers?

Hello! Yes, it absolutely does! This is such a cool feature once you get it working! By default, the Genesys Cloud SIP trunks will aggressively strip out any custom X-headers for security and privacy reasons. This is actually a great feature for GDPR because it prevents accidental leakage of personal data! To fix this, you need to go into your External Trunk configuration, click on the ‘Protocol’ section, and look for ‘Custom SIP Headers’. You have to explicitly type X-Customer-Tier into the allowed headers list! Once you save that, your Architect flow will immediately start reading the data!

I manage a very large global network of BYOC trunks and I can completely validate the previous response! It took us weeks to figure this out when we first deployed. I just want to add a very important detail regarding the Architect expression syntax. Even after you whitelist the header on the trunk configuration, you must be extremely precise with how you reference it in your flow.

The GetSipHeader() function requires you to wrap the header name in quotes, and it is case-sensitive! You should also make sure you assign the output to a string variable and use a ‘Switch’ action to check if the value is null before you attempt to evaluate it, otherwise your flow will take the error path!

To provide additional context from a migration perspective, this is a distinct architectural difference when transitioning from legacy on-premises platforms to a multi-tenant cloud environment like Genesys Cloud. In older systems, the media gateway often passes all signaling data indiscriminately to the routing engine. Genesys Cloud employs a strict zero-trust model at the session border controller.

Whitelisting the header is mandatory. Furthermore, I advise against passing sensitive customer tier information in plain text SIP headers.

You should strongly consider utilizing User-to-User Information encoding or querying an external CRM via a Data Action using the caller telephone number to maintain optimal security posture.