STIR/SHAKEN is the FCC-mandated framework for authenticating caller ID in VoIP networks. Carriers are required to implement it, and calls that fail attestation get flagged as potential spam or dropped entirely. Here's what every VoIP engineer needs to know.
STIR (Secure Telephone Identity Revisited) and SHAKEN (Signature-based Handling of Asserted information using toKENs) are two complementary standards that together create a framework for cryptographically signing caller ID information at the originating carrier and verifying it at the terminating carrier.
The problem they solve: VoIP made it trivially easy to spoof caller ID. Bad actors could set any number they wanted as their caller ID, enabling robocalling, fraud, and social engineering attacks. STIR/SHAKEN creates a chain of trust so terminating carriers can verify whether the calling number was legitimately assigned to the originating carrier.
The FCC mandated STIR/SHAKEN implementation for US voice carriers in 2021 under TRACED Act requirements. Non-compliant carriers face call labeling and blocking. International adoption is following, with OFCOM in the UK and CRTC in Canada implementing similar frameworks.
The STIR/SHAKEN flow has three components:
When a call originates, the originating carrier's Authentication Service verifies whether the caller is authorized to use the claimed calling number, then generates a PASSporT (Personal Assertion Token) — a JSON Web Token (JWT) signed with the carrier's private key. This token is inserted into the SIP INVITE as an Identity header.
The terminating carrier's Verification Service extracts the Identity header, retrieves the originating carrier's public certificate from a certificate repository, and validates the JWT signature. If valid, it confirms the calling number was authenticated by the originating carrier.
A public infrastructure (STI-CR) where carriers publish their public certificates. The certificate URL is embedded in the PASSporT token so verifying parties know where to retrieve it.
The attest field in the PASSporT indicates how confident the originating carrier is that the caller is authorized to use the claimed number:
From an engineering perspective: if your calls are being labeled as spam or dropped, check your attestation level. Most legitimate business VoIP deployments should be getting A or B attestation from their carrier.
Three SIP headers are involved in STIR/SHAKEN:
Identity — Contains the signed PASSporT JWT. The info parameter points to the certificate URL. The alg parameter specifies the signing algorithm (ES256 for ECDSA). The ppt parameter specifies the PASSporT profile (shaken for STIR/SHAKEN).
From — Contains the calling number that must match the orig.tn field in the PASSporT.
P-Asserted-Identity (PAI) — Used in some implementations alongside or instead of From for the calling number assertion.
When a STIR/SHAKEN failure is suspected:
iat (issued at) field must be within a few seconds of the current time. Calls with stale timestamps fail verification. Clock sync issues between carriers can cause this.info parameter. If it returns an error, the verifying carrier can't validate the signature.Paste your SIP trace into SIPSymposium for an instant AI-powered analysis. Get specific findings, severity rankings, and actionable recommendations in seconds.
STIR/SHAKEN is a framework for cryptographically signing caller ID on VoIP calls. The originating carrier signs a PASSporT token (a JWT) asserting that the calling number is authorized, inserts it in the SIP Identity header, and the terminating carrier verifies the signature. It was mandated by the FCC in 2021 under the TRACED Act to combat caller ID spoofing.
Attestation A (Full) means the carrier verified the caller is authorized to use the calling number — highest trust. Attestation B (Partial) means the carrier authenticated the device but not the specific number. Attestation C (Gateway) means the carrier is just passing the call through and cannot make any assertion about the number — most likely to be flagged as spam.
Calls get flagged as spam when they receive C attestation (gateway only), when the PASSporT signature fails verification, when the iat timestamp in the token is stale, or when the certificate URL is unreachable. Check your carrier portal to confirm you are receiving A or B attestation and that your SBC is not modifying the From header after signing.
Paste your SIP trace into SIPSymposium. The analyzer checks for STIR/SHAKEN Identity headers, decodes attestation levels, identifies missing signatures, and flags number mismatches between the PASSporT and SIP headers.