Solstice PPP 3.0.1 ユーザーズガイド

CHAT スクリプトの編集

CHAT スクリプトは、接続フェーズ時にクライアントとサーバー間で発生するダイアログ (対話) を定義します。単純な非対話型 CHAT スクリプトでは、 以下のように send キーワードと expect キーワードによって交換する文字列を定義します。


#
# Chat script for ppp login
#
 
#
# Set the line regarding the remote site configuration
# Due to UUCP limitations some systems only accept cs7
#
# setline 	cs7 parodd
 
send    	RETURN
expect  	"ogin:"  10  onerror send BREAK repeat 3
 
send    	"ppp1"
expect  	"word: " 40
#
# Set the ppp password of the remote host here
#
send	    "okppp1"

呼を発信すると、クライアントはリモートサーバーからの応答を受信した後、ログインシーケンスを開始します。クライアントが応答を待機する時間と呼を発信する試行回数は、以下のエントリによって定義します。


expect  	"ogin:"  10  onerror send BREAK repeat 3

要求される応答は、ogin です。最初の数字 10 は待機時間を示し、2 番目の数字 3 は呼の開始試行数を示します。これらのパラメータは、いずれも変更可能です。

たとえば、発信を 5 秒ごとに 10 回再試行するには、エントリを以下のように変更します。


expect  	"ogin:"  5  onerror send BREAK repeat 10

対話型 CHAT スクリプトでは、echo キーワードと read キーワードによって、ユーザー入力を促すためのプロンプトを表示します。ユーザーが入力した内容は、接頭辞 $ によって識別される変数として格納されます。以下の例は、前述の非対話型のスクリプトを対話型にしたものです。


send	RETURN
expect  	"ogin:"  10  onerror send BREAK repeat 3
 
echo	"Enter your PPP login id: "
read	$login
send	"$login"
 
expect  	"word: " 40
 
echo	"Enter your PPP password: "
read	$password
send	"$password"

次の例は、ユーザーと動的チャレンジ応答認証システムとの対話を管理する、より複雑な CHAT スクリプトです。


send	RETURN
expect	"ID:"  10  onerror send BREAK repeat 3
 
echo	"Enter your user ID number: "
read	$id
send	"$id"
 
expect	"Challenge: ${challenge,6}" 10
echo	"Enter the response for Challenge ${challenge}: "
read	$response
send	"$response"
 
expect	"${host}:" 20
echo	"Connected to ${host}¥n"
send	"ppp"

このスクリプトは、ユーザー ID を読み取ってサーバーに送信します。文字列 Challenge: で始まるサーバーからの応答を 10 秒間待機し、チャレンジ値である次の 6 文字を読み取ります。

次に、スクリプトはチャレンジ値を表示し、ユーザーによる応答を待機し、この応答をサーバーに送信します。応答が受信されると、接続が確立されます。

文字列の中の変数は、{} 括弧を使用することによって他の文字と区別します。