Ligne de commande SFRswallow, envoyer des SMS en ligne de commande

Posté par (page perso) . Modéré par Xavier Teyssier. Licence CC by-sa
Tags :
34
5
nov.
2011
Ligne de commande

Avoir un forfait téléphone mobile avec textos illimités, c’est cool. Surtout si on veut envoyer une information urgente à beaucoup de monde en même temps. Ça fait quelque temps que j’ai un forfait de ce type chez SFR. Mais, déjà, écrire du texte à partir d’un téléphone est une horreur : c’est lent et inefficace. En plus, les différents téléphones que j’ai essayés ne m’ont jamais permis d’envoyer le message à plus de 20 contacts à la fois…

SFR propose à ses clients une interface Web à partir de laquelle on peut envoyer des SMS. C’est ainsi qu’est né SFRswallow, un petit script Python qui envoie le SMS à travers le site de SFR. Il s’utilise vraiment très simplement :

sfrswallow 0642424242 "Quelle est la différence entre un pigeon ?"

Ce n’est pas forcément beaucoup plus efficace que d’écrire le texto directement depuis le téléphone… Ce qui est plus intéressant, c’est de le coupler avec un serveur de courriel (par exemple Postfix, c’est celui qui tourne chez moi) pour envoyer des SMS en écrivant des courriels à 0642424242@sms.example.org.

En espérant que ça puisse servir à quelqu’un.

