Qui n'a pas rêvé d'envoyer gratuitement des SMS via Webservices REST ? Il existe sur la toile de nombreuses API pour envoyer des SMS, mais elles sont malheureusement généralement payantes.
Il est désormais possible de construire sa propre Gateway SMS, il vous suffit pour cela de trois ingrédients :

  • Une carte SIM Free à 0 euros avec un forfait illimité de SMS.
  • Un vieux téléphone Android inutilisé.
  • L'application Android SMS Gateway.

L'application Android SMS Gateway possède deux fonctionnalités intéressantes pour un développeur. Elle est en effet capable d'appeler un webservice REST tiers dès qu'un SMS est reçu et elle expose un webservice REST pour permettre l'envoi de SMS à partir d'un applicatif tiers.

gateway-sms.jpg

Voici à titre d'exemple un script Node JS permettant d'envoyer un SMS via un appel HTTP au webservice REST exposé par l'application Android SMS Gateway :


var request = require('request');

function send(phone,message){

     // Set the headers
     var headers = {
        'User-Agent':       'Domogeek/'+config.version,
        'Content-Type':     'application/x-www-form-urlencoded'
     }

     // Configure the request
     var options = {
        url: "http://montelephone:9090/sendsms",
        method: 'GET',
        headers: headers,
        qs: {'phone': phone, 'text': message}
     }

     // Start the request
     request(options, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            console.info('SMS sended to: %s => %s', phone, message);
        } else {
            console.error('SMS error : %s => %s', error, message);
        }
     });
}


Enfin, voici un exemple de script pour traiter les SMS reçus via un simple script Node JS / Express de quelques lignes :


/**
 * HTTP GET /sms
 * Returns:
 */
app.get('/sms', function (req, resp, next) {

    if (!req.query['phone']){
        resp.json(400, { message: "Missing phone number"});
    }

    var phone = req.query['phone'];
    var message = req.query['text'];
    
    ....
}

Vous voilà désormais prêt à jouer avec votre passerelle de SMS pour superviser vos serveurs pour bien remonter des alertes de votre système domotique. A vous votre API REST de SMS gratuits !