Action reference guide (extended)

AddQueueMember

Description (v1.2)

INFO This action adds a device to a specific queue.
INFO The queue [Queue] will accept calls
INFO for device [Device] (if the device is unspecified, it is the calling device which will be added in the queue).
INFO The device is added with a penalty of [Penalty] in the queue.

Action parameters

When this action is played inside a callflow, either the calling device or the specified device is added to the specific queue.

  • Queue: The queue to which the device will be added.
  • Device: The device which will be added to the queue. If the device is unspecified, the calling device will be added in the queue, which is the most commonly used option.
  • Penalty: The device is added in the queue with a specific penalty.

Example of use

Queue members can be defined as having a penalty, example:

  • SDC20001; penalty 1
  • SDC20002; penalty 2
  • SDC20003; penalty 3
  • SDC20004; penalty 2

If the strategy is defined as 'ringall' (which is defined in the queue resource), then only those available members with the lowest penalties will ring. In the example above, if SDC20001 is not busy, then only SDC20001 will ring. If SDC20001 is busy, then only SDC20002 and SDC20004 will ring. If SDC20001, SDC20002 and SDC20004 are busy, then SDC20003 will ring.

ALERT! Note: If extension SDC20001 does not pick up it will not automatically go to device SDC20002 and SDC20004. It will keep ringing SDC20001 until they pick up. It will only go to the next queue member if the current queue member is either busy or unavailable.

AddToConference

Description (v2.0.0)

INFO Send the caller to a conference room.

Action Parameters

  • Pincode : The system will check the by the caller's inputted value with this parameter's value. When left empty, no pincode will be asked.
  • Conference room : The conference room that will be used. If left empty, the first conference room of the list will be used.
  • Caller ID filter : When left empty, the system will allow entrance to anyone. If filled out, only a caller matching the specified Called ID filter will be granted access.
  • Access level : The access level Administrator will grant administrator possibilities in the conference menu.
  • Enable the conference menu : The conference menu can be activated when pressing the '*' key during the conference call. These options are available:
    • 1 - Mute/unmute
    • 2 - Lock/unlock conference (Only available for the Administrator access level)
    • 3 - Eject last user who joined the conference (Only available for the Administrator access level)
    • 4 - Decrease volume of the conference with each 4 you press - end with 8
    • 6 - Increase volume of conference with each 6 you press - end with 8
    • 7 - Decrease your volume - end with 8
    • 9 - Increase your volume - end with 8
  • Play music on hold when solo : Background music will play for the first participant of the conference while waiting for other participants
  • Announce the number of participants in the conference upon joining : Announce the amount of users in the conference upon joining the conference
  • Announce the name of the participant when leaving or joining the conference : When entering a conference, a caller is required to record his/her name. This name will be played to the participants of the ongoing conference when the caller joins/leaves the conference.
  • Record the conference: If you want to record this conference. If 'yes' is chosen, the conference will be recorded and the file named with the following pattern: "recorded-conference-<conference room>-<date-hour:min:second>.wav" (for example recorded-conference-1000-11022013-14:26:00.wav). The file will be stored in the same directory as the recorded call, and will be available through the File Manager.

Example of use

Standard conference room

A user wants to organize a voice conference with 3 external and 2 internal participants. In order to schedule the conference, a mail is sent to all participants indicating:
  • the external conference bridge number
  • the internal conference bridge number
  • the conference bridge access code
External users dial the external number, Internal users dial the internal number. Both are prompted to enter the pincode before entering the conference room. Each time a participant enters the conference room, a beep is played to all other conference room participants.

Invite-only conference room

If we put a value in the Caller ID filter field, the conference room will become invite-only.

The standard conference room will allow anyone to enter as long as they know the pincode. The invite-only conference room is identical with the exception that it will only allow calls from a certain extension to pass through.

Example:
  • Caller ID filter equals 134 (can be any extension)
  • The person with extension 134 calls person X.
  • Person X is transfered, by using an Attended Transfer, to the extension that will address the callflow using this action. The transfer will be confirmed.
  • The person with extension 134 calls person Y.
  • Person Y is transfered, by using an Attended Transfer, to the extension that will address the callflow using this action. The transfer will be confirmed.
  • The person with extension 134 calls person Z.
  • Person Z is transfered, by using an Attended Transfer, to the extension that will address the callflow using this action. The transfer will be confirmed.

Result: Person X, Y and Z will be in the conference room without having to enter a pincode. Nobody can enter the conference room except the person with extension 134 or callers that are (attended) transfered by him/her.

Answer

AutoAnswerDevices

Description (v0.0)

INFO Call a list of devices and instruct them to auto-answer the call.
INFO If the call is not answered before the timeout is expired, the call is sent to the "Timeout Extension".
INFO If all devices are busy, the call is sent to the "Busy Extension".
INFO Timeout: [timeout] seconds
INFO Device 1: [device_1]
INFO Device 2: [device_2]
INFO Device 3: [device_3]
INFO Device 4: [device_4]
INFO Device 5: [device_5]
INFO Device 6: [device_6]
INFO Device 7: [device_7]
INFO Device 8: [device_8]
INFO Device 9: [device_9]
INFO Timeout extension: [extension_timeout]
INFO Busy extension: [extension_busy]

Action parameters

This action tries to recall the called party when he/she has become available. This action can be triggered either when the called party is busy (CCBS) or when the called party does not reply (CCNR).

ALERT! Please note that this action only works when the called party is connected to an Escaux UCS

  • CalledParty: this is the extension of the called party
  • Timeout: this is the period between subsequent checks. At every Timeout, the system performs a new check on the availability of the called extension. If the called party is available, the calling party is connected to the called party (Callback). First the calling party's phone calls and when picked up, the called party is called.
  • Retries: The availability check is terminated after a number of tries
  • Callback type: the possible values are:
    • on busy: the callback action is triggered when the called party is busy
    • on no reply: the callback action is triggered when the called party does not answer

Example of use

This action is typically used when an internal extension is busy (does not answer). In the case of an internal call, an IVR action can ask if the caller desire a callback on busy (no reply). If the caller wants a callback, the action AutoRecall is called with the proper Callback type.

Note that you should check in the callflow if the caller is internal or external.

To force a Polycom phone to auto-answer, as a pager or intercom device, refer to action PageDevices.

AutoRecall

Description (v2.0.0)

INFO This action redials the called party number when he/she becomes available.
INFO If the called party [Called party] is not available.
INFO the system checks every [Timeout] seconds if the called party is still not available. If it is not the case, the calling party is connected to the called party (Callback).
INFO The availability check is terminated after [Retries] tries.
INFO Callback type [Callback type].

Action parameters

This action tries to recall automatically the called party when it has become available. This action can be triggered either when the called party is busy (CCBS) or when the called party does not reply (CCNR). In the CCBS case, the condition to decide the called party is available is when the primary and secondary devices of the called party are free. In the CCNR case, the condition to decide the called party is available is when the called party performs a call with any of his devices or the called party answers a call with any of his devices.

ALERT! Please note that this action only works when the called party is connected to an Escaux SOP.

  • Called party: this is the extension of the called party
  • Timeout: this is the period between subsequent checks. At every Timeout, the system performs a new check on the availability of the called extension. If the called party is available, the calling party is connected to the called party (Callback): First the calling party's phone rings and when picked up, the called party is called.
  • Retries: The availability check is terminated after a number of tries
  • Callback type: the possible values are:
    • on busy: the callback action is triggered when the called party is busy (CCBS)
    • on no reply: the callback action is triggered when the called party does not answer (CCNR)
  • Prompt:
    • 'Play confirmation prompt on success': Play the confirmation prompt 'thank-you' in case the callback is successfully activated.
    • 'Do not play confirmation prompt on success': Do not play the confirmation prompt. Implement the auditive success confirmation through subsequent call flow actions.
  • Check caller devices before callback:
    • Delay callback until primary and secondary caller devices are not busy.
    • Do not delay callback: This option can be activated for example, if the call waiting is activated in the user call flows.
  • If the 'loop' output is activated, when the calling request an autorecall to the called, the call ends in loop without activating the callback

Example of use

This action is typically used when an internal extension is busy (does not answer). In the case of an internal call , an IVR action can ask if the caller desire a callback on busy (no reply). If the caller wants a callback, the action AutoRecall is called with the proper Callback type.

Base64Encode

BeginSub

Description (v2.2.0)

INFO Retrieve named parameters in subcallflow
INFO Named parameters: [namedParameters]
INFO Mandatory parameters: [mandatoryParameters]

Target Audience

This is a technical action meant to be used only by experimented service creators, not the end customer.

Action parameters

  • Mandatory params: Mandatory parameters needed for the SubCallflow. These variables are available in the SubCallflow with the prefix sub.
  • Local vars: Define the variables used in the SubCallflow These variables will be prefixed with sub.

The BeginSub is the first action of a SubCallflow called by a GoSub action. The mandatory parameters are compared to the input parameters defined in the GoSub action >= 2.0.0. If one mandatory parameter is not found in the input parameters, the subcallflows will fail and the ${missing_parameter} variable is set. This mechanism ensures compatibility between subcallflow and its parent callflow.

All the variables used in a SubCallflow must be declared in the BeginSub action as an input variable or as a local variable.

Example of use

1st case:

  1. Parent callflow: SetVar Action
    • TestVar1=value1,TestVar2=value2,TestVar3=value3,TestVar4=value4
  2. Parent callflow: GoSub Action
    • input parameters=TestVar1&TestVar2&TestVar3&TestVar4
  3. First action in the subcallflow: BeginSub Action
    • mandatory parameters=TestVar1&TestVar3
    • local variables=TestLocalVar1&TestLocalVar2

choice-yes The variables definition is correct and local variables "subTestVar1" and "subTestVar3" are set with values "value1" and "value3" respectively. The variables TestLocalVar1 and TestLocalVar2 can be changed in the SubCallflow without side effect on the other callflow.

2nd case:

  1. Parent callflow: SetVar Action
    • TestVar1=value1,TestVar2=value2,TestVar3=value3,TestVar4=value4
  2. Parent callflow: GoSub Action
    • input parameters=TestVar1&TestVar2&TestVar3&TestVar4
  3. First action in the subcallflow: BeginSub Action
    • mandatory parameters=TestVar1&TestVar5
    • local variables=TestLocalVar1&TestLocalVar2

choice-no The variables definition is not correct and the "missing_parameter" variable is set with the value "TestVar5".

Limitation

warning The BeginSub action must be used in conjuction with the GoSub action >= 2.0.0.

Busy

Description (v1.05)

INFO This action sends a busy signal to the caller.
INFO Send Answer to channel: [Answer]
INFO Hangup channel after [Timeout] seconds.

Action parameters

  • Answer: If set to yes, answer the call and force the SOP to play the Busy Tone, if set to 'no' and if the Timeout is set to 0, the SOP does not answer and send the busy condition in the signaling.
  • Timeout: If not set to 0, Play the busy tone during the indicated time

Example of use

When trying to call a device or extension, it can occur that the device or extension is busy. In that case one of the next actions can simply be to play a busy sound. This can be accomplished by using this action.

CallDevices

Description (v1.33.0)

INFO Call a list of devices.
INFO If the call is not answered before the timeout is expired, the call is sent to the "Timeout Extension".
INFO If all devices are busy, the call is sent to the "Busy Extension".
INFO Timeout: [timeout] seconds
INFO Device 1: [device_1]
INFO Device 2: [device_2]
INFO Device 3: [device_3]
INFO Device 4: [device_4]
INFO Device 5: [device_5]
INFO Device 6: [device_6]
INFO Device 7: [device_7]
INFO Device 8: [device_8]
INFO Timeout extension: [extension_timeout]
INFO Busy extension: [extension_busy]
INFO Record the call: [record]
INFO Filename: [filename]

