Actions

FreeSBC Configuration for STIR/SHAKEN with Transnexus OSPrey server

Revision as of 17:35, 23 July 2018 by Luc Morissette (talk | contribs) (Updated page to have routing files separated)

Introduction

This document provides instructions on how to configure FreeSBC to interoperate with the TransNexus OSPrey server. OSPrey is a SIP redirect server that provides advanced Least Cost Routing (LCR), fraud control and STIR (Secure Telephony Identity Revisited) / SHAKEN (Secure Handling of Asserted information using toKENs) features. FreeSBC 3.0.90 or later version is needed to support secure caller ID using STIR/SHAKEN.

Network Diagram and Call Scenarios

This section provides the simplified network diagram containing two telephone service providers, and the call scenarios.

FreeSBC OSPrey Diagram.png
  1. Source of ServiceProvider-A sends a call to FreeSBC-A.
  2. FreeSBC-A forwards the call to OSPrey-A, which is a SIP redirect server providing LCR, fraud control, SHAKEN AS (Authentication Service) and other features.
  3. OSPrey-A performs LCR, fraud control and SHAKEN AS logic, then sends one of the following responses to FreeSBC-A
    1. SIP 404 Not Found: No fraud or SHAKEN AS error is detected, and routing information is unavailable.
    2. SIP 603 Decline: Fraud is detected or SHAKEN AS request fails.
    3. SIP 3xx Redirect: Destination information (FreeSBC-B of ServiceProvider-B) and a SIP Identity header including a digitally signed token that includes the calling number (secure caller ID).
  4. FreeSBC-A processes the response
    1. SIP 404 Not Found: FreeSBC-A tries the next destination configured in its local routing policy.
    2. SIP 603 Decline: Proxies the response back to Source to block the call.
    3. SIP 3xx Redirect: Forwards the call to FreeSBC-B with the Identity header.
  5. FreeSBC-B forwards the call to OSPrey-B, which is a SIP redirect server providing fraud control, SHAKEN VS (Verification Service) and other features.
  6. OSPrey-B performs fraud control and SHAKEN VS logic, and then sends one of the following SIP responses to FreeSBC-B.
    1. SIP 404 Not Found: No fraud or SHAKEN VS error is detected, and routing information is unavailable.
    2. SIP 603 Decline: Fraud is detected or SHAKEN VS request fails.
    3. SIP 3xx Redirect: Destination information (Destination of ServiceProvider-B) is attached.
  7. FreeSBC-B processes the response
    1. SIP 404 Not Found: FreeSBC-B tries the next destination configured in its local routing policy.
    2. SIP 603 Decline: Proxies the response back to FreeSBC-A to block the call.
    3. SIP 3xx Redirect: Forwards the call to Destination.

Note: A variant scenario is that Destination of ServiceProvider-B is configured as the next destination in the local routing policy of ServiceProvider-B, OSPrey-B returns SIP 404 Not Found, then FreeSBC-B does failover to Destination.

FreeSBC Configuration

This section provides FreeSBC configuration for the solution.

Configure Routing Script

FreeSBC is configured to use routing script to handle SIP 3xx Redirect response.

1. Enable routing script
Gateway->Use script
2. Load routing scripts
Gateway->Routes->Routing Script->Import Script File
   File->txnx_shaken.rb
   ScriptType->TxNx
   Load on startup->unchecked
Gateway->Routes->Routing Script->Import Script File
   File->txnx_routing.rb
   ScriptType->Txnx
   Load on startup->checked

Click here to download txnx_shaken.rb and txnx_routing.rb Routing Scripts

Configure NAP (Network Access Point)

OSPrey-A and OSPrey-B are configured as NAP on FreeSBC-A and FreeSBC-B respectively. A general SIP endpoint, NAP-ANY, is configured on both FreeSBC’s.

  • On FreeSBC-A
NAPs->Create New NAP
    Name->NAP_OSPrey_A
    Proxy address->x.x.x.x (IP of OSPrey-A)
NAPs->Create New NAP
    Name->NAP_ANY
Use Proxy Address->Unchecked
  • On FreeSBC-B
NAPs->Create New NAP
    Name->NAP_OSPrey_B
    Proxy address->x.x.x.x (IP of OSPrey-B)
NAPs->Create New NAP
    Name->NAP_ANY
    Use Proxy Address->Unchecked

Note: To configure local routing policy with other destination NAPs, OSPrey NAPs should have the highest priority alone all destination NAPs.

Configure NAP Column

NAP column is used to mark OSPrey as redirect server.

Gateway->Routes->NAP Column->Create New NAP Column
    Name: server_type 
    Type Attributes: NORMAL|REDIRECT
    Default: NORMAL
  • Both NAP_OSPrey-A and NAP_OSPrey-B are configured with NAP column server_type REDIRECT.
  • NAP_ANY are configured with NAP column server_type NORMAL.

Configure Static Route

A static route to NAP_ANY should be configured on both FreeSBC’s to allow FreeSBC to try the destination in the SIP 3xx response.

Gateway->Routes->Create New Static Route
    Name->ToEndpoints
    NAP->any
    Remapped_NAP->NAP_ANY

Enable SIP Custom Header

Enable SIP Custom Headers must be checked to pass SHAKEN Identity header and several other headers used by the solution.

Profiles->SIP->Enable SIP Custom Headers

Disable Legacy Redirection Mode

Use legacy redirection mode must be unchecked to allow FreeSBC to use routing script to handle SIP 3xx response.

SIP->Editing SIP Configuration->Header Parameters->Use legacy redirection mode

Configure Route Retry Action

Route retry action of 3xx, 404 and 603 must be configured to allow FreeSBC to perform failover, fraud control and SHAKEN AS/VS request.

Profiles->Edit Reason Cause Mapping
    300 Multiple Choices->Route retry action->Process call routing
    302 Moved temporarily->Route retry action->Process call routing
    404 Not found->Route retry action->Continue call
    603 Decline->Route retry action->Stop call

Notes:

  • The default route retry action of 404 is Stop call.
  • The default route retry action of 603 is Continue call.