Callflow

About Callflow

Schema

Run a callflow on an active call

KeyDescriptionTypeDefaultRequiredSupport Level
capturesCallflow extensionstring()false
collectedCallflow extensionstring()false
flowinclude the flow you’d like to run (Pivot without the HTTP interaction)object()false
idThe callflow ID to runstring()false

callflows.action

Call flows describe steps to take in order to process a phone call. They are trees of information related to a phone call such as “answer, play file, record file” etc. that are logically grouped together and ordered.

KeyDescriptionTypeDefaultRequiredSupport Level
children./.+/Call flows describe steps to take in order to process a phone call. They are trees of information related to a phone call such as “answer, play file, record file” etc. that are logically grouped together and ordered.#/definitions/callflows.actionfalse
childrenChildren callflowsobject()false
dataThe data/arguments of the callflow moduleobject(){}true
moduleThe name of the callflow module to execute at this nodestring(1..64)true

Including the flow

When doing dynamic call control, it was typical to issue a pivot metaflow instead to reach out to the external server for callflow JSON. To save a round-trip, you can embed the flow JSON in the callflow metaflow. The API request data:

{"action":"metaflow"
 ,"data":{
    "module":"callflow"
    ,"data":{
        "flow":{
            "module":"device"
            ,"data":{"id":"{DEVICE_ID}"}
            ,"children":{...}
        }
    }
 }
}

This will interrupt whatever callflow may be executing (and flush any queued commands) and continue the callflow execution as if the supplied flow was next in line to execute.