Action parameters

This action calls a list of devices simultaneously.

  • If the call is not answered before the timeout is expired, the call is sent to the "Timeout Extension". Note that if qualify is enabled for this device and the device is currently "UNREACHABLE", the action will also exit through "timeout".
  • If all devices are busy, the call is sent to the "Busy Extension".

This action use the DialAsteriskOption reserved global parameter.

  • Record the call allows you to record the call or not (on the sop).
  • Filename is the file that will contain the recorded call.
  • Hook when answered allows to start a callflow when the call is answered. To use variables in this callflow from the original callflow you must set them with a leading underscore (_)
    • example: SET _MyCallerId = ${CALLERID(num)}

Example of use

This action allows you to call for example all phones of your support team.

CallDevicesByExtension

Description (v1.12.1)

INFO 1. Call the primary devices behind the indicated extensions during [timeout] seconds
INFO 2. If the call is not answered go to [extension_timeout]
INFO 3. If all devices are busy go to [extension_busy]
INFO Timeout: [timeout] seconds
INFO Extension 1: [ext1]
INFO Extension 2: [ext2]
INFO Extension 3: [ext3]
INFO Extension 4: [ext4]
INFO Extension 5: [ext5]
INFO Extension 6: [ext6]
INFO Extension 7: [ext7]
INFO Extension 8: [ext8]
INFO Extension 9: [ext9]

Example of use

This action comes in very handy if you would like to call the primary phone attached to an extension directly. It allows you to bypass the extension's callflow and call the primary device directly.

CallExtensions

Description (v1.7.0)

INFO This application calls multiple extensions simultaneously.
INFO If none of the extensions answers before a particular "Timeout", the call is sent to the "Timeout Extension"
INFO If all the extensions are busy, the call is sent to the "Busy Extension"
INFO Timeout: [timeout]
INFO Extension 1: [ext1]
INFO Extension 2: [ext2]
INFO Extension 3: [ext3]
INFO Extension 4: [ext4]
INFO Extension 5: [ext5]

Example of use

Use this action if you would like to call a group of extensions simultaneously without the need to create a group or queue. Remember that this action will call the extensions and trigger the attached callflows. If you prefer to bypass the callflows and call the phones directly, please use the CallDevicesByExtension action.

CallInterface

Description (v1.15.3)

INFO Call the specific interface.
INFO If the call is not answered before the timeout is expired, the call is sent to the "Timeout Extension".
INFO If the interface is busy, the call is sent to the "Busy Extension".

Action parameters

  • Description: Free description to describe the goal of the action instance within the call flow
  • Number to dial: Number which will be dialed by the interface(s)
  • Interface 1..4: This action implements a hunt group of up to 4 interfaces (Interface 1 to Interface 4)
  • Hunting Mechanism: The hunting mechanism can either be
    • 'Linear': the order of the interface is preserved, or
    • 'Random' the order is taken randomly
  • Timeout: Each interface will be called during a certain timeout. (infinite if empty)
  • Caller ID policy:
    • Translate (previously "As set in Global Parameter"): Update the caller id using the information from Outgoing Number Mapping (callerid_[caller id] global parameters)
    • Transparent: Do not change the caller id
    • Hide: Hide the caller id. The caller ID is set to '00' and the caller presentation indicates the caller ID as a private number
    • Clear RDNIS: RDNIS (Redirected Dialed Number Information Service) is mainly used on ISDN interfaces. The normal way is that when a call is redirected through a phone set call forwarding, the RDNIS will be the initial caller id. Fore some reasons, some provider does not support RDNIS (example: BASE mobile provider). This feature enables to clear it. (available on version 1.3 or higher)
    • CLIR: CLIR stands for Calling Line Identification Restriction. On an ISDN line this will set the CLIR flag in the outgoing SETUP in order to ask the network to keep the Caller ID private, except for the emergency services and billing services. In SIP, it will add the Privacy header in order to indicate that the provided caller ID must remain private. When used together with the 'Translate' mode, this will make sure that a proper caller ID is always provided to the remote network. If the callerid_[caller id] is empty, the PrivateAssertedIdentityNumber will be used instead in order to set the Caller ID.

This action has 3 exits:

  • Congestion:
    • If one of the interfaces is congested, the following interface in the list is called.
    • If all the interfaces are congested, the action goes to the 'congestion' exit.
  • Busy:
    • If one of the interfaces is busy, the call goes to the 'busy' exit.
  • Timeout:
    • If the specified timeout expired during an interface call, the following interface in the list is called
    • If all the interfaces time out, the call goes to the 'timeout' exit

Dependencies

  • Global Parameters:
    • PrivateAssertedIdentityNumber : If this variable is set when the action is called, the callinterface action will use this number to send the privacy header in SIP invite message when the CLI must be masked. This can be requested by specific SIP providers (Example: Belgacom NGN SIP trunk). (Only used in version 1.3 or higher)
    • MaximumCallDuration : If this variable is set, the call duration will have the correspondant maximum dureation. (Only used in version 1.3 or higher)
    • DialInterfaceOption : If this variable is set, the corresponding dialing option will be used. (For example, 'r' for forcing ringback tone by the PBX, 'm' to play music during ringback, ...)
  • Actions:
    • MapNumber 1.16+ : When CallInterface is used in an outgoing callflow, you should use at least this version of MapNumber. Otherwise the call history of basic/advanced reporting and net.Desktop will be incorrect.

Example of use

This action is mainly used to organize a specific routing mechanism for outgoing calls (extra cluster routing) and should be used within an outgoing call flow (see application notes for more details).

For example, if you need to route 120 simultaneous calls to a certain destination among 3 different Voice-Over-IP gateways taking care each gateway has the same load, you can use this action by:
  • Creating 3 SIP interfaces to the 3 VoIP gateways.
  • Creating an outgoing call flow which use the CallInterface action with the 3 interfaces. (Choose random hunting mechanism)
  • Create an external route to this outgoing call flow. (See Outgoing call flow application note)

Remark: It is not advised to use a CallInterface action within an incoming call flow because the routing mechanism to route incoming calls to internal extension should be implemented by the intra-cluster routing mechanism in order not to hard-code interfaces involved in the routing.

Integration Notes

Ring tone

By default the ring tone is the ring tone of the network. If you have a ring tone issue it is possible to force the SOP to play the ring tone. This can be done by adding a SetVar action in the callflow with the following parameters:
  • Variable: DialInterfaceOption
  • Value: ${DialInterfaceOption}r

The Dial option 'r' will indeed force this ring tone

NAT and firewall traversal

When a call is coming from a SIP trunk and sent back to this SIP trunk due to a callforward to an external number, often audio issues are encountered. In order to force the NAT or the firewall to open a door, the ring tone can be force via the option 'r' in the DialInterfaceOption.

Shared trunk and IMS trunk

When a trunk is shared by several organizations, the proper caller ID is to be provided in the outgoing number mapping page in order to always set the right caller ID. If a number is to be hidden, this is to be handled in a callflow. The privacy status can be stored in a profile parameter and used in an outgoing callflow in order to call the action CallInterface with the caller ID policy 'Translate - Set CLIR'.

This way of working is also recommended for an IMS trunk.

From version 1.10, if the parameter 'Send Caller Id method' defined in the SIP interface is set to 'Use P-Asserted-Identity', the caller ID and the caller Presentation of the current call will be used in order to create the header. The host defined in the P-Asserted-Identity will be the gateway defined in the SIP interface. If you work in this way, it is recommended to remove the global parameter 'PrivateAssertedIdentityNumber' which won't be used any more.

Phone based call forwarding

Version 1.10.2 removed a legacy feature which is no longer supported. If you were setting a phone based call forward to an external number and you were using an outgoing callflow to the PSTN, you have to modify the outgoing callflow to maintain this legacy behaviour. You have to add a few actions to your callflow:
If($[$["${CHANNEL:0:5}" = "Local"] & $["${LastUserExt}"!=""]])
 |
 | True: SetVar(CALLERID(num)=${LastUserExt})
 |  |
 |  | Redirect (<extension of false>)
 | 
 | False : <Rest of the previous callflow>

CallOperatorConsoles

Description (v1.02)

INFO Call a list of devices and trigger operator console.
INFO If the call is not answered before the timeout is expired, the call is sent to the "Timeout Extension".
INFO If all devices are busy, the call is sent to the "Busy Extension".
INFO Timeout: [timeout] seconds
INFO Device 1: [device_1]
INFO Device 2: [device_2]
INFO Device 3: [device_3]
INFO Device 4: [device_4]
INFO Console 1: [console_1]
INFO Console 2: [console_2]
INFO Console 3: [console_3]
INFO Console 4: [console_4]
INFO Timeout extension: [extension_timeout]
INFO Busy extension: [extension_busy]

Action Parameters

ERROR! This action is deprecated and should not longer be used. Please upgrade your Operator Console to net.Console.

Examples of use

ALERT! This action has been especially designed to allow the triggering of the Escaux Operator Console (OC). The Escaux OC is the predecessor of the net.Console and is deprecated. Therefor this action will soon be deprecated also.

CallService

Description (v1.3)

INFO Apply intra-cluster routing and call an extension. Call parameters are also transfered to the remote SOP and can be read via InitService
INFO The destination extension [Extension].
INFO The primary SOP on which the extension is located [Sop1].
INFO The secondary SOP on which the extension is located [Sop2].
INFO The call parameter 1 [Parameter1].
INFO The call parameter 2 [Parameter2].
INFO The call parameter 3 [Parameter3].
INFO The call parameter 4 [Parameter4].

Action parameters

This action enables to apply the intra-cluster routing to the current call taking into account the extension, the primary SOP and the secondary SOP provided in input.

Call parameters can also be sent to the remote SOP. Nevertheless only SIP is currently supported for the transport of such call parameters.

  • Extension: the extension where the call is to be sent
  • Sop1: the first SOP where to try to send the call
  • Sop2: the second SOP where to try to send the call
  • Parameter 1: the first call parameter to be sent to remote SOP
  • Parameter 2: the second call parameter to be sent to remote SOP
  • Parameter 3: the third call parameter to be sent to remote SOP
  • Parameter 4: the fourth call parameter to be sent to remote SOP

Example of use

It is possible to develop a service which enables to check personal voicemail from any phone of a cluster.

This service prompts the user for its language and its mailbox extension. Via the action GetExtensionInfo, the primary and secondary SOP of this one can be discovered. It is then possible to route the call to this SOP via the action CallService. The extension and language provided by the user can be sent to the remote SOP in order to prevent to prompt twice the request to get them. The action InitCall needs to be inserted at the beginning of the callflow in order to extract the call parameter provided in the CallService. Finaly the action VoicemailMenu is used to provide access to the right mailbox in the right language on the right SOP.

ALERT! Note: If the service is known as local, a Redirect to the service can also be done, this will prevent the creation of a new call and extra Local channels.

CallUsersByGroup

Description (v1.23.1)

INFO 1. Call one or several groups during [timeout] seconds
INFO 2. If the call is not answered go to [extension_timeout]
INFO 3. If all devices are busy go to [extension_busy]
INFO First group to call: [group1]
INFO Second group to call: [group2]
INFO Third group to call: [group3]
INFO Timeout: [timeout] seconds

Action parameters

This action calls a list of devices simultaneously.

  • If the call is not answered before the timeout is expired, the call is sent to the "Timeout Extension".
  • If all devices are busy, the call is sent to the "Busy Extension".
  • Maximum 20 devices in total of all groups.

Hook when answered (version 1.24+)

  • This will start a callflow when one of the member answer the call. To use variables in this callflow from the original callflow you must set them with a leading underscore (_)
    • example: SET _MyCallerId = ${CALLERID(num)}

Example of use

Use this action when you want to route calls to a group of users.

