How does the X-GC-Trace-Id header propagate when a SIP INVITE hits a media server? Trying to map call legs in Datadog APM, but the trace breaks at the SIP ingress. The sip_trunk config in genesyscloud_sip_trunk terraform module is set to encryption: tls, yet the logs don’t show the header. The genesys-cloud-sdk-go v1.65.0 client is doing jack all here. It’s weird because the 408 Request Timeout errors spike when the media server tries to bridge. The metric push fails since call_leg_id returns null.
Problem
PureCloudPlatformClientV2 does not handle SIP header injection for trace propagation. The Go client isn’t dropping the header; the SIP trunk configuration misses the trace context toggle. You’ll see 408 spikes when the media server waits for a header that never arrives. Weird how the docs skip this.
Code
from PureCloudPlatformClientV2 import PureCloudPlatformClientV2, SdkConfiguration
config = SdkConfiguration()
config.region = "US_EAST"
api_instance = PureCloudPlatformClientV2.build(config).routing_sip_trunks_api
trunk = api_instance.get_routing_sip_trunk(trunk_id)
# Check trace propagation setting
print(trunk.trace_propagation_enabled)
Error
The output returns False or None. The 408 timeout happens because the ingress rejects the INVITE without the trace context.
Question
Check the trace_propagation_enabled flag on the trunk object. The SDK just wraps the API. The flag controls the header passthrough.