Callboot consists of 11 programs written in C. There are also several Bash scripts and two Python scripts.
callboot.exe is the main program with the modem loop. It manages the modem, classifies calls, performs logging, initiates traces and files complaints. callboot.exe is started by Systemd at boot time.
callboot-info.exe prints information about a running configuration.
callboot-date.exe adds and subtracts dates. The program is needed because the Posix date commands is too anemic and too inconsistent across platforms. callboot-date.exe allows our Bash scripts work on Apple, the BSDs, OS X, Linux and Solaris.
callboot-import.exe imports bulk data into the whitelist, local blacklist and distributed blacklist.
callboot-list.exe prints information from the call log. The information includes row identifier, name, number, and date/time of a call. The program also details if the call was traced, and if FCC and FTC complaints were filed.
callboot-mdump.exe prints information about a modem attached to a serial or USB port.
callboot-report.exe files FCC and FTC complaints if Callboot misclassifies an incoming call. callboot-list.exe can be used to obtain the record's identifier.
callboot-scan.exe scans for modems on serial and USB ports.
callboot-test.exe tests some internal functions used by Callboot programs.
callboot-trim.exe performs database maintenance. The program removes records from the distributed blacklist if an entry is 120 days old. The program also prunes the database and recovers unused space.
fcc.py files a complaint with the FCC. callboot.exe starts a thread that runs the Python interpreter with the script as an argument. The script uses Selenium and Chrome browser to fill the complaint fields and submit the web form.
ftc.py files a complaint with the FTC. callboot.exe starts a thread that runs the Python interpreter with the script as an argument. The script uses Selenium and Chrome browser to fill the complaint fields and submit the web form.