端口与速率(Port and Speed) port和speed选项用作选择用于呼叫远程系统的设备以及设备应该设置的最高速率。[7]一个system条目可以单独地使用这两个选项,或同时使用它们。当在port文件中查找适当的设备时,只有那些端口名以及/或者速度范围匹配的端口被选中。 通常,使用speed选项就足够了。如果在port中只定义了一个串行设备的话,uucico无论如何将总能选择到一个正确的,所以你只需给它一个所期望的速度即可。如果你的系统上连接了几个modem的话,你通常仍然无须指定一个特定的端口,因为在uucico发现有几个匹配时,它回逐个尝试每个设备直到找到一个未用的设备为止。
登录对话(The Login Chat) 上面,我们已经遇到过登录对话脚本,它告知uucico如何登录进远程系统。它由本地uucico进程指定的期望字符串和发送字符串的一个标记列表组成。目的是为了让uucico等待远程机器发送过来一个登录提示,然后返回登录名称,再等待远程系统发送密码提示,并发送密码。所期望的和发送的字符串是交替给出的。uucico自动地将回车符(carriage return character \r)附加到任何发送的字符串上。这样,一个简单的对话脚本将象这样
# NakWell modem; connect at high speed port serial1 # port name type modem # modem port device /dev/cua1 # this is COM2 speed 38400 # supported speed dialer nakwell # normal dialer
# NakWell modem; connect at low speed port serial1 # port name type modem # modem port device /dev/cua1 # this is COM2 speed 9600 # supported speed dialer nakwell-slow # don’t attempt fast connect
# NakWell modem; connect at high speed dialer nakwell # dialer name chat “” ATZ OK\r ATH1EOQO OK\r ATDT\T CONNECT chat-fail BUSY chat-fail ERROR chat-fail NO\sCARRIER dtr-toggle true
modem对话过程以空字符串“”开始。接下来uucico将送出第一个命令(ATZ)。ATZ是Hayes命令用于复位modem。然后等待modem送回OK,接着送出下一个命令来关闭本地回显,等等。当modem再次返回OK以后,uucico发出拨号命令(ATDT)。该字符串中的逃逸字符序列\T将被从sys文件中的系统条目内的电话号码替换掉。此后,uucico等待modem返回字符串CONNECT,这个字符串表示与远程的modem已经成功地建立了连接。 常常,modem与远程系统的连接会失败,例如,远程系统正在与其它人通话并且线路忙的话。在这种情况下,modem将返回某些出错信息指出失败的原因。Modem对话是没有能力来识别出这种消息的;uucico将继续等待期望的字符串的到来直到超时。因此UUCP的日志文件将只显示出一模糊的“对话脚本超时(timed out in chat script)”信息而非真正的原因。 然而,Taylor UUCP允许你使用上面的chat-fail命令告知uucico有关此类出错消息。在执行modem对话时,当uucico检测出一个对话出错(chat-fail)字符串,它就会放弃这次呼叫,并且将错误消息记录在UUCP的日志文件中。 上面样本例子中所示的最后一个命令告知UUCP在开始modem对话之前转换DTR线的信号。大多数modem能够配置成当检测到DTR线路信号转换时挂断线路,并进入命令模式。[10]