この節では、独自の chat スクリプトを作成する際の参考になる chat スクリプトの例を紹介します。モデムメーカーのガイドや ISP および他のターゲットホストからの情報には、モデムおよびターゲットピアの chat の要件が含まれています。また、数多くの PPP Web サイトで chat スクリプトのサンプルが提供されています。
以下は、独自の chat スクリプトを作成するためのテンプレートとして使用できる基本の chat スクリプトです。
ABORT BUSY ABORT 'NO CARRIER' REPORT CONNECT TIMEOUT 10 "" AT&F1M0&M5S2=255 SAY "Calling myserver\n" TIMEOUT 60 OK "ATDT1-123-555-1212" ogin: pppuser ssword: \q\U % pppd |
スクリプトの内容 |
説明 |
---|---|
ABORT BUSY |
モデムが反対側のピアからこのメッセージを受け取った場合、伝送を中止する |
ABORT 'NO CARRIER' |
ダイアル時にモデムが 'NO CARRIER' を報告した場合、伝送を中止する。 このメッセージは、通常、ダイアルまたはモデムのネゴシエーションが失敗したときに発生する |
REPORT CONNECT |
CONNECT 文字列をモデムから収集し、その文字列を出力する |
TIMEOUT 10 |
初期タイムアウトを 10 秒に設定する。モデムは即時に応答する必要がある |
"" AT&F1M0&M5S2=255 |
M0 – 接続中、スピーカーをオフに設定する &M5 – モデムにエラー制御を要求させる S2=255 – TIES "+++" ブレークシーケンスを無効にする |
SAY "Calling myserver\n" |
ローカルマシン上に「Calling myserver (myserver を呼び出し中)」のメッセージを表示する |
TIMEOUT 60 |
タイムアウトを 60 秒にリセットし、接続ネゴシエーションにより多くの時間を割り当てる |
OK "ATDT1-123-555-1212" |
電話番号 1-123-555-1212 を使ってリモートピアに発信する |
ogin: pppuser |
UNIX 方式のログインを使ってピアにログインする。ユーザー名 pppuser を指定 |
ssword: \q\U |
\q – –v オプションを使ってデバッグする場合、ログをとらない \U – –U の後に続く文字列の内容を挿入する。文字列はコマンド行に指定されるもので、通常はパスワードが含まれる |
% pppd |
% シェルプロンプトを待ち、pppd コマンドを実行する |
Solaris PPP 4.0 には、ユーザーが自分のサイトで使用するために変更できる /etc/ppp/myisp-chat.tmpl という chat スクリプトテンプレートが用意されています。/etc/ppp/myisp-chat.tmpl は、基本のモデム chat スクリプトと似ていますが、ログインシーケンスが含まれていません。
ABORT BUSY ABORT 'NO CARRIER' REPORT CONNECT TIMEOUT 10 "" "AT&F1" OK "AT&C1&D2" SAY "Calling myisp\n" TIMEOUT 60 OK "ATDT1-123-555-1212" CONNECT \c |
スクリプトの内容 |
意味 |
---|---|
ABORT BUSY |
モデムが反対側のピアからこのメッセージを受け取った場合、伝送を中止する |
ABORT 'NO CARRIER |
ダイアル時にモデムが 'NO CARRIER' を報告した場合、伝送を中止する。このメッセージは、通常、ダイアルまたはモデムのネゴシエーションが失敗したときに発生する |
REPORT CONNECT |
CONNECT 文字列をモデムから収集し、その文字列を出力する |
TIMEOUT 10 |
初期タイムアウトを 10 秒に設定する。 モデムは即時に応答する必要がある |
"" "AT&F1" |
モデムを出荷時のデフォルトにリセット |
OK "AT&C1&D2" |
モデムをリセットする。その結果、&C1 では、モデムからの DCD がキャリアを追跡する。リモート側がなんらかの理由で電話を切った場合、DCD はドロップする &D2 では、DTR の High-Low 遷移により、モデムが「オンフック」状態になる、またはハングアップする |
SAY "Calling myisp\n" |
ローカルマシン上に「Calling myisp (myisp を呼び出し中)」のメッセージを表示する |
TIMEOUT 60 |
タイムアウトを 60 秒にリセットし、接続ネゴシエーションにより多くの時間を割り当てる |
OK "ATDT1-123-555-1212" |
電話番号 1-123-555-1212 を使ってリモートピアに発信する |
CONNECT \c |
反対側のピアのモデムからの CONNECT メッセージを待つ |
ダイアルアウトマシンから U.S. Robotics Courier モデムを使用して ISP を呼び出すには、テンプレートとして次の chat スクリプトを使用します。
ABORT BUSY ABORT 'NO CARRIER' REPORT CONNECT TIMEOUT 10 "" AT&F1M0&M5S2=255 SAY "Calling myisp\n" TIMEOUT 60 OK "ATDT1-123-555-1212" CONNECT \c \r \d\c SAY "Connected; running PPP\n" |
次の表では、chat スクリプトの内容を説明します。
スクリプトの内容 |
説明 |
---|---|
ABORT BUSY |
モデムが反対側のピアからこのメッセージを受け取った場合、伝送を中止する |
ABORT 'NO CARRIER' |
モデムが反対側のピアからこのメッセージを受け取った場合、伝送を中止する |
REPORT CONNECT |
CONNECT 文字列をモデムから収集し、その文字列を出力する |
TIMEOUT 10 |
初期タイムアウトを 10 秒に設定する。モデムは即時に応答する必要がある |
"" AT&F1M0M0M0M0&M5S2=255 |
M0 – 接続中、スピーカーをオフに設定する &M5 – モデムにエラー制御を要求させる S2=255 – TIES "+++" ブレークシーケンスを無効にする |
SAY "Calling myisp\n" |
ローカルマシン上に「Calling myisp (myisp を呼び出し中)」のメッセージを表示する |
TIMEOUT 60 |
タイムアウトを 60 秒にリセットし、接続ネゴシエーションにより多くの時間を割り当てる |
OK "ATDT1-123-555-1212" |
電話番号 1-123-555-1212 を使ってリモートピアに発信する |
CONNECT \c |
反対側のピアのモデムからの CONNECT メッセージを待つ |
\r \d\c |
CONNECT メッセージの最後まで待つ |
SAY “Connected; running PPP\n” |
「Connected; running PPP (接続完了。PPP を実行中)」という通知メッセージをローカルマシン上に表示する |
次の chat スクリプトは、Solaris のリモートピアまたは他の UNIX タイプのピアを呼び出すために基本のスクリプトを拡張したものです。この chat スクリプトは、ピアを呼び出すための命令群を作成する方法で使用されています。
SAY "Calling the peer\n" TIMEOUT 10 ABORT BUSY ABORT 'NO CARRIER' ABORT ERROR REPORT CONNECT "" AT&F1&M5S2=255 TIMEOUT 60 OK ATDT1-123-555-1234 CONNECT \c SAY "Connected; logging in.\n" TIMEOUT 5 ogin:--ogin: pppuser TIMEOUT 20 ABORT 'ogin incorrect' ssword: \qmypassword "% " \c SAY "Logged in. Starting PPP on peer system.\n" ABORT 'not found' "" "exec pppd" ~ \c |
スクリプトの内容 |
説明 |
---|---|
TIMEOUT 10 |
初期タイムアウトを 10 秒に設定する。モデムは即時に応答する必要がある |
ABORT BUSY |
モデムが反対側のピアからこのメッセージを受け取った場合、伝送を中止する |
ABORT 'NO CARRIER' |
モデムが反対側のピアからこのメッセージを受け取った場合、伝送を中止する |
ABORT ERROR |
モデムが反対側のピアからこのメッセージを受け取った場合、伝送を中止する |
REPORT CONNECT |
CONNECT 文字列をモデムから収集し、その文字列を出力する |
"" AT&F1&M5S2=255 |
&M5 – モデムにエラー制御を要求させる S2=255 – TIES "+++" ブレークシーケンスを無効にする |
TIMEOUT 60 |
タイムアウトを 60 秒にリセットし、接続ネゴシエーションにより多くの時間を割り当てる |
OK ATDT1-123-555-1234 |
電話番号 1-123-555-1212 を使ってリモートピアに発信する |
CONNECT \c |
反対側のピアのモデムからの CONNECT メッセージを待つ |
SAY "Connected; logging in.\n" |
「Connected; logging in (接続完了。ログイン中)」という通知メッセージを表示して、ユーザーの状態を知らせる |
TIMEOUT 5 |
タイムアウトを変更し、ログインプロンプトを迅速に表示できるようにする |
ogin:--ogin: pppuser |
ログインプロンプトを待つ。ログインプロンプトを受け取らなかった場合は、RETURN を送信して待機する。次にユーザー名 pppuser をピアに送信する。この後に続くシーケンスは、ほとんどの ISP から PAP ログインと呼ばれている。ただし、PAP 認証とはまったく無関係である |
TIMEOUT 20 |
タイムアウトを 20 秒に変更し、パスワードの検証により多くの時間をかけられるようにする |
ssword: \qmysecrethere |
ピアからのパスワードプロンプトを待つ。プロンプトを受け取ると、パスワード \qmysecrethere を送信する。\q は、パスワードがシステムログファイルに書き込まれるのを防ぐ |
"% " \c |
ピアからのシェルプロンプトを待つ。 chat スクリプトは C シェルを使用する。ユーザーが異なるシェルを使ってログインすることを希望する場合は、この値を変更する |
SAY "Logged in. Starting PPP on peer system.\n" |
「Logged in. Starting PPP on peer system (ログイン完了。ピアシステム上で PPP を開始中)」という通知メッセージを表示して、ユーザーの状態を知らせる |
ABORT 'not found' |
シェルがエラーに遭遇した場合、伝送を中止する |
"" "exec pppd" |
ピア上で pppd を起動する |
~ \c |
PPP がピア上で開始するのを待つ |
ISP は、CONNECT \c の直後に PPP を開始することをしばしば「PAP ログイン」といいます。しかし、実際には、PAP ログインは PAP 認証とは無関係です。
ogin:--ogin: pppuser 句は、ダイアルインサーバーからのログインプロンプトに対してユーザー名 pppuser を送信するようにモデムに指示します。pppuser は、ダイアルインサーバー上のリモートユーザー user1 用に作成された専用の PPP ユーザーアカウント名です。ダイアルインサーバー上に PPP ユーザーアカウントを作成する方法については、ダイアルインサーバーのユーザーを構成する方法を参照してください。
次は、ダイアルアウトマシンから ZyXEL omni.net ISDN TA を使って呼び出すための chat スクリプトです。
SAY "Calling the peer\n" TIMEOUT 10 ABORT BUSY ABORT 'NO CARRIER' ABORT ERROR REPORT CONNECT "" AT&FB40S83.7=1&K44&J3X7S61.3=1S0=0S2=255 OK ATDI18882638234 CONNECT \c \r \d\c SAY "Connected; running PPP\n" |
次の表では、chat スクリプトのパラメータを説明します。
スクリプトの内容 |
説明 |
---|---|
SAY "Calling the peer" |
ダイアルアウトマシンの画面上にこのメッセージを表示する |
TIMEOUT 10 |
初期タイムアウトを 10 秒に設定する |
ABORT BUSY |
モデムが反対側のピアからこのメッセージを受け取った場合、伝送を中止する |
ABORT 'NO CARRIER' |
モデムが反対側のピアからこのメッセージを受け取った場合、伝送を中止する |
ABORT ERROR |
モデムが反対側のピアからこのメッセージを受け取った場合、伝送を中止する |
REPORT CONNECT |
CONNECT 文字列をモデムから収集し、その文字列を出力する |
"" AT&FB40S83.7= 1&K44&J3X7S61.3=1 S0=0S2=255 |
|
OK ATDI18882638234 |
ISDN 呼び出しを行う。マルチリンクでは、2 番目の呼び出しは、同じ電話番号に対して行われる。これは、通常、ほとんどの ISP の条件である。リモートピアが 2 番目の電話番号に異なる番号を要求す る場合は、「+ nnnn」を付け加える。nnnn は 2 番目の電話番号を表す |
CONNECT \c | |
\r \d\c |
CONNECT メッセージの最後まで待つ |
SAY "Connected; running PPP\n" |
ダイアルアウトマシンの画面上にこのメッセージを表示する |
chat スクリプトのオプションの説明およびその他の詳細な情報については、chat(1M) のマニュアルページを参照してください。送信予期文字列の説明については、UUCP Chat-Script フィールドを参照してください。
数多くの Web サイトで、chat スクリプトのサンプルとスクリプト作成のヒントが提供されています。
オーストラリア国立大学の Web サイトから利用できる PPP FAQ (Frequently Asked Questions) のページ (URL) も参考になります。