Go to main content
Oracle® Solaris 11.3 での UUCP および PPP を使用したシリアルネットワークの管理

印刷ビューの終了

更新: 2015 年 10 月
 
 

chat スクリプトの例

このセクションでは、独自の chat スクリプトを作成する際の参考になる chat スクリプトの例を紹介します。モデムメーカーのガイドや ISP およびほかのターゲットホストからの情報には、モデムおよびターゲットピアの chat の要件が含まれています。また、数多くの PPP Web サイトで chat スクリプトのサンプルが提供されています。

基本のモデム 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

次の表では、chat スクリプトの内容を説明します。

スクリプトの内容
説明
ABORT BUSY
モデムが反対側のピアからこのメッセージを受け取った場合、伝送を中止します。
ABORT 'NO CARRIER'
ダイアル時にモデムが ABORT '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 コマンドを実行します。

/etc/ppp/myisp-chat.tmpl chat スクリプトテンプレート

このリリースには、ユーザーが自分のサイトで使用するために変更できる /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
ダイアル時にモデムが ABORT '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 メッセージを待ちます。

ISP を呼び出すためのモデムの chat スクリプト

ダイアルアウトマシンから 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 を実行中)」という通知メッセージを表示します。

UNIX 方式ログイン用に拡張された基本の chat スクリプト

次の chat スクリプトは、Oracle 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

次の表では、chat スクリプトのパラメータを説明します。

スクリプトの内容
説明
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」という通知メッセージを表示して、ユーザーのステータスを知らせます。
ABORT 'not found'
シェルがエラーに遭遇した場合、伝送を中止します。
"" "exec pppd"
ピア上で pppd を起動します。
~ \c
PPP がピア上で開始するのを待ちます。

ISP は、CONNECT \c の直後に PPP を開始することをしばしば「PAP ログイン」といいます。しかし、実際には、PAP ログインは PAP 認証とは無関係です。

ogin:--ogin: pppuser 句は、ダイアルインサーバーからのログインプロンプトに対してユーザー名 pppuser を送信するようにモデムに指示します。pppuser は、ダイアルインサーバー上のリモートユーザー user1 用に作成された専用の PPP ユーザーアカウント名です。ダイアルインサーバー上に PPP ユーザーアカウントを作成する方法については、ダイアルインサーバーのユーザーを構成する方法を参照してください。

外部 ISDN TA 用 chat スクリプト

次の chat スクリプトは、ダイアルアウトマシンから ZyXEL omni.net. ISDN TA を使って呼び出すためのものです。

        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=1S0=0S2=255
この行内の文字は、次を意味します。
  • &F – 出荷時のデフォルトを使用します

  • B40 – 非同期 PPP 変換を実行します

  • S83.7=1 – スピーチベアラーにデータを使用します

  • &K44 – CCP 圧縮を有効にします

  • &J3 – MP を有効にします

  • X7 – DCE 側のレートを報告します

  • S61.3=1 – パケット断片化を使用します

  • S0=0 – 自動応答を行いません

  • S2=255 – TIES エスケープを無効にします

OK ATDI18882638234
ISDN 呼び出しを行います。マルチリンクでは、2 番目の呼び出しは、同じ電話番号に対して行われます。これは、通常、ほとんどの ISP の条件です。リモートピアが 2 番目の電話番号に異なる番号を要求する場合は、「+nnnn」を付け加えます。nnnn は 2 番目の電話番号を表します。
CONNECT \c
反対側のピアのモデムからの CONNECT メッセージを待ちます。
\r \d\c
CONNECT メッセージの最後まで待ちます。
SAY "Connected; running PPP\n"
ダイアルアウトマシンの画面上にこのメッセージを表示します。

chat スクリプトのオプションの説明およびその他の詳細な情報については、chat(1M) のマニュアルページを参照してください。expect-send 文字列の説明については、/etc/uucp/Systems ファイルの Chat-Script フィールドを参照してください。

その他の chat スクリプト例の参照先

数多くの Web サイトで、chat スクリプトのサンプルとスクリプト作成のヒントが提供されています。たとえば、https://ppp.samba.org/index.html を参照してください。