; ; stk settings ; (load-library "stk") ; これは必須 (setq kermit-command-escape "\177") ; kermit の escape 文字の設定 (setq logdir "~/log/stk-") ; ログを記録するディレクトリと、 ; ログファイルの先頭の文字(stk-)の指定 (setq handle-window-visible nil) ; ハンドルウィンドウは表示しない ; ハンドルウィンドウが表示されていると、 ; 80文字を越えるチャット画面を自動で折り返してくれないため ; FreeBSD 2.1.5R + jp-cmule-2.3 だと、attribute-off-region という ; 関数は定義されていないというエラーが出るので、以下で対処 (defun attribute-off-region(a b c)) ; エラーが出るのでダミー関数を作成 (defun attribute-on-region(a b c)) ; エラーが出るのでダミー関数を作成stk には、Niftyserveにオートログインするための設定もあるが、私はkermitの機能を利用してNiftyserveにオートログインしているので、ここでは設定していない。
以下では、実際にパソコン通信する時の操作を紹介する。
Seyon*modems: /dev/cuaa0 Seyon*exitConfirm: off Seyon*dialPrefix: ATDT Seyon*dialSuffix: ^M Seyon*ignoreModemDCD: onmodemsは、モデムが接続されているデバイスを指定する。FreeBSDで、COM1にモデムが接続されている場合は /dev/cuaa0 となる。 ちなみに、COM2にモデムを接続している場合には、/dev/cuaa1を指定する。
続いて、表示に使うプログラムをコマンドラインで指定する。 seyonを起動する時には、以下のように入力する。
seyon -emulator kterm -- -km sjisseyonでは、-- というオプションの後ろはターミナルエミュレータ(この場合はkterm)に渡されるようになっている。 日本国内のパソコン通信のホストはShift JISしか使えない場合が多いので、'-km sjis'というオプションで、ktermをShift JISモードで起動しているわけだ。
毎回上記のようにタイプするのが面倒になったら、以下のシェルスクリプトをjseyonとして保存し、chmod +x jseyonしてから /usr/local/bin にコピーして、 jseyon とタイプしてseyonを起動するという手もある。 jseyon
#!/bin/sh kterm -km sjis -e seyon -noemulator
seyonの設定を行なうファイルなどは、デフォルトでは~/.seyon/というディレクトリから検索されるので、このseyon設定ディレクトリを作成しておこう。
mkdir ~/.seyonseyonの初期設定を行なうスクリプト startup を記述してみる。 このファイルは、先程作成した~/.seyonディレクトリの内部に作成する。 ここでは、ボーレートの指定や、フロー制御などの基本的なものしか指定していない。
# # startup # echo "setting parameters..." set baud 38400 set bits 8 set parity 0 set stopBits 1 set rtscts on set xoff off set autozm off tty on echo "Initializing modem..." transmit "ATZ^M" echo "end of settting parameters..." # # end of startup #さらに続いて、~/.seyon/phonelistを記述する。 phonelistファイルは、電話番号とホスト名の対応を取るためのファイルで、以下のようなものをスペースで区切って順番に記述する。 この部分に関しては、man seyonで表示されるマニュアルは一切あてにしてはならない。 まるで書いてあることが異なるからだ。 FreeBSD 2.1.5Rならば、2枚目のCD-ROMの/cdrom/ports/distfiles/Seyon-2.14b-tar.Zにseyonのオリジナルアーカイブが入っているので、このアーカイブを展開してサンプルのphonelistとドキュメントを入手し、それを見ながら設定しよう。 seyonのアーカイブに含まれているphonelistのサンプルを踏まえて、phonelistファイルを~/.seyon/以下に作成すると、次のようになるだろう。
# # phonelist # 366-1591 nifty(road2) BITS=8 BPS=19200 SCRIPT=script.nifty2 379-6711 nifty(road4) BITS=8 BPS=19200 SCRIPT=script.nifty4 320-4525 nifty(road7) BITS=8 BPS=19200 SCRIPT=script.nifty7 03-5966-1054 inside-BBS BITS=8 BPS=19200 03-3985-6227 msx BITS=8 BPS=19200 380-4504 dennou BITS=8 BPS=19200 03-5467-5910 SUNDAY Net BITS=8 BPS=19200 # # end of phonelist #最初に電話番号、次にネットの名前を記述し、その後にはオプション指定を記述する。 (オプション指定は無くてもかまわない。)
次に、マクロを使ったオートログインに挑戦してみる。 上記のphonelistファイルには、すでに SCRIPT の指定をしてあるので、これからオートログインするためのスクリプトファイル script.nifty2(ROAD2専用) を作成する。 ~/.seyon ディレクトリの中に、 script.nifty2ファイルを作成して以下のような内容を記述する。
# Niftyserve auto login script (ROAD2 only) 'script.nifty' echo "Starting Niftyserve auto login ..." transmit "@P^M" waitfor "HOST NAME?" transmit "C NIF^M" waitfor " Enter Connection-ID --->" transmit "SVC^M" waitfor " Enter User-ID --->" transmit "yourid^M" waitfor " Enter Password --->" transmit "yourpassword^M"スクリプトファイル中の waitfor は、右側の文字列が送られてくるまで待つ命令で、tramsmit は、右側の文字列を送信する命令だ。 自分で使う場合には、transmit 命令の yourid と yourpassword を自分のIDとパスワードに変更して使って欲しい。 tramsmit命令に与えられている文字列の最後に ``^M'' があるが、これは改行コードを表している。 たとえば、
tramsmit "hoge^M"は、hoge とタイプしてからリターンキーを押したのと同じ効果があるわけだ。
waitforを使う場合の注意点は、待つ文字列の指定は、送られて来る行の先頭から記述する必要があることだ。 たとえば、Niftyserveにログインするときには
Enter User-ID --->という文字列が送られて来る。 他の多くの通信ソフトでは、送られて来る文字列の一部分(たとえば``User-ID''という部分)の文字列を待って自分のIDを送信するようにスクリプトを組んでも良い。 しかし、seyonの場合は行の先頭から文字列比較をしている様子なので、行の先頭から`` Enter User-ID''という文字列をwaitforに指定しないといけないのだ。
続けて、Niftyserve Road4用のオートログインファイル script.nifty4 を示す。
# Niftyserve auto login script (ROAD4 only) 'script.nifty' echo "Starting Niftyserve auto login ..." waitfor "HOST NAME?" transmit "C NIF^M" waitfor " Enter Connection-ID --->" transmit "SVC^M" waitfor " Enter User-ID --->" transmit "yourid^M" waitfor " Enter Password --->" transmit "yourpassword^M"さらに続けて、Niftyserve Road7用のオートログインファイル script.nifty7を示す。
# Niftyserve auto login script (ROAD7 only) 'script.nifty' echo "Starting Niftyserve Road7 auto login ..." waitfor "Login:" transmit "NIFTY^M" waitfor "Password:" transmit "^M" waitfor " Enter Connection-ID --->" transmit "SVC^M" waitfor " Enter User-ID --->" transmit "yourid^M" waitfor " Enter Password --->" transmit "yourpassword^M"
オートログインには成功したので、次は自動でログファイルにログを記録する方法を検討した。
しかし、、マニュアルを見た限りではサポートされていない模様だ。
(Seyon-2.14b)
このままではあまりにも悲しいので、Seyonの新しいバージョンを探してみたものの、Seyon-2.14が最新版であることが判明。
どうもSeyonはここまでのようだ。