Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Invio sms tramite porta seriale!! HELP!!!!

    Ciao a tutti!!
    Sto lavorando su una macchina linux, con collegato sulla seriale un modem gsm.
    Ho creato il seguente script per l'invio di un sms tramite porta seriale...

    <?PHP
    //Apre la connessione alla seriale
    $fd=dio_open('/dev/ttyS0',O_RDWR|O_TRUNC);
    //Imposta gli attributi
    dio_tcsetattr($fd, array(
    'baud' => 9600,
    'bits' => 8,
    'stop'=> 1,
    'parity'=> 0
    ));

    //Invio sms tramite comandi AT
    $at="AT+CMGF=1";
    //E' necessario un \n al termine di ogni comando
    $at.=chr(13);
    //Scrittura nella seriale.
    dio_write($fd,$at);
    $at="AT&W";
    $at.=chr(13);
    dio_write($fd,$at);
    //scrivo AT+CMGS="+39numero_cellulare\nTesto messaggio CTRL-Z"
    $at="AT+CMGS=";
    $at.="\"";
    $at.=chr(43);
    $at.="3933333333";
    $at.="\"";
    $at.=chr(13);
    $at.="Testo messaggio";
    $at.=chr(26);
    $at.=chr(122);
    dio_write($fd,$at);
    //Chiudo connessione alla seriale.
    dio_close($fd);
    ?>

    Il mio problema e' che se provo ad eseguire lo script in un ciclo for, per l'invio a piu' numeri cellulari, lo script non funziona.
    L'output e' visibile tramite minicom.
    Probabilmente, e' necessario attendere l'esecuzione di un invio prima di processare il successivo.

    Qualcuno ha esperienze a riguardo?


  2. #2

  3. #3
    una cosa del genere nn l'ho mai fatta, ma mi è gia capitato di lavorare su protocolli simili, è probabile che abbia dei tempi di attesa (ad esempio prima di procedere devi aspettare una risposta)
    se nn ti è possibile intercettare la risposta ma riesci a capire dov'è che neccesita di un ritardo ci metti uno sleep
    Il Ticino è biancoblù
    DVDS delegato ufficiale

  4. #4
    Domani provo grazie 1000
    !!!!

  5. #5
    wow!..progetto davvero interessante!...

    lo pubblikerai da qlke parte così posso vederlo?!
    [ SimplyMepis 8 ]Copyleft
    www.mepisitalia.org IL SITO ITALIANO UFFICIALE DI MEPIS
    www.salentomovida.it LA MOVIDA DEL SALENTO HA UN NUOVO PUNTO D'INCONTRO SUL WEB
    [ SUD SOUND SYSTEM MINA FUECU INTRA ALLU SALENTU ]

  6. #6
    è "relativamente" semplice farlo dato che insieme ai modem GSM si hanno anche le istruzioni da inviare, comunque è abbastanza interessante

    Attenzione ad una cosa ... il modem GSM potrebbe NON SUPPORTARE l'invio multiplo di SMS ... quindi, probabilmente, in questo caso sarebbe necessario, dopo aver ricevuto l'OK, chiudere e riaprire la porta com e rieseguire tutto d'accapo, in modo da rieseguire un invio pulito.

    PS: ma se invii un SOLO sms funziona?

    sciauz

  7. #7

    Re: Invio sms tramite porta seriale!! HELP!!!!

    Originariamente inviato da marasma1
    Ciao a tutti!!
    Sto lavorando su una macchina linux, con collegato sulla seriale un modem gsm.
    Ho creato il seguente script per l'invio di un sms tramite porta seriale...

    <?PHP
    //Apre la connessione alla seriale
    $fd=dio_open('/dev/ttyS0',O_RDWR|O_TRUNC);
    //Imposta gli attributi
    dio_tcsetattr($fd, array(
    'baud' => 9600,
    'bits' => 8,
    'stop'=> 1,
    'parity'=> 0
    ));

    //Invio sms tramite comandi AT
    $at="AT+CMGF=1";
    //E' necessario un \n al termine di ogni comando
    $at.=chr(13);
    //Scrittura nella seriale.
    dio_write($fd,$at);
    $at="AT&W";
    $at.=chr(13);
    dio_write($fd,$at);
    //scrivo AT+CMGS="+39numero_cellulare\nTesto messaggio CTRL-Z"
    $at="AT+CMGS=";
    $at.="\"";
    $at.=chr(43);
    $at.="3933333333";
    $at.="\"";
    $at.=chr(13);
    $at.="Testo messaggio";
    $at.=chr(26);
    $at.=chr(122);
    dio_write($fd,$at);
    //Chiudo connessione alla seriale.
    dio_close($fd);
    ?>

    Il mio problema e' che se provo ad eseguire lo script in un ciclo for, per l'invio a piu' numeri cellulari, lo script non funziona.
    L'output e' visibile tramite minicom.
    Probabilmente, e' necessario attendere l'esecuzione di un invio prima di processare il successivo.

    Qualcuno ha esperienze a riguardo?

    Sto lavorando anch'io ad una funzione simile ma su un 2003 Sever.
    Sto incontrando un piccolo prob. ma che mi sta facendo uscire pazzo.
    Riesco a invire i msg. ma il contenuto nn è quello esatto, praticamente contiene solo il primo carattere del msg. è ho fatto tantissime prove con le sleep.

    Qualcuno ha qualche idea?

  8. #8
    dovresti informarti su quale tipo di carattere usa come escape il protocollo su cui stai lavorando, magari dipende da quello
    Il Ticino è biancoblù
    DVDS delegato ufficiale

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.