Stir/Shaken: a second Identity header for Diversion

Hello,

I’ve been reading a recent spec (see [1]) saying a second Identity header should be included in outbound INVITE when a Diversion or History-Info header is present in incoming INVITE.

“Both Identity header look like:
identity: ;info=;ppt=shaken;alg=< signing algorithm >
identity: ;info=;ppt=div;alg=”

This requirement makes me ask:

  1. For inbound calling, are we able to parse and process an Identity header containing this “ppt=div” part ?
  2. For outbound calling, what could be the best way to add a second Identity header matching the requirement ?

[1] https://www.fftelecoms.org/app/uploads/2024/09/FFT-SIP-interface-specification-V3.3-2024-07-26.pdf

Best regards

I know we can’t parse ppt=div but let me do a bit of research on this.

Something I didn’t get when reading the document I referenced, is that the first Identity header is the original one signed by the original Telco, and verified by you !

Said differently : Alice calls Bob who forwards to Cory.
Alice’s ITSP sends a single Identity which is is forwarded by Bob’s ITSP.
Bob’s ISTP adds a ppt=div Identity while forwarding to Cory.
Cory’s ISTP has 2 Identity headers to validate.

So it seems ITSP should have a way to match incoming and outgoing call including a way to copy the Identity header.

Expanding my latest example with Alice calling Bob and Bob forwarding to Cory, if I were Bob’s ITSP, I would need:

  1. a mean to tell if an incoming call is a forwarded one or not,
  2. a mean to get Alice’s call Identity header
  3. a mean to append Alice’s Identity header (when calling Cory)
  4. a mean to tell Asterisk, “for this outbound call to Cory, use ppt=div instead of ppt=shaken when building Bob’s Identity header”

Having a database in which live calls details (Identity header, From header, the tag value within this from header, …) are stored, seems possible.

If I were Cory’s ITSP, I would need:

  1. a way to check each Identity header individually (no matter if an Identity header either use ppt=shaken or ppt=div)
  2. access each attestation’s details (for logging and reporting).

A dialplan function that would read Diversion or History-Info header in incoming channel and if appropriate, return a tag uniquely identifying the re-targeted call, would greatly help.

When Alice’s call is re-targeted from Bob to Cory, should the original From header be kept unchanged is the re-targeted call from Bob to Cory ?
If positive, theoretically, should the tag value within Alice’s call From header be unique enough to find Alice’s call among many live calls ? Should the whole From value be preferred to to search live calls database ?

Anyway, I would be very curious to read again about Asterisk capabilities toward this “ppt=div” Stir Shaken option.

There are no capabilities as it’s not implemented or supported currently.

@oza4h07 Go ahead and open an “Improvement” issue at Asterisk Issue Tracker and include everything you’ve described here as well as the link to the FFTelecoms document.

Done with