The modem command selects a modem type. Currently, the only type supported is HAYES (capitalization required). You have to provide dip with a modem type, else it will refuse to execute the dial and reset commands. The reset command sends a reset string to the modem; the string used depends on the modem type selected. For Hayes-compatible modems, this is ATZ.
The flush code can be used to flush out all responses the modem has sent so far. Otherwise a chat script following the reset might be confused, because it reads the OK responses from earlier commands.
The init command selects an initialization string to be passed to the modem before dialing. The default for Hayes modems is ``ATE0 Q0 V1 X1'', which turns on echoing of commands and long result codes, and selects blind dialing (no checking of dial tone).
The dial command finally sends the initialization string to the modem and dials up the remote system. The default dial command for Hayes modems is ATD.