/etc/uucp/Dialers ファイルには、よく使用される多くのモデムに関するダイヤリング指示が入っています。標準外のモデムの使用や、UUCP 環境のカスタマイズを予定している場合以外は、通常このファイルのエントリの変更や追加は必要ありません。しかし、このファイルの内容と、Systems ファイルや Devices ファイルとの関係は理解しておく必要があります。
このファイルの中のテキストは、回線をデータ転送に使用できるようにするために、最初に行わなければならない対話を指定します。チャットスクリプトと呼ばれるこの対話は、通常は送受信される一連の ASCII 文字列で、電話番号をダイヤルするためによく使用されます。
「UUCP /etc/uucp/Devices ファイル」の例に示したように、Devices ファイルの 5 番目のフィールドは、Dialers ファイルへのインデックスか、または特殊ダイヤラタイプ (TCP、TLI、または TLIS) です。 uucico デーモンは、Devices ファイルの 5 番目のフィールドを、Dialers ファイルの各エントリの最初のフィールドと突き合わせます。さらに、Devices の 7 番目の位置から始まる奇数番号の各フィールドは、Dialers ファイルへのインデックスとして使用されます。これらが一致すると、その Dialers のエントリがダイヤラ対話を行うために解釈されます。
Dialers ファイルの各エントリの形式は次のとおりです。
dialer |
substitutions |
expect-send |
例 27-10 に、US Robotics V.32bis モデム用のエントリの例を示します。
Dialer Substitution Expaec-Send usrv32bis-e =,-, "" dA¥pT&FE1V1X1Q0S2=255S12=255&A1&H1&M5&B2&W¥r¥c OK¥r ¥EATDT¥T¥r¥c CONNECT¥s14400/ARQ STTY=crtscts |
Dialer フィールドは、Devices ファイルの中の 5 番目以降の奇数番号のフィールドと突き合わされます。Substitutions フィールドは変換文字列です。各文字ペアの最初の文字が 2 番目の文字に変換されます。通常これは = と - を、「発信音待ち」と「一時停止」用としてダイヤラが必要とする文字に変換するために使用されます。
それ以降の expect-send の各フィールドは文字列です。
例 27-11 に、Dialers ファイルのエントリの例をいくつか示します。これは、Solaris インストールプログラムの一環として UUCP をインストールしたときに提供されるファイルです。
penril =W-P "" ¥d > Q¥c : ¥d- > s¥p9¥c )-W¥p¥r¥ds¥p9¥c-) y¥c : ¥E¥TP > 9¥c OK ventel =&-% "" ¥r¥p¥r¥c $ <K¥T%%¥r>¥c ONLINE! vadic =K-K "" ¥005¥p *-¥005¥p-*¥005¥p-* D¥p BER? ¥E¥T¥e ¥r¥c LINE develcon "" "" ¥pr¥ps¥c est:¥007 ¥E¥D¥e ¥n¥007 micom "" "" ¥s¥c NAME? ¥D¥r¥c GO hayes =,-, "" ¥dA¥pTE1V1X1Q0S2=255S12=255¥r¥c OK¥r ¥EATDT¥T¥r¥c CONNECT # Telebit TrailBlazer tb1200 =W-, "" ¥dA¥pA¥pA¥pTE1V1X1Q0S2=255S12=255S50=2¥r¥c OK¥r ¥EATDT¥T¥r¥c CONNECT¥s1200 tb2400 =W-, "" ¥dA¥pA¥pA¥pTE1V1X1Q0S2=255S12=255S50=3¥r¥c OK¥r ¥EATDT¥T¥r¥c CONNECT¥s2400 tbfast =W-, "" ¥dA¥pA¥pA¥pTE1V1X1Q0S2=255S12=255S50=255¥r¥c OK¥r ¥EATDT¥T¥r¥c CONNECT¥sFAST # USrobotics, Codes, and DSI modems dsi-ec =,-, "" ¥dA¥pTE1V1X5Q0S2=255S12=255*E1*F3*M1*S1¥r¥c OK¥r ¥EATDT¥T¥r¥c CONNECT¥sEC STTY=crtscts,crtsxoff dsi-nec =,-, "" ¥dA¥pTE1V1X5Q0S2=255S12=255*E0*F3*M1*S1¥r¥c OK¥r ¥EATDT¥T¥r¥c CONNECT STTY=crtscts,crtsxoff usrv32bis-ec =,-, "" ¥dA¥pT&FE1V1X1Q0S2=255S12=255&A1&H1&M5&B2&W¥r¥c OK¥r ¥EATDT¥T¥r¥c CONNECT¥s14400/ARQ STTY=crtscts,crtsxoff usrv32-nec =,-, "" ¥dA¥pT&FE1V1X1Q0S2=255S12=255&A0&H1&M0&B0&W¥r¥c OK¥r ¥EATDT¥T¥r¥c CONNECT STTY=crtscts,crtsxoff codex-fast =,-, "" ¥dA¥pT&C1&D2*MF0*AA1&R1&S1*DE15*FL3S2=255S7=40S10=40*TT5&W¥r¥c OK¥r ¥EATDT¥T¥r¥c CONNECT¥s38400 STTY=crtscts,crtsxoff tb9600-ec =W-, "" ¥dA¥pA¥pA¥pTE1V1X1Q0S2=255S12=255S50=6¥r¥c OK¥r ¥EATDT¥T¥r¥cCONNECT¥s9600 STTY=crtscts,crtsxoff tb9600-nec =W-, "" ¥dA¥pA¥pA¥pTE1V1X1Q0S2=255S12=255S50=6S180=0¥r¥c OK¥r ¥EATDT¥T¥r¥c CONNECT¥s9600 STTY=crtscts,crtsxoff |
表 27-5 に、Dialers ファイルの send 文字列でよく使用されるエスケープ文字を示します。
表 27-5 /etc/uucp/Dialers で使用するエスケープ文字
文字 |
説明 |
---|---|
バックスペース文字を送信または想定する |
|
改行、キャリッジリターンを抑止する |
|
遅延 (約 2 秒) |
|
¥D |
Dialcodes 変換なしの電話番号またはトークン |
エコーチェックを使用しない |
|
エコーチェックを使用する (低速デバイス用) |
|
ブレーク文字を挿入する |
|
改行文字を送信する |
|
8 進数値を送信する。使用できるその他のエスケープ文字は、「UUCP /etc/uucp/Systems ファイル」を参照 |
|
NULL 文字 (ASCII NUL) を送信または想定する |
|
一時停止 (約 12 〜 14 秒) |
|
リターン |
|
スペース文字を送信または想定する |
|
Dialcodes 変換を伴う電話番号またはトークン |
次に示すのは Dialers ファイルの penril エントリです。
penril =W-P "" ¥d > Q¥c : ¥d- > s¥p9¥c )-W¥p¥r¥ds¥p9¥c-) y¥c : ¥E¥TP > 9¥c OK |
最初に、電話番号引数の置換メカニズムが確立されます。その結果、= はすべて W (発信音待ち) で置き換えられ、- はすべて P (一時停止) で置き換えられるようになります。
上記の行の残りの部分に指定されているハンドシェークの働きは、次のとおりです。
"" - 何も待たない (つまり次へ進む)
¥d - 2 秒間の遅延の後キャリッジリターンを送信する
> - > を待つ
Q¥c - キャリッジリターンを付けずに Q を送信する
: - : を待つ
¥d- - 2 秒間の遅延の後 - とキャリッジリターンを送信する
> - > を待つ
s¥p9¥c - s を送信し、一時停止し、9 を送信するが、キャリッジリターンは送信しない
)-W¥p¥r¥ds¥p9¥c-) - ) を待つ。) が受信されない場合は、- 文字の間の文字列を処理する。つまり、W を送信し、一時停止し、キャリッジリターンを送信し、遅延し、s を送信し、一時停止し、9 を送信し、キャリッジリターンを送信しないで ) を待つ
y¥c - キャリッジリターンを付けずに y を送信する
: - : を待つ
¥E¥TP - エコーチェックを有効にする (この時点以降は、1 文字送信すると、その文字が受信されるまでほかの作業を行わない)。次に電話番号を送信する。¥T は、引数として渡された電話番号をとり、Dialcodes 変換を適用し、このエントリのフィールド 2 で指定されたモデム機能変換を適用することを意味する。次に、P とキャリッジリターンを送信する
> - > を待つ
9¥c - 改行を付けずに 9 を送信する
擬似送信文字列 STTY=value を用いることによっても、モデムの特性を設定できます。たとえば、STTY=crtscts は出力ハードウェアフロー制御、STTY=crtsxoff は入力ハードウェアフロー制御を使用可能にし、STTY=crtscts、crtsxoff は入出力両方のハードウェアフロー制御を使用可能にします。
STTY はすべての stty モードを受け入れます。詳細は、stty(1) と termio(7I) のマニュアルページを参照してください。
次の例は、Dialers ファイルエントリ内でハードウェアフロー制御を使用可能にしています。
dsi =,-, "" ¥dA¥pTE1V1X5Q0S2=255S12=255*E1*F3*M1*S1¥r¥c OK¥r ¥EATDT¥T¥r¥c CONNECT¥sEC STTY=crtscts |
この擬似送信文字列は、Systems ファイルのエントリ中でも使用できます。
場合によっては、呼び出そうとしているシステムがポートのパリティを検査し、パリティに誤りがあると回線を切断することがあります。そのため、パリティのリセットが必要になります。expect-send の対を成す文字列として P_ZERO を使用すると、パリティが 0 に設定されます。
foo =,-, "" P_ZERO "" ¥dA¥pTE1V1X1Q0S2=255S12=255¥r¥c OK¥r¥EATDT¥T¥r¥c CONNECT |
同様に、P_EVEN はパリティを偶数 (デフォルト) に、P_ODD はパリティを奇数に設定し、P_ONE はパリティを 1 に設定します。この擬似送信文字列は、Systems ファイルのエントリの中でも使用できます。