CheckDate

Description (v1.4.1)

INFO This action routes an incoming call as a function of time, day and month.
INFO If the current time falls within the defined time window, the call is routed to "extension_ok".
INFO If the current time falls outside the defined time window, the call is routed to "extension_nok".
INFO Start Hour: [start_hour]
INFO Stop Hour: [stop_hour]
INFO Start Day: [start_day]
INFO Stop Day: [stop_day]
INFO First day of the month: [start_day_of_the_month]
INFO Last day of the month: [stop_day_of_the_month]
INFO Current month: [month_of_the_year]

Action parameters

  • Start Hour, Stop Hour: the hours are expressed in a 24 hours scheme, i.e. 8AM is 08:00, 3PM is 15:00, midnight is 00:00
  • Start Day, Stop Day: any day of the week, expressed as mon, tue, ..., sun
  • First day of the month, Last day of the month: any day of he month, expressed as an integer 1 ... 31
  • Current month: month, expressed as Jan, Feb, ..., Dec. Use '*' to select ANY month

Example of use

The following configuration implements standard office hours:

  • Start Hour: 09:00
  • Stop Hour: 18:00
  • Start Day: mon
  • Stop Day: fri
  • First day of the month: 1
  • Last day of the month: 31
  • Current Month: *

... and it should be read as follows:

If the current time is between 09:00 (9 AM) and 18:00 (6 PM), the current day is a weekday (mon-fri), the day is any day of the month and the month is any month of the year, then the 'ok' extension is triggered.

Date & time check in detail

Each called CheckDate action will perform a sequence of checks to determine if a call falls within the determined range. If one of the checks returns a negative result, CheckDate will send the call to the 'nok' branch. In more detail:

  1. Does the call happen during the chosen Current Month? If so, move on. If not, go to the 'nok' branch.
  2. Does the call happen during or after the chosen First day of the month AND during or before the chosen Last day of the month ? If so, move on. If not, go to the 'nok' branch.
  3. Does the call happen during or after the chosen Start Day AND during or before the chosen Stop Day ? If so, move on. If not, go to the 'nok' branch.
  4. Does the call happen during or after the chosen Start Hour AND during or before the chosen Stop Hour ? If so, move on. If not, go to the 'nok' branch.

CheckDeviceAvailability

Description (v1.5.2)

INFO Check if a devices is idle, busy or unregistered.
INFO If the device is idle go to 'extension_idle'
INFO If the device is busy go to 'extension_busy'
INFO If the device is unregistered go to 'extension_unregistered'
INFO Device to check: [Device]

Example of use

Phone has often the possibility to accept several concurrent calls Use this action if you would like to disable this feature by using this action before actually calling the device. This action can also be used to see if the phone is registered, it can be handy to detect that a phone which use the PUM feature is not logged on or that a soft phone is not registered.

Note that the action will exit through "busy" if qualify is enabled on the device and the device is currently "UNREACHABLE".

CheckFMUonUEPDeviceAvailability

Description (v1.0.0)

INFO Check if a devices is registered or unregistered.
INFO If the device is registered go to 'extension_idle'
INFO If the device is unregistered go to 'extension_unregistered'
INFO Device to check: [Device]

  • Device - Resource name that is connected on the UEP.

This action checks if the FMU is currenly registered or not on the UEP.

CheckHoliday

Description (v1.2.0)

INFO An incoming call will be routed depending on the day.
INFO If the current time falls within the defined holiday list, the call is routed to "holiday".
INFO If the current time falls outside the defined holiday list, the call is routed to "noholiday".
INFO Holiday list 1: [Holiday list 1]
INFO Holiday list 2: [Holiday list 2]
INFO Holiday list 3: [Holiday list 3]
INFO Holiday list 4: [Holiday list 4]
INFO Holiday list 5: [Holiday list 5]

Action parameters

  • Holiday list 1 to Holiday list 5: A global parameter of the 'String' type which must contain dates in one of the following formats:
    • DDMM (day from 01 to 31, month from 01 to 12) prefixed and postfixed by a dash (the '-' character).
    • DDMMYYYY (day from 01 to 31, month from 01 to 12, year from 0000 to 9999) prefixed and postfixed by a dash (the '-' character).
A global parameter must not contain more than 255 characters. If more dates are needed than can be fit in 1 parameter, please create a second global parameter.

Example of use

This action allows you to define multiple lists simultaneously. We can benefit from this by keeping the fixed dates and the moving dates separate.

Fixed dates always occur on the same day each year. Example:
  • The first of January, indicated in the parameter by '-0101-'
  • The twenty fifth of December, indicated in the parameter by '-2512-'

Moving dates don't always occur on the same day each year, and must be defined including the year. Example:
  • Easter Sunday, indicated in the parameter by '-23032008-12042009-04042010-24042011-08042012-' and so on. This particular list will cover all Easter Sundays from 2008 to 2012.

If we want to apply these examples to a real life setup, we'll start by defining 2 global parameters of the type 'String' with names of your choice. The value of the first global parameter will contain all 'fixed' dates. The second global parameter will contain moving date. Example:
  • holiday_fixed will be set to '-0101-2107-1508-0111-1111-2512-'
  • holiday_moving will be set to '-23032008-12042009-04042010-24042011-08042012-11052008-31052009-23052010-'
Next, we will assign 'holiday_fixed' to 'Holiday list 1' and 'holiday_moving' to 'Holiday list 2' in the action. When this action is triggered by a call, it will check if the current date matches a date defined in 'holiday_fixed' or 'holiday_moving'. If the action determines that the call happens during a holiday, we can play a message informing the called that the offices are closed. If not, we'll call the receptionist.

Fixed dates and moving dates can also be combined in 1 global parameter, although this is not recommended as it increases management complexity. Example:
  • holiday_all set to '-0101-2107-1508-0111-1111-2512-23032008-12042009-04042010-24042011-08042012-11052008-31052009-23052010-'

Maintaining

  • Fixed dates are easy to define: Once defined, no changes are necessary.
  • Moving dates change each year and should be revised from time to time to make sure that they are still correct.

CheckMediaLinkCongestion

Description (v1.00)

INFO This action counts the number of channels in a call group.
INFO The site code of the caller [CallerSite]
INFO The site code of the called [CalledSite]

Action parameters

  • CallerSite: Site code of the caller
  • CalledSite: Site code of the called

CheckPincode

Description (v1.2)

INFO The caller is asked to enter a pincode followed by #. After 3 wrong attempts, the call is disconnected.
INFO If the pincode entered by the caller is equal to [pincode] the call is forwarded to the 'ok' extension.

Action parameters

  • Pincode: this can be any sequence of integers

Example of use

Use this action to authenticate a caller, for example before entering a conference room, before accessing a DISA, ...

CheckResourceGroupAvailability

Description (v1.4.2)

INFO Check if a group of resource are available or not. If the resource is a SIP peer, it will check if this one is registered and replies to the SIP options
INFO List of resources separated by an ampersand: [Resources]
INFO None of the resources are available or healthy: [extension_nok]
INFO At least one resource is available and healthy: [extension_ok]

Action parameters

  • Resources: This is an ampersand (&) separated list of resources that should be checked. e.g. SDP40001&SDPA0001

CheckValues

Description (v1.0.0)

INFO Check the value of a parameter and set it to a default value if the value is invalid

Action parameters

  • Variable: The name of the variable that should be checked
  • Allowed values: A dash (-) separated list of allowed values
  • Default value: The value that should be set if an invalid value is used

Example of use

A user is asked to enter a number from 5 to 8 by DTMF. The system should verify if the input from the user is correct (allowed values = 5-6-7-8 ). If the input is not correct, it can be set to the default value

Remarks

  • Empty values are always refused

Congestion

Description (v1.01)

INFO This action sends a congestion signal to the caller.
INFO Send Answer to channel: [Answer]
INFO Hangup channel after [Timeout] seconds.

Action parameters

  • Answer : send the answer signal before sending the congestion signal
  • Timeout : Hang up the call after [timeout] seconds

Example of use

  • Send the congestion signal

CreateTemporaryDevice

Description (v1.0.0)

INFO Create a device based on a number and a trunk. Useful to call CallDevices action.

DeleteDatabaseTree

DialOnDevices

Description (v1.12.1)

INFO Dial a number on a device.
INFO If the number cannot be dialed, redirect the call to busy, timeout, congestion or unreachable extension".

Action parameters

  • timeout : Number of second calling with the device before going to the 'timeout' output. Indicating nothing means infinite timeour
  • device : Endpoint abstraction which is selected to dial the number.
  • number to dial : Number which is dialed
  • outgoing call to the destination detection : If set to 'yes', go to 'not allowed' output if there is no new incoming channel which:
    • have a variable DialOnDevicesOutgoingCallNumber set to the number to dial.
    • and have a variable DialOnDevicesOutgoingTimestamp set to the UNIX timestamp corresponding to the time the DialOnDevices is executed with a margin of 'dial time'.
  • dial time : maximum time needed between the time the number is dialed and the time there is an effective outgoing call .
  • Enable DTMF based call transfer: Default: Yes. If set to 'Yes', the DTMF based call transfer will be enabled on the second call so that the call on the first line can be transfer to the call on the second line.
  • FallbackOnly: Set to 'no' if you want DialOnDevice to try the first IP of the End Point Abstraction interface. Set to 'yes', if you want to try to call directly the second IP. This is useful if you test a trunk before hand in order to know if the destination IP is reachable or not. In this case you do not need to activate the SIP qualify on each End Point Abstraction interface.

Example of use

  • This action is often used when creating a Network Abstraction Gateway

Specific variable

  • The variable DialOnDevicesRestrictTransfer is a flag which when set to 'yes' restricts the transfer capability when pressing '*'. From the version 1.12.0, this variable is not required any more. This is directly controlled by Action itself via the parameter 'Enable DTMF based call transfer'.

DirectedCallPark

Description (v1.2.0)

INFO This application sends the calling party to a park slot and stores the resulting park slot in a global variable. [parkslot_for_xxx] where xxx is the extension
INFO extension: [Ext]

Action parameters

  • extension: extension for which the call is parked.

Example of use

  • DirectedCallPark is a callflow action which parks the current call to a park slot and stores the parked slot in a dedicated global parameter 'parkslot_for_xxx' where xxx is an extension indicated as a parameter.
  • This dedicated global parameter can then be retrieved by another call flow in order to retrieve the park slot.
  • Please refer to the DirectedCallParking application note

DISA

Description (v1.3.0)

INFO This action provides a dialtone to the user and lets him dial an internal extension.
INFO The list of extensions that can be called is restricted by the [RestrictionGroup] Restriction Group.

Action parameters

This action provides a dialtone to the user and lets him dial an internal extension.

  • RestrictionGroup: the calling user is placed in the restriction group of your choice. As a result the administrator can control which destinations can be called by the caller, for example only internal destinations.

ALERT! If no RestrictionGroup is specified it will default to the disa Restriction Group, which by default does not contain anything.

Example of use

  • The DISA can be used to provide external callers direct access to your internal users without having to assign a public phone number for each internal extension.
  • Sales people having to make international phone calls from their mobile phone can first of all call the company's DISA and then call the international number from within the context of the company PBX. This greatly reduces the Mobile to International phone bill.

DisableCDR

Description (v1.0.0)

INFO This action will prevent the generation of a CDR at the end of the call.

Echo

Description (v1.0)

INFO This action plays back to the user what he says. The purpose is only to test the voice transmission.

Event

ExecuteCallflow

Description (v1.1)

INFO Strip N digits from the dialed number
INFO Force the callflow to be used instead of the status of the user
INFO Remove a number of leading digits: [Digits to strip]
INFO Callflow: [Callflow]

Action parameters

This has been replaced by MapNumber Please use MapNumber instead

