電子書籍の厳選無料作品が豊富!

ISDN回線であるデータを送信する業務を行っています。
※2024年のINSデータ通信終了ギリギリまでは継続予定です。

今まで「AtermIT21L/IT21L」という機種のTAで以下の様な処理をしていましたが、
TAを「INSメイトV30Slim」に交換したら動作しなくなりました。
--------------------
exec /usr/sbin/chat -v \
TIMEOUT 3 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' '\rATQ0$N1=1$n11=1' \
'' '\rAT!SZ0=0300001111' \
'' '\rAT!SZ1=0300002222' \
'' '\rAT!SZ2=0300003333' \
'' '\rAT!SZ3=0300004444' \
'' 'ATH0' \
TIMEOUT 60 \
OK ATD$TELEPHONE \
CONNECT ''
--------------------
プログラムをどのように書き換えたら良いか分かる方いらっしゃいませんか?
または調べ方など教えて頂けると非常に助かります。

A 回答 (5件)

わたしも以前に仕事で似たようなこと(モデム制御)やった経験があるのでなんとなく想像できる程度なのですが…。


環境があればもっと詳しいことご回答できるっていうか解決もできるのですが、いかんせんPC本体のみですし、モデム(ソフトモデムってのがあります)あってもつなぐ先がないので試せませんし。

経験上というか、この手のスクリプト作るときなんですが
コマンド手動で打つの面倒(もしくは作業上現実的ではない)なんでスクリプ作るってことになるんですが。

要は手でできること自動でやってるだけなんで、スクリプト内部のコマンドを一つ一つ手で実行して、何処かダメなのか逆解析して判断するのが一番なんです。
とはいえタイプアウト系は手動のときに実行しても仕方ないのですっとばしていいです。

■スクリプトについて

で、スクリプトだけ見るとそんな難しいことやっていないです。

===================
TIMEOUT 3 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' '\rATQ0$N1=1$n11=1' \
'' '\rAT!SZ0=0300001111' \
'' '\rAT!SZ1=0300002222' \
'' '\rAT!SZ2=0300003333' \
'' '\rAT!SZ3=0300004444' \
'' 'ATH0' \
TIMEOUT 60 \
OK ATD$TELEPHONE \
CONNECT ''
=======================

TIMEOUT 3 はタイムアウト設定
ABORTはTAにつなごうとしたらダメって言われることがあるので、その異常終了処理。
ATQ0はリザルトコードON/OFFで0でONです。

後述の$N1はのところはなぜ必要なのかスクリプトから判断できないので、わからないのでなんとも言えません。

AT!SZはたぶん、Atermの名残。
これに相当することを新しいTAでやる必要があるかどうかわかりませんが、必要なら代替えを設定しないとダメでしょう。
接続するには関係ないようにも思えますが…

ちなみにAT!SZは以下の通り

========================
機能: 疑似識別着信(セキュリティ+選択キャッチホン)に電話番号を登録します。
書式: AT!SZ<パラメータ1>=<パラメータ2></パラメータ3>
パラメータ: <パラメータ1> 0~29(最大30件登録できます)
<パラメータ2> 相手電話番号(最大32桁)
<パラメータ3> 相手サブアドレス(最大19桁)
入力例: AT!SZ0=1234567890/123
補足: ・相手サブアドレスだけを登録しようとした場合はERRORを返します。
・相手電話番号および相手サブアドレスには0~9の数字が使用できます
========================

ATH0は強制的にオンフック(電話切る)

TIMEOUT 60はタイムアウトを設定

OK ATD$TELEPHONE \
はOK待ってATD[電話番号]で発信

CONNECT ''
で、CONNECT待ちでおしまい

です。

ほら、大したことやってないでしょ。
=======================

■以下は補足として

1)exec /usr/sbin/chat -s に変更して、スクリプト実行する

標準出力でエラーもログも出る(はず)です。
それでどこにエラーが起きてるか解析できませんか?
なお、スクリプトが自動実行だとログが流れて確認できないかもしれないので、コンソール上から手動で実行してみてください。

2)初期設定確認と電話だけかけてみる

スクリプトでロクにモデム(TA)設定してるようには見えないので、初期値が以前のTAと違うのかもしれません。
通信の設定が違ったりするとそれだけで通信できなくなりますので、以前のモデムの設定値を確認してください。、

