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_TYPEis aCF_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_DELis not offered whenUSSD_ENABLED = OFF.DEFAULT(caller ID) is not offered whenUSSD_ENABLED = ON, or on iOS.- On iOS with
USSD_ENABLED = OFF, onlyCF_Unconditionalis offered among the forwarding types, and onlyCF_READ,CF_REGandCF_DEACTas actions.