Gsm, Marcar segundo numero telefónica si llamada inicial no responde.

Buenas a todos, estoy en un desarrollo el cual realiza una llamada telefónica por medio de un gprs "M95", con Arduino Uno al presionar un swiche , lo que me gustaría agregar es si esta llamada inicial se encuentra ocupada o no responde se pueda realizar una segunda llamada a otro numero.

El código que realiza la llamada.

Serial.println("llamar.....");
      delay(10);
      llamar("3184095455");//Reemplazas las por el numero telefonico

Este llama a la función llamar.

//Función para hacer llamadas
void llamar(char x[15]){
   Serial.println("Realizando una llamada");
   GSM_M95.print("ATD");GSM_M95.print(x);GSM_M95.println(';');  // 
   while ((GSM_M95.read())!='K'){}//esperea 'K' de O'K'
   Serial.println("LLamando...");

Pues fácil: Date un tiempo, digamos 20-30 segundos para que se establezca la comunicación. Si la respuesta es NO CARRIER o BUSY quiere decir linea ocupada o no a podido llamar.
Lo que no he conseguido nunca es saber si ya esta llamando (los típicos tonos de llamada)

Saludos

PD: te aconsejo que uses Strings, tanto para el OK como para el resto de respuestas del gsm