citofono gsm

Ciao a tutti, sto realizzando un citofono gsm dove premendo un pulsante si avrà attraverso il modulo sim800l la chiamata telefonica verso un numero, ho aggiunto anche un lcd i2c con la quale si invita a premere il pulsante per chiamare, alla pressione del pulsante il modulo sim effettua la chiamata ed il display comunica che sta chiamando… ma appena finisce la chiamata come faccio a dire al display che la chiamata e terminata e quindi dovrebbe visualizzarlo per qualche secondo e poi ritornare al testo di: premere il pulsante per chiamare, se lo inserisco nel modulo loop avrò sempre lo stesso testo ripetuto, mi trovo in difficoltà, ho anche aggiunto il parametro ATA per rispondere automaticamente quando io chiamo il mio citofono e questo lo fa bene dopo qualche squillo, l’unico problema e quello che non ritorna nel display la scritta premere il pulsante per chiamare, altra cosa interessante sarebbe di poter inserire in automatico il numero e memorizzarlo nella memoria dell’arduino in modo da rendere il citofono gsm indipendente dal programmatore che dovrà per ogni cliente programmare il numero, qualcuno può aiutarmi? ecco il codice che ho realizzato fino adesso:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);

#define Pulsante_chiama 5
#include "SoftwareSerial.h"
SoftwareSerial mySerial(2, 3);


void setup(){

  lcd.begin();
  lcd.backlight();
  Serial.begin(9600);
  mySerial.begin(9600);

  pinMode(Pulsante_chiama, INPUT_PULLUP);
   lcd.clear();
     lcd.setCursor(0, 0);
      lcd.print("PREMI PULSANTE");
       lcd.setCursor(0, 1);
       lcd.print("PER CHIAMARE    ");

       
}
void loop(){
 

  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
   
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
     if (mySerial.println("RING")){
        mySerial.println("ATA");   
      }
      }
           if (digitalRead(Pulsante_chiama) == LOW) {
    
     mySerial.println("ATH");
    Serial.println("Pulsante_chiama premuto ");
     mySerial.println("ATD+39338.....;");
      delay(10);
      lcd.clear();
     lcd.setCursor(0, 0);
      lcd.print("ATTENDERE.. STO");
       lcd.setCursor(0, 1);
       lcd.print("CHIAMANDO...");
         
   delay(20); 
  
     
   
   }else{ 

}
  }