
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 ''
--------------------
プログラムをどのように書き換えたら良いか分かる方いらっしゃいませんか?
または調べ方など教えて頂けると非常に助かります。
No.4ベストアンサー
- 回答日時:
わたしも以前に仕事で似たようなこと(モデム制御)やった経験があるのでなんとなく想像できる程度なのですが…。
環境があればもっと詳しいことご回答できるっていうか解決もできるのですが、いかんせん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拾ってない可能性高いので、上の方に余計なコマンドが走ってる可能性があります。
想像ではこんなところです。
No.5
- 回答日時:
No2~No4です。
お礼のコメントロクに読んでませんでしたすみません。
コメント読ませていただいて、さすがにLinux系技術者に聞いて、わらかないってことないんじゃないかと思ったんで。
(もちろん人によりますが…ATコマンド系はやったことある人じゃないとわからないけど、スクリプトまでの流れはわかる”はず”だから…予想できると思うんだが。最近はわからん人多いのか?)
で、今更の”そもそも”で申し訳ありませんが、動作しなくなったというのがどういう状況で、何を試したのでしょうか?
スクリプトが動作しなくなっただけとか
スクリプト変更したら途中でエラー吐くとか
スクリプトなにもしなくてもエラー吐くとか
AT打ってもウンスンだよ。とか。
そもそも繋がらねえよ…とかとか。
色々あると思うんですよ。
元々どういう現象で、自分が何をやって(何をどう変更したとか)、今どういう状況なのか、伝えないとたぶんわからないかと思います。
何度もありがとうございます。
実はもっとやり取りしたかったのですが、
まとまった結果をお渡ししたく、調べている間に締め切られてしまいました。
「AtermIT21L/IT21L」を入手しました。これなら元のソースが動くはず?
?と思っての事です。
また新規投稿するかもしれません。
もし見かけたらよろしくお願いいたします。
No.3
- 回答日時:
すみませんNo2です。
ちょっと追記です。まずTAに接続して、手打ちでスクリプト(質問者様がプログラムと呼称しているものです)のATコマンド部分打って動くなら、スクリプトにATコマンド以外の問題があるとなります。
もしATコマンド打って途中でエラー吐くなら、その部分を改善すればよいと思います。
また、見逃してましたが、最初がexec /usr/bin/chat -v なんで、これppp接続なんかでよく使われるchatスクリプトですね。
スクリプトを動作させているのが、linux系のOSなんだと思いますので、そちらのヘルプ(/usr/bin/chatのヘルプ)なども伴わせてみた方が良いかとおもいます。
では。
/usr/bin/chatのヘルプ等、
Linux系技術者にも相談していて、
何度も読み直していますが、解決には至りません。
PPP接続の部分だけ未経験で困っております。
解決の糸口を頂けると大変助かります。
No.2
- 回答日時:
あー…なんか懐かしい。
怪しいのはATコマンド打ってるところ周りかな。マニュアルないとなんともいえないけど。
勝手な予測で書きますが、ぱっと見結構単純なので、”AT!SZ”の部分かなあ。
たぶん、INSメイトV30Slimにはそのコマンドないんじゃないかな。
代替えコマンド見つけるか、その部分とってみるかしてみたらどうですか?
あとはタイムアウト系の時間増やすとかですかね。
とりえあえずできるのはそんなところだと思いますが、ともかく、マニュアル見てきちんとコマンド確認したほうがいいですよ。
では。
ありがとうございます。
>代替えコマンド見つけるか、その部分とってみるかしてみたらどうですか?
あとはタイムアウト系の時間増やすとかですかね。
このあたりはすでに試しているけど、うまくいかないんです。。。
どこに(だれに)相談したら良いんでしょう?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
- ダイヤルアップ Raspberry Piでアナログモデム経由で音声再生 1 2022/05/20 18:01
- アジア 香港、マカオ旅行について 1 2023/01/30 23:14
- その他(学校・勉強) この中で間違ってある説明はありますか?詳しい方に教えていただきたいです。 A. 1つのプログラムが複 2 2023/07/14 01:15
- 英語 「~の匂いがする」と「~の匂いを嗅ぐ」の表現方法について 1 2023/04/27 10:36
- 体重計・体脂肪計・体組成計 体重計はアナログ以外は 電池ばかり ソーラーとか 先ほど大手家電量販店へ行きましたが 6 2022/10/05 18:30
- 固定電話・IP電話・FAX 固定電話のお勧めを教えて下さい。 2 2022/06/14 13:26
- カスタマイズ(車) 2003年式レガシィB4 2.0GT TA-BL5に乗ってるのですが このマイルドダンパーという車高 2 2023/06/11 22:09
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- 国産車 スバル ディアスワゴン ta-tw2 は充電制御車ではないですよね? 教えていただけますと、助かりま 3 2023/08/15 12:01
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
exeファイルの実行結果をテキス...
-
バッチファイル 文字列操作の...
-
batファイル 行った履歴をテキ...
-
コマンド実行結果のファイル出力
-
.cshrcでのエラー
-
アプリケーションをインストー...
-
エクセルVBA 実行時エラー 5029...
-
ソフトのインストール場所って...
-
aptでインストールしたプログラ...
-
こんなバッチファイルってでき...
-
HPOVのネットワークノードマネ...
-
OS インストール場所確認
-
ご教授願います PC初心者です。...
-
illustratorを日本語仕様にする...
-
Macの手書き漢字入力ツールにつ...
-
コマンドプロンプトの危険性を...
-
アプリケーションをインストー...
-
REDHAT8 初心者です。UP2DATEが...
-
/usrがいっぱいになって。mount...
-
バッチファイルで多重起動を防ぐ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイル内置換
-
exeファイルの実行結果をテキス...
-
linuxのsshの反応が非常に遅い。
-
コマンド実行結果のファイル出力
-
USBメモリ内のバッチで書き出す...
-
メーリングリスト宛てのメール...
-
batファイル 行った履歴をテキ...
-
【Mac/Xcode】カレントディレク...
-
batが動かない
-
cron で rsync が実行できない
-
デバッグ停止中 一つ戻る
-
dsmoveコマンドをBATファイルで...
-
Mac OS ventura のapplescript...
-
リモートコンピュータの再起動...
-
IIS(アイルサーバー)で拡張子...
-
ftpのgetが正常できる方法について
-
コマンドプロンプトのFOR文がダ...
-
シェルスクリプト
-
バッチファイル 文字列操作の...
-
cronを使って、CSVファイルのデ...
おすすめ情報