problema code nel invio sms .

Salve. Ho bisogno del vostro aiuto per correggere il mio codice, che allego qui

 ---------------------------------------------------------------------------------- */
#include "SIM900.h"
#include <SoftwareSerial.h> // necessaria alla libreria gsm.h richiamata in sms.h
// #include "inetGSM.h"     // necessaria per l'uso di HTTP
#include "sms.h"            // Libreria per la gestione degli SMS

SMSGSM sms;
int rele = 12; // Il Pin 12 è quello connesso al relè
int rele1 = 11; // Il Pin 11 è quello connesso al relè
int numdata;
boolean started=false;
char smsbuffer[160];
char Mittente[20];

void setup() 
{
  Serial.begin(9600);
  Serial.println("ESEMPIO INVIO/RICEZIONE SMS");
  pinMode(rele, OUTPUT);   // imposta il pin 12 come pin di OUTPUT.
  digitalWrite(rele, LOW); // spegne inizialmente il led
   pinMode(rele1, OUTPUT);   // imposta il pin 11 come pin di OUTPUT.
  digitalWrite(rele1, LOW); // spegne inizialmente il led
  // Inizializzo la connessione GSM impostando il baudrate
  // Per l'utilizzo di HTTP è opportuno usare 4800 baud o meno
  if ( gsm.begin(2400) )
  {
     Serial.println("STATUS Modulo GSM = PRONTO");
     started=true;  
  }
  else 
     Serial.println("STATUS Modulo GSM = INATTIVO");
};

// legge una stringa dal Serial Monitor
//   Questa procedura serve solo nella fase di TEST ovvero 
//   quando provo a simulare i comandi SMS tramite il SERIAL MONITOR
boolean SerialRead(char s[])
{
  int i=0;
  if (Serial.available() > 0)
  {            
    while (Serial.available() > 0) 
    {
      s[i]=Serial.read();
      delay(10);
      i++;      
    }
  }
  s[i]='\0'; // Metto il terminatore di stringa
  return (i!=0);
}


void loop() 
{
  char inSerial[50];
  char position;
  if (started)
  {
     // -- Righe commentate poichè utilizzate per nei test
     // strcpy(Mittente,"3380000000");
     // if (SerialRead(smsbuffer))
     // ------------------------------------------------------
    // Legge se ci sono messaggi disponibili sulla SIM Card
    // e li visualizza sul Serial Monitor.
    position = sms.IsSMSPresent(SMS_ALL); // Valore da 1..20
    if (position) 
    {
      // Leggo il messaggio SMS e stabilisco chi sia il mittente
      sms.GetSMS(position, Mittente, smsbuffer, 160);
      Serial.print("Comando Ricevuto [tel. "+String(Mittente)+String("]: ") + String(smsbuffer));
      if (strcmp(smsbuffer,"ON")==0)
      {
         digitalWrite(rele, HIGH);   // Accende il RELE impostando il voltaggio a HIGH
         Serial.println(" => Accendo il RELE");
      }
      else if (strcmp(smsbuffer,"OFF")==0)
      {
         digitalWrite(rele, LOW);    // Spengo il RELE impostando il voltaggio a LOW
         Serial.println(" => Spengo il RELE");
      }
if (strcmp(smsbuffer,"ON1")==0)
      {
         digitalWrite(rele1, HIGH);   // Accende il RELE impostando il voltaggio a HIGH
         Serial.println(" => Accendo il RELE1");
      }
      else if (strcmp(smsbuffer,"OFF1")==0)
      {
         digitalWrite(rele1, LOW);    // Spengo il RELE1 impostando il voltaggio a LOW
         Serial.println(" => Spengo il RELE");
      }
    
    
    
    else if (strcmp(smsbuffer,"STATO")==0)
       {
          if (digitalRead(rele1)==HIGH)
          {
             sms.SendSMS(Mittente, "STATUS: RELE1 Acceso"); // restituisce true se invia l'SMS
             Serial.println(" => il RELE1 e' Acceso");
          }
          else
          {
             sms.SendSMS(Mittente, "STATUS: RELE1 Spento"); // restituisce true se invia l'SMS
             Serial.println(" => il RELE1 e' Spento");
          }
      }
else if (strcmp(smsbuffer,"STATO")==0)
       {
          if (digitalRead(rele)==HIGH)
          {
             sms.SendSMS(Mittente, "STATUS: RELE Acceso"); // restituisce true se invia l'SMS
             Serial.println(" => il RELE e' Acceso");
          }
          else
          {
             sms.SendSMS(Mittente, "STATUS: RELE Spento"); // restituisce true se invia l'SMS
             Serial.println(" => il RELE e' Spento");
          }
      }
      else
         Serial.println(" => non riconosciuto!");
      sms.DeleteSMS(position); // Elimina l'SMS appena analizzato
    }
    delay(1000);
  }
};

il codice funzione in parte in pratica uso arduino uno e un modulo gsm900 ,il funzionamento che quando invio un sms con scritto ON accende rele ON1 rele1 e viceversa OFF e OFF1 spegne i rele fin quà tutto ok il codice funziona ma il problema sta che se io invio sms STATO vorrei che il code mi risponde con un sms lo stato dei rele/rele1 (accesi oppure spenti)

else if (strcmp(smsbuffer,"STATO")==0)
       {
          if (digitalRead(rele1)==HIGH)
          {
             sms.SendSMS(Mittente, "STATUS: RELE1 Acceso"); // restituisce true se invia l'SMS
             Serial.println(" => il RELE1 e' Acceso");
          }
          else
          {
             sms.SendSMS(Mittente, "STATUS: RELE1 Spento"); // restituisce true se invia l'SMS
             Serial.println(" => il RELE1 e' Spento");
          }
      }else if (strcmp(smsbuffer,"STATO")==0)
       {
          if (digitalRead(rele)==HIGH)
          {
             sms.SendSMS(Mittente, "STATUS: RELE Acceso"); // restituisce true se invia l'SMS
             Serial.println(" => il RELE e' Acceso");
          }
          else
          {
             sms.SendSMS(Mittente, "STATUS: RELE Spento"); // restituisce true se invia l'SMS
             Serial.println(" => il RELE e' Spento");
          }
      }

questa e la parte del codice da esaminare, in pratica sms di ritono mi arriva però solo dello stato del rele1 mentre stato del rele non mi arriva
premetto che nel software ide arduino non ricevo nessun errore .
Accetto qualsiasi consiglio grazie mille