SIM800L Message is Delivered But Not Displayed in Mobile

I am Using Sim800L with Arduino UNO. While Running time, It Receive message, Call function and Send message. It works fine, But in Sending message, message is sent and not displayed in mobile phone(i.e. It Shows received message from the sim800l number notifications, but message is not viewed in message APK and not able read the message. )

I hereby Attach my code..

#include <SoftwareSerial.h>
SoftwareSerial sim(2, 3);
int _timeout;
String _buffer;
String number = "+91xxxxxxxxxx"; //-> change with your number
void setup() {
  delay(7000); //delay for 7 seconds to make sure the modules get the signal
  Serial.begin(9600);
  _buffer.reserve(50);
  Serial.println("Sistem Started...");
  sim.begin(9600);
  delay(1000);
  Serial.println("Type s to send an SMS, r to receive an SMS, and c to make a call");
}
void loop() {
  /*
  Serial.println("Are you want to change the Number >> YES or NO");
  if(Serial.read()== "YES"){
    Serial.println("Enter the Number >> ");
    number = Serial.read();  
  }*/
  if (Serial.available() > 0)
    switch (Serial.read())
    {
      case 's':
        SendMessage();
        break;
      case 'r':
        RecieveMessage();
        break;
      case 'c':
        callNumber();
        break;
    }
  if (sim.available() > 0)
    Serial.write(sim.read());
}
void SendMessage()
{
  //Serial.println ("Sending Message");
  sim.println("AT+CMGF=1");    //Sets the GSM Module in Text Mode
  delay(1000);
  //Serial.println ("Set SMS Number");
  sim.println("AT+CMGS=\"" + number + "\"\r"); //Mobile phone number to send message
  delay(1000);
  String SMS = "Hello, how are you?";
  sim.println(SMS);
  delay(100);
  sim.println((char)26);// ASCII code of CTRL+Z
  delay(1000);
  _buffer = _readSerial();
}
void RecieveMessage()
{
  Serial.println ("SIM800L Read an SMS");
  delay (1000);
  sim.println("AT+CNMI=2,2,0,0,0"); // AT Command to receive a live SMS
  delay(1000);
  Serial.write ("Unread Message done");
}
String _readSerial() {
  _timeout = 0;
  while  (!sim.available() && _timeout < 12000  )
  {
    delay(13);
    _timeout++;
  }
  if (sim.available()) {
    return sim.readString();
  }
}
void callNumber() {
  sim.print (F("ATD"));
  sim.print (number);
  sim.print (F(";\r\n"));
  _buffer = _readSerial();
  Serial.println(_buffer);
}

i'm not familiar with sms messaging (am curous)

you have delays. shouldn't the message be an uninterrupted stream of bytes?

not sure what ctl+'z' is expected to represent (depends on keyboard/application reading keyboard). 26 is 'SUB' (ascii chart)