Comment lire la réponse d'une commande AT ?

le code est tout simple, pour le moment c'est juste une ébauche qui me sert de test et d'aprentissage
ou j’intègre au fur et a mesure les commandes suivant mes besoins

#include <SoftwareSerial.h>
SoftwareSerial SIM900(2, 3); // softwareserial port
 
void setup()
{
  SIM900.begin(19200);               
  SIM900power();  
  delay(20000);  // temps pour se logger au reseau
}
 void SIM900power()
{
  digitalWrite(9, HIGH);
  delay(1000);
  digitalWrite(9, LOW);
  delay(5000);
}

void MakeCall()
{
  SIM900.println("ATD + +33XXXXXXXX;"); // lance l'appel
  delay(100);
  SIM900.println();
  delay(30000);            // delais de 30 seconde
  SIM900.println("ATH");   // puis racroche
}
 
void loop()
{
  MakeCall(); // appel
  //SIM900power();   
  do {} while (1); 
}

je cherche donc a intégrer dans ce code une demande type SIM900.println(AT +CPAS) dont la réponse exécutera une action, qui sera plus tard la lecture d'un MP3 via le shield sparfun