This action strips of the specified number of digits from the dialed number. It then set the callflow to be used by StartDynamicApplication instead of the user 's status. The marker used to set callflow to be used is compatible with the SIP intra and extra-cluster routing. This means that if the action marks the call with a special callflow and then the call is routed to another SOP, the remote SOP will detect the marker and will launch this one.

Parameters:

  • Digits to strip: Remove a number of leading digits
  • Callflow: Callflow to use

Example of use

This action can for example be used to call an extension through the TogglePhone callflow.

ExtendedCallDevices

Description (v1.21.1)

INFO Call a list of devices.
INFO If the call is not answered before the timeout is expired, the call is sent to the "Timeout Extension".
INFO If all devices are busy, the call is sent to the "Busy Extension".
INFO Timeout: [Timeout] seconds
INFO Device 1: [Device 1]
INFO Device 2: [Device 2]
INFO Device 3: [Device 3]
INFO Device 4: [Device 4]
INFO Device 5: [Device 5]
INFO Ringing options: [Ringing options]
INFO Transfer options: [Transfer options]
INFO Use global options: [Use global options]
INFO Timeout extension: [extension_timeout]
INFO Busy extension: [extension_busy]

Action parameters

  • Timeout: The timeout in seconds
  • Device 1 to 5: The devices to be called
  • Ringing options: You can choose to play music instead of the default ringing tone or force the PBX to play a ringing tone (Use network ringing tone by default)
  • Transfer options: Here you can allow the caller, called or both to transfer using a special key. (Disabled by default) See "Blind transfer key" parameter in the Asterisk-1.2x or Communication Server module.
  • Use global options: Wether to use global options defined in the DialAsteriskOption reserved global parameter (default yes)

ExtensionExists

Description (v1.0.0)

INFO This action checks if a given extension exists in a given context
INFO In case the LARGE_INTERNAL_DIRECTORY flag is set, the lookup will be done in the database
INFO If it is not set, the built-in asterisk command VALID_EXTEN will be used
INFO Extension: [Extension]

Action parameters

  • Extension: The extension that needs to be checked
  • Context: The context in which the extension needs to be checked

Limitation

  • only works starting from Communication server 2.X
  • In case a large internal directory flag is set, the lookup will be done in the database instead of using the built-in asterisk function
  • In case of database lookups, ranges are not supported (ex: 26860909 will not match on _2686090X)
  • In case of database lookups, the exact configured route group or restriction group needs to be given (ex: When checking if an extension exists in the RestrictInternal restriction group (which contains the internal routeGroup) but the extension has been configured in the internal routeGroup, the result will be 'not found')

ForEach

Description (v1.2.3)

INFO This action iterates over a list of values ([ValueListVariable]) separated by a [Separator].
INFO The [InstanceVariable] is set with the current value (first position equals 0)

Action parameters

This action iterates over a list of values separated by a given separator. The action will exit to a 'do' output if the last position in the list is not reached. The action will exit to a 'end' output if the last position in the list is reached.

In order to loop in the Foreach, a Redirect action must be used.

Starting at version 1.2.0, it is possible to enter the same ForEach action multiple times. The new implementation implies the following facts:
  1. A Redirect action version 1.6.0 or higher must be targeted directly on the ForEach action for the iteration to continue.
  2. That Redirect action must be a child of the ForEach action.
This corresponds to the intuition that "The loop continues while a child Redirect node returns to it". Otherwise, ForEach restarts at the beginning of the list.

Parameters:

  • List Variable: Variable which contains the list of 'Separator'-separated values to iterate over.
  • Instance Variable: Variable which will contain the current list value in the 'do' branch.
  • Separator: List Separator

ALERT! When using a semicolon separator, make sure that you properly escape the ";" characters in the global parameter editor. e.g. "1\;2\;3". Otherwise the communication server will discard any characters after and including the first semicolon.

Example of use

This action can for example call sequentially a list of numbers separated by a semicolon:

ForeachExtension

Description (v2.1.0)

INFO Iterate over all extensions having a given profile and status
INFO Assign the extension to the variable given by [extension]
INFO Store iterator handle in variable given by [iterator]
INFO You must redirect back to this action to do the next iteration
INFO Iterator: [iterator]
INFO Extension: [extension]
INFO Profile: [profile]
INFO Status: [status]

Action parameters

This action has the same behavior as GetExtensions and ForEach combined together.

This action retrieves one extension at the time based on the following logical expression:

  • If (Key1 Operation1 Value1) [AND/OR] [(Key2 Operation2 Value2)] [AND/OR] [(Key3 Operation3 Value3)].

ALERT! Limitations and known issues:
  • When looking up for extension in the imported contacts, you cannot use the login key.
  • It is not possible to use a ForeachExtension within a ForeachExtension.

Example of use

This action can for example be used to retrieve all extensions of an office and put all devices of the office in a specific queue.

Example:
  • (Office = Dev) AND (Department = Engineering)
  • (First name = John) OR (Last name = Smith)

The action provides 2 possible outcomes. The next outcome is called while results are available, somewhere in this branch you should redirect to the ForeachAction to fetch the next result. When no more results are available the done outcome is called.

ForkCDR

FormatNumber

Description (v1.5.1)

INFO Convert phone number to a format defined. The result is given in the variable named NUMBER_x_FORMATTED where x is the digit of the number in the field. eg: "Number 1" the output value is in the variable NUMBER_1_FORMATTED.
INFO Type of format in output [Address format]
INFO International Call Prefix [International Call Prefix]
INFO Trunk Prefix [Trunk Prefix]
INFO Contry Calling Code [Contry Calling Code]
INFO National number length. The format must be the lowest value before the highest value and separate with : [National number length]
INFO Number to format [Number X]

Action parameters