P. ‐S. : Je tiens à prévenir que pour SFR, « SMS illimités » signifie qu’on peut envoyer des textos à 100 destinataires différents sans surcoût (au‐delà, c’est cher, j’en ai fait la désagréable expérience !).

  • # Weboob

    Posté par (page perso) . Évalué à  9 .

    Ça mériterait un backend pour weboob.

  • # Détails

    Posté par (page perso) . Évalué à  3 .

    Intéressant.

    Si j'ai bien compris (en survolant le code), tu forces l'utilisation de gpg pour avoir le droit d'envoyer un SMS par le mail ?

    Pourrais-tu détailler comment tu le couples avec postfix stp ?

    blog.rom1v.com

    • [^] # Re: Détails

      Posté par (page perso) . Évalué à  5 .

      Postfix transport
      -----------------
      
      You can use sfrswallow as a postfix transport. You need a running postfix
      installation, and a domain name you can use to build fake e-mail addresses,
      say `sms.example.org` (with its MX on your server).
      
      1. Put sfrswallow.py somwhere on your serveur, with right login settings.
      
      2. In your /etc/postfix/master.cf, add:
      
      sfrswallow unix -       n       n       -       -       pipe
        flags=FRD user=username argv=/usr/bin/python /path/to/sfrswallow.py $recipient -m
      
      where `username` is your user name, and `/path/to/sfrswallow.py` is where you
      put the script.
      
      3. In your /etc/postfix/main.cf, add (or modifiy):
      
      relay_domains = sms.example.org
      sfrswallow_destination_recipient_limit = 1
      transport_maps = hash:/etc/postfix/transport
      
      4. In your /etc/postfix/transport, add:
      
      sms.example.org                                         sfrswallow:
      
      5. Don't forget to run `postmap transport`.
      
      6. Read the `OpenPGP authentication` part below
      
      That's it. Try to send an sms to 0600000042@sms.example.org!
      
      

      C'était dans le README ...

  • # L'automatisation ne respecte pas les conditions générales

    Posté par . Évalué à  7 .

    A propos de l'envoi scripté ou via postfix (à priori l'utilisation directe n'est pas concernée).

    Conditions générales d'utilisation de SFR (celles actuelles, celle qui vous sont applicables sont celles que vous avez signé, que je vous invite à consulter)

    Voici le lien, car ces enflures proposent un site ou il faut interpreter le javascript pour avoir un lien valide.

    CONDITIONS SPECIFIQUES AUX OFFRES D’ABONNEMENT OU OPTIONS COMPORTANT UN NOMBRE ILLIMITE D’APPELS OU DE TEXTOS/MMS

    OFFRES OU OPTIONS COMPORTANT UN NOMBRE ILLIMITÉ DE TEXTOS/MMS

    Par nature, les textos/MMS émis via automate et/ou dispositif automatique d’envoi de textos/MMS sont donc exclus du bénéfice de ces offres, car contraires aux dispositions de l’article 3.1

    Je suis le premier à le regretter, et à ne pas en tenir compte. Mais je souhaitais juste le signaler, afin que vous ne violiez pas le contrat signé avec ces rapaces par méconnaissance.

    • [^] # Re: L'automatisation ne respecte pas les conditions générales

      Posté par (page perso) . Évalué à  8 .

      Qui parle d'automate, ici ? Tant qu'on n'utilise pas de liste de distribution ou de robot d'envoi, il s'agit de messages composés manuellement… Un système de script est tout aussi artificiel que n'importe quel téléphone GSM, ce n'est pas ça qui est interdit je pense.

      • [^] # Re: L'automatisation ne respecte pas les conditions générales

        Posté par (page perso) . Évalué à  3 .

        Il faudrait soumettre ça à l'appréciation de SFR, et je ne doute pas trop de la réponse. Ils vont très probablement considérer ça comme une trop grande facilité d'envoi des SMS par rapport à un terminal portable classique, donc une automatisation en quelque sorte (il suffit d'ajouter une boucle et un fichier de numéros même générés aléatoirement pour avoir un automate de spam..)

      • [^] # Re: L'automatisation ne respecte pas les conditions générales

        Posté par . Évalué à  3 .

        Un script est bien un automate d'envoi quand bien même il n'enverait un seul message à un seul numero, quoique je pense que la position contraire, uniquement dqns le cas d'un envoi à un seul numero fait par l'user (pas par un cron par exemple) pourrait raisonnablement se soutenir devant un juge.

        Par contre dans le cas d'envois multiples, d'envoi par un demon de surveillance comme munin, d'envoi via postfix ; je pense que c'est difficillement défendable.

        Après qu'on ce comprène bien, je désapprouve complétement ces restrictions, j'analyse juste leurs conditions générales.

        • [^] # Re: L'automatisation ne respecte pas les conditions générales

          Posté par (page perso) . Évalué à  9 .

          Un script est bien un automate d'envoi quand bien même il n'enverait un seul message à un seul numero

          Un téléphone aussi…

        • [^] # Re: L'automatisation ne respecte pas les conditions générales

          Posté par (page perso) . Évalué à  5 .

          Un script est bien un automate d'envoi quand bien même il n'enverait un seul message à un seul numero,

          Donc IE, qui automatise la compréhension de la page HTML, est un automate. Donc illégal. Sans parler de ce fichu modem ADSL.

          Le fournisseur du script est-il attaquable, ou l’utilisateur? cAr le fournisseur du script ne contacte jamais le site... Donc bon courage pour attaquer un par un les utilisateurs.

          Après qu'on ce comprène bien, je désapprouve complétement ces restrictions, j'analyse juste leurs conditions générales.

          Des utilisations générales ne sont pas forcément légales, il y a plein de clauses abusives. Ou pas clair (qu'est-ce qu'un automate?)

          • [^] # Re: L'automatisation ne respecte pas les conditions générales

            Posté par . Évalué à  1 .

            Après qu'on ce comprène bien, je désapprouve complétement ces restrictions, j'analyse juste leurs conditions générales.

            Des utilisations générales ne sont pas forcément légales, il y a plein de clauses abusives. Ou pas clair (qu'est-ce qu'un automate?)

            Je suis bien d'accord, mais en l'espèce, je pense que cette clause ne serait pas jugé comme abusive, et l'interprétation d'automate n'est pas réelement problèmatique.

            Faut voir aussi le contexte, généralement SFR va facturer les SMS en cause en se basant sur le contrat, et ce sera au client d'aller devant une juridiction civile pour contester cette interprétation, c'est loin d'être gagné.

      • [^] # Re: L'automatisation ne respecte pas les conditions générales

        Posté par . Évalué à  2 .

        Un temps j'avais vu un téléphone portable qui permettait d'automatiser l'envoi de SMS pour les anniversaires, comme quoi pleins de gens violent les conditions d'utilisations sans le savoir.

        207829⁶+118453⁶=193896⁶+38790⁶+14308⁶+99043⁶+175539⁶

    • [^] # Re: L'automatisation ne respecte pas les conditions générales

      Posté par . Évalué à  2 .

      Bonsoir,
      La question des conditions générales de SFR a déjà été abordée ici, avec des éléments de réponse en faveur de leur compatibilité avec un tel service de SMS automatisés : https://linuxfr.org/nodes/28281/comments/1188066

      • [^] # Re: L'automatisation ne respecte pas les conditions générales

        Posté par . Évalué à  -2 .

        Je me demandais, il y a quoi que tu ne comprends pas dans le mot automate ?

        • [^] # Re: L'automatisation ne respecte pas les conditions générales

          Posté par . Évalué à  5 .

          Il convient de lire l'exclusion prévue par SFR jusqu'au bout, l'allusion faite aux automates est fondée en réalité sur la notion d'utilisation commerciale, confèrent la référence à l'article 3.1 de leurs CGV (« Par nature, les textos/MMS émis via automate et/ou dispositif automatique d’envoi de textos/MMS sont donc exclus du bénéfice de ces offres, car contraires aux dispositions de l’article 3.1 ») et l'analyse que j'en faisais à laquelle je te renvoie :

          (...)
          Sur l'exclusion des messages émis via automate et/ou dispositif automatique d’envoi de textos, là l'obstacle semble plus fort. Mais pas insurmontable, en s'appuyant sur la raison de cette exclusion : « car contraires aux dispositions de l’article 3.1 ».

          Or l'article 3.1 des CGU en page 6 du même pdf prévoit :
          SFR remet à l’abonné une carte SIM, à laquelle est associé le numéro d’appel attribué par SFR et qui permet l’accès aux Services de SFR.
          La carte SIM reste la propriété exclusive, incessible et insaisissable de SFR qui peut la remplacer soit à son initiative, pour permettre à l’Abonné de bénéficier
          d’améliorations techniques ou en cas de défaillance constatée de la carte, soit à la demande de l’Abonné. SFR pourra également mettre à jour certaines données de la carte SIM afin de permettre à l’Abonné de bénéficier d’améliorations techniques.
          L’Abonné est seul responsable de l’utilisation et de la conservation de la carte SIM dont il s’interdit toute duplication.
          La carte SIM ne peut pas être utilisée par l’Abonné pour proposer une offre commerciale à un tiers. Plus généralement, l’abonné s’interdit toute utilisation commerciale de l’accès au réseau SFR qui est mis à sa disposition, notamment en permettant à des tiers d’accéder au réseau de SFR moyennant une contre-partie notamment financière
          (...).

          Cette lecture téléologique de l'exclusion permet donc de soutenir qu'elle ne concerne que l'émission de textos pour une « utilisation commerciale ». L'utilisation non commerciale d'une notification par le backend SFR de weboob n'étant donc pas expressément interdite, elle est autorisée.
          Enfin il sera rappelé que si doute il y avait sur cette lecture (ce qui ne me paraît pas être le cas), l'article L.133-2 du Code de la consommation prévoit que « les clauses des contrats proposés par les professionnels aux consommateurs ou aux non-professionnels (...) s'interprètent en cas de doute dans le sens le plus favorable au consommateur ou au non-professionnel ».

  • # 502

    Posté par (page perso) . Évalué à  2 .

    J'ai une erreur "502 Bad Gateway" quand j'essaie de suivre le lien... Est-ce normal ?

  • # swallow ?

    Posté par . Évalué à  4 .

    J'ai un peu du mal à comprendre pourquoi un tel nom: SFRswallow. C'est une façon de dire que les serveurs de SFR vont "avaler" beaucoup de SMS ?

    Franchement j'ai du mal à voir.

    ;; elf32

    • [^] # Re: swallow ?

      Posté par . Évalué à  1 .

      European swallow or African swallow ?

      PS : N'oublions pas que SFR est une entreprise d'origine anglaise (Super Freaky Rollmops )

      • [^] # Re: swallow ?

        Posté par (page perso) . Évalué à  9 .

        SFR = Société Française de Radiotéléphonie.
        Ah, les acronymes ...

      • [^] # Re: swallow ?

        Posté par . Évalué à  1 .

        European swallow or African swallow ?

        J'ai rit !

        • [^] # Re: swallow ?

          Posté par . Évalué à  0 .

          Tu as "rit" ? Ou peut-être que tu as "riz" ? À moins que ce ne soit "ri" ? Il faut reconnaitre qu'on ne peut pas tester ce verbe facilement en le mettant au féminin, mais quand même...

    • [^] # Re: swallow ?

      Posté par (page perso) . Évalué à  2 .

      Peut-être une référence à Weboobs?

      • [^] # Re: swallow ?

        Posté par (page perso) . Évalué à  1 .

        Oui, c'est bien le souvenir nostalgique des pigeons voyageurs qui nous a inspirés. (Pigeon, hirondelle, python... tout s'embrouille dans cette ménagerie)

  • # Réinventer la roue ?

    Posté par (page perso) . Évalué à  6 .

    Les téléphones disposant d'une interface USB sont à peut près tous capable d'exposer un modem GSM, qui acceptent des commandes AT pour envoyer des SMS. Il existe déjà au moins un outils permettant d'envoyer simplement des SMS en ligne de commange : gsmsendsms, des gsm-utils.

    Par exemple, pour Debian : http://packages.debian.org/search?keywords=gsm-utils.

    • [^] # Re: Réinventer la roue ?

      Posté par (page perso) . Évalué à  2 .

      Et tu laisse brancher ton téléphone sur ton serveur en permanence ? C'est le nouveau sans fils ... téléphonique mais avec fils USB.

      • [^] # Re: Réinventer la roue ?

        Posté par (page perso) . Évalué à  6 .

        Ben, si le but est de saisir un SMS avec un clavier d'ordinateur, a fortiori j'ai un ordinateur à portée au bout du fil de ce clavier, et mon téléphone toujours sur moi…

    • [^] # Re: Réinventer la roue ?

      Posté par (page perso) . Évalué à  1 .

      Oui, comme le dit GnunuX, ce petit programme peut être particulièrement utile dans une tache cron sur un serveur, pour notifier l'admin du résultat d'une tâche de maintenance, par exemple…

      • [^] # Re: Réinventer la roue ?

        Posté par (page perso) . Évalué à  2 .

        Bah pour ça, y a des services qui permettent l'envoi de SMS automatisé (et qui sont même prévus pour ça, donc qui te fermeront pas ton compte parce qu'ils ont pas aimé la gueule de ton EHLO), par très gros volumes, avec une API stable (contrairement au hack de notre ami) et pour un prix dérisoire par rapport à un forfait grand public.

        • [^] # Re: Réinventer la roue ?

          Posté par (page perso) . Évalué à  4 .

          Des noms ? Des URLs ? Des prix ? Parce que pour ce que j'ai pu en voir, ca reste quand même scandaleusement cher. Je n'ai rien vu en dessous de 7ct (HT) le SMS, achat par lot de 100 000 ou qqc du genre.

          • [^] # Re: Réinventer la roue ?

            Posté par . Évalué à  3 .

            Un cas particulier mais ça marche marchait très bien avant que l'admin de ma boîte trifouille le server de mail. Les P&T au Luxembourg permettent d'envoyer des sms par mail en utilisant une adresse du type 621123456@sms.luxgsm.lu.
            Grâce à ça, je pouvais surveiller divers défauts sur les installations techniques via un petit automate sur le réseau. Depuis quelques temps, plus de mails sortants pour lui donc plus de sms donc tranquillité pour moi.

            Et ça marche aussi dans l'autre sens, sms vers mail en composant un message comme ça: adresse@chezmachin.com(sujet du mail)corps du message. Évidemment, c'est réservé au numéros Luxgsm.
            C'est très pratique et scriptable.

    • [^] # Re: Réinventer la roue ?

      Posté par (page perso) . Évalué à  2 .

      ça marche aussi via le bluetooth. On pourrait donc imaginer un module telepathy qui branche empathy avec bluez et ton tel.

  • # SMS pour alertes de monitoring

    Posté par . Évalué à  9 .

    Pour moi utiliser des SMS comme alerte suite a un incident informatique (nagios detecte une panne et envoie un SMS), c'est pas terrible pour plusieurs raisons:
    1/ le délai d'acheminement du SMS n'est pas garanti, et si "souvent" il arrive vite à destination, ce n'est pas toujours le cas. Tout le monde a fait l'experience du SMS qui met de 15 minutes a une heure pour arriver.
    2/ le SMS c'est "fire and forget", aucun moyen pour nagios de savoir si oui ou non le SMS est arrivé et si l'admin l'a bien lu. Donc aucun moyen d'utiliser les systèmes d'escalades pour prévenir quelqu'un d'autre quand l'admin n'est pas joignable.
    3/ utiliser l'infrastructure informatique (le web ici) pour prévenir de la panne ... ne marchera que si la panne ne concerne pas un morceau de l'infrastructure necessaire pour joindre Internet... un pan entier de systèmes non monitorables.

    Pour ces raisons, nous avons préféré utiliser un modem voix. Nagios téléphone (avec une vraie ligne RTC) au numéro de l'admin, qui peut décrocher et tapper un code pour signaler qu'il a bien reçu l'alerte. Du coup on peut escalader vers un autre numéro si il ne répond toujours pas après 3 tentatives ...
    Y'a pas mal d'exemples de scripts perl qui font ça. Le notre est spécifique (on mixe du Nagios et du Patrol), mais ça marche depuis plusieurs années sans soucis et aucun coup de fil raté !

    • [^] # les simpsons l'ont fait

      Posté par . Évalué à  2 .

      ça me fait penser à l'autodialer de homer simpson :

      autodialer

      sinon, j'avais lu un tutorial pour brancher un téléphone mobile (nikia je crois) par cable (usb surement) sur un serveur pour l'émission de notification admin. sympa, mais je ne sais plus où :/

  • # Fork()

    Posté par (page perso) . Évalué à  -1 .

    Bonjour, je vais faire des modifications à ton programme (puisqu'il est libre). Est-ce que tu voudras un patch global ou bien préfères-tu que je fork carrément (ce qui à mon sens serait un peu inutile et dommage....).

    • [^] # Re: Fork()

      Posté par (page perso) . Évalué à  2 .

      Tu trouveras mon mail (ainsi que celui de mon acolyte) dans le fichier AUTHORS.

      Comme tu le dis toi-même, c'est libre, donc tu en fais ce que tu en veux! C'était d'ailleurs le but : que ça serve à quelqu'un d'autre que moi. Content que tu y voies un intérêt.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.