C#で電話を操作する方法はありますか? 私はモデムを持っています。モデムは電話に接続され、電話は PC に接続されています。着信コールの番号を表示するアプリを作成したいですか? 私はこれがロングショットであることを知っていますが、それでも何かアイデアはありますか?
1 に答える
私は私たちがいると仮定しています
- ここで従来のモデムについて話します
- シリアルポート経由でモデムに接続 (つまり、コンピュータからはCOM ポートのように見えます)
- 発信者IDをサポートしています(発信者IDを含むRING応答がどのように見えるか、およびCalledIDをアクティブにするためにモデムに送信する必要があるコマンドを理解するためにとにかく必要なモデムのドキュメントを参照してください-一般的な文字列には、
AT#CID=2
AT%CCID=1
またはこのページAT%CCID=2
によると - 実装された CalledID システムはプロバイダーのシステムと互換性があり、サブスクリプションには CallerID サービスが含まれています
ご覧のとおり、深刻な一連の前提条件...
これらのほとんどは、モデムを電話回線に接続し、HyperTerminal またはその他のターミナル エミュレーターを開くことで簡単にテストできます。電話回線で電話を受けるとRING
、発信者の情報が表示されます。その情報がどのように構成されているかは、個々のモデムによって異なります。その情報は、ドキュメントで確認するか、出力を確認するだけで見つけることができます。
ここまで来たら、残りは多かれ少なかれ些細なことです: .net に含まれている SerialPort クラス (チュートリアルはこちら、他にもたくさんあります) を使用して適切な COM ポートを開き、次のシーケンスをプログラムします。
送信してモデムを初期化します
ATZ
Enter- を待つ
OK
- 発信者IDコマンドを送信Enter
- を待つ
OK
- ループオーバー
RING
発信者の ID が表示されるまで、シリアル ポートの読み取りを続けます。- データを出力する
非常にまれな状況でのみ、コール間でモデムをリセットする必要があります。多くのモデムでは、DTR を 1 秒間 Low に引き、送信する前にバックアップすることATZ
でモデムを起動することができます。一部のモデムでは、DTR がそのようなパルスになると自動的に初期化されます。
全体としては非常に単純ですが、モデムとのインターフェイスは以前ほど人気がなくなってきているため、関連する情報とサンプル コードを見つけるために掘り下げる必要があります。幸運を!