mesg y command not working

The phenomenon that is hinted at in the question is the following. Users on a multiuser Linux system are able to write messages to each other using the write command. The message would show up on the console. Also, a root user would be able to send a message to all users at once using the wall command.

If you are busy, you may turn off these messages by entering the command mesg n, and turn them back on with mesg y. The default is y.

To show which users are logged on, and which are listening to messages, you can use the who -w command. It will show a + for users who allow messages to come through, and a - for those who don't. If the system can't determine what the mesg status of the user is, it will display a ?.

These days most of us will use a graphic environment and a terminal emulator, rather than a text console. A terminal emulator establishes what is called a "pseudo tty device". The who command (you can find its source by searching for the coreutils package) tries, but fails, to determine the mesg state of a pseudo tty device.

However, if you open a different console, e.g. by pressing Ctrl + Alt + F3, and login, the who -w command will display:

jos      + tty3         2021-06-25 10:52

This is a genuine tty device and not a pseudoterminal. Notice the + that indicates I'm prepared to read messages from my co-users on this console.