Skip to content

Supplementary Services

Function: SUPPLEMENTARY_SERVICES

The SUPPLEMENTARY_SERVICES function is used to configure and test a wide range of supplementary services such as call forwarding, call waiting, and caller ID presentation on a target mobile device.

With USSD_ENABLED = ON the step dials the carrier's service code; with OFF it uses the handset's menus. Only a call-forwarding change is undone automatically when the test case ends; call waiting and caller ID settings stay as the step left them.

Supported on: Android and iOS.

Parameters

Parameter Name Description Example Values Required Default Value
USSD_ENABLED Enables or disables USSD support. ON, OFF Yes ON
SERVICE_TYPE Specifies the type of supplementary service. CF_Unconditional, CF_Busy, CF_NoReply, CF_NotReachable, Call_Waiting, Show_Caller_Id Yes CF_Unconditional
CF_ACTION Action to be taken for the call forwarding service (shown when SERVICE_TYPE is a CF_ type). CF_READ, CF_REG, CF_ACT, CF_DEACT, CF_DEL Yes CF_READ
B_NUMBER The number to forward calls to (shown when CF_ACTION is CF_REG). In an API payload it is a JSON array; send [] when you are not registering a number. Custom Yes
CALLER_STATUS Controls or queries the status of Call Waiting (shown when SERVICE_TYPE is Call_Waiting). ON, OFF, READ Yes ON
CALLER_ID_TYPE Controls the presentation of caller ID (shown when SERVICE_TYPE is Show_Caller_Id). DEFAULT keeps the network default and is offered only on Android with USSD_ENABLED = OFF. DEFAULT, ALWAYS, NEVER No DEFAULT
EXPECT Expected result of the function execution. SUCCESS, FAIL Yes SUCCESS
TIMEOUT Timeout duration in seconds to wait for service response. Whole seconds, 0-3700. Any integer (e.g., 30) Yes —

The Default Value column shows what the step editor pre-selects. GET /api/v2/functionparams lists other defaults (USSD_ENABLED = OFF, CF_ACTION = CF_REG, CALLER_STATUS = OFF, CALLER_ID_TYPE = DEFAULT), but they are not filled in for you. Every parameter marked Yes must be present in an API payload, even when the step editor hides it. A step without one is rejected with 400 ("Missing required parameters"). Send CALLER_ID_TYPE as well: it is optional for the platform, but the step fails on the Test Node without it.


Conditional Logic Summary

Which parameters the step editor shows:

  • If SERVICE_TYPE is a CF_ type → show CF_ACTION; hide CALLER_STATUS and CALLER_ID_TYPE.
  • If CF_ACTION = CF_REG → also show B_NUMBER.
  • If SERVICE_TYPE = Call_Waiting → show CALLER_STATUS, hide CF_ACTION, B_NUMBER and CALLER_ID_TYPE.
  • If SERVICE_TYPE = Show_Caller_Id → show CALLER_ID_TYPE, hide CF_ACTION, B_NUMBER and CALLER_STATUS.

Which values the step editor offers:

  • CF_DEL is not offered when USSD_ENABLED = OFF.
  • DEFAULT (caller ID) is not offered when USSD_ENABLED = ON, or on iOS.
  • On iOS with USSD_ENABLED = OFF, only CF_Unconditional is offered among the forwarding types, and only CF_READ, CF_REG and CF_DEACT as actions.