Linux/Gammu SMS

De GeRgOsNet.

OK avec :

  • Ubuntu + Clé 3G Huawei E352
  • Debian + Raspberry PI + Clé 3G Nokia CS-15

POUR PLUS DE FIABILITÉ DÉSACTIVER LE CODE PIN A L'AIDE D'UN VRAI TÉLÉPHONE

  • Installation des paquets nécessaires :
apt-get install gsm-utils gammu usb-modeswitch minicom
  • Passage de la clé 3G en mode modem (ne pas brancher la clé) :
/lib/udev/usb_modeswitch --vendor 0x12d1 --product 0x1446 --type option-zerocd
modprobe usbserial vendor=0x12d1 product=0x140c

Branché la clé .

  • Utilisation de minicom :

Configuration :

pico /etc/minicom/minirc.dfl
# Fichier généré automatiquement - utilisez « minicom -s »
# pour changer les paramètres
pu port             /dev/ttyUSB0
pu baudrate         230400
pu bits             8
pu parity           N
pu stopbits         1
pu minit            ATZ

Utilisation :

minicom

Quelques commandes :

Some AT-commands (reference only):

  1. Show model and EMEI number:

ATI Manufacturer: huawei Model: E220 Revision: 11.117.09.04.00 IMEI: 354111128111119 +GCAP: +CGSM,+DS,+ES OK

  1. show registers

AT&V

  1. provide pin-code:

AT+CPIN="0000" OK

  1. Get the network signal strength: the first value.
  2. Typical values from 5 to 22.
  3. Minimum acceptable for reliable connections is 12.

AT+CSQ +CSQ: 16,99 OK

  1. (replace xxxx with your own PIN)
  2. Turn off the PIN question

AT+CLCK="SC",0,"XXXX"

  1. To turn the PIN question on again, type

AT+CLCK="SC",1,"XXXX"

  1. Check if the PIN question is on or off.
  2. "+CLCK: 0" PIN is off, "+CLCK: 1" the PIN is on.

AT+CLCK="SC",2 +CLCK: 1 OK

Disable PIN procedure in minicom:

  1. first login with PIN

AT+CPIN="0000" OK

  1. disable PIN, providing PIN again:

AT+CLCK="SC",0,"0000" OK

  1. check if disabled (0=disabled, 1=enabled)

AT+CLCK="SC",2 +CLCK: 0


  • Utilisation de gammu :

Config :

pico gammurc
[gammu]
port = /dev/ttyUSB0
connection = at
name=huawei e1550
model=

Utilisation :

Il faut bien penser à avoir rentrer le code PIN via minicom si il y en a un sur la SIM .

Envoie SMS :

gammu sendsms TEXT +33661123456 -text "nouveau test"

Lire SMS :

gammu --getallsms

Envoie de SMS en PHP :

Donner les droits :

usermod -a -G dialout www-data
chmod 777 /dev/ttyUSB0

Scripts PHP que l'on appelera pour envoyer un msg (attention il faut configurer ensuite apache pour que cette page ne puisse être lui uniquement que par les ips autorisés ) :

pico sms.php
<?php
$numeros = $_GET['numeros'];
$texte = $_GET['texte'];

$output = shell_exec("gammu sendsms TEXT '$numeros' -text '$texte'"); 
echo "$output";
?>

Version avec Regex de vincent :

   <?php
   $numeros = preg_replace('/[^\d\s]*/',,$_GET['numeros']);
   $texte = preg_replace('/[^\w\s]*/',,$_GET['texte']);
    
   $cmd = "gammu sendsms TEXT '$numeros' -text '$texte' 2>&1";
   $output = shell_exec($cmd);
   echo "$output";
   ?>


Utiliser l'url : http://monserveur.com/sms.php?numeros=33612345678&texte=Mon Texte A Envoyer

Liens

Outils personnels