Conditions¶
Conditions determine when functions should execute or when UI elements (such as Buttons) should be displayed. They evaluate criteria against real-time application state and can be combined using logical operators to express complex rules.
JSON Schema¶
Schema for condition definitions is available here.
Account Key¶
Checks whether an account-level property matches a specified value.
Type: accountKey
| Field | Type | Description |
|---|---|---|
key |
String | Account property to check. |
matchType |
equal, startWith, endWith, contain |
Matching strategy. |
matchPattern |
String | Pattern to match against. |
Scope Memory Variable¶
Checks whether a scope memory variable matches a specified value.
Type: variable
| Field | Type | Description |
|---|---|---|
name |
String | Variable name. Can include a scope prefix (see Scopes). |
matchType |
equal, startWith, endWith, contain |
Matching strategy. |
matchPattern |
String | Pattern to match against. |
{
"@": "variable",
"name": "sipHeader[myVariableName]",
"matchType": "equal",
"matchPattern": "hello"
}
Call Direction¶
Matches the direction of the current call.
Type: callDirection
| Field | Type | Description |
|---|---|---|
direction |
incoming, outgoing |
The call direction to match. |
Call State¶
Checks whether the current call is in one of the specified states.
Type: callState
| Field | Type | Description |
|---|---|---|
states |
Array of strings | List of call states to match (see Call FSM). |
Caller Display Name¶
Matches the caller's display name against a pattern.
Type: callerDisplayName
| Field | Type | Description |
|---|---|---|
matchType |
equal, startWith, endWith, contain |
Matching strategy. |
matchPattern |
String | Pattern to match. |
Caller Transport URI¶
Matches the caller's SIP transport URI against a pattern.
Type: callerTransportUri
| Field | Type | Description |
|---|---|---|
matchType |
equal, startWith, endWith, contain |
Matching strategy. |
matchPattern |
String | Pattern to match. |
Group Size¶
Checks the number of calls in the current group.
Type: groupSize
| Field | Type | Default | Description |
|---|---|---|---|
size |
Number | — | Number to compare against. |
op |
==, !=, >, <, >=, <= |
>= |
Comparison operator. |
Preference Key¶
Matches a preference key's current value against a pattern.
Type: prefKey
| Field | Type | Description |
|---|---|---|
key |
String | Preference key name. |
matchType |
equal, startWith, endWith, contain |
Matching strategy. |
matchPattern |
String | Pattern to match. |
Version¶
Checks the application library version against a range.
Type: version
| Field | Type | Description |
|---|---|---|
minimum |
String | Lower version bound (exclusive). Semantic version format. |
maximum |
String | Upper version bound (exclusive). Semantic version format. |
Platform¶
Checks the platform the app is running on.
Type: platform
| Field | Type | Description |
|---|---|---|
platform |
String | One of: Android, iOS, Windows, Mac, Linux, Desktop, Mobile, Shared. |
Is Conference¶
Checks if the current call scope refers to a conference. Returns true when the scope is a call that is part of a conference and the scope is not resolved to a specific call within that conference.
Type: isConference
No fields.
Logical Operators¶
AND¶
All listed conditions must evaluate to true.
Type: and
| Field | Type | Description |
|---|---|---|
operands |
Array of conditions | Conditions to combine. |
{
"@": "and",
"operands": [
{ "@": "callDirection", "direction": "incoming" },
{ "@": "callState", "states": ["established"] }
]
}
OR¶
At least one condition must evaluate to true.
Type: or
| Field | Type | Description |
|---|---|---|
operands |
Array of conditions | Conditions to combine. |
{
"@": "or",
"operands": [
{ "@": "callerDisplayName", "matchType": "contain", "matchPattern": "Support" },
{ "@": "callerDisplayName", "matchType": "contain", "matchPattern": "Helpdesk" }
]
}
NOT¶
Negates a condition.
Type: not
| Field | Type | Description |
|---|---|---|
operand |
Condition | The condition to negate. |
Testing Utilities¶
Always True¶
Always evaluates to true. Useful for testing.
Type: alwaysTrue
Always False¶
Always evaluates to false. Useful for testing.
Type: alwaysFalse
Random¶
Randomly evaluates to true or false. Useful for testing. If Random is used in a reactive context, the intervalMilliseconds can be used to control the refresh rate.
Type: random
| Field | Type | Description | Default |
|---|---|---|---|
intervalMilliseconds |
int | How often the random value should change. If set to 0, the value will not refresh at all. Added in 26.2 | 1000 |
Internal Conditions¶
Is Native Messaging Enabled¶
Checks, whether the conditions for displaying the Native Messaging tab are met.
These conditions include: * Whether messaging prefkey is turned on * Whether there are messages in the history
This doesn't mean that the messaging tab is actually being displayed.
Type: isNativeMessagingEnabled
No fields.
Added in 26.2
Is Conferencing Enabled¶
Checks, whether the conditions for displaying the Conferencing tab are met.
These conditions include: * Whether any type of conferencing is turned on
This doesn't mean that the conferencing tab is actually being displayed.
Type: isConferencingEnabled
No fields.
Added in 26.2