Skip to content

andreasnij/an-sms

Repository files navigation

AnSms - A PHP SMS library

Version

An extendable library for sending and receiving SMS messages.

Supported SMS gateways

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.

Installation

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

Usage

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);

Upgrading

Please see UPGRADING for details.

Author

Andreas Nilsson (https://github.com/andreasnij)

License

This software is licensed under the MIT license - see the LICENSE file for details.