Skip to content

Execute different instructions based on a variable’s value

Properties

switch

objectRequired

An object that accepts the following properties.

switch.variable

stringRequired

Name of the variable whose value needs to be compared.

switch.case

objectRequired

Case_params object of key-mapped values to array of SWML Methods to execute.

switch.default

[]

Array of SWML Methods to execute if no cases match.

case_params

The case_params object serves as a dictionary where each key is a string identifier, and the associated value is an array of SWML Method objects.

case.property_name

[]objectRequired

Name of the variable whose value needs to be compared.

Examples

YAMLJSON

version: 1.0.0
sections:
  main:
    - switch:
        variable: call.type
        case:
          sip:
            - play:
                url: "say: You're calling from SIP."
          phone:
            - play:
                url: "say: You're calling from phone."
        default:
          - play:
              url: 'say: Unexpected error'

YAMLJSON

version: 1.0.0
sections:
  main:
    - set:
        foo: 5
    - execute:
        dest: example_fn
        params:
          foo: '${foo}'
  example_fn:
    - switch:
        variable: params.foo
        default:
          - play:
              url: 'say: nothing matches'
        case:
          '5':
            - play:
                url: 'say: yup, math works!'

See Also

  • Variables and Expressions: Complete reference for SWML variables, scopes, and using variables in conditional logic
  • cond: Alternative conditional logic method

SignalWire Developer Documentation