Connection issues with arduino and gsm

Can someone see an obvious mistake in my program that wound cause to disconnected from app after five minuets. The example arduino blink gsm sketch works just fine

#define BLYNK_PRINT Serial
#define TINY_GSM_MODEM_SIM900
// Default heartbeat interval for GSM is 60
// If you want override this value, uncomment and set this option:
//#define BLYNK_HEARTBEAT 30
#include <TinyGsmClient.h>
#include <BlynkSimpleSIM800.h>
#define TINY_GSM_DEBUG Serial
uint32_t rate = 9600;
BlynkTimer timer;
char auth[] = "***************my auth*********";
char apn[]  = "internet.com";
char user[] = "";
char pass[] = "";
#include <SoftwareSerial.h>
SoftwareSerial SerialAT(2, 3); // RX, TX
TinyGsm modem(SerialAT);



WidgetLED preAlarm_led(V5 );
int vac_pin = A0;
int vac=0;
int rssi = 0;
int temp_pin = A3;
float temperature;
int dumpcount = 0;
int dumptrue=0;



BLYNK_WRITE(V4)//// RESET DUMPS BUTTON
{
  int bstate = param.asInt(); 
  if(bstate ==1){
    dumpcount =0;
  }
}





void myTimerEvent(){
  
  if(digitalRead(5) == LOW){
    preAlarm_led.on();
  }
  else{preAlarm_led.off();}
  
  
  if(digitalRead(4)==HIGH){
    dumptrue=0;
   }

  if(digitalRead(4)==LOW){
    if(dumptrue==0){
    dumpcount++;
    }
    dumptrue=1;
   }
  
  
  
  Blynk.virtualWrite(V0, rssi);
  Blynk.virtualWrite(V1,temperature);
  Blynk.virtualWrite(V2,vac);
  Blynk.virtualWrite(V3, dumpcount);



  if(Blynk.connected()==false){
    digitalWrite(9,LOW);
  }
  else if(Blynk.connected()==true){
    digitalWrite(9,HIGH);
  }
  SerialAT.write("AT+CSQ\r\n");
  delay(150);
 if(SerialAT.available()>=19) {
      for (int i = 1; i<9; i++) {
      byte discardByte = SerialAT.read(); 
      }
      // SerialMon.write(SerialAT.read());
      rssi= SerialAT.parseInt();
      while(SerialAT.available()){
      byte discardByte = SerialAT.read();  
    }
  }
   int sensorValue = analogRead(temp_pin);
  float millivolts = (sensorValue/1024.0) * 3300;
  temperature = millivolts/10;
vac = analogRead(vac_pin);
  vac = map(vac,0,1023,30,0);
}

void setup()
{
  Serial.begin(9600);
  delay(10);
  SerialAT.begin(9600);
  delay(3000);
  pinMode(9,OUTPUT);
  // Restart takes quite some time
  // To skip it, call init() instead of restart()
  Serial.println("Initializing modem...");
  modem.restart();
  Blynk.begin(auth, modem, apn, user, pass);
  timer.setInterval(10000L, myTimerEvent);
}

void loop()
{
  Blynk.run();
  timer.run();
 }