Scriptable Feature Development
Scriptable features are features that can be expressed in a scripting language such as CPL. The VOCAL system supports new-feature development through CPL scripts.
What Is CPL?
The Call Processing Language (CPL) is a scripting language that describes and controls Internet telephony services that have been implemented on either network servers or User Agents. CPL scripts are normally simple and easy to edit. For more information about CPL, see RFC 2824.
CPL is limited because it was originally intended for end users to create their own scripts, in the same way that many people create web pages with HTML. The intention behind limiting CPL was to prevent regular users from overwhelming or crashing a shared server; however, the problem with this limitation is that it also prevents professional engineers from expanding out of the boundaries that CPL defines. The list of limitations is long—for example, there are no variables and no loops.
From the six features that we designed, only four of them include standard CPL language. For features such as Caller ID Blocking, we created our own proprietary tags. If we took these features and ported them to another softswitch that supported standard CPL, the scripts would fail.
So why did we choose to work with CPL rather than VoiceXML (http://www.w3.org/TR/voicexml), Tcl (http://www.sun.com/960710/cover), or some other scripting language? First of all, CPL and VoiceXML are not mutually interchangeable languages. CPL ...