あとTAにつないで、手打ちでATコマンドATD「電話番号の連番」で電話をかけてみてください。
(なお仮に繋げないなら、それはスクリプト以前の機器接続と認識の話です。)

CONNECTが戻らないとかエラー返すなら電話番号違うとか、モデムの設定値が合ってない可能性が高いです。
手動でOKでもスクリプトで実行するとダメっていうなら最後の方にあるTIMEOUT 60でOK拾ってない可能性高いので、上の方に余計なコマンドが走ってる可能性があります。

想像ではこんなところです。
    • good
    • 0

No2~No4です。


お礼のコメントロクに読んでませんでしたすみません。

コメント読ませていただいて、さすがにLinux系技術者に聞いて、わらかないってことないんじゃないかと思ったんで。
(もちろん人によりますが…ATコマンド系はやったことある人じゃないとわからないけど、スクリプトまでの流れはわかる”はず”だから…予想できると思うんだが。最近はわからん人多いのか?)

で、今更の”そもそも”で申し訳ありませんが、動作しなくなったというのがどういう状況で、何を試したのでしょうか?

スクリプトが動作しなくなっただけとか
スクリプト変更したら途中でエラー吐くとか
スクリプトなにもしなくてもエラー吐くとか
AT打ってもウンスンだよ。とか。
そもそも繋がらねえよ…とかとか。

色々あると思うんですよ。

元々どういう現象で、自分が何をやって(何をどう変更したとか)、今どういう状況なのか、伝えないとたぶんわからないかと思います。
    • good
    • 0
この回答へのお礼

何度もありがとうございます。
実はもっとやり取りしたかったのですが、
まとまった結果をお渡ししたく、調べている間に締め切られてしまいました。

「AtermIT21L/IT21L」を入手しました。これなら元のソースが動くはず?
?と思っての事です。
また新規投稿するかもしれません。
もし見かけたらよろしくお願いいたします。

お礼日時:2021/04/05 22:39

すみませんNo2です。

ちょっと追記です。

まずTAに接続して、手打ちでスクリプト(質問者様がプログラムと呼称しているものです)のATコマンド部分打って動くなら、スクリプトにATコマンド以外の問題があるとなります。

もしATコマンド打って途中でエラー吐くなら、その部分を改善すればよいと思います。

また、見逃してましたが、最初がexec /usr/bin/chat -v なんで、これppp接続なんかでよく使われるchatスクリプトですね。

スクリプトを動作させているのが、linux系のOSなんだと思いますので、そちらのヘルプ(/usr/bin/chatのヘルプ)なども伴わせてみた方が良いかとおもいます。

では。
    • good
    • 0
この回答へのお礼

/usr/bin/chatのヘルプ等、
Linux系技術者にも相談していて、
何度も読み直していますが、解決には至りません。
PPP接続の部分だけ未経験で困っております。
解決の糸口を頂けると大変助かります。

お礼日時:2021/03/29 07:57

あー…なんか懐かしい。

怪しいのはATコマンド打ってるところ周りかな。

マニュアルないとなんともいえないけど。

勝手な予測で書きますが、ぱっと見結構単純なので、”AT!SZ”の部分かなあ。
たぶん、INSメイトV30Slimにはそのコマンドないんじゃないかな。
代替えコマンド見つけるか、その部分とってみるかしてみたらどうですか?
あとはタイムアウト系の時間増やすとかですかね。

とりえあえずできるのはそんなところだと思いますが、ともかく、マニュアル見てきちんとコマンド確認したほうがいいですよ。

では。
    • good
    • 0
この回答へのお礼

ありがとうございます。

>代替えコマンド見つけるか、その部分とってみるかしてみたらどうですか?
あとはタイムアウト系の時間増やすとかですかね。

このあたりはすでに試しているけど、うまくいかないんです。。。
どこに(だれに)相談したら良いんでしょう?

お礼日時:2021/03/29 07:55

装置によって使える命令が違うことは、よくあります。


INSメイトのマニュアルを入手して、Atermと同じことを行う命令に修正してみたらどうでしょう?
ちなみに、INSって無くならないと広報されていたと思っていましたが、違いますか?
    • good
    • 0
この回答へのお礼

INSデータ通信は終了するので、当業務はこの方法のままでは継続できないと認識してます。
もっとその後の情報があればお教えいただきたいです。

お礼日時:2021/03/28 20:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!