Guarda io ho risolto utilizzando il tempo, ovvero aspettando 3 secondi.
void risposta() {
char response[BUFLEN] ={'\0'};
byte i = 0;
interval=3000;
timeElapsed=0;
do {
if (serialSIM800.available()) {
char c = serialSIM800.read();
response[i] = c;
i++;
response[i] = '\0';
}
} while (timeElapsed<interval);
for (int ii=0; ii<10; ii++)
{
Serial.print(ii);
Serial.print(':');
Serial.print(response[ii],DEC);
Serial.println("");
}
}
Non so se sia il metodo migliore ma sicuramente funziona.