controllo credito telefonico schede SIM

Buongiorno a tutti,
sono a scrivervi per chiedere un'aiuto su come leggere dei dati scritti sul monitor seriale di arduino ed inviarli tramite sms
Ecco il code

void setup()
{
    Serial.begin(9600);
  if (gsm.begin(9600)){
  
    started=true;



}

  if(started){                              
    Serial.println("READY");		
    
    //sms.SendSMS("00000000000", "GSM CONTROL in attesa di comando");
    //gsm.SimpleWrite("AT+CMGD=1,4\r");
  
  gsmserial.begin(9600);
 
Serial.println("sto chiamando ");                    //iniziano i codici AT per effettuare la chiamata
  gsm.SimpleWrite(F("ATD"));
  gsm.SimpleWrite("401212");                        // in questo caso il numero è di postemobile
  gsm.SimpleWriteln(F(";"));
  
  gsm.WaitResp(15000, 50);
  gsm.SetCommLineStatus(CLS_FREE);
{
 if (CLS_FREE != gsm.GetCommLineStatus()) return;
  gsm.SetCommLineStatus(CLS_ATCMD);

Serial.println("PIGIO IL TASTO 1");	
  
gsm.SimpleWrite(F("AT+VTD="));
  gsm.SimpleWriteln(1000);
  gsm.WaitResp(1000, 100, "OK");

  gsm.SimpleWrite(F("AT+VTS=\""));
  gsm.SimpleWrite(1);
  gsm.SimpleWriteln(F("\""));
  
  gsm.WaitResp(3000, 100, "OK");
  gsm.SetCommLineStatus(CLS_FREE);
delay (3000);

Serial.println("PIGIO IL TASTO 1");	

gsm.SimpleWrite(F("AT+VTD="));
  gsm.SimpleWriteln(1000);
  gsm.WaitResp(1000, 100, "OK");

  gsm.SimpleWrite(F("AT+VTS=\""));
  gsm.SimpleWrite(1);
  gsm.SimpleWriteln(F("\""));
  
  gsm.WaitResp(3000, 100, "OK");
  gsm.SetCommLineStatus(CLS_FREE);

 
 }
 
                                                                                
  gsm.listen(); // IMPORTANT!!!!
  delay(200);

  pos = sms.IsSMSPresent(SMS_UNREAD);

  if (pos) 
  {
    sms.GetSMS(pos, n, buffer, 100);
    Serial.println("DEBUG SMS phone number: ");
    Serial.println(n);
    Serial.println("SMS text: ");
    Serial.println(buffer);

 Serial.read();

    if (strcmp(buffer,"credito residuo")==false)    
    {
      Credito();   

    }


    delay (1000);
  }
}

}

 
void Credito()
{
  if(started)
  {
    
    char buffer[100];
    char *str;

Serial.read();
    

sprintf (buffer, "% u", str);


    sms.SendSMS("1111111111" , strmsg); 
    gsm.SimpleWrite("AT+CMGD=1,4\r");		

  }
}

void clearbuffer()
{
  for (int i=0;i<70;i++)
  {
    buffer[i]=0;
  }
}
void loop()
{
}

il programma fa il debug a video del credito residuo però non me lo inoltra ad un'altro numero di cellulare
dove sbaglio?

grazie mille

da quel che ho capito, te telefoni a sto numero, ti muovi nei sottomenu "premendo" 1 e poi ricevi un mex col credito..non c'è un modo più semplice?per esempio con vodafone telefoi al 404 e ricevi subito il mex..la butti giù la chiamata?

ricevi l'sms col credito corretto?

ma anche qui ricevo l'sms corretto
il problema sta nel fatto che non riesco a leggere la seriale.
io metto serial.read ma poi come faccio a caricarmelo nel buffer?