モデムで受けた電話番号をアプリケーションで取得するには?


せいじ002  2004-01-16 21:59:51  No: 81519  IP: [192.*.*.*]

モデムで電話を受けてその電話番号をアプリケーションで使用しようと
思っています。どうもTAPIというAPIを利用するようなのですが、
MSDNリファレンスも英語のみで四苦八苦しております。

電話番号を取得するアプリケーションコード(VB.NET)をお持ちか
TAPIを日本語で解説したホームページをご存知の方はいらっしゃないでしょうか?

編集 削除
岡田 之仁  2004-01-17 10:20:16  No: 81520  IP: [192.*.*.*]

たしか・・・

ナンバディスプレイ対応の電話回線でしか、着信時に相手の
電話番号は、解らないと思いますが・・・

FAXの場合は、電話番号が解るように見えますが、それは
相手先の設定情報が電話番号であれば、それが送信されてく
るだけで、その情報がただの文字列であれば、電話番号は、
解りません。

ナンバーディスプレイでのプロトコルは公開されていますし
対応する機材も販売されていますので、お調べ下さい。

以上。

編集 削除
岡田 之仁  2004-01-17 10:57:13  No: 81521  IP: [192.*.*.*]

訂正して修正します・・・

ppp等、TAPI(RAS)で着信した場合、ユニデモムVに対応した
モデムの場合、相手先の電話番号が解る・・・
と言う記述がありました。

ユニモデムVについては、こちらを参照
http://www.mxeng.com/modem/link4.htm

実際のところドライバーの話ですが、モデム自体のことを
言えば、DSVDモデムかSVDデモムか・・・と言うこと
になります。
今回音声関係ではないので、DSVDモデムの話は必要ない
と思います。

で、話がそれましたが、

lineGetAddressCaps
lineGetAddressID

このAPIで取得される情報に電話番号が格納されます。

日本語で欲しい・・・となりますと・・・

もう廃版になっていると思いますが当時私が読んだ書籍で
は・・・

アスキー出版 MicrosoftPress
Windows95通信プログラミング
ISBN4-7561-1911-5 \ 3,500.-

これに記述があります。

ご参考までに・・・

以上。

編集 削除
せいじ002  2004-01-17 17:01:59  No: 81522  IP: [192.*.*.*]

岡田様
ありがとうございます。
当初、アクセサリのダイヤラーで着信しても発信者番号が
でないのでおかしい、おかしいと思っていました。NTTに連絡したところ、
ナンバーディスプレイに加入するように勧められれ、無事ダイヤラーは
発信者番号を認識することができるようになりました。これをアプリケーションで
使いたい。こちらに質問を書いてから色々と調べてみたのですが、
VB.NETではTAPIのCOMコンポーネントがサポートされていることがわかり、
現在こちらで挑戦中です。こちらも英語のリファレンスしかなく苦しんでおります。またアドバイス等ございましたらよろしくお願いします。

編集 削除
岡田 之仁  2004-01-17 17:37:30  No: 81523  IP: [192.*.*.*]

忘れていたことがひとつ・・・VB.NETだったということですネ!

Win32Com クラスがありますが、これはあくまで、Win32 API を
呼び出すラッパークラスです。

よって、.NET でのマネージドコードのクラスではないので、
あくまで、TAPI(RAS)やMAPI の定義を参照された方理解が早い
です。

ともあれ、動作するコードとしては、日本語ではないのですが
http://msdn.microsoft.com/msdnmag/issues/02/10/netserialcomm/

ソリューションファイルやプロジェクトファイルはついていません
でしたが、実行可能なモジュールと、そのソース周辺がついていま
すので、これをいじって、実行してみて下さい。

尚、ナンバーディスプレイの機器とのプロトコルも定義されたもの
が入手可能ですので、そちらも探してみて下さい。

ちょっと調べましたが、ナンバーディスプレイアダプタでは、その
メーカーごとにプロトコルが違うようで・・・
またCTI機器には当然ナンバーディスプレイ対応となっています
ので、それら製品と添付される開発キットで、お望みのことが実現
可能です。

ご検討下さい。

以上。

編集 削除
せいじ002  2004-01-18 00:05:06  No: 81524  IP: [192.*.*.*]

アドバイスありがとうございます。
いただいたサンプルコードですが、
いまいちモデムではなくCOMポートなどとあり使い方が分かりませんでした。
せっかくのアドバイスですが、力不足で生かせずすいません。

COMコンポーネントで引き続きトライしており、
やっとモデムがプチプチ反応するところまできました。
MSDNに掲載されているサンプルコードがどうもVB用で、
VBを未経験者の私にとって書き換えにてこずっています。
まだ思うように動作しませんがもうちょっとだと思います。

編集 削除
岡田 之仁  2004-01-18 12:59:04  No: 81525  IP: [192.*.*.*]

実際に行いたいことは何でしょうか?

ダイアルアップサーバーをさせたいのか、昔風のBBS的
電話回線の着信を行いたいのか・・・

TAPIでも、RASになるのか、そうでないかで使う
APIの種類が違います。

以上。

編集 削除
せいじ002  2004-01-25 15:17:26  No: 81526  IP: [192.*.*.*]

ご返信ありがとうございます。
あれから1週間ほど解決できずにもんもんとした
日々を送っております。ご返信に気が付きませんでした。

私が目指しているのは、
PC(モデム)に着信があった電話番号を
Accessのテーブルに書き込むことです。
変数の値をテーブルに書き込む手段は心得ておりますので、
着信した電話番号を変数として取得することさえできればよく、
通話などの必要はありません。

もう少し具体的にお話すると
サービス利用者に携帯電話等から私の自宅の電話番号に電話をかけていただき、
PC(モデム)がその着信を受付たのち、すぐに切断させて
電話番号をテーブルに書き込むことにより、着信の履歴を残していきたいのです。

変数に電話番号を取得した後にテーブルへ書き込む処理を
考慮するとどうしてもVB.NETでコーディングしたいという状況です。
マイクロソフトホームページをあたってみましたが
TAPIの説明はそのほとんどがC++向け、またVBのサンプルコードを見つけたのですがVB.NETではうまく動作しないようです。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tapi/tapi2/code_snippets.asp

うーん右にも左にもといった感じです。

編集 削除
岡田 之仁  2004-01-26 07:56:29  No: 81527  IP: [192.*.*.*]

先の投稿での・・・

lineGetAddressCaps
lineGetAddressID

このAPIに関しては、確認されましたか?

以上。

編集 削除