laravel-notification-channels/gammu
A Laravel notification channel for sending SMS messages through Gammu, the open-source SMS gateway. Integrate Gammu into your Laravel app and deliver notifications as text messages using Laravel’s familiar notification API.
gammu, i.e. a locally attached GSM modem/USB dongle rather than a cloud SMS aggregator. It informs the build-vs-buy decision for any "notify users who don't have smartphones/email" requirement.NotificationChannel contract plus a Gammu CLI call. That means it mainly informs an architecture decision (Laravel Notifications as the abstraction for all outbound messaging, with pluggable transports) rather than a deep platform commitment.Consider it when:
gammu-smsd for SMS and want Laravel's Notifier/Notification facade to be the single dispatch point for all channels (mail, database, SMS).NotificationChannel ergonomics, PHP 8 typed properties, and Laravel 9+ conventions.Look elsewhere when:
gammu-smsd supports these but this package does not surface them.twilio, vonage, smsapi, etc.) will cost less in engineering time than maintaining modem hardware.Default PM recommendation: do not add as a dependency. Use it as a reference implementation, then build a small in-house channel (typically 50–150 lines) around gammu-smsd-inject so you own queueing, logging, retries, and Laravel version currency.
For executives: There is a niche capability we can unlock cheaply — sending SMS from our own server through a £20 GSM modem instead of paying a cloud SMS provider per message, with message content and recipient numbers never leaving our infrastructure. A community package already sketches this integration with Laravel, but it was last updated in 2016 and has effectively no user base, so it is not something we should depend on in production. The recommendation is a short, low-cost spike: replicate the pattern in-house (roughly 1–2 engineering days) and validate it against one real alerting use case. If it works, we get a resilient, low-cost, data-resident notification path for ops alerts and low-connectivity users; if it doesn't, we've spent two days and learned that our SMS needs belong with a managed provider.
For engineering: Laravel's notification system already abstracts the transport, so the work is a thin channel that shells out to Gammu and maps responses to exceptions. Adopt the package's shape, not its code: fork the pattern, target our current Laravel and PHP versions, wrap the CLI call behind an interface so it's testable, and put queueing, retry, and delivery-receipt logging in our layer. Skip the abandoned dependency and its 5.3-era service provider entirely.
How can I help you explore Laravel packages today?