This action enables to standardize the format of some numbers. The input format is detected in an heuristic way.

  • Address format: Output format of the number. Set to 'to E.164 international format' to have the E.164 format with the country code. Set to 'to E.164 national level' to have the national part of the E.164 format
  • International call prefix: The prefix used to indicate national call. Typically '00'.
  • Trunk prefix (previously Dial plan: The prefix to be used to indicate national call. Typically '0'. If set to empty, it will be computed based on the Country Calling Code. Some countries such as Italy and Spain do not use any Trunk prefix.
  • Country Calling Code: The prefix of the local country. For example '32' for Belgium.
  • National number length: The minimum and maximum length of a national number separated by a semicolon. For example '8:9' for Belgium.
  • Number [n]: The number to be formatted. The formatted number will be stored in the variable NUMBER_[n]_FORMATTED.
  • International prefix: The prefix to be added in case of international call. Typically this is set to '+'. The formatted number which includes the prefix is stored in the variable NUMBER_[n]_FORMATTED_PREFIX.
  • Validation: Enable to ignore the + received in the number. On some network (mobile roaming), incoming call for an extension are prefixed with an extra +.

Other references:

GetCallInfo

Description (v1.1)

INFO This action fetches call information.
INFO The result is stored in variables prefixed by "Call", such as CallIntraCluster

Action parameters

There are no actions parameters.

Additional information

The information related to the current call is provided in the following variables (currently only one variable is available):
  • CallIntraCluster: If set to 'yes' the call is an intra-cluster call coming from another SOP of the cluster. Limitation: This detection mechanism only works when the link between 2 SOPs is established using SIP.

Example of use

This action can be used when a callflow needs to differentiate between a call which is
  • coming from another SOP or
  • coming from an external gateway

Example: For calls within the cluster, don't play a welcome message in the beginning of the call.

GetCountryCode

GetDigit

Description (v1.6.2)

INFO This application asks the caller to enter a series of digits and terminate by pressing the pound key (#).
INFO The entered digits are stored in the variable of your choice.
INFO Audio prompt played to the caller: [message].
INFO Variable in which the digits are stored: [variable]
INFO Wait [timeout] seconds between each digit.
INFO Until [digit_length] digit are entered.
INFO Repeat the message [attempts] times before going to timeout .

Action parameters

This action plays a message to the caller and asks the caller to enter a series of digits and terminate by pressing the pound key (#). After a maximum acceptable number of digits or after a timeout, the entered digits are stored in the variable of your choice.

filename -- file to play before reading digits. maxdigits -- maximum acceptable number of digits. Stops reading after maxdigits have been entered (without requiring the user to press the '#' key). option -- may be 'skip' to return immediately if the line is not up, or 'noanswer' to read digits even if the line is not up. attempts -- if greater than 1, that many attempts will be made in the event no data is entered. timeout -- if greater than 0, that value will override the default timeout.

Read should disconnect if the function fails or errors out.

  • Audio prompt played to the caller: this is a value from a list of audio prompt
  • Variable in which the digits are stored: here you enter the name of your variable which can be used later in the callflow
  • Timeout: amount of seconds before the string is stored. If left emtpy, the default value is used. This timeout is also used as inter digit timeout.
  • Attempts: The number of times the message will be repeated before going to 'next'.
  • digit_length: After this amount of digits, the value is stored automatically. If the default value 0 is used - no limit - the vaue will be stored after pressing the '#' key. Max accepted value is 255.

Example of use

This action can for example be used to ask the caller for its customer number. With this customer number, a lookup can be done in your corporate databases or CRM system (using the GetXPath action) in order to route the call to associated Account Manager or Project Manager.

GetEndPointAbstraction

Description (v2.1.1)

INFO Retrieve the EndPointAbstraction based either on MSISDN or on the remote peer.

Action parameters

An EPA (Endpoint Abstraction) has the following important parameters:
  • The CLI: The MSISDN of the mobile phone it make the abstraction.
  • The Remote Peer: The peer it emulates (make the abstraction) in the Communication System (IP/PABX)

This action enable to retrieve an EPA based either on the MSISDN, either on the Remote peer.

  • End Point Abstraction variable:Name of the variable which will store the End Point Abstraction found.
  • End Point Abstraction remote entity variable:Name of the variable which will store the correspondent Remote entity (or remote peer)
  • End Point Abstraction Caller ID:Name of the variable which will store the correspondant Caller ID (MSISDN).
  • Caller ID key:MSISDN which is the key for the search of the EPA
  • Remote entity key: Remote peer which is the key for the search of the EPA

If remote entity key is not set, the search will be on the MSISDN key. If the remote entity key is set, the MSISDN key will contain the MSISDN

GetExtensionInfo

Description (v1.7.1)

INFO Fetch properties of an extension from the DB and put it in Ext* parameters.
INFO The extension who's directory content should be stored: [Extension].
INFO Lookup for contacts in: [Lookup contacts in].

Example of use

This action can be used to retrieve all directory information for a specific extension. The resulting information will be stored in Global Parameter of the form: Ext[Attribute].

Example: ExtAdmin, ExtGroup, ExtPincode etc...

Please refer to the Global Parameter reference guide for more information.

As of version 1.4 the profile parameters are also retrieved and available. They are prefixed with the 'Ext' keyword. Thus a parameter called 'ForwardExtension' would be accessible using 'ExtForwardExtension'. The value of the profile parameters will only be accurate when you are executing this action on SOP1 and SOP2 of the extension.

As of version 1.5 you are also able to fetch contents from the imported contacts. Note that profile parameters are not available because they do not exist from imported contacts. On the other hand, the 10 user vars that are imported are available using variables ExtUser1, ExtUser2, ExtUser3, (...), ExtUser10

Restrictions

  • Version 1.1 add the support of ExtNetapp. This is the net.X application related to the owner of the extension. Remark that the specific case where the owner of the extension has several net.X application is not yet supported.
  • Version 2.0 removes the support of ExtNetapp.

GetExtensions

Description (v1.41)

INFO This action gets all extensions from the directory where the following logical expression is met:
INFO If (Key1 Operation1 Value1) [AND/OR] [(Key2 Operation2 Value2)]
INFO The result is stored as a comma separated list of extensions in the variable: Result
INFO Note: use double quote to indicate strings value.
INFO Key1: [key1]
INFO Operation1: [operator1]
INFO Value1: [value1]
INFO AND/OR? : [coordination1]
INFO Key2 : [key2]
INFO Operation2 : [operator2]
INFO Value2 : [value2]
INFO Order : [order]
INFO Result : [result]
INFO Max : [max]

Action parameters

This action retrieves a comma separated list of extensions based on the following logical expression:

  • If (Key1 Operation1 Value1) [AND/OR] [(Key2 Operation2 Value2)] then add the corresponding extension in the list.

ALERT! Limitations and known issues:
  • In version 1.3 and lower, quotes had to be added while specifying value1 or value2. These one must be removed when migrating to a version 1.4 or higher.
  • When looking up for extension in the imported contacts, you cannot use the login key.
  • The match operator can only be used with keys home_number and mobile_number
  • If the match operator is used for both the operator 1 and the operator 2, the coordinator 1 must be OR

Example of use

This action can for example be used to retrieve all extensions of an office and put all devices of the office in a specific queue.

Example (version lower or equal to 1.3):
  • (Office = "Dev") AND (Department = "Engineering")
  • (First name = "John") OR (Last name = "Smith")

Example (version 1.4 or higher):
  • (Office = Dev) AND (Department = Engineering)
  • (First name = John) OR (Last name = Smith)

Example (version 1.8 or higher): If a entry contains a route in the home_number such as "_328879.", the match operator can be used.
  • home_number match "32887954"

GetHashParameter

GetLastCdr

Description (v1.0.1)

INFO Get the last CDR info according to this criteria
INFO Come from [Caller number] number
INFO Done after [Start time window]
INFO and before [End time window]
INFO to this number [Called number]

Action parameters

The parameters are :
  • The caller number
  • The number called
  • The time window (begin and end) which will be considered

The action will set two parameters :
  • LastDevice : The device which answered the call
  • LastDate : The date and time when the call took place

Example of use

  • It can be used with the "preferred device" parameter in the queue, to be sure to always be in contact with your last agent in a queue.

GetPresenceState

GetProfileParameter

GetRedirectingInformation

Description (v1.1.0)

INFO This action call an interface and get information formatted in the forwarding channel received by a 302.
INFO Primary Interface [Interrogation Interface 1]
INFO Secondary Interface [Interrogation Interface 2]
INFO Hangup channel after [Timeout] seconds.
INFO Number to dial [CalledNumber]
INFO List of ISUP cause to catch (Q.165) [List of ISUP cause to catch]

GetResourceInfo

GetSiteFromIP

Description (v1.2.1)

INFO Retrieve the site given an IP address

Action parameters

  • IP address: This action retrieves site information given an IP address based on the data entered in the SMP (site and network form). Indicate in this field the IP address. (Example: 10.0.1.10)
  • Site Variable: Indicate here a variable where you want to store the site name. This variable will be empty in case there is no site which match the given IP address.
  • User Attribute Variable 1..4: In the site form of the SMP, it is possible to indicate per site up to 4 attributes. Indicate here where you want to store the attributes for the given site. These variable will be empty in case there is no site which match the given IP address.

This action has only one exit:

  • next: go to the next action in the callflow.

Dependencies

  • This action needs to at least SMP version 4.8 when used on a standalone or active/standby SOP.
  • In case you need to use the User Attribute variable. You also need to install the module "Database Schema" version 1.16.

Example of use

  • This action can be used for example in order to implement emergency service based on the IP address. Use ${SIPCHANINFO(recvip)} in order to retrieve the IP address.

GetSiteFromName

Description (v1.0.0)

INFO Retrieve the site given a name

GetStoredMessageHistory

GetTranslation

Description (v1.0.2)

INFO This action fetches a translation from the database
INFO The given string should have an exact match in the database
INFO If no exact match is found, the initial string will be used
INFO String: [String]
INFO Result: [Result]

Action parameters

  • String: the text that needs to be looked up in the translation database
  • Language: the language that should be used for the translation
  • Result: The parameter in which the result should be stored. In case no match has been found, this will contain the initial string

Limitation

This only works on Communication server 2.X

GetUnseenStoredMessages

GetVoicemailInfo

GetXpath

Description (v2.0.2)

INFO Get an XML page and set variables to corresponding Xpath values

Action Parameters

  • Url: URL of the Web Service. Don't forget to URL-encode reserved characters when applicable.
  • Variable 1: name of the global variable in which the 'Xpath 1' result will be stored
  • Xpath 1: path to 'Xpath 1' variable within your XML result
  • Variable 2: name of the global variable in which the 'Xpath 2' result will be stored
  • Xpath 2: path to 'Xpath 2' variable within your XML result
  • Variable 3: name of the global variable in which the 'Xpath 3' result will be stored
  • Xpath 3: path to 'Xpath 3' variable within your XML result
  • When multivalue result return XPath queries can return multiple values, this option allows you to choose how to present the data. If first is selected, only the first result of the set will be returned, if last is selected only the last result of the set will be returned, if all is selected, then all the values will be returned.
  • Variable name for RAW body: returns the full body of the page queried. It can be usefull to get documents that aren't formatted in XML.
  • Timeout: timeout used when making the Xpath request. The default is 5 seconds.
  • Separator: A string used to concatenate the results when multivalue result return is set to all. Default is a dash (-).

Return Values

  • GetXPathError: This variable is set by GetXPath to indicate whether the HTTP request succeeded.
Code Meaning
0 Success
1 Success, but response was empty
2 HTTP Error (404, 500, ...)

Example of use

GetXPath is a callflow action which allows you to send HTTP requests to any XML Web Service server and store the XML information results in a global variables for further use within the current or other callflows.

Remark: XPath is a standard. See the following link for more information: https://www.w3schools.com/xml/xpath_syntax.asp

Route incoming calls to the right helpdesk agent.

  • A user calls your helpdesk
  • An IVR system asks the user for his current ticket number, assuming that he previously received a ticket number from your Trouble Ticket system
  • This ticket number, for example 1006545, is stored in ${TicketNr}
  • The GetXPath action sends an HTTP request to your Trouble Ticket system:
    • set 'Url=http://tickets.mycompany.com/getticketinfo.jsp?ticketnr=${TicketNr}'
  • The Trouble Ticket server returns an XML reply

<TicketInfo>
  <Number>1006545</Number>
  <Agent>The Big Lebowski</Agent>
  <Extension>624</Extension>
  <State>Open</State>
</TicketInfo>

  • We extract the agent's extension from the reply and store it in variable AgentExt
    • set 'Xpath 1=//TicketInfo/Extension[1]'
    • set 'Variable 1=AgentExt'
  • From this point on, you can use ${AgentExt} anywhere in your callflow

Goto.APPLICATION

Goto.BRI

Goto.DefaultOut

Goto.INTERFACE

Goto.PRI

Goto.VOIP

Description (v1.00)

INFO This action makes a call on a VoIP provider removing the leading 0.
INFO Remark: For a given extension, this action uses the callerid indicated in the global parameters list which has the name callerid_[extension].
INFO Example: If in the global parameter list the parameter callerid_103 exists and has the value 27888003, an outgoing calls for the extension 103 will present the number 27888003
INFO IP address of the VoIP gateway.
INFO Login credential for the VoIP account.
INFO Password credential for the VoIP account.

GotoExtension

Hangup

Description (v1.4)

INFO This action terminates a call.
INFO If the technology supports it, a redirect number can also be provided.
INFO Force to answer the call before hanging up
INFO Number where the remote party needs to be redirected: [RedirectNumber]

Action Parameters

  • Force to answer the call before hang up: If set to yes (default), answer the call if the call is not answered.

Remark: The advantage of forcing to answer the call is to easily cover all signaling scenarios. However, pay attention when you answer a call, this call is often charged by the operator.

HTTP

If

Description (v1.6.1)

INFO This action performs a logical operation on one or two variables and branch the call to the true or false extension
INFO The following logical expression will be checked: if((Variable1 Operator1 Value1) Operator3 (Variable2 Operator2 Value2))
INFO If Operator3 is unspecified, only if(Variable1 Operator1 Value1) is evaluated
INFO Variable1: [Variable1]
INFO Operator1: [Operator1]
INFO Value1: [Value1]
INFO Variable2: [Variable2]
INFO Operator2: [Operator2]
INFO Value2: [Value2]
INFO Operator3: [Operator3]

Action parameters

The following logical expression is evaluated: if ( (Variable1 Operator 1 Value1) Operator3 (Variable2 Operator 2 Value2) )

  • Variable1 and Variable2: select a global variable which should have been created first via the global parameter management
  • Operator1 and Operator 2: select the comparison operator
  • Value1 and Value2: this is the value that is to be compared to the value of the selected variable
  • Operator3: either, 'and', 'or' or 'only evaluate first expression'. If 'only evaluate first expression' is selected, then the following logical expression is evaluated: if ( Variable1 Operator 1 Value1 )

Example of use

This action is used to perform conditional routing inside a callflow. For example compare the caller id with a particular value and as a result only accept calls from a particular phone.

InitService

Description (v1.00)

INFO Initialize profile parameter and call parameters
INFO Fetch profile parameters from database: [Fetch profile parameters]

Action parameters

When used, this action is the first action of a callflow. It enables to extract call details such as the call parameters provided by the RouteCall action. It also initializes all the properties of the called extension (LastUserExt, LastUserSop1...) and the profile parameters.

  • Fetch profile parameters: set to 'Yes' if you want to use profile parameters

Intrude

Description (v1.2.0)

INFO This action intrude into a call.
INFO Call identifier: [Channel]
INFO Mode [Bridged Channel]
INFO Not Found Extension: [extension_nok]

IVR

Description (v2.1.0)

INFO The caller is confronted with an Interactive Voice Response application (IVR) and is asked to enter a single digit via the DTMF keypad.
INFO If '1' is pressed, 'selection1' is executed, if '2' is pressed, 'selection2' is executed, ... .
INFO If the user does not press any key within 3 loops of the IVR, 'selectionUndefined' is executed.
INFO An invalid choice will cause the IVR message to repeat itself.
INFO Before the caller can make his choice, he or she will hear the [message] message.

ManageEndPointAbstraction

Description (v2.0.1)

INFO Enable to perform action on End Point Abstraction like register, de-register

Action parameters

  • action:
    • DisableAll: disable all registration of the End Point Abstraction remote peers.
    • EnableAll: enable all registration of the End Point Abstraction remote peers

ManageMidCallflowTriggering

Description (v1.0)

INFO This application enables the dynamic feature option for this channel
INFO It allows to trigger a callflow during a call on one or the two channels.
INFO This is which channel is allowed to activate this feature.
INFO This is the channel of the call that the application will be executed on.
INFO This is the context to use.
INFO This is the extension or the callflow to branch on.

Action parameters

  • Activated by: This is which channel is allowed to activate this feature. The "caller" is the channel that executed the Dial application, while the "callee" is the channel called by the Dial application. "Both" means that both channels are allowed to activate this feature.
  • Activated on: This is the channel of the call that the application will be executed on. "self" means run the application on the same channel that activated the feature. "peer" means run the application on the opposite channel from the one that has activated the feature.
  • Context: The context to use. If the context is not specified the call will be sent to the default context.
  • Extension: The extension or the callflow to branch on.

ALERT! Important note:
  • If your callflow executes this action, the RE-INVITE on the call will automatically be disabled in order for the Communication Server to be able to capture the DTMF.
  • While the configured channel is redirected to the other extension or callflow, the other channel is muted, so the user won't hear anything during that time.

MapDDI

Description (v3.1.7)

INFO This action prefixes in incoming call with a zero (for easy callback)
INFO and sends the call to a corresponding Internal Extension
INFO Internal Extension: [internal_extension]

MapNumber

Milliwatt

MoveVoicemailMessage

PageDevices

Description (v1.4.0)

INFO Page a list of devices.
INFO If the device is in conversation. The device is not paged.
INFO Device 1: [device_1]
INFO Device 2: [device_2]
INFO Device 3: [device_3]
INFO Device 4: [device_4]
INFO Device 5: [device_5]
INFO Device 6: [device_6]
INFO Device 7: [device_7]
INFO Device 8: [device_8]
INFO Device 9: [device_9]
INFO Device 10: [device_10]
INFO Device 11: [device_11]
INFO Device 12: [device_12]
INFO Device 13: [device_13]
INFO Device 14: [device_14]
INFO Device 15: [device_15]
INFO Device 16: [device_16]
INFO Device 17: [device_17]
INFO Device 18: [device_18]
INFO Device 19: [device_19]
INFO Device 20: [device_20]

Example of use

PageDevices will act as a queue configured in ringall: all configured devices will be called. The difference with a queue is, when someone picks up the call, the other phones will not stop ringing and can pick up too.

Technically, it is a conference room that is configured in one way speech: whenever someone picks up the phone, he will be added to the conference room (he will be added muted: not possible to talk)

To implement an intercom, you could use the action SetRingtone to force auto answer on the phone, followed by PageDevices: All called phones will pick up automatically on speaker and will broadcast whatever you say.

Park

Description (v1.1.2)

INFO Park the call and optionally announce it to an extension
INFO The extension is supposed to point to a device which is in Auto Answer mode
INFO The extension rings during timeout seconds and the extension to call hears the concatenation of prompts.
INFO A specific Parked Extension prompt play the parking extension which must be called to retrieve the call
INFO Timeout: [timeout]
INFO First prompt: [prompt_1]
INFO Second prompt: [prompt_2]
INFO Third prompt: [prompt_3]
INFO Fourth prompt: [prompt_4]
INFO Latest prompt: [prompt_5]
INFO Extension to call: [announce_ext]
INFO Return extension: [extension_return]

PauseQueueMember

Description (v1.1.0)

INFO This action pauses a device in a specific queue.
INFO The queue [Queue] (if no queue specified, the device will be paused in all queues)
INFO for device [Device] (if the device is unspecified, the calling device will be paused in the queue).

Action parameters

  • The queue: if no queue is specified, the member will be paused in all queues
  • The device: if no device is specified, the calling device will be used

Example of use

  • This action allows you to pause a queue member in 1 or all queues

Pickup

Description (v2.3)

INFO This action pickup a channel identified by a channel variable and its value.
INFO channel variable name: [PickupVariableName]
INFO channel variable value [PickupVariableValue]
INFO Not Found Extension: [extension_nok]

Action parameters

This action has two input parameters:
  • PickupVariableName: the channel variable to use to find the ringing call
  • PickupVariableValue: the value of the channel variable to be given to find the ringing call

Examples of use

Example 1- Pickup an extension in the same group than the caller:
  • Do a GetExtensionInfo of '${CALLERIDNNUM}'. The group of the caller is available in ExtGroup variable.
  • Do a Pickup with PickupVariableName set to 'LastUserGroup' and PickupVariableValue of ${ExtGroup}

Example 2- Pickup an extension in the same office than the caller:
  • Do a GetExtensionInfo of '${CALLERIDNNUM}'. The office of the caller is available in ExtOffice variable
  • Do a Pickup with PickupVariableName set to 'LastUserOffice' and PickupVariableValue of ${ExtOffice}

PlayPrompt

Description (v1.3.2)

INFO Up to five audio messages will be played before being routed to "next".
INFO When the audio message can't be found, the call is routed to "missingprompt".
INFO Message 1: [message1]
INFO Message 2: [message2]
INFO Message 3: [message3]
INFO Message 4: [message4]
INFO Message 5: [message5]
INFO Send Answer to channel: [Answer]

Action parameters

  • Message 1 to Message 5 : A parameter of type 'Prompt' which contains a reference to an audio file.
  • Answer : answer the call. In some case it is necessary to set this option to yes in order to avoid a hangup

Example of use

This action allows you to play one or more "prompts", which are audio files, before continuing to the next action.

It can be used to play a welcome message when a somebody calls the main number of a company. Afterwards, another action such as one to call multiple phones can be used.

If one of the selected prompts cannot be found, the call will go to the missing_prompt branch. It is recommended to always handle this situation to avoid having a call being dropped due to non-existing audio file.

PlayText

Description (v1.00)

INFO Play a text using text-to-speech a specific voice.
INFO Text: [text]
INFO Voice: [voice]

PlayVariable

Description (v1.3.1)

INFO The caller hears the content of a variable before being sent to the next action.
INFO Play [Value]
INFO As type [Type]

PlayVoicemailGreeting

PlayVoicemailMessage

PrintMessage

Description (v1.0.0)

INFO Print a custom message in the Communication Server console.

Example of use

Sometimes, having a description per action in the callflow editor is not enough as it won't necessarily show the description in the Communication Server console. Using this action, a custom message can be shown in the console, aiding in debugging complex callflows.

ProbePost

Description (v1.0.0)

INFO Send information to the SNMP agent to monitor the current callflow
INFO Nagios status [Status]
INFO Message reported [Message]
INFO Value used for plot the graph in Nagios [Graph value *]

Action parameters

  • Status: status to report on monitoring system (OK, WARNING, ERROR or UNKNOWN)
  • Message: Message reported
  • *Graph value * *: Value used for plot the graph in the monitoring tool

This action posts these information in database such that monitoring tool can get them. An heavy execution is raised during the action process, so the run must not be on every call. We advice to use a variable with conditions to not enter on this action every time and so to decrease this heavy execution (i.e. use of profile parameters).

Example of use

This action is useful to monitor call flows.

ProxyCall

Description (v1.0)

INFO Request the proxy to route the call to a list of devices.
INFO If the call is not answered before the timeout is expired, the call is sent to the "Timeout Extension" via the "Resume Extension" number.
INFO While the call is routed by the proxy the call context is stored and need to be explicitely resumed via the ResumeCall action.
INFO Therefore if the "Timeout Extension" is used, this one has to be link with a call flow where the "ResumeCall" action is called in order to restored the call context.
INFO Timeout: [timeout] seconds
INFO Device 1: [device_1]
INFO Device 2: [device_2]
INFO Device 3: [device_3]
INFO Device 4: [device_4]
INFO Device 5: [device_5]
INFO Device 6: [device_6]
INFO Device 7: [device_7]
INFO Device 8: [device_8]
INFO ResumeExtension: [resume_call]
INFO Timeout extension: [extension_timeout]

Queue

Description (v2.0.0)

INFO This action queues the caller while calling the members of the queue
INFO Calls are sent into the [Queue name] queue.
INFO They will remain in the queue for [Timeout] seconds.
INFO If the call has already entered [Maximum loop limit] times in the queue, it will go to the 'limitreached' output.
INFO Set the "Play Ringtone or Music to caller" variable in order to play a ringtone or music on hold to the caller.
INFO You may decide to exit the queue after the retry time.
INFO If set, the queue will try to ring this device first : [Preferred device]
INFO If set, a service is called when the parties are connected.

Action parameters

  • Queue name: Route the call in this queue.
  • Timeout: The maximum time the call should stay in the queue. Note that the call can leave the queue while trying to locate a free member or while ringing a member. However, when the timeout occurs during a 'Retry' period (See Queue resource), the call will exit the queue only after the retry period. Exception on the timeout logic: See 'Exit after retry'.
  • Maximum loop limit: Maximum number of times the call is allowed to pass through this queue.
  • Play Ringtone or Music to caller: The caller can be presented with an ordinary ringtone or with music on hold while waiting for a member to accept the call.
  • Exit after retry : When set to 'no' (default), the queue will keep trying to locate a free member if the first one did not take the call. When set to 'yes', after waiting turn, only one available member will be tried and the call will then leave the queue at the latest after the 'Member ringing time' and 'Retry time' defined in the Queue resource, potentially disregarding the Timeout set in the action configuration.
  • Preferred device (action version >= 1.05) (useless for a ringall strategy) : When set, will first try to make this device ring.
  • Connecting service (action version >= 2.0): When set, a callflow is called when the calling and called parties are connected to each other (= a call is picked up by a member of the queue). The callfow has access to a number of variables about the call, the member of the queue who has taken the call as well as global information about the Queue. See the "Connecting Service" section below for more information.
  • Queue rule: The Queue Rule to apply to incoming calls. This will override any default Queue Rule set in the Queue resource.

Extra options with the QueueOptions parameter

ALERT! These options are case sensitive and are only available in Queue action >= 1.8.0!

  • C: Mark all calls as "answered elsewhere" when cancelled. This avoids a missed call on the phone if it supports it. ALERT! This option depends on the Communication Server module >= 2.0.0
  • I: Communication Server will ignore any connected line update requests or any redirecting party update requests it may receive on this dial attempt. ALERT! This option depends on the Communication Server module >= 2.0.0
  • i: Communication Server will ignore any forwarding request on this dial attempt
  • t: Allow the called user to transfer the calling user with a DTMF feature key (configurable in the Asterisk-1.2x and Communication Server module). Note that enabling this option will prevent any SIP ReINVITEs from occuring for this call.
  • T: Allow the calling user to transfer the call with a DTMF feature key(configurable in the Asterisk-1.2x and Communication Server module). Note that enabling this option will prevent any SIP ReINVITEs from occuring for this call.

To use these options, simply execute a SetVar action in your callflow for the QueueOptions parameter. e.g. to use options C and I, do a SetVar on variable QueueOptions, with value CI.

Action outputs

  • timeout (action version >= 1.03) or leave_queue (action version < 1.03) : This output will be triggered if the caller waits more or less [timeout] seconds. (see. Action parameters)
  • noavailablemember (action version >= 1.03): This output is triggered when there are "no member" in the queue. Please refer to the parameters 'Join when empty policy ' and 'Leave when empty policy' of the Queue resource for more informations about the various Queue behaviour.
  • limitreached: This output is triggered when the call was processed by the queue [max_limit] times.

Assigning priorities to callers

With a standard setup, each caller will be processed by agents on a FIFO basis (First In, First Out) meaning that the caller who has been waiting the longest will be handled as soon as an agent becomes available. Sometimes it is desirable to give specific callers a higher priority because they
  • Have called a high-cost number
  • Have called a high priority service
  • Are valued customers
  • ...

Assigning a priority to callers is simple. The queue will assign the value of QUEUE_PRIO to the caller. A higher value will result in the call being treated faster than a lower priority call, even if the high priority call arrived in the queue after the lower priority call.

The variable QUEUE_PRIO can be set with the action SetVar and should be an integer value between 0 and 100. If not set, the queue will assume priority '0'.

Using this value, in combination with the GetXPath action, we can utilize a powerful tool to query customer databases containing the SLA or sales volume of the caller when their telephone number is known.

Connecting Service

The following variables are available when using the Connecting Service feature:

  • About the Caller:
    • CID - The caller ID.
    • QEHOLDTIME - The caller's hold time.
    • QEORIGINALPOS - The original position of the caller in the queue.
  • About the Queue member:
    • MEMBERINTERFACE - The interface name (eg. Agent/1234).
    • MEMBERNAME - The member name (eg. Joe Soap).
    • MEMBERCALLS - The number of calls that interface has taken.
    • MEMBERLASTCALL - The last time the member took a call.
    • MEMBERPENALTY - The penalty of the member.
    • MEMBERDYNAMIC - Indicates if a member is dynamic or not.
    • MEMBERREALTIME - Indicates if a member is realtime or not.
  • About the Queue:
    • QUEUENAME - The name of the queue.
    • QUEUEMAX - Maximum number of calls allowed in the queue.
    • QUEUESTRATEGY - The strategy of the queue.
    • QUEUECALLS - Number of calls currently in the queue.
    • QUEUEHOLDTIME - Current average hold time.
    • QUEUECOMPLETED - Number of completed calls for the queue.
    • QUEUEABANDONED - Number of abandoned calls.
    • QUEUESRVLEVEL - Queue service level.
    • QUEUESRVLEVELPERF - Current service level performance.

Since the callflow runs on the called channel, channel variable from the caller channel (set before the Queue action) are not available unless inheritance is used (prefix variable name with underscore).

To access variables created or updated on the called channel later on from the caller channel (e.g. from a hangup handler) the function IMPORT(<called channel>,<variable name>) can be used. Usually as IMPORT(${BRIDGEPEER},<variable name>).

Steps to create a connecting service:

1. Create a callflow containing all actions that will use queue information. A notification can for example be sent to an API service using the member agent and the caller information. To achieve this, a callflow containing a GetXPath action needs to set up. An example URL could be: http://api-service.example.com/notifycall.php?queuename=${QUEUENAME}&membername=${MEMBERNAME}&callerid=${CID}

2. Terminate your callflow by a Return action. Without this action, the communication will stop after the Connecting Service call. The Return action does not require a return value.

3. Create a profile that will be associated to the callflow and create a callflow assignment with the previously created callflow

4. Create an extension in the Internal Directory that will be called when the queue member agent and the caller are connected.

5. Select the previously created extension in the Queue Action "Connecting service" field.

ALERT! Limitation: Be careful that the queue member and the caller are bridged once all the connecting service actions are finished. A time consuming action can delay the beginning of the communication.

ReceiveIM

RecordCall

Description (v1.2)

INFO The call will be recorded on the PBX in the filename which can be configured below.

More information

More information about call recording can be found in the Call Recording Application Note.

RecordPrompt

Description (v1.25.2)

INFO The caller is asked to record a prompt message.
INFO The caller hears: 'Press 5 to leave a message.' If the caller presses 5, he hears a beep before recording the prompt.
INFO The caller can stop the recording by pressing the pound (#) key.
INFO Optionally, the recording can immediately begin without the introduction message.
INFO The recorded prompt message is stored under the following file name: [message]
INFO The maximum recording duration in seconds: [maximumduration]

RecordVoicemail

RecordVoicemailGreeting

Redirect

Description (v1.6.1)

INFO This Action redirects a caller to another number.
INFO Number: [Number]
INFO Context: [Context]
INFO Limit: [Limit]

Action parameters

  • number: Number where to redirect the call
  • context: Context (Restriction Group or Route Group) where to redirect the call. If not specified, the call will be sent to the 'default' context.
    • For security reason, the default context is set to 'default'. This is suitable for most cases, except when redirecting to an outside contact not located on the SOP, such as a mobile phone. In that case, a specific context must be selected, such as 'NoRestrict'.
  • Limit: The maximum number of times a call can go through the branch on which this action is located. This option provides a way to prevent loops in callflows. By default there isn't any limit.

RemoveQueueMember

Description (v1.1)

INFO This action removes a device from a specific queue.
INFO The queue [Queue] will no longer accept calls
INFO for device [Device] (if the device is unspecified, it is the calling device which will be removed from the queue).

RequestInterfaceCallback

Description (v1.2)

INFO Request a callback on a specific interface.

ResumeCall

Description (v1.00)

INFO Resume call that has been redirected by proxy
INFO The call will automatically been resumed at the location of the serialization of the call + 101
INFO There is output of this action
INFO Timeout: [timeout] seconds
INFO Timeout extension: [extension_timeout]

Return

Description (v2.3.0)

INFO Return to the callee

Action parameters

  • Return value : This optional value will be available in a channel variable after exiting the subprocedure.

Usage

Return action version 2.2.0 or higher must be used when pairing with GoSub action 2.2.0 or higher.

Compatibility with internal gosub (including GoSub action lower than 2.2.0) is retained but only if there is not already a stack of newer GoSub actions.

Return value

When paired with a GoSub action 2.2.0 or higher, the return value will be available in the gosub_action_level${gosub_action_level}_retval variable. E.g at level 1 it will be gosub_action_level1_retval.

With internal gosub the GOSUB_RETVAL variable will be used.

ReturnPathEnforcement

Ring

Description (v1.1.0)

INFO Send a ringing tone to the calling channel and route the call to "next".

SendIM

Description (v3.0.1)

INFO This action sends a text to a resource.
INFO Text to be sent [Text]

Action parameters

This action has following input parameters:
  • Text: The text to be sent in the message
  • Body Variable: The name of the variable in which the body is available. The Text parameter will then be ignored

This action also support the out-of-band message such as SIP Message which is available with the Communication Server module 3. The following extra parameters are then available:
  • Caller Number: The caller number to be set in the message
  • Caller Name: The caller name to be set in the message
  • Device: The name of the device the message must be sent to
  • Called number: If the device is a Unified End Point or a trunk, the called number to which the message must be sent

SendMail

Description (v1.2.0)

INFO This actions allows you to send an email from within a callflow
INFO To address: [email_to]
INFO From address: [email_from]
INFO Email Subject: [email_subject]
INFO Email Body: [email_body]

More informations

  • Use only ASCII characters
  • All fields are mandatory, except Email body
  • You can make use of variables in any field. For example: if you want the callflow to send the e-mail to the e-mail address configured for the extension, use ${LastUserEmail}

How to send email to multiple recipients (minimum version 1.2.0) :

  • Use a comma separated list of email addresses
  • The comma have to be encoded before sending it to the action. You have two possibilities:
    1. manually separate the email addresses by
      %2C
    2. If the list comes from a profile parameter, use SetVar callflow action to encode your list with parameters like:
      • Varname: EmailList
      • Value: ${URIENCODE(${EmailList})}

SetAccountCode

Description (v1.1)

INFO This action sets the account code related to the current call used in order to generate correct accounting reporting
INFO Account Code: [Account code]

Account code length

When used in combination with Asterisk-1.2x or any version of Communication Server up to and including 3.2.x, the Account code can be up to 19 characters.

When used in Communication Server 3.3.x or higher, the Account code can be up to 255 characters. Note that this also requires Database Schema Module version 1.28.0 (or higher) or version 2.2.1 (or higher).

SetCallerID

Description (v1.7.3)

INFO This action changes the presentation of the caller's number.
INFO Change the caller's name presentation to: [Name]
INFO Change the caller's number presentation to: [Number]
INFO Set the presentation and screening indicator to: [Presentation and Screening]

Action parameters

  • Name: This optional field enables you to change the caller's name when the call passes through the action. When left empty, the caller name will not be changed.
  • Number: This optional field enables you to change the caller's number when the call passes through the action. When left empty, the caller number will not be changed.
  • Presentation and Screening: These options only impact communication that will pass over an ISDN channel
    • Presentation: In essence, this means 'Is the person who has been called allowed to see the callers number?'
    • Screening: In essence, this means 'What authority was used to verify that this is a genuine number?

Example of use

  • Name:
    • Result: The original caller name will be kept
  • Number:
    • Result: The original caller number will be kept
  • Name: Call to main number
    • Result: The caller name will be changed to "Call to main number". This is particularly useful if there is a cascade to other users: those users will immediately see that it isn't a direct call for them but rather a call to the main number that has been sent to them.
  • Name: EN - ${CALLERID(name)}
    • Result: The caller name will be changed to "EN - John Doe" (when John Doe calls). This allows the person accepting the call to know that the English speaking number has been rang and can greet the caller accordingly.

2 variables that are of particular use in this action are
  • ${CALLERID(name)} : Will contain the current caller's name.
  • ${CALLERID(num)} : Will contain the current caller's number.

SetChannelGroup

Description (v1.3.0)

INFO This action marks a call as belonging to a specific group and limits the number of simultaneous calls to that group.
INFO The [Name] of the group
INFO The [Max number of callers in this group]

Action Parameters

  • Name: The name of the group (mandatory)
  • Max number of callers in this group: The maximum number of callers for this group
    • Possible values: Any integer > 0
  • Category: If a channel needs to be tag in different group, a category need to be specified. Any string can be used. A counter will be maintained per channel group and category.

SetConnectedLine

Description (v1.0.0)

INFO This action changes the presentation of the callee's number.
INFO Change the callee's name presentation to: [Name]
INFO Change the callee's number presentation to: [Number]
INFO Set the presentation and screening indicator to: [Presentation and Screening]

Action parameters

  • Name: This optional field enables you to change the connected line name when the call passes through the action. When left empty, the connected line name will not be changed.
  • Number: This optional field enables you to change the connected line number when the call passes through the action. When left empty, the connected line number will not be changed.

Examples of use

  • Name:
    • Result: The original connected line name will be kept
  • Number:
    • Result: The original connected line number will be kept
  • Name: "Reception"
    • Result: The connectede line name will be changed to "Reception". This is particularly useful if there is a cascade to other users or if you call a queue. In case of a queue called "Reception", while calling you will see "Reception" displayed on your phone and when a receptionist answers, you will see the name of the receptionist who answered. In case of cascade, the name displayed on your phone will be updated.

Known limitations

When this is used before an action which contains neither Ringing or Answer (like Voicemail or Wait+music), asterisk will not have an opportunity to send the connected line update. The workaround is to add an explicit Answer action after SetConnectedLine.

Some phones do not support connected line updates as part of Ringing messages, adding an Answer action can help for these too.

SetLanguage

Description (v1.2.1)

INFO Set the language for the remaining actions of the callflow.
INFO Use the language [language].

How it works

The action enables setting the most suitable language for a call. The required argument for this action is a shortened version of the language. Example:
  • English: en
  • French: fr
  • Dutch: nl

If the action is executed, every message playing action (PlayPrompt, Voicemail, IVR, ... . ) following it will look for the message in a certain location on the filesystem of the SOP. The standard location is represented here by ~/ .
  • All custom English messages will be stored in ~/ .
  • All custom French messages will be stored in a subdirectory of ~/ , ~/fr to be precise.
  • All custom Dutch messages will be stored in a subdirectory of ~/ , ~/nl to be precise.

If the message is not found in the chosen language, the system will try to find the message in English in ~/ . If that location doesn't contain the message either, it is up to the message playing action (PlayPrompt, Voicemail, IVR, ... . ) to determine what is to be done.

Standard messages and custom messages

Most systems come with a standard set of messages in various languages. Custom messages can also be recorded. Standard messages and custom messages are stored in separate locations:
  • Standard messages: ~/
  • Custom messages: ~/prompt/

The approach to set the desired language remains the same: Only the language needs to be set, the relative location on the filesystem will be defined by the global parameter containing a reference to the message (or "Prompt").

Custom languages

This approach allows an administrator to record messages in any language required and to use them in a callflow, as long as the argument for this action matches the filesystem location.

Example of use

Play a standard message in French

  • Use SetLanguage with the 'fr' argument
  • Further in the callflow, use PlayPrompt with the '${agent-loggedoff}' argument.
    • The system will look for and play the message ~/fr/agent-loggedoff.* , which will be the message in French
    • If the message isn't found, it will look for and play ~/agent-loggedoff.* , which will be the message in English

Play a custom message in Dutch

  • Use SetLanguage with the 'nl' argument
  • Further in the callflow, use PlayPrompt with the '${main-number-greeting}' argument.
    • The system will look for and play the message ~/prompt/nl/main-number-greeting.* , which will be the message in Dutch
    • If the message isn't found, it will look for and play ~/prompt/main-number-greeting.* , which will be the message in English

SetMusicOnHold

Description (v1.1.0)

INFO Set the music on hold.
INFO Music On Hold [Music On Hold].

Action parameters

  • Music On Hold: Choose a MusicOnHold resource ID as defined in the Music On Hold Resource Manager (e.g. MME10004 (folder4))

Example of use

  • Use the SetMusicOnHold action in a callflow if you want different Music On Hold for different extensions. You can use a parameter in the Profile to define which Music On Hold should be used.

SetPresenceState

SetRedirectingInfo

Description (v1.2.1)

INFO This action changes the redirection information.
INFO Redirected number: [number]
INFO Redirecting reason: [reason]
INFO Set the presentation and screening indicator to: [Presentation and Screening]

Action parameters

  • Redirecting Number: Number of the device which caused the call forward
  • Reason: Type of forward which has been triggered
  • Presentation and Screening: Screening and presentation indicator to be used for the redirecting number
  • Original Called Number: The number which has been initially called
  • Privacy: Type of privacy to be used
  • Send network notification: Activate or deactivated the notification to the caller that call has been forwared

Examples of use

When doing a callforward to an external number one need often to add a SIP Diversion header which contains a PBX number. The redirecting number provided in the Diversion header will then be used by the Telecom Operator in order to screen and accept the call setup.

SetRemoteVar

Description (v1.1.0)

INFO Send a series of up to 10 variables to another host, through SIP or IAX channel
INFO Technology: [technology]
INFO Header Prefix:

Action parameters

  • Technology: Will you send the variable through a SIP or an IAX channel ?
  • Header prefix (for SIP): You can (partially) choose the name of the SIP header to be sent. The header's name will have the form X-<value of this field>-<name of the variable>. If you leave this field empty, the header will be named X-<the name of the variable>.
  • Variables: the list of variables you want to send.

Example of use

  • For SIP:
    • Set the variable with this action, with the Technology parameter set to "SIP".
    • The header will be named X-<the name of the variable> by default, or X-<value of the Header prefix field >-<name of the variable> if you have entered something.
    • You can fetch the variable's value on the other host by using a SetVar. In the "Value" field, enter something like ${SIP_HEADER(<the entire header name>)}. For example ${SIP_HEADER(X-foo)} if your variable is named "foo" and you leave the Header prefix parameter empty.

  • For IAX:
    • Set the variable with this action, with the Technology parameter set to "IAX".
    • The variable sent will have the same name.
    • You can fetch the variable's value on the other host by using a SetVar. In the "Value" field, enter something like ${IAXVAR(foo)} if the variable sent is named "foo".

SetRingTone

Description (v1.22.0)

INFO This application sets the bellcore ring tone which will be used by called IP phones..
INFO Bellcore ring type number: [ring_tone]

Action parameters

  • Ring Tone: This parameter requires the selection of a predefined parameter. The parameter value must be an integer. The available ringtones depend on the phone brand. See below. From version 2.22, if set to blank, the previously set ring tone is cancelled

Phone support

  • Cisco 7960,7940,7912 or 7905: Values 1 to 5 modifies the cadence of the ringtone.
  • Grandstream GXP2000: Values 1 to 3 modifies the ring tone. (Requires version 1.3 of Grandstream Support and version 2.3 of GXP2000 resource)
  • Polycom phones: See the Polycom Phone Support documentation for the available ringtones (Requires version 1.12 of the Polycom Support module and Polycom phone resources in version 3.0 or higher).
  • Aastra phones: See the Aastra Phone Support documentation for the available ringtones.

Examples of use

The action can be used to change the ringtone when dialing an IP phone. Although most IP phones offer the possibility to choose a custom ringtone, you can still override the default ringtone by using this action. The phone specific ringtone will then not be used anymore.

To implement an intercom, you can use the action SetRingtone to force auto answer on the phone, followed by PageDevices: All called phones will pick up automatically on speaker and will broadcast whatever you say.

SetSharedVar

SetVar

Description (v1.02)

INFO Set a series of up to 5 variables to a specific value

Remark

You can use the action to set or edit any variable but it is advised to manipulate only UserVar or AdminVar. See the Global Parameter Reference guide for the list of Reserved parameters, how to combine existing parameter values into new variables and other tips and tricks.

SipSetHeader

STARTAPPLICATION

STARTAPPLICATION.2.00

STARTAPPLICATION.3.00

STARTAPPLICATION.3.1.0

STARTAPPLICATION.3.2.0

STARTCONFIGAPPLICATION.1.0.0

STARTDYNAMICAPPLICATION

STARTDYNAMICAPPLICATION.2.00

STARTDYNAMICAPPLICATION.2.20

STARTDYNAMICAPPLICATION.3.1

STARTDYNAMICAPPLICATION.4.1

STARTDYNAMICAPPLICATION.4.10

STARTDYNAMICAPPLICATION.4.2

STARTDYNAMICAPPLICATION.4.3

STARTDYNAMICAPPLICATION.4.4

STARTDYNAMICAPPLICATION.4.5

STARTDYNAMICAPPLICATION.4.6

STARTDYNAMICAPPLICATION.4.7

STARTDYNAMICAPPLICATION.4.8

STARTDYNAMICAPPLICATION.4.9

STARTDYNAMICAPPLICATION.5.0

STARTDYNAMICAPPLICATION.5.1

STARTDYNAMICAPPLICATION.5.10

STARTDYNAMICAPPLICATION.5.11

STARTDYNAMICAPPLICATION.5.2

STARTDYNAMICAPPLICATION.5.3

STARTDYNAMICAPPLICATION.5.4

STARTDYNAMICAPPLICATION.5.5

STARTDYNAMICAPPLICATION.5.6

STARTDYNAMICAPPLICATION.5.7

STARTDYNAMICAPPLICATION.5.8

STARTDYNAMICAPPLICATION.5.9

STARTDYNAMICAPPLICATION.6.0

STARTDYNAMICAPPLICATION.6.1

STARTDYNAMICAPPLICATION.7.0

STARTDYNAMICAPPLICATION.7.1

STARTDYNAMICAPPLICATION.7.2

STARTDYNAMICAPPLICATION.7.3

STARTDYNAMICAPPLICATION.7.4

STARTDYNAMICAPPLICATION.7.5

STARTDYNAMICAPPLICATION.7.6

STARTDYNAMICAPPLICATION.7.7

STARTDYNAMICAPPLICATION.7.8

STARTDYNAMICAPPLICATION.8.0

STARTDYNAMICAPPLICATION.8.2

STARTDYNAMICAPPLICATION.8.3

STARTDYNAMICAPPLICATION.8.4

STARTDYNAMICAPPLICATION.8.4.1

STARTDYNAMICAPPLICATION.8.4.2

STARTDYNAMICAPPLICATION.8.4.3

STARTDYNAMICAPPLICATION.8.5.0

STARTFAXAPPLICATION

STARTFAXAPPLICATION.2.00

STARTFAXAPPLICATION.2.10

STARTFAXAPPLICATION.2.20

STARTFAXAPPLICATION.2.30

STARTFAXAPPLICATION.2.40

STARTFAXAPPLICATION.2.41

STARTFAXAPPLICATION.2.50

STARTFAXAPPLICATION.2.60

STARTFAXAPPLICATION.2.80

STARTFAXAPPLICATION.2.90

STARTFAXAPPLICATION.2.92

STARTFAXAPPLICATION.2.93

STARTFAXAPPLICATION.3.00

STARTFAXAPPLICATION.3.10

STARTFAXAPPLICATION.3.11

STARTFAXAPPLICATION.3.12

STARTMESSAGINGAPPLICATION.1.0

STARTNULLAPPLICATION

STARTNULLAPPLICATION.1.0.0

STARTRECURRENTAPPLICATION.1.01

STARTRECURRENTAPPLICATION.1.02

STARTRECURRENTAPPLICATION.1.03

STARTRECURRENTAPPLICATION.1.05

StoreMessage

Supervision

Description (v1.3.3)

INFO This action supervise a device.
INFO Name of the resource [Resource]
INFO Supervision mode [Options]

Supervision

Action parameters

  • Resource: name of the device that need to be supervised
  • Options:
    • Supervise: enable to hear the conversation
    • Supervise and whisper: enable to hear the conversation and talk to the supervised person without the other party of the converstation hearing it

Example of use

The steps of a typical supervision callflow are the following:
  • Control the access to the service via the CheckPinCode action.
  • Use GetDigits action to save the extension you want to supervise in a parameter. Choose an appropriate name for this parameter, for example "ExtensionToSupervise".
  • You can then use GetExtensionInfo to get the phone associated with this extension, for example ExtPrimaryPhone.
  • Finally the Supervision action can be used to supervise the right phone

Dependencies

  • Module Asterisk-1.2 v2.23+ (support of the whisper mode)

Important notes

tip To be able to supervise a phone, this one should not work in re-invite mode for which the voice is directly sent from one phone to another.

tip Prior to version 1.1, resource name had to be prefixed by the technology name, for example SIP/${ExtPrimaryPhone}}. This is not mandatory any more.

warning Be aware that listening to calls may be subject to freedom of information and privacy legislation in your jurisdiction. As a matter of professional practice you should know the terms under which it is lawful to eavesdrop on telephone calls. In most jurisdictions it is illegal to eavesdrop on a call without the knowledge of the participants.

Switch

Description (v1.2.0)

INFO This action switch to a specific call flow branch in function of the content of a variable

Action parameters

  • The variable that should be evaluated
  • The list of possible values in dash ('-') separated format

Example of use

  • To avoid nesting a lot of "if" statements, this action can be used
  • Limitations:
    • Maximum 9 values are allowed
    • If the input variable is empty, it will go to the 'default' output

Transfer

Description (v1.1.0)

INFO This Action redirects a caller to another number
INFO Number: [number]

Action parameters

  • The number the call should be transferred to

Example of use

  • This action is very similar to redirect, but instead of accepting the call and forwarding it, it will ask the other party to forward the call to the destination directly. This can be very useful if you forward a lot of calls externally. Instead of using 2 channels on your external trunk (one call in both directions), 0 channels will be consumed (the forward will be done on operator level)
  • ALERT! Attention:
    • Most operators do not support this
    • This is currently only supported on SIP
    • Your reporting might be incorrect because of this (the SOP doesn't know what happened to the call as the operator bridges it)

UnPauseQueueMember

Description (v1.1.0)

INFO This action unpauses a device in a specific queue.
INFO The queue [Queue] (if no queue specified, the device will be unpaused in all queues)
INFO for device [Device] (if the device is unspecified, the calling device will be unpaused in the queue).

Action parameters

  • The queue: if no queue is specified, the member will be unpaused in all queues
  • The device: if no device is specified, the calling device will be used

Example of use

  • This action allows you to unpause a queue member in 1 or all queues

Voicemail

Description (v1.16.0)

INFO This action asks the caller to leave a voicemail message in a particular user's mailbox.
INFO The caller hears the [message] prompt, asking him to leave a voicemail message. If this message is not indicated, a default message is played.
INFO This voicemail message is then stored in the mailbox of extension [mailbox].
INFO Using the language [language].
INFO Using the type of message (default = unavailable or busy) [type of message].
INFO Skip the playback of instructions for leaving a message to the calling party.

VoiceMailMenu

Description (v1.8.0)

INFO Connect to a voice mailbox.
INFO The voice mailbox number [Mailbox]
INFO Ask the admin pincode [Pincode check]
INFO Voicemail menu version [Menu version]

Action parameters

  • Timeout: Timeout in seconds for the maximum time before leaving the action through the timeout output
  • Minimum silence period: Minimum period of silence in milliseconds in order to leave the action trough the silence_Detected output
  • Menu version: default, lite or minimal

Voicemail User guides

Wait

Description (v1.4.0)

INFO This application pauses the current call before continuing.
INFO Pause: [timeout] seconds
INFO Play music while waiting: [play_music]

Copyright © Escaux SA