下面的工作就是使Windows 98能接听服务器回拨的电话,并通过服务器的用户认证。建立一个脚本文件callback.scp,内容如下:
proc main waitfor "ogin:" transmit "call_hxf^M" waitfor "munber for callback:" transmit "65145678^M" waitfor "RING" transmit "ATA^M" waitfor "ogin:" transmit "^M" waitfor "assword:" transmit $PASSWORD tramsmit "^M" endproc |
在所使用拨号连接的“属性”、“制作脚本”里填上文件的全路径和文件名。用户根据实际情况修改相应地方。
此脚本由一个一个的waitfor-transmit对组成,收到登录提示符“login:”,就发送callback的用户名call_hxf。如果服务器没有指定回拨的电话号码,就要在收到“number for callback:”这样的字符串后,发送自己的电话号码。当用户给了回拨号码后(或服务器已经指定),服务器就挂断电话、进行回拨。客户端Modem检测一个振铃,就向串口发送一个RING字符串,Windows 98从串口读到这个字符串,就会向Modem发出ATA命令,让它接听这个电话。之后,Mgetty向客户提示输入用户名和密码,这里的$USERID和$PASSWORD就是引用用户在拨号对话框里填入的用户名和密码。
在这个过程中,Windows 98的拨号程序一直通知用户正在验证用户名和口令。因为它不知道在做回拨,所以只好认为是在验证口令了。在整个回拨过程中,不要随便按“取消”,因为服务器端的Callback程序并不知道已取消了,它会一直拨电话。这个Callback程序的反应速度不是很快,在服务器断掉电话到听到回拨的电话铃声,可能要等20~30s。在回拨过程中,会发现在有一个被最小化的终端窗口,它就是Callback.scp脚本文件执行时的窗口。在听到回拨的电话铃声时,会在这个窗口看到“RING”,这表示Modem收到一个振铃。接着Callback.scp就会发出“ATA”接听这个电话,PPP就通了。