Problemas al colgar llamada (comando ATH)

Tengo este codigo diseñado para que cuando se reciba llamada de un numero autorizado ésta se cuelgue pero no funciona. Por favor, ¿podéis ayudarme?

//Declaramos la variables para la obtención de 
      //VARIABLES PARA EL MODULO GMS
      String inGSM; //Almacenar la informacion leida del modulo gsm
      String numList[]={"xxxxxxxxx","xxxxxxxxx"}; //Numeros autorizados
      boolean enviado=false; //para saber si hemos enviado sms con coordenadas
      double ttl=0; //Tiempo de vida
   

void setup() {
  Serial.begin(9600);
  delay(1000);
  
  Serial.print("AT+CMGF=1\r"); // Configuración del módulo GSM en modo texto.
  delay(100);
  
  Serial.print("MODULO GSMS");
  enviado=false;
}//Fin Setup


//Comprobamos si el numero llamante es autorizado
boolean isAllow(String num) {
  for (int i=0;i<sizeof(numList);i++) {
     if (num==numList[i])
         return true;
  }//Fin for
  return false;
}//Fin isAllow

void loop()  {
  bool finGSM = false;
  inGSM = "";
  ttl++;
  int c ;
  
  //Leer eventos en modulo gs
  while (Serial.available()) {
     delay(10);
     inGSM += (char)Serial.read(); 
     finGSM = true;
  }  //Fin while
  if (finGSM)
      Serial.print(inGSM);

  //Si entra llamada
  if (inGSM.indexOf("RING")>-1)   {
      delay(100);

      String num;
      int inicio=inGSM.indexOf('"')+1;
      int fin = inicio+9;

      num = inGSM.substring(inicio,fin); //Extraer n'umero    
      //Si autorizado,   
      if (isAllow(num) && enviado==false)  {
             delay(1000);
         Serial.print("ATH\r"); 
         delay(100);
         enviado=true;
      }//Fin if

  }//Fin if
}//fin loop