+++ is an escape sequence
used by Hayes
s. It allows one to escape
into the modem's command mode
while still remaining connected to the remote host. AT commands
can then be issued to query the modem's statistics
, hang up
, or return online (usually with ATO)
The proper way to issue a +++ escape is to wait a certain amount of time, issue +++ within a certain amount of time, then wait again until the modem spits out "OK", indicating that it is ready to accept commands. The time periods can be configurable in some cases.
Some modems had a flaw in their +++ handling code; they'd escape immediately upon receiving a +++ alone on a line. This resulted in unexpected hangups and loss of data if the stream ^M+++ just happened to be in the file. You'd have to disable +++ in order to transfer binary correctly with these modems. There was also a denial of service attack involving sending an ICMP ping packet containing +++. When the host responds, the modem sees the +++ and the host is knocked off the net.
This flaw is caused by the fact that Hayes managed to patent the delay, and modem manufacturers would have to pay them a royalty to implement that feature. Rather than pay the royalty (to their competitor, even!) they just removed the delay. Apparently they either didn't realize the delay was there for a reason, or thought that ^M+++ wouldn't appear in binary data very often.