-
id
- the identifier used to reference a particular element
-
next
- the element to be executed upon completion of the current element
call
Initiate an outbound CallFlow call
<call id="start" target="sip:joebloggs@mydomain.com" next="ring"/>
-
target - telephone number or SIP URI to call
-
timeout - number of seconds to wait for call to be answered, before giving up
-
onFailure - element to execute on call setup failure
-
onBusy - element to execute if called party is busy
-
onUnavailable - element to execute if called party is unavailable
-
onNoAnswer - element to execute if called party did not answer
announcement
Play an announcement
<announcement id="count" audio="two.wav" next="main_menu" barge="false">
<audio name="hundred.wav"/>
<audio name="and.wav"/>
<audio name="two.wav"/>
</announcement>
-
audio (attribute) - the name of the provisioned audio file to play
-
audio (element with name attribute) - optionally specifies additional files to play after the initial announcement. Useful when desired barge behaviour is to skip over several
announcements, perhaps representing a number
-
barge - if true, announcement playback can be interrupted through a keypress - optional, defaults to false
prompt
Play a prompt and collect DTMF / touchtone input
<prompt id="prompt" audio="please_enter_pin.wav" barge="true" maxDigits="1" enterKey="#" escapeKey="*" firstDigitTimeout="5" interDigitTimeout="5" endDigitTimeout="5">
<input pattern="1" next="option_1"/>
<default next="invalid_option"/>
</prompt>
-
audio - the name of the provisioned prompt file to play
-
barge - if true, prompt playback can be interrupted through a keypress - optional, defaults to false
-
maxDigits - maximum number of digits to collect - optional, defaults to 1
-
enterKey - keypad character used to signal input completion
-
escapeKey - keypad character used to exit the current digit collection context
-
firstDigitTimeout - number of seconds to wait for the first DTMF digit - optional, defaults to 6
-
interDigitTimeout - number of seconds to wait for each subsequent DTMF digit - optional, defaults to 6
-
endDigitTimeout - number of seconds to wait for the last DTMF digit - optional, defaults to 6
-
input - a regular expression describing a pattern that would cause a transition to a particular element
-
default - element to execute if none of the patterns described by the input tags are matched
dialog
Connect the call to a callee
<dialog id="call_me" audio="ring.wav" target="tel:44567890123"
next="after_the_call" init="greet_callee" timeout="10" callerDisconnectedAudio="goodbye.wav" />
-
audio - audio file to play (repeatedly) while the connected party is waiting for the callee to answer
-
init - callflow element to execute when the callee answers the
call. Typically an announcement or prompt. In effect, the init tag
initiates the execution of a 'mini-callflow' played to the callee.
Execution proceeds as in the main callflow. Upon successful completion,
the callee is joined with the connected party. If, on the other hand,
execution terminates abnormally or a hangup element is encountered, the
two parties are not joined in a call.
-
target - telephone number or SIP URI to call
-
timeout - number of seconds to wait for call to be answered, before giving up
-
onFailure - element to execute on call setup failure
-
onBusy - element to execute if called party is busy
-
onUnavailable - element to execute if called party is unavailable
-
onNoAnswer - element to execute if called party did not answer
-
callerDisconnectedAudio - audio file to play to the called party
when the 'caller' (i.e. the original party called by or calling
into CallFlow) hangs up
hangup
End the currently active call. Useful in conjunction with the dialog tag.
dtmf-gen
Generate and send DTMF digits to the connected call
<dtmf-gen id="generate_digits" digits="1234" next="connect_user"/>
-
digits - DTMF / touchtone keypresses to emulate
pause
Pause CallFlow execution
<pause id="wait_five_seconds" seconds="5" next="connect_party"/>
-
pause - suspends callflow execution for a specified number of seconds
matchCall
Handle inbound calls based on caller / callee URI
<matchCall id="test" source="to">
<input pattern=".*?mydomain.com" next="matchFrom"/>
<default next="notAvailable"/>
</matchCall>
<matchCall id="matchFrom" source="from">
<input pattern=".*\.si" next="#slovene"/>
<default next="#english"/>
</matchCall>
-
source - URI to use for pattern matching (from and to are currently supported)
-
input - a regular expression describing a pattern that would cause a transition to a particular element
-
default - element to execute if none of the patterns described by the input tags are matched
notification
Send a runtime notification to an application
<notification id="notify" next="abc">
<resource uri="http:POST">
</notification>
-
resource - address of the dynamic CallFlow, including a URI and
method. HTTP and HTTPS protocols, and POST and GET methods are currently supported. Optionally allows HTTP parameters to be specified. Both URIs
and HTTP parameters can contain runtime variables - see the section on
variables for available runtime information.
subflow
Add dynamically generated elements to an existing CallFlow
<subflow id="validate_user" audio="please_wait.wav" start="external_element_id" onFailure="unavailable">
<resource uri="http:GET">
<parameter name="caller" value="${caller}"/>
</resource>
</subflow>
-
audio - file to play (once) while dynamic generation + retrieval is in progress
-
start - optionally specifies element id to execute within the external CallFlow
-
onFailure - element to execute if retrieval fails
-
resource - address of the dynamic CallFlow, including a URI and
method. HTTP and HTTPS protocols, and POST and GET methods are currently supported. Optionally allows HTTP parameters to be specified. Both URIs
and HTTP parameters can contain runtime variables - see the section on
variables for available runtime information.
record
Play a promt and record the audio from the participant
<record id="recordit" audio="prompt.wav" terminationKey="#" target="newfile.wav" next="playit"/>
- audio - file to play (once) before recording starts
- terminationKey - the key to press to stop the recording
- target - the new file to save the recording too
Runtime variables
Access and use runtime information in a CallFlow
Global variables can be accessed in selected or all Call Flow scripts. These variables are
- ${callflowid} - The unique identifier for the callflow instance currently being executed. N.B. This variable is accessible in all CallFlow scripts
- ${timestamp} - Provides the current date and time in format yyyyMMdd_HHmmss (e.g. 20071214_111611). N.B. This variable is accessible in all CallFlow scripts
- ${caller} - URI of caller who placed the call that triggered inbound callflow execution. N.B. This variable is only available in inbound CallFlow scripts
- ${callee} - URI / tel number owned by the application and dialled by the caller who placed the inbound call. N.B. This variable is only available in inbound CallFlow scripts
Subflow and Notification elements can access one or more
of a set of variables reflecting runtime information. These variables
are
- ${prompt-element-id.digits} - collected DTMF digits from a prompt element
- ${dtmf-gen-element-id.digits} - generated DTMF digits
- ${call-element-id.target} - target URI for a call element
- ${announcement-element-id.audio} - audio file played by announcement element