- - PR -
【C#】アプリケーションで電話をかける
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2009-02-12 15:10
いつもお世話になっております。
指定した電話番号に対して電話をかけるアプリケーションを作成しています。 ハイパーターミナルを起動して「atdXXXX」のようにコマンドを打てば 指定した番号に電話をかけることができる状態なのですが アプリケーションのボタンをクリックしたタイミングで モデムに対してコマンドを発行する方法がわかりません。 電話をただ鳴らすだけで良いのですが、ご教示願います。 開発環境は、WindowsXP、.NET Framework 2.0です。 言語は、C#です。 | ||||
|
投稿日時: 2009-02-12 15:49
こんにちは。
モデムとPCはシリアルケーブルで繋いでいるんですよね? シリアルポートから、ATコマンド(ハイパーターミナルで入力しているコマンド)を送信するだけだと思いますが!? SerialPort クラス(mdsn) ・各通信設定は、ハイパーターミナルの場合の通信設定と同じで良いでしょう。 ・(念のため)シリアルポートは複数のアプリケーションから同時オープンできないので注意してください。 | ||||
|
投稿日時: 2009-02-12 16:23
Tdnr_Sym様
返信ありがとうございます。 >モデムとPCはシリアルケーブルで繋いでいるんですよね? >シリアルポートから、ATコマンド(ハイパーターミナルで入力しているコマンド)を送>信するだけだと思いますが!? 私もおっしゃる通りと思うのですが 肝心の実装方法がよくわからずに苦戦しております。 ソースを以下に記述します。 おそらく足りない箇所が多分にあるのではないかと思われます。 private void button1_Click(object sender, EventArgs e) { serialPort1.Open(); serialPort1.WriteLine("att"); serialPort1.WriteLine("atdXXXX"); } | ||||
|
投稿日時: 2009-02-12 17:28
hisさん。
serialPort1.Open(); serialPort1.WriteLine("att"); serialPort1.WriteLine("atdXXXX"); トーンで発信されていますが、 電話回線と一致してますか? ATコマンドが正しいかどうかは、 ハイパーターミナルを利用しATコマンドをたたいてみるといいですよ。 | ||||
|
投稿日時: 2009-02-12 17:40
hisさん。
ハイパーターミナルで動作確認されている場合、 serialPort1.WriteLine("att"); serialPort1.WriteLine("atdXXXX"); それぞれを行った際の戻り値はどのようになっていますでしょうか? | ||||
|
投稿日時: 2009-02-13 10:24
きいぼー様
返信ありがとうございます。 ハイパーターミナルで試したみた際の戻り値は "att"に対しては"OK" "atdXXXX"に対しては、実際に電話がかかってくるので画面上に値は表示されていません。 ハイパーターミナルでコマンドを実行すると、ちゃんと電話がかかるので モデムの設定と、入力コマンドは間違っていないと思うのですが。 アプリケーション上では、serialPortコントロールを使って実装しようとしています。 プロパティは、BaudRateを115200とし、DtrEnableとRtsEnableをTrueとした以外は 特に変更していません。 | ||||
|
投稿日時: 2009-02-13 14:35
アプリケーションの方でATTに対するOKは受信できてますか? # なんとなく小文字に違和感を覚える | ||||
|
投稿日時: 2009-02-13 15:01
モデムの応答を待ってないですね。 アプリケーションの都合でコマンド文字列をガンガン投げつけても、思った通りには動きません。 1コマンド投げるごとに、モデムからの応答を待ち受けるのが基本です。 |