An extendable library for sending and receiving SMS messages.
Send SMS | Delivery reports | Receive SMS | Premium SMS | |
---|---|---|---|---|
46elks | ✔ | ✔ | ✔ | |
Cellsynt | ✔ | ✔ | ✔ | ✔ |
Vonage (formerly Nexmo) | ✔ | ✔ | ✔ | |
Twilio | ✔ | ✔ | ✔ | |
Telenor SMS Pro | ✔ | ✔ |
You can add and use your own gateway. This library enables easy switching between different gateways.
Add the package as a requirement to your composer.json
:
$ composer require andreasnij/an-sms
If you want to use the 46elks, Cellsynt or Telenor SMS Pro gateway you also you need implementations of PSR-7: HTTP message interfaces, PSR-17: HTTP Factories and PSR-18: HTTP Client. A popular package for this is Guzzle. You can install it with:
$ composer require guzzlehttp/guzzle:^7.0 guzzlehttp/psr7:^2.0
You may choose to use any other implementations of the PSR interfaces though.
If you want to use the Twilio gateway you also need to install the Twilio SDK:
$ composer require twilio/sdk
If you want to use the Vonage gateway you also need to install the Vonage client:
$ composer require vonage/client-core
use AnSms\{
SmsTransceiver,
Message\Message,
Message\PremiumMessage,
Gateway\CellsyntGateway
};
$gateway = new CellsyntGateway('username', 'password');
$smsTransceiver = new SmsTransceiver($gateway);
// Send SMS
$message = Message::create('46700000000', 'Hello world!');
$smsTransceiver->sendMessage($message);
// Receive SMS
$receivedMessage = $smsTransceiver->receiveMessage($_GET);
// Receive SMS delivery report
$deliveryReport = $smsTransceiver->receiveDeliveryReport($_GET);
// Send Premium SMS
$premiumMessage = PremiumMessage::createFromIncomingMessage(
'Thanks for your payment!',
5,
$receivedMessage
);
$smsTransceiver->sendMessage($premiumMessage);
Please see UPGRADING for details.
Andreas Nilsson (https://github.com/andreasnij)
This software is licensed under the MIT license - see the LICENSE file for details.