Wiki: iCall

iCall Wiki Home


What is an iCall?

iCall – It’s like iRules for your configuration. No really, it is.

iCall is a Tcl based scripting framework that allows you to execute TMSH (TMOS Shell command-line interface) commands, along with the expected Tcl ones, to affect the configuration of a running F5 device. Tasks performed with iCall can range from automated responses to situations, such as generating a TCP dump on failover, to re-configuring network services real time, perhaps by executing an iApp to manipulate many settings with one control point. You can even adjust load balancing weights and behavior in real time, programmatically, based on health monitoring data, creating a truly self tuning environment. The possibilities with iCall are nearly as limitless as those already demonstrated by the vast iRules user base doing amazing things every day with the original Tcl based language from F5. With iCall you’re simply making device configuration changes, rather than affecting traffic directly in-line.

Whether you're looking for automation, data collection, highly customized, tunable behaviors based on multiple inputs or more, there's a decent chance that iCall can help you get there.

Implementing iCall

BIG-IP version 11.4 introduced the iCall event based automation infrastructure. Using iCall, you can gain control of your BIG-IP system configuration. iCall scripts make it possible for you to automate common tasks by reactively controlling BIG-IP system configurations using scripts that execute TMSH commands. These scripts can be made to run when changes in statistics cross a threshold, or on a scheduled basis, or when other processes raise events. This automation makes managing BIG-IP faster, more efficient, and predictable.

There are three components that make up an iCall: events, handlers, and scripts.

Component Description
Event Events occur when specific, configurable, pre-defined conditions are met. The events contain data that identify which TMOS object(s) have changed their state, as well as the nature of the changes. Events can be generated in a variety of ways.
Handlers Handlers initiate the scripts. You can set them up to run in 3 different ways:
* Triggered: reacting to a specific event
* Periodic: reacting to a timer
* Perpetual: running under the control of a daemon
Scripts Scripts perform the action you want to carry out by executing a sequence of tmsh commands.

Here's a simple example of how these three elements can interact. You define and publish an event that occurs when a certain iStats value (for example, the number of connections on a particular virtual address) exceeds a given threshold. That event triggers a handler subscribes (or listens for) that event. The handler launches a Tcl script the executes a tmsh command to add a new pool member.

As this example implies, iCall integrates well with iStats, which are user defined statistics that you can use to store things like counts, strings or rates for a device or configuration object. Check out the DevCentral iStat page for additional information on how iStats work.

Additionally, to simplify administration and maintenance, you can assemble all of the necessary components for a functioning iCall implementation into an iApp as is shown in several of the examples in the codeshare.

iCall scripts are part of the BIG-IP configuration. They can by loaded onto the system manually with TMSH, by deploying an iApp that sets up an iCall implementation, or by loading the iCall implementation from an external system via iControl.