Appearance
Integration of third party SMS services into Notifier is made with transports and transport factories. The SMS channel then utilizes configured transports.
Legacy concepts
SMS Framework v3 and older used a plugin concept known as Gateways, where gateways were primarily implemented in contrib as separate projects. v4 and later inverts this by providing glue for numerous SMS channels for common service providers in the SMS Framework project itself. This glue sets up service-specific behavior when you depend-on (composer require
) the SMS channels listed below.
Projects may continue to implement their own SMS channels in contrib or custom code by following the Custom services guide.
Supported services
SMS Framework includes support for many services, thanks to implementations provided by Symfony.
SMS Framework provides glue for wiring services to Drupal, while channel code must be brought in as another dependency. For example to enable the Twilio channel, run composer require symfony/twilio-notifier
then clear caches. A transport will be wired up for you without needing to install extra modules or configure plugins.
Examples of how to configure services for a selection of popular services have been created for Twilio and Amazon SNS.
WARNING
Not all services have been tested, as each typically requires an account with a balance or accounting relationship. Please assist others by debugging and posting bugfix resolutions in the issue queue. The maintainers of SMS Framework are not able to debug services on your behalf.
HTTP Requests
Some transports require the Symfony HTTP client component. If you see errors or messages, typically during container compilation (drush cr
), try to depend-on and install the Symfony HTTP Client for Drupal module. Only module installation is required, no other configuration is necessary.
sh
composer require drupal/symfony_http_client
drush module:enable symfony_http_client
Transport configuration
SMS transports are configured with service parameters.
INFO
See Notifier configuration for more detail on using service parameters.
Multiple transports may be configured, start with specifying a unique key representing each transport.
The value is a service specific DSN. A protocol:// is the prefix, with the name of the transport implementation, the value after this varies. See Symfony documentation for how to structure DSNs for each service. Each implementation outlines all possible values in its README.
yaml
sms.transports:
mytransport: 'twilio://SID:TOKEN@default?from=FROM'
Multiple transports per service
Transport configuration permits multiple transports, and even multiple transports for the same service.
Channels implementing SMS services
DSNs for each can be found in Symfony documentation, or in the README after require
-ing the dependency.
- 46elks
composer require symfony/forty-six-elks-notifier
- AllMySms
composer require symfony/all-my-sms-notifier
- AmazonSns
composer require symfony/amazon-sns-notifier
- Bandwidth
composer require symfony/bandwidth-notifier
- Brevo
composer require symfony/brevo-notifier
- Clickatell
composer require symfony/clickatell-notifier
- ContactEveryone
composer require symfony/contact-everyone-notifier
- Esendex
composer require symfony/esendex-notifier
- FakeSms
composer require symfony/fake-sms-notifier
- FreeMobile
composer require symfony/free-mobile-notifier
- GatewayApi
composer require symfony/gateway-api-notifier
- GoIP
composer require symfony/go-ip-notifier
- Infobip
composer require symfony/infobip-notifier
- Iqsms
composer require symfony/iqsms-notifier
- iSendPro
composer require symfony/isendpro-notifier
- KazInfoTeh
composer require symfony/kaz-info-teh-notifier
- LightSms
composer require symfony/light-sms-notifier
- LOX24
composer require symfony/lox24-notifier
- Mailjet
composer require symfony/mailjet-notifier
- MessageBird
composer require symfony/message-bird-notifier
- MessageMedia
composer require symfony/message-media-notifier
- Mobyt
composer require symfony/mobyt-notifier
- Nexmo (Abandoned in favor of Vonage)
- Octopush
composer require symfony/octopush-notifier
- OrangeSms
composer require symfony/orange-sms-notifier
- OvhCloud
composer require symfony/ovh-cloud-notifier
- Plivo
composer require symfony/plivo-notifier
- Primotexto
composer require symfony/primotexto-notifier
- Redlink
composer require symfony/redlink-notifier
- RingCentral
composer require symfony/ring-central-notifier
- Sendberry
composer require symfony/sendberry-notifier
- Sendinblue
composer require symfony/sendinblue-notifier
- Sms77
composer require symfony/sms77-notifier
- SimpleTextin
composer require symfony/simple-textin-notifier
- Sinch
composer require symfony/sinch-notifier
- Sipgate
composer require symfony/sipgate-notifier
- SmsSluzba
composer require symfony/sms-sluzba-notifier
- Smsapi
composer require symfony/smsapi-notifier
- Smsbox
composer require symfony/smsbox-notifier
- SmsBiuras
composer require symfony/sms-biuras-notifier
- Smsc
composer require symfony/smsc-notifier
- SMSense
composer require smsense-notifier
- SMSFactor
composer require symfony/sms-factor-notifier
- SpotHit
composer require symfony/spot-hit-notifier
- Sweego
composer require symfony/sweego-notifier
- Telnyx
composer require symfony/telnyx-notifier
- TurboSms
composer require symfony/turbo-sms-notifier
- Twilio
composer require symfony/twilio-notifier
- Unifonic
composer require symfony/unifonic-notifier
- Vonage
composer require symfony/vonage-notifier
- Yunpian
composer require symfony/yunpian-notifier
This documentation is not provided or endorsed by any of the organisations listed above.