- ベストアンサー
社内の内線に電話をかけその結果を取得するには・・・
- C#で社内の内線に電話をかけ、その結果を取得する方法について教えてください。
- 現在、C#を使用して社内の内線に電話をかけるプログラムを作成しています。しかし、相手が電話を取っても応答がない場合や、相手の電話が切れている場合でも「BUSY」という結果が返ってきてしまいます。ATXnコマンドでリザルトコードを取得する方法を教えてください。
- 理想とする処理は、ポートを開き、内線に電話をかけ、相手の応答音を検出した後、相手が電話に出たかどうかを検出し、最後にポートを閉じることです。この処理を実現するためには、どのようにATXnコマンドを使用すればいいのでしょうか?お知恵をお貸しください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>相手が電話に出る(検出できますか?) 「相手」って、モデムではなく人間ということですね? それだと、通常のモデムでは無理だと思います。 相手がモデムであれば、キャリアー音を発信してくるので、そこでモデム同士がネゴシエーションをはじめ、確立できる最大速度で接続したのち、「CONNECT XXXXX」のリザルトコードが出ます。 データ通信ができるように接続できて初めて「CONNECT」が出るので、「相手が受話器を上げた」時点では何のリザルトコードも出ません。 本当に話し中でビジートーンを検出したり、回線が切れてしまったら、リザルトコード「BUSY」が出て、ダイヤルコマンドは終了します。 相手がモデムで、「CONNECT」ののち、回線が切れたならば、データ通信のためのキャリアー音が聞こえなくなった、ということで「NO CARRIER」リザルトコードが出ます。 でも相手が人間で、無言電話を不思議に思い、切ったら、接続失敗という意味で「BUSY」が出るでしょう。 したがって、リザルトコードで、相手のオフフック・オンフック検出はできないと思います。 ---- ちなみに、モデムからかけられた電話を取って、口笛でそれっぽい音を聞かせると、ネゴシエーションのためのキャリアー音が流れてくることがあります。 その後のネゴシエーションは口笛じゃ無理ですから、すぐ切れてしまいますけど。
その他の回答 (1)
- shintaro-2
- ベストアンサー率36% (2266/6245)
>ここで問題がありまして、テストをしていると >どうやら相手が電話を取って切ってもBUSYが帰ってくるし >相手の電話の電源が切れていてもBUSYが帰ってくる事がわかりました。 まともに接続していない可能性が大です。 > 調べてみるとATXnコマンドにてリザルトコードが取れると分かったのですが すこし違います。 >相手が電話に出る(検出できますか?) 普通は、モデムが極性反転を検出して connectが帰ってきます。 https://www.omron.co.jp/ese/ups/discontinued/me5614u2/me5614u2.pdf