Sim800L test problem with AT command response and led blinking

Hello good Arduino lovers, please first forgive me if this kind of thread exists somewhere online because I haven't managed to find one. If you know a thread like this please kindly link me to it. Much appreciated :). Now onto the problem I would like to ask for help:
I am currently trying to use Arduino UNO controlling SIM800L. I use LM2596S regulator to keep the voltage at 4.1V. Sim800L Pin TX to pin 9 of Arduino and Pin RX to pin 8. I am in Finland, carrier Elisa. The sim was inserted correctly as shown in many tutorial videos. The SIM800L is quad-band GSM850MHz, EGSM900MHz, DSC1800Mhz, PCS1900MHz.

I tested the SIM800L with AT command and received results as shown in the photos. The problem I'm having is that:
1- The SIM800L led blinks fast (around 1 blink/s) in around 7-8 seconds, then makes long pause for around 3 seconds then continues to fast blink, then pauses and so on. Can anyone explain the meaning of this?
2- Whenever the SIM800L led paused, if I typed in AT commands, it would give the results of a reversed question mark '?' as shown in the photos. Whenever it blinked, the AT commands gave responses normally. However, I couldn't use it to call or text message at all. If anyone could pinpoint the problem, that would be great :slight_smile: .
I used the code from some web:

#include <SoftwareSerial.h>

//SIM800 TX is connected to Arduino D9
#define SIM800_TX_PIN 9

//SIM800 RX is connected to Arduino D8
#define SIM800_RX_PIN 8

//Create software serial object to communicate with SIM800
SoftwareSerial serialSIM800(SIM800_TX_PIN,SIM800_RX_PIN);

void setup() {
//Begin serial comunication with Arduino and Arduino IDE (Serial Monitor)
Serial.begin(9600);
while(!Serial);

//Being serial communication with Arduino and SIM800
serialSIM800.begin(9600);
delay(1000);

Serial.println("Setup Complete!");
}

void loop() {
//Read SIM800 output (if available) and print it in Arduino IDE Serial Monitor
if(serialSIM800.available()){
Serial.write(serialSIM800.read());
}
//Read Arduino IDE Serial Monitor inputs (if available) and send them to SIM800
if(Serial.available()){
serialSIM800.write(Serial.read());
}
}