kazu-h に投稿

mgetty+voice環境ではモデムが音声通話を着信した後に電話の受話器をあげても、モデム側のメッセージを再生して留守電録音への動作を停止することは出来ない。
手動の回線切替機で強制的に切り替えれば済みそうだが、通話後スイッチを戻し忘れるとモデムが着信できなくなる。
mgetty+voiceにはDTMF信号(プッシュ音)を利用したリモートコントロール機能があるが、これを利用し、メッセージ再生中にプッシュ音が入るとモデム側が動作を中止するようにした。
これで電話がかかってきてモデムが着信したあとでも受話器をあげてプッシュ音を出せばモデム側が動作を停止し普通に通話できるようになる。

次は電話からの発信。
この問題は筆者の環境でしか発生しないかもしれない。
ここではSupraExpress 56e Pro V92と電話機をダイアル回線で共有しているが、電話からダイアル発信すると受話器からは現在使用されておりませんのメッセージが聞こえるか無音が続いた後、話中音になる。
ダイアル中はモデムのOHランプやAAランプが何度か点滅したのち消灯する。
モデムが干渉してダイアルがうまく出来てないようだ。
ログを見るとDRONとDROFがいつくか表示されたのちJunk on the lineとなり再初期化されているようだ。
結論的にはこの解決に2日を要してしまったがなんとかなった。

モデムの干渉というとon hookとoff hookに関係する回線リレー絡みかと思ってモデムのハングアップ関係の初期設定値をいくつか変更してみたが、うまくいくと思う場面があっても結局NGだった。

再初期化の起点になっているDRON、DROFが反応しないようにするためにはどうするか。
これはソースに手を入れるしかないようだ。
DRON、DROFは識別着信のための特殊なパルスと説明があるが、おそらくダイアルパルスがこの信号と誤認識されるのではないだろうか。
識別着信を制御する+VDRコマンドを出力しているソースに手を加えて無効にして、DRON、DROFの反応と再初期化を抑制することは出来たが、発信できない現象は改善されなかった。

ここまできていまさらだが、モデム自体が対応出来ないのかも知れないということになってきたので、モデムリセット後はどうなのか確認してみた。
具体的にはminicomを使用し、ATHコマンドとATZ0コマンドを入力した後、電話機から発信してみたが、とりあえず問題なく発信できた。
初期化パラメータのどこかで電話の発信に干渉するようになるようだ。
vgettyのログを参考に初期化パラメータを順番に入力したところ、+VCID=1の後から発信できなくなった。
どうやら、+VCID、caller ID、国内ではナンバーディスプレイと呼ばれる機能を有効にしたところでNGになるようだ。これも識別着信同様にダイアルパルスが誤認識のもとになるのだろうか。
これも+VCIDに関するソースに手を加えて無効にした。

vgettyを再起動してログを確認、+VCID、+VDRともに無効になっているのを確認して電話機から発信した。
ようやく干渉なく発信できたようだ。
時間を置いて再度発信してみたが問題なし。ようやく解決となったか?
モデムのランプについても余計な点滅はなくなっている。

ずいぶん遠回りをしたものだ。

category