When creating a Route Script you can also create an UI which is used to configure the script when it has been selected from within a Call Script.
To assist in building the API a number of standard Field types are provided.
TextArgField
A simple text field.
CheckboxArgField
CheckboxArgField(String label)
Displays a checkbox. Retrive its value using getArgAsBoolean(String label).
DropListArgField
DropListArgField(String label, Collection<String> values)
Label - Displayed adjacent to the drop list to incidate the lists purpose to the user. The label must be unique for this Route Script.
values - a collection of values which are to be displayed in the droplist.
AccountDropListArgField
AccountDropListArgField(String propertyName);
Displays a list of Accounts
HandsetDropListArgField
HandsetDropListArgField(String propertyName);
Displays the list of Handsets
You can get the Id of the selected handset by calling:
Long handsetId = getArgAsLong("Handset");
You can then get the Handset entity by calling:
Handset handset = getHandsetFromId(handsetId);
TrunkDropListArgField
TrunkDropListArgField(String propertyName);
Displays the list of trunks including a special trunk 'Internal' which is used to dial internal handsets.
Trunks are used with the dial() method however normally you should pass null to the dial() method as that allows it to use the appropriate Trunk Group. By using Trunk Groups you get least cost routing and failover.
You should only use a Trunk if you want to by pass Trunk Groups which should be a fairly rare occurance.