ICM version 4.1 onwards can support Expanded Call Context (ECC) Variables. After opening a session, and before using any ECC variables, the VRU must send a Register_Variables message to the ICM. The Register_Variables message contains a flag for each of the ten standard call variables and an optional list of ECC variable names.
The flags allow the VRU to select which call variables (CallVariable 1 through CallVariable 10) it wants to receive from the ICM. The VRU is initially assumed to have interest in all 10 standard call variables. The flags control only the sending of the call variable values from the ICM to the VRU.
Each ECC variable name has an associated tag value, chosen by the VRU, that is used to identify the variable in all later messages. Each ECC variable supplied contains a tag number and a string name. The tag number identifies the ECC variable in values to or from the VRU.
The Cisco ICM custom server allows you to register for to up to five ECC scalar variables and five ECC arrays using the Set_Call_Variables event. Using the Java interface, the custom server handles the sending and receiving of up to five array indices that are members of the ECC arrays. Although you can register for up to five arrays, you can choose how these five indices are spread amongst the arrays. For instance you could have five arrays, each with one index, or you might decide to have a single array with five indices.
Using the state table interface, the custom server handles the sending and receiving of up to 30 array indices that are members of the ECC arrays. Again, although you can register for up to 30 indices, it is your choice as to how they are spread amongst the arrays. For example, you could have five arrays, each with 6 indices, or you may choose to have a single array with 30 indices.
Having registered for these variables, you can then set and retrieve their values using the functions defined in this information. Note that many of the functions that send and retrieve data from the ICM interface allow the setting or retrieving of up to five array indices at a time. In order to exceed this limit for receiving data, and utilize a larger number of array indices, call the Retrieve_Index_Value function the appropriate number of times to retrieve all the required variables. In order to exceed the limit for sending data, utilize the New_Call_Extended and Run_Script_Result_Extended function calls to send the required array values.