(57)【要約】【課題】汎用性の高い利用制限を実現するファクシミリドライバプログラム、及びファクシミリシステムを提供する。【解決手段】ファクシミリドライバプログラムであって、クライアント装置からファクシミリコマンドを受信する第１の受信手段と、第１の受信手段によりファクシミリコマンドを受信すると、ファクシミリ装置との通信を許可するか否かを、予め取り決められている条件に基づいて判断する第１の判断手段と、第１の判断手段により通信を許可すると判断されると、クライアント装置にファクシミリコマンドを転送する転送手段としてコンピュータを機能させる。【選択図】図３
2011101071.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置からファクシミリコマンドを受信する第１の受信手段と、
前記第１の受信手段によりファクシミリコマンドを受信すると、ファクシミリ装置との通信を許可するか否かを、予め取り決められている条件に基づいて判断する第１の判断手段と、
前記第１の判断手段により通信を許可すると判断されると、前記第１の受信手段により受信したファクシミリコマンドを前記ファクシミリ装置に転送する転送手段としてコンピュータを機能させるファクシミリドライバプログラム。
【請求項２】
請求項１に記載のファクシミリドライバプログラムであって、
前記コンピュータは、前記ファクシミリコマンドの送信元であって前記ファクシミリ装置との通信が許可されている送信元を示す送信元情報が登録されている記憶部を備えており、
前記第１の受信手段によりファクシミリコマンドを受信すると、そのファクシミリコマンドを送信したクライアント装置から送信元情報を取得する取得手段としてコンピュータを機能させ、
前記第１の判断手段は、前記取得手段により取得した送信元情報が前記記憶部に登録されているか否かを判定し、登録されている場合に通信を許可すると判断する、ファクシミリドライバプログラム。
【請求項３】
請求項２に記載のファクシミリドライバプログラムであって、
前記記憶部に前記送信元情報を登録する登録手段として前記コンピュータを機能させるファクシミリドライバプログラム。
【請求項４】
請求項２又は請求項３に記載のファクシミリドライバプログラムであって、
前記クライアント装置は、オペレーティングシステムと、前記オペレーティングシステムの下でファクシミリアプリケーションプログラムとを実行するものであり、
前記取得手段は、前記オペレーティングシステムから前記ファクシミリアプリケーションプログラムに関する情報を前記送信元情報として取得する、ファクシミリドライバプログラム。
【請求項５】
請求項４に記載のファクシミリドライバプログラムであって、
前記送信元情報は、前記ファクシミリアプリケーションプログラムを起動したユーザのユーザ識別情報を含む、ファクシミリドライバプログラム。
【請求項６】
請求項４に記載のファクシミリドライバプログラムであって、
前記送信元情報は、前記ファクシミリアプリケーションプログラムのプログラム名を含む、ファクシミリドライバプログラム。
【請求項７】
請求項１乃至請求項６のいずれか一項に記載のファクシミリドライバプログラムであって、
前記第１の判断手段は、前記ファクシミリコマンドの種類毎に前記ファクシミリ装置との通信を許可するか否かを判断する、ファクシミリドライバプログラム。
【請求項８】
請求項１乃至請求項７のいずれか一項に記載のファクシミリドライバプログラムであって、
前記ファクシミリ装置から着信通知を受信する第２の受信手段と、
前記第２の受信手段により着信通知を受信すると、前記クライアント装置に着信通知を転送するか否かを、予め取り決められている条件に基づいて判断する第２の判断手段として機能させ、
前記転送手段は、前記第２の判断手段により着信通知を転送すると判断されると、前記クライアント装置に着信通知を転送する、ファクシミリドライバプログラム。
【請求項９】
請求項８に記載のファクシミリドライバプログラムであって、
前記転送手段は、前記クライアント装置が複数ある場合、いずれの前記クライアント装置に着信通知を転送するかを、予め決められている優先順位に基づいて決定する、ファクシミリドライバプログラム。
【請求項１０】
ファクシミリ装置と、
クライアント装置と、
前記クライアント装置と前記ファクシミリ装置との間で通信を中継するコンピュータとを備え、
前記コンピュータは、
前記クライアント装置からファクシミリコマンドを受信する第１の受信手段と、
前記第１の受信手段によりファクシミリコマンドを受信すると、前記ファクシミリ装置との通信を許可するか否かを、予め取り決められている条件に基づいて判断する第１の判断手段と、
前記第１の判断手段により通信を許可すると判断されると、前記第１の受信手段により受信したファクシミリコマンドを前記ファクシミリ装置に転送する転送手段とを有する、ファクシミリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファクシミリドライバプログラム、及びファクシミリシステムに関する。
【背景技術】
【０００２】
従来、情報処理装置から発呼要求を受信すると、その発呼要求に付加されている利用者の識別情報と予め登録されている識別情報とに基づいて当該利用者が正当か否かを判断し、正当な利用者以外はファクシミリ通信が行えないように利用制限するファクシミリ装置が知られている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２３２５６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の利用制限によると、発呼要求に付加されている利用者の識別情報と予め登録されている識別情報とに基づいて当該利用者が正当か否かを判断する機能を有するファクシミリ装置を用いなければならず、汎用性に欠けるものであった。
本発明は上記問題点を解決するものであり、汎用性の高い利用制限を実現するファクシミリドライバプログラム、及びファクシミリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
第１の発明は、ファクシミリドライバプログラムであって、クライアント装置からファクシミリコマンドを受信する第１の受信手段と、前記第１の受信手段によりファクシミリコマンドを受信すると、ファクシミリ装置との通信を許可するか否かを、予め取り決められている条件に基づいて判断する第１の判断手段と、前記第１の判断手段により通信を許可すると判断されると、前記第１の受信手段により受信したファクシミリコマンドを前記ファクシミリ装置に転送する転送手段としてコンピュータを機能させる。
この発明によると、ファクシミリドライバプログラムによってファクシミリ装置の利用制限をするので、利用制限のための機能を有していないファクシミリ装置を用いて利用制限を実現することができる。
よってこの発明によると、汎用性の高い利用制限を実現できる。
【０００６】
第２の発明は、第１の発明のファクシミリドライバプログラムであって、前記コンピュータは、前記ファクシミリコマンドの送信元であって前記ファクシミリ装置との通信が許可されている送信元を示す送信元情報が登録されている記憶部を備えており、前記第１の受信手段によりファクシミリコマンドを受信すると、そのファクシミリコマンドを送信したクライアント装置から送信元情報を取得する取得手段としてコンピュータを機能させ、前記第１の判断手段は、前記取得手段により取得した送信元情報が前記記憶部に登録されているか否かを判定し、登録されている場合に通信を許可すると判断する。
この発明によると、ファクシミリ装置との通信を許可するか否かを送信元情報に基づいて判断できる。
【０００７】
第３の発明は、第２の発明のファクシミリドライバプログラムであって、前記記憶部に前記送信元情報を登録する登録手段として前記コンピュータを機能させる。
この発明によると、ファクシミリ装置との通信を許可する送信元の送信元情報を登録できる。
【０００８】
第４の発明は、第２又は第３の発明のファクシミリドライバプログラムであって、前記クライアント装置は、オペレーティングシステムと、前記オペレーティングシステムの下でファクシミリアプリケーションプログラムとを実行するものであり、前記取得手段は、前記オペレーティングシステムから前記ファクシミリアプリケーションプログラムに関する情報を前記送信元情報として取得する。
ＡＴコマンドなどの一般に用いられているファクシミリコマンドは送信元を示す送信元情報が付加されるようには構成されておらず、そのため一般の多くのファクシミリアプリケーションプログラムはファクシミリドライバプログラムに送信元情報を送信する機能を有していない。
この発明によると、ファクシミリコマンドの送信元を示す送信元情報をオペレーティングシステムから取得するので、ファクシミリドライバプログラムに送信元情報を送信する機能を有していない一般の多くのファクシミリアプリケーションプログラムを用いて利用制限を実現できる。
よってこの発明によると、より汎用性の高い利用制限を実現できる。
【０００９】
第５の発明は、第４の発明のファクシミリドライバプログラムであって、前記送信元情報は、前記ファクシミリアプリケーションプログラムを起動したユーザのユーザ識別情報である。
この発明によると、ユーザの単位で利用制限できる。
【００１０】
第６の発明は、第４の発明のファクシミリドライバプログラムであって、前記送信元情報は、前記ファクシミリアプリケーションプログラムのプログラム名である。
この発明によると、ファクシミリアプリケーションプログラムの単位で利用制限できる。
【００１１】
第７の発明は、第１〜第６のいずれかの発明のファクシミリドライバプログラムであって、前記第１の判断手段は、前記ファクシミリコマンドの種類毎に前記ファクシミリ装置との通信を許可するか否かを判断する。
この発明によると、ファクシミリコマンドの種類毎にファクシミリ装置との通信を許可するか否かを判断することにより、よりきめ細かく利用制限できる。
【００１２】
第８の発明は、第１〜第７のいずれかの発明のファクシミリドライバプログラムであって、前記ファクシミリ装置から着信通知を受信する第２の受信手段と、前記第２の受信手段により着信通知を受信すると、前記クライアント装置に着信通知を転送するか否かを、予め取り決められている条件に基づいて判断する第２の判断手段として機能させ、前記転送手段は、前記第２の判断手段により着信通知を転送すると判断されると、前記クライアント装置に着信通知を転送する。
この発明によると、着信通知を転送すると判断されなかった場合はクライアント装置に着信通知を転送しないので、ファクシミリ装置との通信が許可されていないクライアント装置に無用な着信通知を行わないようにすることができる。
【００１３】
第９の発明は、第８の発明のファクシミリドライバプログラムであって、前記転送手段は、前記クライアント装置が複数ある場合、いずれの前記クライアント装置に着信通知を転送するかを、予め決められている優先順位に基づいて決定する。
この発明によると、ファクシミリ装置との通信が許可されているクライアント装置が複数ある場合に、着信通知を転送するクライアント装置を適切に決定できる。
【００１４】
第１０の発明は、ファクシミリシステムであって、ファクシミリ装置と、クライアント装置と、前記クライアント装置と前記ファクシミリ装置との間で通信を中継するコンピュータとを備え、前記コンピュータは、前記クライアント装置からファクシミリコマンドを受信する第１の受信手段と、前記第１の受信手段によりファクシミリコマンドを受信すると、前記ファクシミリ装置との通信を許可するか否かを、予め取り決められている条件に基づいて判断する第１の判断手段と、前記第１の判断手段により通信を許可すると判断されると、前記第１の受信手段により受信したファクシミリコマンドを前記ファクシミリ装置に転送する転送手段とを有する。
この発明によると、汎用性の高い利用制限を実現できる。
【発明の効果】
【００１５】
本発明によれば、汎用性の高い利用制限を実現できる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態１に係るファクシミリシステムの模式図。
【図２】ＦＡＸドライバのプログラム構成を示すブロック図。
【図３】ＦＡＸ送信のシーケンスチャート。
【図４】ＦＡＸ受信の概要を説明するためのシーケンスチャート。
【図５】ＦＡＸアプリケーションにＦＡＸ着信を通知するシーケンスチャート。
【図６】ＦＡＸモデムにＦＡＸ受信を要求するシーケンスチャート。
【図７】書き込み要求を受信した場合の判断の流れを示すフローチャート。
【図８】読み込み要求を受信した場合の判断の流れを示すフローチャート。
【図９】パーミッション判定の流れを示すフローチャート。
【図１０】本発明の実施形態２に係るパーミッション判定の流れを示すフローチャート。
【図１１】本発明の実施形態３に係る読み込み要求を受信した場合の判断の流れを示すフローチャート。
【発明を実施するための形態】
【００１７】
＜実施形態１＞
本発明の実施形態１を図１ないし図９によって説明する。
（１）ファクシミリシステムの構成
図１は、本発明の実施形態１に係るファクシミリシステム１の構成を示す模式図である。ファクシミリシステム１は、クライアントコンピュータ１０と複合機２０とで構成されている。本実施形態ではクライアントコンピュータ１０がクライアント装置とコンピュータとを兼ねている場合を例に説明する。また、本実施形態ではファクシミリをＦＡＸと略す。
【００１８】
（１−１）クライアントコンピュータの電気的構成
クライアントコンピュータ１０（クライアント装置、コンピュータの一例）は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、記憶部１４、表示部１５、操作部１６、ＵＳＢインタフェース（ＵＳＢ  Ｉ／Ｆ）１７などを備えて構成されている。
【００１９】
ＣＰＵ１１（第１の受信手段、第１の判断手段、転送手段、取得手段の一例）は、ＲＯＭ１２及び記憶部１４に記憶されている各種のプログラムを実行することによりクライアントコンピュータ１０の各部を制御する。ＲＯＭ１２はＣＰＵ１１が実行するための各種のプログラムやデータなどを記憶している。ＲＡＭ１３はＣＰＵ１１が各種の処理を実行するための主記憶装置として用いられる。
【００２０】
記憶部１４は、ハードディスクやフラッシュメモリなどの不揮発性の記憶媒体を用いて各種のプログラムやデータを記憶する外部記憶装置である。記憶部１４にはオペレーティングシステム（ＯＳ）、ＦＡＸアプリケーション（ファクシミリアプリケーションプログラムの一例）、ＦＡＸドライバ（ファクシミリドライバプログラムの一例）、パーミッションデータベース（パーミッションＤＢ）などが記憶されている。本実施形態ではＯＳとしてＬｉｎｕｘ（登録商標）を使用している。なお、ＯＳはＬｉｎｕｘに限られるものではなく、他のＯＳであってもよい。
【００２１】
表示部１５は、ＣＲＴや液晶ディスプレイなどの表示装置で構成されている。
操作部１６（登録手段の一例）は、マウスやキーボードなどの入力装置で構成されている。
ＵＳＢインタフェース１７（第２の受信手段の一例）は、ＵＳＢケーブルを介して複合機２０と接続される。
【００２２】
本実施形態では、複数のユーザが１台のクライアントコンピュータ１０でＦＡＸアプリケーションを利用する場合を想定している。この場合、各ユーザはそれぞれクライアントコンピュータ１０の置かれている場所まで行って直接ログインして利用してもよいし、他のコンピュータから通信ネットワーク経由でクライアントコンピュータ１０にリモートログインして利用してもよい。
【００２３】
パーミッションＤＢは、ＡＴコマンド（ファクシミリコマンドの一例）の送信元であって複合機２０との通信が許可されている送信元を示す送信元情報が登録されているデータベースである。送信元とは、ＡＴコマンドを送信したユーザ、ユーザが属するグループ、あるいはＦＡＸアプリケーションをいう。つまり、クライアントコンピュータ１０は１台であっても、ＡＴコマンドの送信元は必ずしも同じであるとは限らない。
【００２４】
パーミッションＤＢには、ユーザ、ユーザが属するグループ、あるいはＦＡＸアプリケーションなどの単位ごとに、通信の可否（ＦＡＸ送信の可否、及びＦＡＸ受信の可否）が設定されている。以下その単位（ユーザ、グループ、ＦＡＸアプリケーションなど）を単に送信元と称する。
クライアントコンピュータ１０の管理者は操作部１６を操作することによりパーミッションＤＢに送信元情報の登録、及び通信の可否の設定を行うことができる。
【００２５】
（１−２）複合機の電気的構成
複合機２０（ファクシミリ装置の一例）は、ＦＡＸ送受信機能、プリント機能、スキャン機能、コピー機能などを有している。複合機２０は、制御部２１、ファクシミリ部２２、プリンタ部２３、スキャナ部２４、操作部２５、ＵＳＢインタフェース（ＵＳＢ  Ｉ／Ｆ）２６などを備えて構成されている。
【００２６】
制御部２１は、ＣＰＵ、ＲＯＭ、ＲＡＭなどで構成されている。ＣＰＵはＲＯＭに記憶されている各種のプログラムを実行することにより複合機２０の各部を制御する。ＲＯＭはＣＰＵが実行するための各種のプログラムやデータなどを記憶している。ＲＡＭはＣＰＵが各種の処理を実行するための主記憶装置として用いられる。
【００２７】
ファクシミリ部２２は、ＦＡＸモデム２２Ａ、ＦＡＸデータ記憶部２２Ｂを備えて構成されており、電話回線に接続されている。ファクシミリ部２２は受信したＦＡＸデータをプリンタ部２３にて印刷、ならびにスキャナ部２４にて読み取った画像をＦＡＸ送信する機能を有する。
さらに、ファクシミリ部２２は、ＰＣ−ＦＡＸ送受信の機能をも有する。これはクライアントコンピュータ１０が、ＵＳＢインタフェース２６を介して直にＦＡＸモデム２２Ａをアクセスすることにより行われる。このＰＣ１０とＦＡＸモデム２２Ａとのデータのやり取りは公知のＡＴコマンドを用いて行われる。
【００２８】
なお、受信したＦＡＸデータをクライアントコンピュータ１０に送信する際には、ＦＡＸデータは一旦ＦＡＸデータ記憶部２２Ｂに蓄積され、電話回線が接続断された後にクライアントコンピュータ１０にＲＩＮＧが送られる点が、通常のＦＡＸモデムと異なる。
【００２９】
本実施形態の構成にあっては、相手側のＦＡＸ装置より受信したＦＡＸデータを、クライアントコンピュータ１０が受信拒否することがありうる。しかし上記のように受信したＦＡＸデータを一旦ＦＡＸデータ記憶部２２Ｂに蓄積させた後にクライアントコンピュータ１０に送信する複合機２０に本発明を適用した場合には、クライアントコンピュータ１０が受信拒否をした場合にも相手側のＦＡＸ装置は既にＦＡＸデータの送信を終了しているので、クライアントコンピュータ１０が受信拒否してもＦＡＸデータの再送信を強いることがないといった利点がある。
【００３０】
プリンタ部２３は、レーザー方式、ＬＥＤ方式、インクジェット方式などによって紙などの被記録媒体に画像を形成する。
スキャナ部２４は、ＣＰＵによる制御の下で紙などの原稿に形成されている画像をリニアイメージセンサにより読み取って画像データを生成する。
【００３１】
操作部２５は、利用者が複合機２０を操作するための各種の操作ボタンや、各種の情報を表示するためのディスプレイなどを備えている。
ＵＳＢインタフェース２６は、ＵＳＢケーブルを介してクライアントコンピュータ１０と接続される。
【００３２】
（２）ＦＡＸドライバのプログラム構成
図２は、ＦＡＸドライバ３０のプログラム構成を示すブロック図である。ＦＡＸドライバ３０は、ＦＡＸアプリケーション４０とＦＡＸモデム２２Ａとの間で通信を中継するプログラムであり、ドライバＲ／Ｗ要求処理プログラム３１、ＡＴコマンド監視プログラム３２、ＲＩＮＧ監視プログラム３３、ＵＳＢ−ＦＡＸパイプ監視デーモンプログラム３４などからなる。このＦＡＸパイプ監視デーモンプログラム３４以外の部分は、Ｌｉｎｕｘのカーネルドライバとして構成される。バッファ１及びバッファ２はＲＡＭ１３上に確保されているバッファ領域である。
【００３３】
ドライバＲ／Ｗ要求処理プログラム３１は、ＦＡＸアプリケーション４０から書き込み要求、及び読み込み要求を受信するプログラムである。書き込み要求、及び読み込み要求については後述する。ドライバＲ／Ｗ要求処理プログラム３１は、書き込み要求を受信した場合はＡＴコマンド監視プログラム３２に書き込み要求を転送し、読み込み要求を受信した場合はＲＩＮＧ監視プログラム３３に読み込み要求を転送する。
【００３４】
ＡＴコマンド監視プログラム３２は、ＦＡＸアプリケーション４０からデータの書き込み要求を受信した場合に、そのデータをバッファ１に書き込むプログラムである。バッファ１に書き込まれるデータは、ＦＡＸモデム２２Ａに送信する各種のＡＴコマンドや、他のＦＡＸ装置に送信するＦＡＸデータなどである。ＡＴコマンド監視プログラム３２はその際、要求された書き込みデータを監視し、そのデータに応じて制御を変える。この処理は後述する。
【００３５】
ＲＩＮＧ監視プログラム３３は、ＦＡＸアプリケーション４０から読み込み要求を受信した場合に、バッファ２に書き込まれているデータを、読み込み要求を送信したＦＡＸアプリケーション４０に送信するプログラムである。バッファ２に書き込まれるデータは、ＦＡＸモデム２２Ａに送信したＡＴコマンドに対するＦＡＸモデム２２Ａからの応答コード（リザルトコード）や、他のＦＡＸ装置から受信したＦＡＸデータ、エラー情報などである。このＲＩＮＧ監視プログラム３３はバッファ２から読み込まれたデータを監視し、そのデータに応じて制御を変える。その処理は後述する。
【００３６】
また、図２では省略しているが、ＦＡＸドライバ３０は、ＵＳＢ−ＦＡＸパイプ監視デーモンプログラム３４から読み込み要求を受信するとバッファ１に書き込まれているデータをＵＳＢ−ＦＡＸ監視デーモン３４に送信し、ＵＳＢ−ＦＡＸ監視デーモン３４から書き込み要求を受信するとバッファ２にデータを書き込むプログラムも備えている。
【００３７】
ＵＳＢ−ＦＡＸパイプ監視デーモンプログラム３４（ＵＳＢ−ＦＡＸ監視デーモン）は、ＵＳＢインタフェースを監視し、ＦＡＸドライバ３０とＦＡＸモデム２２Ａとの間で通信を中継するプログラムである。ＵＳＢ−ＦＡＸ監視デーモン３４を設けたのは、ＵＳＢ規格はＵＳＢインタフェース側からアプリケーション側に自主的にデータを送信するようには構成されておらず、ＦＡＸドライバ３０側からＵＳＢインタフェース１７を監視する必要があるからである。
【００３８】
なお、例えば複合機２０とのインタフェースにＲＳ−２３２Ｃを用いる場合には、ＵＳＢ−ＦＡＸパイプ監視デーモンプログラムのような監視プログラムは不要である。
【００３９】
（３）ＦＡＸ送信、ＦＡＸ受信、及び自動着信設定
（３−１）ＦＡＸ送信のシーケンス
図３は、ＦＡＸ送信のシーケンスチャートである。便宜上、図３ではＵＳＢ−ＦＡＸ監視デーモン３４をＦＡＸドライバ３０とは別プログラムとして示している。
【００４０】
ＦＡＸアプリケーション４０は、利用者によりＦＡＸ送信が指示されると、ＦＡＸドライバ３０にダイヤル番号を付与したコマンド（ＡＴＤコマンド）の書き込み要求を送信する。ＦＡＸアプリケーション４０は、ＡＴＤコマンドの書き込み要求を送信した後、一定時間間隔でＦＡＸドライバ３０に読み込み要求を送信する。
【００４１】
ＦＡＸドライバ３０は、ＦＡＸアプリケーション４０からＡＴＤコマンドの書き込み要求を受信すると、ＦＡＸモデム２２Ａとの通信を許可するか否かを、その書き込み要求の送信元に応じて判断する（パーミッション判定。予め取り決められている条件に基づいて判断する一例）。この判断については後述する。
【００４２】
通信を許可しないと判断した場合、ＦＡＸドライバ３０はバッファ２にエラーを示すリザルトコードを書き込む。ＦＡＸドライバ３０はエラーをバッファ２に書き込んだ後にＦＡＸアプリケーション４０から読み込み要求を受信すると、読み込み要求の返答として、バッファ２に書き込まれているエラーをＦＡＸアプリケーション４０に送信する。
【００４３】
このようにＡＴＤコマンドは実際にはＦＡＸモデム２２Ａには送られないが、ＦＡＸアプリケーション４０はＦＡＸモデム２２ＡがＡＴＤコマンドに対してエラーを返したと判断する。従ってＦＡＸアプリケーション４０は通常のエラー（たとえば回線非接続）と同様のエラー処理が行われる。すなわちＦＡＸアプリケーション４０は、ＦＡＸドライバ３０の何ら特別な処理を行うことはなく、汎用のものが利用できる。
【００４４】
一方、通信を許可すると判断した場合、ＦＡＸドライバ３０はバッファ１にＡＴＤコマンドを書き込む。
ＵＳＢ−ＦＡＸ監視デーモン３４は、ＦＡＸドライバ３０に対して一定時間間隔で読み込み要求を送信している。ＦＡＸドライバ３０は、ＵＳＢ−ＦＡＸ監視デーモン３４から読み込み要求を受信すると、読み込み要求の返答として、バッファ１に書き込まれているＡＴＤコマンドをＵＳＢ−ＦＡＸ監視デーモン３４に送信する。
【００４５】
ＵＳＢ−ＦＡＸ監視デーモン３４は、ＡＴＤコマンドを受信すると、ＵＳＢインタフェース１７を介してＦＡＸモデム２２ＡにそのＡＴＤコマンドの書き込み要求を送信する。
ＵＳＢ−ＦＡＸ監視デーモン３４は、ＦＡＸモデム２２Ａに対しても一定時間間隔で読み込み要求を送信している。ＵＳＢ−ＦＡＸ監視デーモン３４は、読み込み要求の返答としてＦＡＸモデム２２ＡからＦＡＸ送信可／不可のいずれかを表すリザルトコードを受信すると、ＦＡＸドライバ３０にリザルトコードの書き込み要求を送信する。
【００４６】
ＦＡＸドライバ３０は、ＵＳＢ−ＦＡＸ監視デーモン３４からリザルトコードの書き込み要求を受信すると、そのリザルトコードをバッファ２に書き込む。ＦＡＸドライバ３０は、リザルトコードをバッファ２に書き込んだ後にＦＡＸアプリケーション４０から読み込み要求を受信すると、読み込み要求の返答として、バッファ２に書き込まれているリザルトコードをＦＡＸアプリケーション４０に送信する。
【００４７】
ＦＡＸアプリケーション４０は、受信したリザルトコードがＦＡＸ送信可を表すものであるか否かを判定する。ＦＡＸアプリケーション４０は、リザルトコードがＦＡＸ送信可を表すものである場合はＦＡＸデータの書き込み要求をＦＡＸドライバ３０に送信し、このＦＡＸデータがＦＡＸモデム２２Ａまで送信され、ＦＡＸモデム２２Ａにより外部のＦＡＸ装置にＦＡＸ送信される。一方、リザルトコードがＦＡＸ送信不可を表すものである場合は、ＦＡＸアプリケーション４０は送信処理を終了する。
【００４８】
（３−２）ＦＡＸ受信
始めに、ＦＡＸ受信の概要について説明する。
図４は、ＦＡＸ受信の概要を説明するためのシーケンスチャートである。ここでは理解を容易にするためＵＳＢ−ＦＡＸ監視デーモン３４は省略している。
ＦＡＸモデム２２Ａは、他のＦＡＸ装置から電話回線を介して接続要求を受信すると、回線を接続してＦＡＸデータを受信し、受信したＦＡＸデータをＦＡＸデータ記憶部２２Ｂに蓄積する。ＦＡＸモデム２２Ａは受信が完了すると回線を接続断する。
【００４９】
回線を接続断した後の処理は、ＦＡＸモデム２２Ａに対して自動着信をしないという設定がされている場合と、自動着信をするという設定がされている場合とで異なる。
ａ）自動着信をしないという設定がされている場合
図４は自動着信をしないという設定がされている場合のシーケンスである。回線を接続断すると、ＦＡＸモデム２２ＡはＦＡＸアプリケーション４０に着信通知（ＲＩＮＧ）を送信することによってＦＡＸ着信を通知する。
ＦＡＸアプリケーション４０は、ＲＩＮＧを受信すると、ＦＡＸモデム２２Ａに強制着信コマンド（ＡＴＡコマンド）を送信する。なお、ＦＡＸアプリケーション４０のユーザがＦＡＸ着信に対して応答しないと判断した場合はこのコマンドは送信されない。
【００５０】
ＦＡＸモデム２２Ａは、ＦＡＸアプリケーション４０からＡＴＡコマンドを受信すると、ＦＡＸデータ記憶部２２Ｂに蓄積しているＦＡＸデータをＦＡＸアプリケーション４０に送信する。
【００５１】
ｂ）自動着信をするという設定がされている場合
回線を接続断すると、ＦＡＸモデム２２Ａは予め指定された回数のＲＩＮＧを送信したのち、クライアントコンピュータ１０からＡＴＡコマンドが来ない場合は自動的にＦＡＸアプリケーション４０にＦＡＸデータを送信する。
【００５２】
（３−２−１）ＦＡＸ着信のシーケンス
図５は、ＦＡＸモデム２２ＡからＦＡＸアプリケーション４０にＦＡＸ着信（ＲＩＮＧ）を通知するシーケンスチャートである。
ＦＡＸモデム２２Ａは、回線を接続断した後にＵＳＢ−ＦＡＸ監視デーモン３４から読み込み要求を受信すると、ＵＳＢ−ＦＡＸ監視デーモン３４にＲＩＮＧを送信する。
【００５３】
ＵＳＢ−ＦＡＸ監視デーモン３４は、ＦＡＸモデム２２ＡからＲＩＮＧを受信すると、ＦＡＸドライバ３０にＲＩＮＧの書き込み要求を送信する。
ＦＡＸドライバ３０は、ＲＩＮＧの書き込み要求を受信すると、ＲＩＮＧをバッファ２に書き込む。そして、ＦＡＸドライバ３０はＦＡＸアプリケーション４０から読み込み要求を受信すると、ＲＩＮＧを転送するか否かを、その読み込み要求の送信元に応じて判断する。この判断については後述する。
【００５４】
ＲＩＮＧを転送すると判断した場合、ＦＡＸドライバ３０はバッファ２に書き込まれているＲＩＮＧをＦＡＸアプリケーション４０に送信する。
一方、ＲＩＮＧを転送しないと判断した場合、ＦＡＸドライバ３０はバッファ２からＲＩＮＧを削除する。
【００５５】
（３−２−２）ＦＡＸ受信のシーケンス
図６は、ＦＡＸ着信を通知されたＦＡＸアプリケーション４０がＦＡＸモデム２２ＡにＦＡＸ受信を要求するシーケンスチャートである。
【００５６】
ＦＡＸアプリケーション４０は、ＲＩＮＧを受信すると、ＦＡＸドライバ３０に強制着信コマンド（ＡＴＡコマンド）を送信する。ＦＡＸアプリケーション４０からＦＡＸモデム２２ＡにＡＴＡコマンドを送信する流れはＡＴＤコマンドの場合と実質的に同一であるので説明は省略する。
ＦＡＸモデム２２Ａは、ＡＴＡコマンドを受信すると、ＦＡＸデータ記憶部２２Ｂに蓄積しているＦＡＸデータをＵＳＢ−ＦＡＸ監視デーモン３４に送信する。
【００５７】
ＵＳＢ−ＦＡＸ監視デーモン３４は、ＦＡＸモデム２２ＡからＦＡＸデータを受信すると、ＦＡＸドライバ３０にＦＡＸデータの書き込み要求を送信する。
ＦＡＸドライバ３０は、ＦＡＸデータの書き込み要求を受信すると、ＦＡＸデータをバッファ２に書き込む。そして、ＦＡＸドライバ３０はＦＡＸアプリケーション４０から読み込み要求を受信すると、その読み込み要求に応答して、バッファ２に書き込まれているＦＡＸデータをＦＡＸアプリケーション４０に送信する。
【００５８】
（３−３）自動着信設定
自動着信の設定は、ＦＡＸモデム２２ＡにＡＴＳ０コマンドを送信することによって行うことができる。ＡＴＳｎ＝ｘはｎ番目のレジスタにｘという設定値を設定するというコマンドである。ｎ＝０は自動着信の設定値が格納されるレジスタである。ｘ＝０は自動着信しないという設定値であり、ｘ＝０以外は自動着信するという設定値である。ユーザは、ＦＡＸモデム２２Ａが待機中のときであればいつでも自動着信の設定を行うことができる。
ＡＴＳ０コマンドを送信するシーケンスはＡＴＤコマンドやＡＴＡコマンドを送信するシーケンスと実質的に同一である。
【００５９】
（４）ＦＡＸモデムとの通信を許可するか否かの判断
上述したように、ＦＡＸドライバ３０は、ＦＡＸアプリケーション４０から書き込み要求を受信した場合に、ＦＡＸアプリケーション４０とＦＡＸモデム２２Ａとの通信を許可するか否かを判断する。以下、その判断について説明する。
【００６０】
図７は、書き込み要求を受信した場合の判断の流れを示すフローチャートである。本処理は、ＡＴコマンド監視プログラムを実行するＣＰＵ１１によって実行される。本処理は、ＣＰＵ１１がＦＡＸアプリケーション４０又はＵＳＢ−ＦＡＸ監視デーモン３４から書き込み要求を受信すると開始される。
【００６１】
Ｓ１０１では、ＣＰＵ１１は、受信した書き込み要求がＵＳＢ−ＦＡＸ監視デーモン３４からの要求であるか否かを判定し、ＵＳＢ−ＦＡＸ監視デーモン３４からの要求である場合はＳ１０２に進み、そうでない場合（ＦＡＸアプリケーション４０からの要求である場合）はＳ１０３に進む。
Ｓ１０２では、ＣＰＵ１１はＵＳＢ−ＦＡＸ監視デーモン３４から受信したデータ（ＲＩＮＧ、リザルトコード、ＦＡＸデータ）をバッファ２に書き込む。
【００６２】
Ｓ１０３では、ＣＰＵ１１は書き込み要求を送信した送信元を示す送信元情報を取得する。ＦＡＸドライバ３０はＬｉｎｕｘのカーネルドライバであるので、そのカーネルドライバの呼び出し元の情報が、自動的に内部変数にセットされる。本実施形態ではその情報を送信元情報として利用している。
送信元情報とは、具体的には例えば、書き込み要求を送信したＦＡＸアプリケーション４０を起動したユーザのユーザＩＤ（ユーザ識別情報の一例）や、そのユーザが属するグループのグループＩＤなどである。
【００６３】
Ｓ１０４では、ＣＰＵ１１は記憶部１４からパーミッションＤＢを読み込む。
Ｓ１０５では、ＣＰＵ１１は送信元情報に対してＦＡＸ送信、及びＦＡＸ受信が許可されているか否かをパーミッションＤＢを参照して判断する（パーミッション判定）。パーミッション判定については後述する。ＣＰＵ１１はＦＡＸ送信及びＦＡＸ受信がいずれも許可されていないと判断した場合はＳ１０６に進み、少なくとも一方が許可されていると判断した場合はＳ１０７に進む。
【００６４】
Ｓ１０６では、ＣＰＵ１１はバッファ２にエラーを書き込んで処理を終了する。
Ｓ１０７では、ＣＰＵ１１は書き込み要求によって書き込みの要求がされたデータが強制着信コマンド（ＡＴＡコマンド）であるか否かを判定し、ＡＴＡコマンドである場合はＳ１０８に進み、それ以外のデータである場合はＳ１０９に進む。
【００６５】
Ｓ１０８では、ＣＰＵ１１はＳ１０５においてＦＡＸ受信が許可されていると判断した場合はＳ１１３に進み、許可されていないと判断した場合はＳ１０６に進んでバッファ２にエラーを書き込む。
Ｓ１０９では、ＣＰＵ１１は書き込みの要求がされたデータが自動着信設定コマンド（ＡＴＳ０コマンド）であるか否かを判定し、自動着信設定コマンドである場合はＳ１１０に進み、それ以外のデータである場合はＳ１１１に進む。
【００６６】
Ｓ１１０では、ＣＰＵ１１はＳ１０５においてＦＡＸ受信が許可されていると判断した場合はＳ１１３に進み、許可されていないと判断した場合はＳ１０６に進んでバッファ２にエラーを書き込む。
Ｓ１１１では、ＣＰＵ１１は書き込みの要求がされたデータがダイヤルコマンド（ＡＴＤコマンド）であるか否かを判定し、ＡＴＤコマンドである場合はＳ１１２に進み、それ以外のデータである場合はＳ１１３に進む。
【００６７】
Ｓ１１２では、ＣＰＵ１１はＳ１０５においてＦＡＸ送信が許可されていると判断した場合はＳ１１３に進み、許可されていないと判断した場合はＳ１０６に進んでバッファ２にエラーを書き込む。
Ｓ１１３では、ＣＰＵ１１はＦＡＸアプリケーション４０から送られたデータ（ＡＴコマンド、ＦＡＸデータ）をバッファ１に書き込む。
【００６８】
ＡＴコマンドには多くの種類があり、ＡＴＡ、ＡＴＳ０、及びＡＴＤ以外のコマンドの場合は、ＦＡＸ送信、又はＦＡＸ受信の少なくとも一方が許可されていれば、個別にパーミッション判定されることなくＦＡＸモデム２２Ａに送信されることになる。
【００６９】
（５）ＲＩＮＧを転送するか否かの判断
上述したように、ＦＡＸドライバ３０は、バッファ２にＲＩＮＧが書き込まれているときにＦＡＸアプリケーション４０から読み込み要求を受信した場合に、ＲＩＮＧを転送するか否かを判断する。以下、その判断について説明する。
【００７０】
図８は、読み込み要求を受信した場合の判断の流れを示すフローチャートである。本処理は、ＲＩＮＧ監視プログラムを実行するＣＰＵ１１によって実行される。本処理は、ＣＰＵ１１がＦＡＸアプリケーション４０、又はＵＳＢ−ＦＡＸ監視デーモン３４から読み込み要求を受信すると開始される。
【００７１】
Ｓ２０１では、ＣＰＵ１１は読み込み要求がＵＳＢ−ＦＡＸ監視デーモン３４からの要求であるか否かを判定し、ＵＳＢ−ＦＡＸ監視デーモン３４からの要求である場合はＳ２０２に進み、そうでない場合（ＦＡＸアプリケーション４０からの要求である場合）はＳ２０４に進む。
Ｓ２０２では、ＣＰＵ１１はバッファ１に書き込まれているデータをＵＳＢ−ＦＡＸ監視デーモン３４に返す。
Ｓ２０３では、ＣＰＵ１１はバッファ１からデータを削除する。
【００７２】
Ｓ２０４では、ＣＰＵ１１はバッファ２からデータを読み込む。
Ｓ２０５では、ＣＰＵ１１はバッファ２から読み込まれたデータが空か否かを判定し、空の場合はＳ２０６に進み、データがある場合はＳ２０８に進む。
Ｓ２０６では、ＣＰＵ１１は読み込み要求を送信したＦＡＸアプリケーション４０に空データを返して処理を終了する。
【００７３】
Ｓ２０７では、ＣＰＵ１１は前述したＳ１０３と同様に送信元情報を取得する。
Ｓ２０８では、ＣＰＵ１１は記憶部１４からパーミッションＤＢを読み込む。
Ｓ２０９では、ＣＰＵ１１はバッファ２から読み込んだデータがＲＩＮＧであるか否かを判定し、ＲＩＮＧである場合はＳ２１０に進み、それ以外である場合はＳ２１３に進む。
【００７４】
Ｓ２１０では、ＣＰＵ１１はバッファ２にＲＩＮＧを書き込んだ時から所定時間以上経過しているか否かを判定する。ＣＰＵ１１は、所定時間以上経過している場合はタイムアウトとしてＳ２１１に進み、経過していない場合はＳ２１２に進む。
【００７５】
Ｓ２１１では、ＣＰＵ１１はバッファ２からＲＩＮＧを削除してＳ２０６に進む。バッファ２にＲＩＮＧを書き込んだ時から所定時間以上経過している場合には、そのＲＩＮＧは既に古く、ＦＡＸモデム２２ＡはそのＲＩＮＧに対する応答を待っていない可能性がある。そこで、本実施形態では、所定時間以上経過している場合には、バッファ２からＲＩＮＧを削除する。
なお、バッファ２からＲＩＮＧを削除した場合、ＦＡＸモデム２２ＡがＲＩＮＧに対する応答を待っている場合には再度ＦＡＸモデム２２ＡからＲＩＮＧが送信されてくることになる。
【００７６】
Ｓ２１２では、ＣＰＵ１１は送信元情報に対してＦＡＸ受信が許可されているか否かをパーミッションＤＢを参照して判断する（パーミッション判定）。パーミッション判定については後述する。ＣＰＵ１１は、ＦＡＸ受信が許可されていると判断した場合はＳ２１３に進み、許可されていないと判断した場合はＳ２０６に進んで読み込み要求を送信したＦＡＸアプリケーション４０に空データを返す。これにより、ＲＩＮＧはＦＡＸアプリケーション４０に転送されないため、ＦＡＸアプリケーション４０はＲＩＮＧを検知できない。このためＦＡＸアプリケーション４０がＲＩＮＧにともなう処理（ＡＴＡコマンドの送信等）を開始することがない。
【００７７】
またＦＡＸ受信が許可されていないと判断されたことにより空データを返しても、タイムアウトをしない限りＲＩＮＧは削除されずに残る。このため、パーミッションＤＢに新たに受信許可された送信元情報が登録されると、その送信元からの読み込み要求に対しては、Ｓ２１２にてＹＥＳと判断される。
【００７８】
Ｓ２１３では、ＣＰＵ１１はバッファ２から読み込んだデータをＦＡＸアプリケーション４０に送信する。
Ｓ２１４では、ＣＰＵ１１はバッファ２からデータを削除する。
【００７９】
（６）パーミッション判定
パーミッション判定とは、送信元情報に対してＦＡＸ送信、及びＦＡＸ受信が許可されているか否かをパーミッションＤＢを参照して判断することをいう。
図９は、パーミッション判定の流れを示すフローチャートである。
Ｓ３０１では、ＣＰＵ１１はユーザＩＤ（ファクシミリアプリケーションプログラムに関する情報の一例）に対してパーミッション（ＦＡＸ送受信の許可／不許可）が設定されているか否かを判定し、設定されている場合はユーザのパーミッション設定に従ってＦＡＸ送信、及びＦＡＸ受信の可否を判定する。
【００８０】
Ｓ３０２では、ＣＰＵ１１はグループＩＤ（ファクシミリアプリケーションプログラムに関する情報の一例）に対応してパーミッションが設定されているか否かを判定し、設定されている場合はＦＡＸアプリケーション４０を起動したユーザが属するグループのパーミッション設定に従ってＦＡＸ送信、及びＦＡＸ受信の可否を判定する。
【００８１】
Ｓ３０３では、ＣＰＵ１１はユーザがｒｏｏｔ（特権）ユーザであるか否かを判定し、ｒｏｏｔユーザの場合はＦＡＸ送信、及びＦＡＸ受信がいずれも許可されていると判定する。
【００８２】
Ｓ３０４では、ＣＰＵ１１はデフォルトのパーミッションが設定されているか否かを判定し、設定されている場合はデフォルトのパーミッション設定に従ってＦＡＸ送信、及びＦＡＸ受信の可否を判定する。デフォルトのパーミッションとは、全てのユーザに対して一律に適用されるパーミッションである。
一方、デフォルトのパーミッションが設定されていない場合は、ＣＰＵ１１は、送信許可、受信不許可と判定する。
【００８３】
（７）実施形態の効果
以上説明した本発明の実施形態１に係るＦＡＸドライバ３０によると、ＦＡＸドライバ３０によってＦＡＸモデム２２Ａの利用制限をするので、利用制限のための機能を有していないＦＡＸモデム２２Ａを用いて利用制限を実現することができる。よってこのＦＡＸドライバ３０によると、汎用性の高い利用制限を実現できる。
【００８４】
更に、ＦＡＸドライバ３０によると、パーミッションＤＢを参照することにより、ＦＡＸモデム２２Ａとの通信を行う送信元を制限することができる。
【００８５】
更に、ＦＡＸドライバ３０によると、ＡＴコマンドの送信元を示す送信元情報をＯＳから取得する。ＡＴコマンドは送信元を示す送信元情報が付加されるようには構成されておらず、そのため一般の多くのＦＡＸアプリケーション４０はＦＡＸドライバ３０に送信元情報を送信する機能を有していない。このため、ＦＡＸ装置にユーザーパーミッションの機能があったとしても、ＰＣ−ＦＡＸ送受信ではその機能を使うことができなかった。しかしこのＦＡＸドライバ３０によると、ＡＴコマンドの送信元を示す送信元情報をＯＳから取得するので、ＦＡＸドライバ３０に送信元情報を送信する機能を有していない一般の多くのＦＡＸアプリケーション４０を用いて利用制限を実現できる。よってこのＦＡＸドライバ３０によると、より汎用性の高い利用制限を実現できる。
【００８６】
更に、ＦＡＸドライバ３０によると、ＦＡＸアプリケーション４０を実行するユーザのユーザＩＤを送信元情報として用いるので、ユーザの単位で利用制限できる。
【００８７】
更に、ＦＡＸドライバ３０によると、ファクシミリコマンドの種類毎にＦＡＸモデム２２Ａとの通信を許可するか否かを判断するので、よりきめ細かく利用制限できる。
【００８８】
更に、ＦＡＸドライバ３０によると、ＦＡＸ受信が許可されていないユーザが読み込み要求の送信元である場合には、例えバッファ２にＲＩＮＧが書き込まれていてもその読み込み要求を送信したＦＡＸアプリケーション４０にＲＩＮＧを転送しないので、ＦＡＸ受信が許可されていないユーザに無用な着信通知を行わないようにすることができる。
【００８９】
また本実施形態ではＦＡＸ受信に関しては、ＦＡＸ送受信を許可するか否かのパーミッションの判断の他に、ＲＩＮＧ送信を許可するか否かのパーミッションの判断も行っている。ＦＡＸアプリケーション４０によっては、ＲＩＮＧの受信時にポップアップ画面などを表示部１５に表示させ、ＦＡＸ受信の可否をユーザに選択させるものもあるが、そのポップアップ画面自体を表示させないようにすることができる。従って、ユーザがポップアップ画面に対してＦＡＸ受信の許可を入力したにもかかわらず、パーミッション判定によりＦＡＸ受信がされないといった不具合が起こらない。
【００９０】
＜実施形態２＞
次に、本発明の実施形態２を図１０によって説明する。
実施形態２では、ＦＡＸアプリケーション４０に関する情報として、ＦＡＸアプリケーション４０のプログラム名を取得する。
実施形態２に係るパーミッションＤＢには、ＦＡＸアプリケーションのプログラム名の単位で通信の可否（ＦＡＸ送信の可否、及びＦＡＸ受信の可否）が登録されている。
【００９１】
図１０は、ＦＡＸアプリケーション４０に対するパーミッション判定の流れを示すフローチャートである。図１０に示すフローチャートは書き込み要求、及び読み込み要求に対して共通に適用される部分を示しており、図１０に示すフローチャートに示されていない部分については、書き込み要求の場合は図７に示すフローチャートが適用され、読み込み要求の場合は図８に示すフローチャートが適用される。
【００９２】
Ｓ４０１では、ＣＰＵ１１は受信した書き込み要求／読み込み要求がＵＳＢ−ＦＡＸ監視デーモン３４からの要求であるか否かを判定し、ＵＳＢ−ＦＡＸ監視デーモン３４からの要求である場合はＳ４０２に進み、そうでない場合（ＦＡＸアプリケーション４０からの要求である場合）はＳ４０３に進む。
Ｓ４０２では、ＣＰＵ１１はＵＳＢ−ＦＡＸ監視デーモン３４から送信された書き込み要求に応答してバッファ２にデータを書き込むか、又は送信された読み込み要求に応答してバッファ１に書き込まれているデータをＵＳＢ−ＦＡＸ監視デーモン３４に送信する。
【００９３】
Ｓ４０３では、ＣＰＵ１１はパーミッションＤＢから通信が許可されているＦＡＸアプリケーション４０のリスト（許可リスト）を取得する。
【００９４】
Ｓ４０４では、ＣＰＵ１１はＯＳからＦＡＸドライバ３０に書き込み要求／読み込み要求を送信したＦＡＸアプリケーション４０のプログラム名を取得し、取得したプログラム名が許可リストに登録されているか否かを判定する。
ＣＰＵ１１は、登録されている場合は通信が許可されているＦＡＸアプリケーション４０であると判定し、書き込み要求を受信した場合には図７のＳ１０３に進み、読み込み要求を受信した場合には図８のＳ２０４に進む。
一方、登録されていない場合は、ＣＰＵ１１は通信が許可されていないＦＡＸアプリケーション４０であると判定してＳ４０５に進む。
Ｓ４０５では、ＣＰＵ１１はバッファ２にエラーを書き込んで処理を終了する。
【００９５】
以上説明した本発明の実施形態２に係るＦＡＸドライバ３０によると、ＦＡＸアプリケーション４０のプログラム名を送信元情報として用いるので、ＦＡＸアプリケーション４０の単位で利用制限できる。
【００９６】
例えば、ＦＡＸ送受信はログ管理される場合がある。このログ管理はＦＡＸドライバ３０によって行うこともできるし、ＦＡＸアプリケーション４０によって行うこともできる。このＦＡＸドライバ３０によると、ＦＡＸアプリケーション４０によってログ管理を行う場合に、共通の書き込み場所にログを書き込む機能を有しているＦＡＸアプリケーション４０のみ使用を許可することにより、ログを集中管理することができる。
【００９７】
＜実施形態３＞
次に、本発明の実施形態３を図１１によって説明する。
実施形態３では、ＲＩＮＧが３回目以内である場合には優先順位が１位であるユーザのみＦＡＸ受信でき、ＲＩＮＧが４回目以降である場合にはＦＡＸ受信が可能な全てのユーザのうち最初に読み込み要求を送信したユーザ（最初に読み込み要求を送信したＦＡＸアプリケーション４０）がＦＡＸ受信できる。
【００９８】
図１１は、読み込み要求を受信した場合の判断の流れを示すフローチャートである。本処理は、ＲＩＮＧ監視プログラムを実行するＣＰＵ１１によって実行される。本処理は、ＣＰＵ１１がＦＡＸアプリケーション４０、又はＵＳＢ−ＦＡＸ監視デーモン３４から読み込み要求を受信すると開始される。
【００９９】
Ｓ５０１では、ＣＰＵ１１は読み込み要求がＵＳＢ−ＦＡＸ監視デーモン３４からの要求であるか否かを判定し、ＵＳＢ−ＦＡＸ監視デーモン３４からの要求である場合はＳ２０２（図８）に進み、そうでない場合（ＦＡＸアプリケーション４０からの要求である場合）はＳ５０２に進む。
Ｓ５０２では、ＣＰＵ１１はバッファ２からデータを読み込む。
【０１００】
Ｓ５０３では、ＣＰＵ１１はバッファ２から読み込まれたデータが空か否かを判定し、データがある場合はＳ５０４に進み、空の場合はＳ２０６（図８）に進む。
Ｓ５０４では、ＣＰＵ１１はバッファ２から読み込んだデータがＲＩＮＧであるか否かを判定し、ＲＩＮＧである場合はＳ５０５に進み、それ以外である場合はＳ２１３（図８）に進む。
【０１０１】
Ｓ５０５では、ＣＰＵ１１はＲＩＮＧが何度目のＲＩＮＧであるかを判定する。具体的には、ＦＡＸモデム２２Ａは回線を接続断するとＦＡＸアプリケーション４０に一連のＲＩＮＧを送信し、ＦＡＸアプリケーション４０から応答（ＡＴＡコマンド）がない場合は再度一連のＲＩＮＧを送信する。この一連のＲＩＮＧを再送する回数は予め決まっている。ＣＰＵ１１はこの一連のＲＩＮＧを受信する毎にカウンタに１を加算することによって何回目のＲＩＮＧであるかを計数する。このカウンタはＦＡＸアプリケーション４０がＲＩＮＧに対して応答したとき及びタイムアウトしたときに０（零）にリセットされる。つまりＦＡＸアプリケーション４０によってＲＩＮＧに応答されずに放置され、所定時間たった後にＦＡＸモデム２２Ａから再度一連のＲＩＮＧが送られる場合には、再度１からカウントする。
【０１０２】
Ｓ５０６では、ＲＩＮＧの回数が３回目以内であるか否かを判定し、３回目以内の場合はＳ５０７に進み、４回目以上である場合はＳ５１０に進む。
Ｓ５０７では、ＣＰＵ１１は読み込み要求（本処理が実行されるきっかけとなった読み込み要求）を送信したユーザ（読み込み要求を送信したＦＡＸアプリケーション４０を起動したユーザ）に設定されている優先順位が１位であるか否かを判定し、１位である場合はＳ５０８に進み、１位以外である場合はＳ５１２に進む。
【０１０３】
Ｓ５０８では、ＣＰＵ１１は読み込み要求を送信したＦＡＸアプリケーション４０にＲＩＮＧを返す。
Ｓ５０９では、ＣＰＵ１１はバッファ２からＲＩＮＧを削除する。
Ｓ５１０では、ＣＰＵ１１はバッファ２にＲＩＮＧを書き込んだ時から所定時間以上経過しているか否かを判定し、経過していない場合はＳ５１１に進み、経過している場合はタイムアウトとしてＳ５１３に進む。
【０１０４】
Ｓ５１１では、ＣＰＵ１１は読み込み要求を送信したユーザのパーミッション判定を行い、ＦＡＸ受信が許可されているか否かを判定する。ＣＰＵ１１はＦＡＸ受信が許可されている場合はＳ５０８に進み、ＦＡＸ受信が許可されていない場合はＳ５１２に進む。
Ｓ５１２では、ＣＰＵ１１は読み込み要求を送信したＦＡＸアプリケーション４０に空データを返して処理を終了する。
Ｓ５１３では、ＣＰＵ１１はバッファ２からＲＩＮＧを削除する。
【０１０５】
以上説明した本発明の実施形態３に係るＦＡＸドライバ３０によると、ＦＡＸモデム２２Ａとの通信が許可されているＦＡＸアプリケーション４０（クライアント装置）が複数ある場合、いずれのＦＡＸアプリケーション４０に着信通知を転送するかを、予め決められている優先順位に基づいて決定するので、ＦＡＸモデム２２Ａとの通信が許可されているＦＡＸアプリケーション４０が複数ある場合に、ＲＩＮＧを転送するＦＡＸアプリケーション４０を適切に決定できる。
【０１０６】
＜他の実施形態＞
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【０１０７】
（１）上記実施形態では他のＦＡＸ装置から電話回線を介して接続要求を受信すると、回線を接続してＦＡＸデータを受信し、受信したＦＡＸデータをＦＡＸデータ記憶部２２Ｂに蓄積する場合を例に説明したが、他のＦＡＸ装置から接続要求を受信するとＦＡＸアプリケーション４０にＲＩＮＧを送信し、ＡＴＡコマンドを受信した後に回線を接続する構成であってもよい。
【０１０８】
（２）上記実施形態ではクライアントコンピュータ１０がクライアント装置とコンピュータとを兼ねている場合を例に説明したが、コンピュータとクライアント装置とは別々に構成されていてもよい。
【符号の説明】
【０１０９】
１・・・ファクシミリシステム
１０・・・クライアントコンピュータ
１１・・・ＣＰＵ
１４・・・記憶部
１６・・・操作部
１７・・・ＵＳＢインタフェース
２０・・・複合機
２１・・・制御部
２２・・・ファクシミリ部（ＦＡＸモデム）
２６・・・ＵＳＢインタフェース
３０・・・ファクシミリドライバプログラム
３１・・・ドライバＲ／Ｗ要求処理プログラム
３２・・・ＡＴコマンド監視プログラム
３３・・・ＲＩＮＧ監視プログラム
３４・・・ＵＳＢ−ＦＡＸパイプ監視デーモンプログラム
４０・・・ファクシミリアプリケーションプログラム
【図１】
2011101071.tif 000003
【図２】
2011101071.tif 000004
【図３】
2011101071.tif 000005
【図４】
2011101071.tif 000006
【図５】
2011101071.tif 000007
【図６】
2011101071.tif 000008
【図７】
2011101071.tif 000009
【図８】
2011101071.tif 000010
【図９】
2011101071.tif 000011
【図１０】
2011101071.tif 000012
【図１１】
2011101071.tif 000013