The files found within in the FS directories can be divided into the base files, those files that enable CPL-to-C++ conversion, and related classes.
fs/base directory contains the following files:
Contains the FS’s main()
Contains a function for parsing the execution command line and global variables required by the FS
Derived from Builder; spawns threads to do the event processing and heartbeats; has a CallContainer to track current active calls
Called to retrieve system data, subscriber list, and CPL features from the Vocal Provisioning server
Points to the Start state of a state machine that was generated by parsing a CPL script
Stores information about a feature subscriber (incl/ FsFeature)
A map holding 0 or more FsUserDatas; this is a key data structure for the FS to look up its subscribers
Instantiated during runtime if it needs to track possible locations to proxy the call; also known as the locations set
Created for each call and stored in CallInfo; stores any information required for the duration of the call (for example, data pertaining to a feature or the state of a proxying)
fs/cpl directory contains the following files necessary to convert a CPL script into a C++ state machine:
Used by applications to interface to CPL. This calls CPLParser, CPLValidator, and CPLInterpreter.