Call Forwarding Signal (CFS)

Network as Code provides identity and security capabilities that allow your applications to prevent or proactively react to fraud by using resources that go beyond traditional 2FA authentication processes. Instantly verify if a mobile device's phone number (MSISDN) that a user provides is using unconditional call forwarding or call forwarding services overall. Call forwarding is a practical and widely used feature that redirects incoming calls to another phone number. This can be useful in various situations, such as when you’re unavailable to answer, but it also creates an opportunity for fraudsters to exploit. By tricking victims into enabling call forwarding on their phones, scammers could intercept incoming calls, gaining unauthorized access to valuable information including calls from banks and credit card companies.

You can easily integrate the Call Forwarding Signal functionalities to your applications and shield them with an extra layer of security against fraudulent attempts.

What does this feature do?

  1. It retrieves the active Call Forwarding services for the given phone number.

  2. Allows you to verify if unconditional Call Forwarding is active for the given phone number

Terminology and acronymsheader link

What's behind this technology?header link

The Call Forwarding Signal (CFS) functionality follows CAMARA definitions, which is an open-source project within Linux foundation. Network as Code bridges the gap between your application and the Operator platform making the connection seamless so you can retrieve call forwarding data. After you register on Network as Code Developer Portal and get consent & authorization for devices, you will be able to easily use and integrate this API into your applications.

Call Forwarding Signal SDKheader link

Here's a hypothetical scenario of a CFS fraud: An individual receives a call from what appears to be a trustworthy source, contacting them about a security issue or compromised account. The caller instructs the person to dial a specific code to resolve the problem, typically involving a straightforward prefix followed by the forwarding number. This activates call forwarding on the person's phone which diverts all incoming calls to a number controlled by the fraudster.

Integrating the functionality provided by the Call Forwarding Signal SDK can reduce the risk of being exposed to such an act. Information about an active unconditional forwarding or other forwarding services may provide essential details for the contact initiator to identify potential fraudulent activity. This way, other methods for contacting could be considered, thus avoiding the attempted fraud.

Retrieving active Call Forwarding servicesheader link

With this method, you can retrieve a collection of Call Forwarding services which are active for the given device's phone number:

import network_as_code as nac

# We begin by creating a Network as Code client
client = nac.NetworkAsCodeClient(
    token="<your-application-key-here>"
)

# Then, create a device object for the phone number you want to check
my_device = client.devices.get(
    # The phone number accepts the "+" sign, but not spaces or "()" marks
    phone_number="+99999991111"
)

# Information about an active "call forwarding setup" for the given device
# can be retrieved like so:
services = my_device.get_call_forwarding()

# Show active Call Forwarding services
print(services)

Get Call Forwarding information service typesheader link

Note that more than one service can be active at a time, e.g. unconditional and conditional_busy

Service typeTypeDescription
inactivestringIndicates, that there are no call forwarding services activated.
unconditionalstringIndicates, that a call is forwarded independently from the device status.
conditional_busystringIndicates, that a call is forwarded if the device is on an active call.
conditional_not_reachablestringIndicates, that a call is forwarded if the device is not reachable.
conditional_no_answerstringIndicates, that a call is forwarded if the device doesn't answer the incoming call.

Verifying unconditional Call Forwardingheader link

To verify if unconditional Call Forwarding is active or not for the given device's phone number, you can use the verify unconditional forwarding method:

if my_device.verify_unconditional_forwarding():
    print("Device has unconditional call forwarding enabled!")

Verify unconditional Call Forwarding responsesheader link

ResponseTypeDescription
TruebooleanIndicates that the unconditional call forwarding service is active.
FalsebooleanIndicates that the unconditional call forwarding service is inactive.

Simulated Call Forwarding scenariosheader link

The Network as Code simulators have been configured to provide specific call forwarding results for specific simulated devices based on their device identifier. This will be helpful in testing your code against the different responses, including possible errors, by simply substituting the device identifier in your code.

The device identifiers and their responses can be found in the following table:

Device identifier typedevice identifierHTTP status codeHTTP status code descriptionResponse description
Phone Number+99999991000200SuccessUnconditional call forwarding enabled
Phone Number+99999991001200SuccessAll forwarding services inactive
Phone Number+99999991111200SuccessAll forwarding services enabled
Phone Number+99999990400400Bad Request
Phone Number+99999990404404Not found
Phone Number+99999990422422Unprocessable Entity
Phone Number+99999990500500Internal Server Error
Phone Number+99999990502502Bad Gateway
Phone Number+99999990503503Service Unavailable
Phone Number+99999990504504Gateway Timeout

Last updated November 05, 2025