Skip to main content

SMS File Layout

The SMS subsystem was restructured to one-class-per-file (2026-07-03). Old monoliths (jethro-sms/src/sms.php, sms_cellcast.php, sms_smsbroadcast.php, templater.php) are BC loaders only.

Source directories

DirectoryWhat's there
jethro-sms/src/Pure layer: SmsProvider, SmsCapability, SmsStatus, decorators, value objects, HTTP, Result monad, statusline maths
jethro-sms/src/Providers/Concrete providers: FiveCentSmsV5Provider, CellcastSmsProvider, SmsBroadcastSmsProvider, FiveCentSmsV4Provider, TemplateSmsProvider
include/Jethro/Sms/Bridge value objects: JethroSmsRecipient, JethroSmsDelivery, JethroSmsDeliveryBatch, SmsRequestRecipients, SessionSmsCache, SmsStatusIcon
include/Jethro/Sms/Providers/Bridge decorators: DbLoggingSmsProvider, LocalBalanceSmsProvider
include/jethro_sms.phpBridge functions: getSmsProvider() factory, send pipeline, request parsing, UI rendering
calls/call_sms*.class.phpAJAX handlers: Call_SMS, Call_SMS_Info, Call_SMS_Cancel, Call_SMS_Balance, Call_SMS_SenderNum, Call_SMS_Statusline, Call_Admin_Statuspanel_Sms
resources/js/jethro-sms.jsSend flow, delivery polling, message-history filters
scripts/sms.phpCLI for all SMS operations
jethro-sms/tests/Pure-layer unit tests
tests/sms/Bridge-layer tests

Loading include/jethro_sms.php brings in everything — it requires all other bridge files.

See Also