Dial Actions are “commands” which tell Acrobits client what to do with the particular number. In Cloud Softphone, it’s possible to configure which dialAction will be performed when dialing the number by single-tap, long-press and 3D-touch on iOS devices which support it.
For example, you can configure the “call” button in keypad screen to do a SIP call for single-tap and cellular call on long-press, or show all available dial actions as a menu on single tap.
There are two kinds of Dial Actions. The Basic Dial Actions are hard-coded into the app and provide the elementary operations on the dialed number. Programmable Dial Actions can be defined by the user or provisioned by provider and may be used to control advanced PBX features or provide any other advanced functionality.
The table below lists the supported dial actions.
start a VoIP call. The video will be enabled based on the value in
autoSendVideo preference key.
start a voice-only VoIP call
start a VoIP call with video
dial the number via cellular network
triggers webCallback. Web service will be called with the given number and
an incoming call will be expected.
triggers call-through. In case a web service is defined, it will be asked for
access number and dial string, otherwise the preconfigured access number will
compose a new text message to the given number.
Opens an external browser with an URL defined in Account XML and passes the
number as a parameter.
shows a menu with all applicable dial actions for the given number.
this dialAction supports an additional argument with the list of dial actions
to be offered to the user. In case this list is empty or missing, the app shows
a menu with all programmable dial actions configured for the app. See Programmable
Dial Actions and the example XML below.
For “smart” contacts, Acrobits apps always prefer to make on-net call. This dial
action will force an off-net call to the PSTN number.
Programmable Dial Actions use Number Rewriting rules and conditions to define how is the given number or SIP uri going to be dialed. When the action is triggered, the rules may modify the number by adding special codes before or after, replace parts of the number, set flags like whether the call should be recorded by the app or not and which of the Basic Dial Actions should be used to actually do something with the number.
Programmable Dial Action should always resolve to some Basic Dial Action on a number which may be a modified version of
the original number. The most simple Programmable Dial Action would only have one
overrideDialAction rule (without
any condition) which sets the action to one of the Basic Dial Actions defined above.
Dial Actions may be provisioned by including a node
<dialActions> in provisioning XML. They can also be configured
at Cloud Softphone portal and set via Global External Provisioning.
The format of the XML is given below:
<dialActions> <dialAction id="recordCall"> <displayName> <value lang="cs">Nahrávaný hovor</value> <value lang="jp">記録されたコール</value> <value>Recorded Call</value> </displayName> <rewriting> <rule> <conditions/> <actions> <action type="overrideDialAction" param="autoCall"/> <action type="recordCall"/> </actions> </rule> </rewriting> </dialAction> <dialAction id="monitorCall"> <displayName>Monitor</displayName> <rewriting> <rule> <actions> <action type="overrideDialAction" param="autoCall"/> <action type="continue"/> </actions> </rule> <rule> <conditions> <condition type="doesntStartWith" param="#"/> </conditions> <actions> <action type="prepend" param="#11#"/> </actions> </rule> </rewriting> </dialAction> </dialActions> <dialAction id="custom1"> <displayName>custom1</displayName> <rewriting> <rule> <actions> <action type="overrideDialAction" param="customOptions"> <options>autoCall,recordCall,monitorCall</options> </action> </actions> </rule> </rewriting> </dialAction> </dialActions>
The dial action “custom1” can be assigned to a “dial action for long press” and when the user does a long press on a number, the app will offer a menu with three options - a simple autoCall plus the two custom action defined above.
The nodes which define Dial Actions must be named
dialAction and may have the following attributes:
Unique identifier of this dial action. When merging, the app will try to find a dialAction with the same id which is already stored in the app. If not found, the incoming dialAction is simply saved, otherwise it’s merged with the existing one.
The default action is
merge, which merges this dialAction with those already stored in the app. In case you specify
action=remove, the app will try to find stored dialAction with the same
idand if found, this dialAction will be deleted.
dialAction nodes are Mergeable XML key nodes, which have the usual attributes
priority. The following key nodes are supported:
This key node contains the name of dial action, as it will be shown to user. The content of this node is localizable; it is possible to provide multiple translations.
Some dial actions will need network connection, otherwise it doesn’t make sense to offer them to the user. Others will only work on a device with cellular call capability (like call-through based dial actions).
Possible values: <empty>,
gsm. If left empty, the condition will always show; otherwise it will show only
if network or cellular capability is detected.