callback has the same arguments as getty(8).
atdt9999999 CONNECT 2400 hasse login: howard 2400 2400hovel BYE bye NO CARRIER RING CONNECT 2400 2400 1 2400 Password:
/dev/ttyd* - dialup ports /dev/cua* - dial-out ports /etc/ttytab - tells init to run callback on dialup lines ./bin/callback - run by init ./bin/getty-cb - special getty that execs /bin/.cb0 instead of login /bin/.cb0 - symbolic link to ./bin/callback0 ./bin/callback0 - run by getty-cb /etc/local/callback/control/ttyd* - symbolic-to-real phone numbers /etc/local/callback/log/ttyd* - log files /etc/local/callback/state/ttyd* - state files
In control files, comments start with a semicolon (;) and continue to the end of the line. Once comments, blank lines, lines containing only comments, and leading and trailing white space have been stripped, each line of a control file should consist of one symbolic telephone number followed by an at sign (@) followed by a line speed followed by white space followed by a string to command the modem to dial the desired real telephone number. For example:
; Shared control file for all lines. hovel@2400 atdt1234567 ; Howard's hovel. hovel@1200 atdt1234567 ; Same at 1200 bit/sec.When callback searches the control file, it appends an at sign and the line speed to the symbolic telephone number given by the user. This makes it possible to send different modem commands for each line speed.
Each tty can have its own control file, but if the control files of several different ttys are identical, they can be links.
There ought to be a secure way to add a new symbolic telephone number and its corresponding real telephone number without logging in. This would be useful when travelling. An approach based on one-time encryption should solve the problem. The user would first encrypt the real telephone number with a one-time pad corresponding to a special symbolic telephone number, e.g. by treating the telephone number as a decimal number and adding another number to it. This can be done by hand. The user then dials up and responds to the symbolic telephone number prompt with a special keyword. callback then prompts for the symbolic telephone number and the encrypted real telephone number (twice), decrypts it, and stores it in the control file.
callback always calls back on the line used for the incoming call. If multiple lines are available, it should be possible to place the callback on a different line. This greatly reduces the opportunities for spoofing.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.