Sim800l echoes command

Im using sim800l to esp32 for my project but it appears it just echoes the command, it doesnt receives text

#include <HardwareSerial.h>

HardwareSerial sim800(1); 

void setup() {
  Serial.begin(115200); 
  sim800.begin(9600, SERIAL_8N1, 32, 33); 
  
  Serial.println("Initializing...");
  delay(1000);

  sendATCommand("ATE0\r");
  delay(100);

  sendATCommand("AT+CMGF=1\r");
  delay(100);
  
  sendATCommand("AT+CNMI=2,2,0,0,0\r"); 
}

void loop() {
  if (sim800.available()) {
    String message = "";
    while (sim800.available()) {
      char c = sim800.read();
      message += c; 
    }
    Serial.println("Received Message:");
    Serial.println(message); 
  }
}

void sendATCommand(String command) {
  sim800.print(command); 
  delay(1000); 
  while (sim800.available()) {
    Serial.write(sim800.read()); 
  }
  Serial.println(); 
}

I do have a 470u 25v capacitor and using 3.7 lipo battery that is connected to a buck converter, making it 4.1v to power my sim800l, and it does seem to be connected to the sim network, since it blinks every 3 seconds.

How are you sending text to this device?

i just send text thru phone, but it just echoes the command and no input. I do have a Sim900a, and it receives text as normal and didnt echoes the command unlike this sim800l