"ファクシミリ装置であって、前記装置と、前記装置と動作可能に通信する少なくとも1つのユーザアプリケーションとの間の通信を容易にするように動作可能なユーザインターフェースと、前記装置と、前記装置に結合された複数の通信ネットワークのうちの少なくとも1つとの間の通信を容易にするように動作可能なネットワークインターフェースと、前記ユーザインターフェースおよびネットワークインターフェースに接続されたコントローラであって、第1ファクシミリプロトコルを使用して前記通信ネットワークのうちの第1の1つと通信するために第1モードで動作可能であり、第2ファクシミリプロトコルを使用して前記通信ネットワークのうちの第2の1つと通信するために少なくとも第2モードで動作可能である、コントローラとを含むファクシミリ装置。前記コントローラは、前記通信ネットワークのうちの前記第1の1つに結合された第1ファクシミリデバイスと前記通信ネットワークのうちの前記第2の1つに結合された第2ファクシミリデバイスとの間の通信を容易にするために第3モードでさらに動作可能であり、前記コントローラは、前記第1ファクシミリプロトコルの前記通信ネットワークのうちの前記第1の1つから受信されたデータを前記通信ネットワークのうちの前記第2の1つでの送信のために前記第2ファクシミリプロトコルに変換するために前記第3モードで動作可能である、請求項1に記載の装置。前記第1ファクシミリプロトコルは、アナログファクシミリプロトコルであり、前記第2ファクシミリプロトコルは、インターネットプロトコルIP対応プロトコルである、請求項2に記載の装置。前記第1ファクシミリプロトコルは、グループ3G3プロトコルであり、前記第2ファクシミリプロトコルは、ITU-TT.38プロトコルである、請求項2に記載の装置。前記ネットワークインターフェースは、前記第1ファクシミリプロトコルを利用するモデムデータ通信装置DCEインターフェース、前記DCEインターフェースに結合されたモデムコントローラ、および前記モデムコントローラに結合されたモデムデータポンプを含むアナログスタックと、前記第2ファクシミリプロトコルを利用するデータ端末装置DTEインターフェース、前記DTEインターフェースに結合されたプロトコルエンジン、ならびに前記プロトコルエンジンおよび前記DTEインターフェースと通信するIPシグナリングプロトコルISPモジュールを含むIP対応スタックとを含む、請求項1に記載の装置。前記アナログスタックは、前記モデムデータポンプに結合され、前記通信ネットワークのうちの前記第1の1つとの通信のために適合されたサンプルバッファをさらに含む、請求項5に記載の装置。前記IP対応スタックは、前記プロトコルエンジンに結合されたファクシミリパケットバッファとISPモジュールとをさらに含み、前記通信ネットワークのうちの前記第2の1つとの通信のために適合される、請求項5に記載の装置。前記ユーザインターフェースは、前記ユーザアプリケーションからコマンドを受け取り、前記コマンドを前記コントローラによって利用される1つまたは複数の制御信号に変換することと、前記ネットワークインターフェースから制御信号を受け取り、前記制御信号を前記ユーザアプリケーションによって利用されるコマンドに変換することとのうちの少なくとも1つを行うように動作可能なコマンドパーサをさらに含む、請求項1に記載の装置。前記ユーザインターフェースは、少なくとも1つのユーザコマンドを受け取るように動作可能であり、前記コントローラの1つまたは複数の動作のモードは、前記少なくとも1つのユーザコマンドの関数として制御される、請求項1に記載の装置。前記少なくとも1つのユーザコマンドは、標準アナログATコマンドセットとは別個のATコマンドを含む、請求項9に記載の装置。前記少なくとも1つのユーザコマンドは、アナログファクシミリ送信には使用されないIP対応ファクシミリクラスを定義するATコマンドを含む、請求項9に記載の装置。少なくとも1つのファクシミリ装置を含む集積回路であって、前記少なくとも1つのファクシミリ装置は、前記装置と、前記装置と動作可能に通信する少なくとも1つのユーザアプリケーションとの間の通信を容易にするように動作可能なユーザインターフェースと、前記装置と、前記装置に結合された複数の通信ネットワークのうちの少なくとも1つとの間の通信を容易にするように動作可能なネットワークインターフェースと、前記ユーザインターフェースおよびネットワークインターフェースに接続されたコントローラであって、第1ファクシミリプロトコルを使用して前記通信ネットワークのうちの第1の1つと通信するために第1モードで動作可能であり、第2ファクシミリプロトコルを使用して前記通信ネットワークのうちの第2の1つと通信するために少なくとも第2モードで動作可能である、コントローラとを含む、集積回路。ファクシミリデバイスと、前記ファクシミリデバイスと動作可能に通信する少なくとも1つのユーザアプリケーションとの間の通信を容易にするように動作可能な第1インターフェースを提供するステップと、前記ファクシミリデバイスと、前記ファクシミリデバイスに結合された複数の通信ネットワークのうちの少なくとも1つとの間の通信を容易にするように動作可能な第2インターフェースを提供するステップと、第1ファクシミリプロトコルを使用して動作の第1モードで前記通信ネットワークのうちの第1の1つと通信し、第2ファクシミリプロトコルを使用して動作の第2モードで前記通信ネットワークのうちの第2の1つと通信するステップと、を含む、少なくとも2つのファクシミリプロトコルを使用するファクシミリ通信を容易にする方法。前記通信ネットワークのうちの前記第1の1つに結合された第1ファクシミリデバイスと前記通信ネットワークのうちの前記第2の1つに結合された第2ファクシミリデバイスとの間で動作の第3モードで通信するステップと、動作の前記第3モードで前記第1ファクシミリプロトコルの前記通信ネットワークのうちの前記第1の1つから受信されたデータを前記通信ネットワークのうちの前記第2の1つでの送信のために前記第2ファクシミリプロトコルに変換するステップとをさらに含む、請求項13に記載の方法。前記少なくとも1つのユーザアプリケーションから1つまたは複数のコマンドを受け取るステップと、前記1つまたは複数のコマンドを前記ファクシミリデバイスによって利用される1つまたは複数の制御信号に変換するステップとをさらに含む、請求項13に記載の方法。前記ファクシミリデバイスから1つまたは複数の制御信号を受け取るステップと、前記1つまたは複数の制御信号を前記少なくとも1つのユーザアプリケーションによって利用される1つまたは複数のコマンドに変換するステップとをさらに含む、請求項13に記載の方法。前記第1インターフェースが少なくとも1つのユーザコマンドを受け取るステップと、前記少なくとも1つのユーザコマンドの関数として前記ファクシミリデバイスの動作の1つまたは複数のモードを制御するステップとをさらに含む、請求項13に記載の方法。前記少なくとも1つのユーザコマンドは、標準アナログATコマンドセットとは別個のATコマンドを含む、請求項17に記載の方法。前記少なくとも1つのユーザコマンドは、アナログファクシミリ送信には使用されないIP対応ファクシミリクラスを定義するATコマンドを含む、請求項17に記載の方法。複数のファクシミリデバイスであって、各ファクシミリデバイスは、対応する通信ネットワークへの接続のために適合される、複数のファクシミリデバイスと、少なくとも1つのファクシミリ装置であって、前記装置と、前記装置と動作可能に通信する少なくとも1つのユーザアプリケーションとの間の通信を容易にするように動作可能なユーザインターフェースと、前記装置と、前記装置および前記ファクシミリデバイスのうちの少なくとも1つに結合された複数の通信ネットワークのうちの少なくとも1つとの間の通信を容易にするように動作可能なネットワークインターフェースと、前記ユーザインターフェースおよびネットワークインターフェースに接続されたコントローラであって、第1ファクシミリプロトコルを使用して前記通信ネットワークのうちの第1の1つと通信するために第1モードで動作可能であり、第2ファクシミリプロトコルを使用して前記通信ネットワークのうちの第2の1つと通信するために少なくとも第2モードで動作可能である、コントローラとを含む少なくとも1つのファクシミリ装置とを含む電子システム。従来、アナログファックスエンジンは、PSTN接続を介してイメージを送信し、受信するのにアナログファックス機によって使用されるが、T.38ベースのIPファックスエンジンは、IP対応ファックス機およびFoIPメディアゲートウェイmediagateway内で使用される。本発明の原理は、その例示的実施形態において、ファックス機ベンダが、PSTNプロトコルとIPネットワークプロトコルとの両方を使用してファックスデータたとえば、印刷物すなわち、テキスト、イメージ、または類似物を表すを送信/受信するように動作可能な単一のファックスエンジンを使用することを有利に可能にする。本発明の諸態様によれば、単純なATコマンドセットが、新しいファックスエンジンの動作を制御するために含まれる。本発明の一実施形態によれば、ファクシミリ装置は、その装置と、その装置と動作可能に通信する少なくとも1つのユーザアプリケーションとの間の通信を容易にするように動作可能なユーザインターフェースと、その装置と、その装置に結合された複数の通信ネットワークのうちの少なくとも1つとの間の通信を容易にするように動作可能なネットワークインターフェースとを含む。この装置は、ユーザインターフェースおよびネットワークインターフェースに接続されたコントローラをさらに含む。このコントローラは、第1プロトコルを使用して通信ネットワークのうちの第1の1つと通信するために第1モードで動作可能であり、第2プロトコルを使用して通信ネットワークのうちの第2の1つと通信するために少なくとも第2モードで動作可能である。本発明の上記および他の特徴、目的、および利益は、添付図面に関連して読まれるべき、本発明の例示的実施形態の次の詳細な説明から明白になる。次の図面は、限定なしに例としてのみ提示されるものであり、同様の符号は、複数の図面を通じて対応する要素を示す。図面の要素が、単純さおよび明瞭さのために図示されていることを了解されたい。商業的に実現可能な実施形態で有用または必要である可能性がある一般的だが明確に理解される要素が、図示の実施形態のより妨げられない図示を容易にするために図示されない場合がある。本発明の原理を、本明細書では、公衆交換電話網PSTNとインターネットプロトコルIPネットワークとの両方で使用されるように適合された汎用ファクシミリエンジンの例示的実施形態の文脈で説明する。しかし、本発明が、例示的に図示され、本明細書で説明される特定の装置および方法に限定されないことを了解されたい。そうではなく、本発明の諸態様は、複数のファクシミリプロトコルの特徴を有益に統合する技法を幅広く対象とする。この形で、本発明の諸態様は、複数のプロトコルおよび/またはデータフォーマットを使用するさまざまな応用例で有益に使用できる単一のファクシミリエンジンを提供する。本発明の例示的実施形態を、本明細書ではITU-TのT.30プロトコルおよびT.38プロトコルに関連して説明するが、本発明がこれらの特定のプロトコルと共に使用されることに限定されないことを了解されたい。そうではなく、本発明の原理を、標準と非標準との両方の本質的にすべてのファクシミリ通信プロトコルに拡張することができる。さらに、本明細書の教示を考慮すれば、本発明の範囲に含まれる多数の変更を図示の実施形態に対して行えることが、当業者に明白になるであろう。すなわち、本明細書で説明される特定の実施形態に関する限定は、全く意図されておらず、推論されてはならない。図1は、例示的な専用アナログファックスエンジン100を示すブロック図である。この図から明白であるように、アナログファックスエンジン100は、ATコマンドパーサ/インターフェース102クラス1、クラス2、またはクラス1とクラス2との両方、コマンドパーサに結合されたモデムコントローラ104、およびモデムコントローラに結合されたファックスデータポンプ106を含む専用アナログファックスモデムコアを含む。アナログファックスエンジン100は、好ましくは、ファックスデータポンプ106に動作可能に結合されたPSTNサンプルバッファ108をさらに含む。PSTNサンプルバッファ108は、アナログファックスエンジン100と伝統的なPSTN109との間のインターフェースを提供するように動作可能である。当業者に周知のように、特にモデム通信の文脈では、ATコマンドは、通常はデータ端末装置DTEからモデムまたは他のデータ通信装置DCEにモデムがコマンド状態である間に送られる文字のストリングを含むコマンドラインシーケンスである。コマンドラインは、好ましくは、プリフィックス、本体、および終端部分terminatorportionを有する。各コマンドラインA/コマンドを除くは、一般に、文字シーケンスATから始まり、キャリッジリターンで終わる。ATプリフィックスに先行する文字は、無視される。コマンドライン解釈は、ENTERキー文字の受取時に始まる。コマンドライン内の文字は、関連するパラメータ値を有するコマンドとして解釈される。基本的なコマンドは、単一のASCII文字、またはプリフィックス文字たとえば、またはが先行し10進パラメータが続く単一文字からなる。本発明が、ATコマンドまたはコマンドライン全般と共に使用されることに限定されないことを理解されたい。アナログファックスエンジン100を、たとえばITU-TT.31クラス1およびITU-TT.32クラス2標準規格たとえば、その開示全体がすべてにおいて参照によって本明細書に組み込まれている、ITU-TRecommendationT.31,TerminalsforTelematicServices,AsynchronousFacsimileDCEControl-ServiceClass1、1995年8月およびITU-TRecommendationT.32,TerminalsforTelematicServices,AsynchronousFacsimileDCEControl-ServiceClass2、1995年8月を参照されたいで指定されるATコマンドの明確に定義されたセットを用いるATコマンドインターフェースを介して1つまたは複数のユーザアプリケーション112または代替制御アプリケーションによって制御することができる。ユーザアプリケーション112は、好ましくは、アナログファックスエンジン100との通信に、ユーザアプリケーションの一部として実施できるT.30プロトコル110を使用するシステムがクラス1インターフェースをサポートする場合。逆に、T.30プロトコルを、ユーザアプリケーションとアナログファックスエンジン100との間に常駐するプロキシによってなど、ユーザアプリケーションの外部で実施することができる。送信されるべき印刷物たとえば、テキスト、写真、または類似物を表すファックスイメージデータは、ATインターフェースを介してアナログファックスエンジン100に送られ、このアナログファックスエンジン100で、PSTN109を介する送信のために、モデムコントローラ104によって正しくフォーマットされ、ファックスデータポンプ106によって変調される。前に述べたように、インターネットを介するデータ通信全般、具体的にはVoIPテクノロジの普及に伴って、ファックス送信が一般に音声通信と同一のファシリティを利用するので、たとえばFoIPを介する、インターネットを介するファックス伝送を実施することがますます人気のあるものになりつつある。2つの別々のプロトコルすなわち、T.30プロトコルおよびT.38プロトコルが、ファックス伝送をIPネットワークを介して効率的に送信することを可能にする。T.30プロトコルは、比較的滑らかで中断されないデータフローを提供するネットワークたとえば、PSTNを介して実施されるように設計された。しかし、残念ながら、ファックスデータポンプ106を使用するT.30ファックスプロトコルは、IPネットワークで一般に出会う他の特性の中でも、待ち時間、ジッタ、およびパケット消失を許容しない。さらに、しばしばVoIPネットワークによって実施される圧縮は、会話に関して良好に動作する人間の耳の限られた周波数応答およびある種のサウンドが話された単語から欠けている時の人間のギャップを埋める能力に基づくが、圧縮およびパケット化によって引き起こされるひずみは、T.30伝送が、最悪の場合に失敗し、または最良の場合に1つまたは複数の誤りのあるイメージラインを作ることを引きこすのに十分である可能性がある。T.38ファックスプロトコルは、パケットネットワークを介するリアルタイムでのファックスの送信および受信に関連する問題の少なくとも一部に対処する。T.38は、オリジナルのグループ3G3ファックス標準規格が伝統的なPSTNについて行ったものによく似て、リアルタイムでのIPネットワークにまたがるファックスデータの送信をサポートする。この形で、T.38は、伝統的なファックス環境を保存し、なおかつ、IPネットワーク内で一般的なジッタ、待ち時間、およびパケット消失について補償するために、送信されるファックス信号を動的に調整することによって、ファックスを成功して送信し、受信することを可能にする。T.38がなければ、タイミングに敏感なファックスデバイスは、IPネットワークを介するファックスの信頼できる送信および受信に困難を覚えるはずである。図2は、IPネットワークを介するファックス通信を実現するために適合された例示的な専用IP対応ファックスエンジン200を示すブロック図である。IP対応ファックスエンジン200は、IPファックス機または他のファックスデバイス内で実施され得るが、T.30ファックスプロトコルスタック202システムがクラス2インターフェースをサポートする場合およびT.30ファックスプロトコルスタックに結合されたT.38プロトコルスタック204を含む。別々の機能ユニットとして図示されているが、T.30ファックスプロトコルスタック202およびT.38プロトコルスタックを、単独でまたは他の機能ブロックたとえば、回路網、ソフトウェアモジュールなどと共にのいずれかで、同一ブロック内に一緒に統合できることを了解されたい。明示的に図示されてはいないが、IP対応ファックスエンジン200は、さらに、モデムコントローラおよびファックスデータポンプを含むことができる。IPネットワーク内では、IPベースのファックスセッションは、使用されるアプリケーションに応じて、モデムコントローラおよびデータポンプを必要とする場合とそうではない場合がある。IP対応ファックスエンジン200は、さらに、IPファックスパケットバッファ206または代替バッファを含む。バッファ206は、IP対応ファックスエンジン200とIPネットワークIPN208との間のインターフェースを提供するように動作可能である。バッファ206は、好ましくは、T.38プロトコルスタック204からデータパケットを受け取り、これらをIPネットワーク208を介する送信のために再フォーマットするように動作可能である。同様に、IPネットワーク208からバッファ206によって受信されたパケットは、好ましくは、T.38プロトコルスタック204による使用のためにそのバッファによって再フォーマットされる。IP対応ファックスエンジン200を、IPシグナリングプロトコルユニット212または代替のインターフェース/制御ブロックを介して1つまたは複数のユーザアプリケーション210によって制御することができる。IPシグナリングプロトコルユニット212は、好ましくは、IP対応ファックスエンジン200とインターフェースし、たとえばセッションイニシエーションプロトコルSIP、ITU-TH.323たとえば、その開示全体がすべてにおいて参照によって本明細書に組み込まれている、ITU-TRecommendationH.323,SeriesH:AudiovisualandMultimediaSystems,Infrastructureofaudiovisualservices-Systemsandterminalequipmentforaudiovisualservices,Packet-basedmultimediacommunicationssystems、2009年12月を参照されたいまたは代替の制御および/もしくはシグナリングプロトコルなどの既知の通信プロトコルを使用して、ファックス呼をセットアップする。前に述べたように、本発明が、任意の特定の通信プロトコル1つまたは複数と共に使用されることに限定されないことを理解されたい。T.30ファックスプロトコルスタック202は、ファックスイメージデータおよび/または制御信号をユーザアプリケーション210から受け取り、あるいはファックスイメージデータおよび/または制御信号をユーザアプリケーション210に送るように動作可能である。T.30ファックスプロトコルスタック202は、好ましくは、T.30標準規格に従って、他の機能の中でも、送信端末および受信端末がファックス呼をセットアップするのに使用する手順を指定し、イメージサイズ、エンコーディング、転送速度、ページの間の境界設定、および/または呼の終了を決定するようにさらに動作可能である。T.38プロトコルスタック204は、端末が別のT.30端末と直接に通信していると考えるように端末をだますように動作可能である。T.38プロトコルスタック204は、バッファ206と関連して、好ましくは、いわゆるスプーフィング技法を用いてネットワーク遅延を訂正し、ファックス対応バッファ管理技法たとえば、蓄積転送処理を用いて欠けているパケットまたは遅れたパケットを訂正もする。図3は、FoIPメディアゲートウェイ応用例で使用される例示的な専用IP対応ファックスエンジン300を示すブロック図である。用語ゲートウェイは、本明細書で使用される時に、異なる通信プロトコルを使用する別のネットワークとインターフェースするために通信ネットワーク内で動作可能なデバイス、ノード、または他の機能ユニットを幅広く指すことが意図されている。ゲートウェイは、一般に、異なるネットワークプロトコルテクノロジを有するネットワークを相互接続するためのプロトコル変換/マッピングを実行する。本発明の例示的なケースでは、IP対応ファックスエンジン300は、たとえばT.38プロトコルを使用する1つまたは複数のユーザアプリケーション210を介して、たとえばT.30プロトコルを使用する伝統的なPSTN109とIPネットワーク208との間でインターフェースするように動作可能である。ユーザアプリケーション210は、前に説明したようにたとえばSIPまたはH.323などのIPシグナリングプロトコル212を使用することができる。ファックスエンジン300は、図2に示されたファックスエンジン200に似て、T.38プロトコルスタック304およびT.38プロトコルスタックに動作可能に結合されたIPファックスパケットバッファ302を含む。IPファックスパケットバッファ302は、好ましくは、T.38プロトコルスタック304からデータパケットを受け取り、これらをユーザアプリケーション210を介するIPネットワーク208への送信のために処理たとえば、再フォーマットするように動作可能である。同様に、IPファックスパケットバッファ302によってIPネットワーク208からユーザアプリケーション210を介して受信されたパケットは、好ましくは、T.38プロトコルスタック304による使用のために、そのバッファによって処理たとえば、再フォーマットされる。この形で、IPファックスパケットバッファ302は、IP対応ファックスエンジン300とIPネットワーク208との間のインターフェースを提供する。さらに、ファックスエンジン300は、図1に示されたアナログファックスエンジン100に似て、T.38プロトコルスタック304に結合されたモデムコントローラ306、モデムコントローラに結合されたファックスデータポンプ308、およびファックスデータポンプに動作可能に結合されたPSTNサンプルバッファ310を含む。PSTNサンプルバッファ310は、好ましくは、ファックスデータポンプ308からデータサンプルを受け取り、これらをPSTN109への送信のために処理たとえば、再フォーマットするように動作可能である。同様に、PSTNサンプルバッファ310によってPSTN109から受信されたサンプルは、好ましくは、ファックスデータポンプ308による使用のためにそのバッファによって処理たとえば、再フォーマットされる。この形で、PSTNサンプルバッファ310は、IP対応ファックスエンジン300とPSTN109との間のインターフェースを提供するように動作可能である。標準PSTNを介するファックス伝送をもたらす専用アナログファックスエンジンは、IPネットワークを介するファックス伝送をもたらす専用IP対応ファックスエンジンと同様に既知であるが、本発明の実施形態は、単一のファックスエンジンに統合された複数のファックスプロトコルを有益にサポートするたとえば、アナログファックスエンジンおよびIP対応ファックスエンジンの諸機能を実施する。例としてのみ、図4は、本発明の実施形態による例示的な汎用ファックスエンジン400を示すブロック図である。汎用ファックスエンジン400を、クラス1インターフェースについて下でさらに詳細に説明するが、本明細書の教示を与えられた当業者に明白になるように、この汎用ファックスエンジンアーキテクチャをクラス2ファックスインターフェースに同様に拡張できることを了解されたい。図4を参照すると、クラス1ATコマンドインターフェースたとえば、ITU-TT.31について、汎用ファックスエンジン400は、ATコマンドパーサ402または代替インターフェースを含む。コマンドパーサ402は、好ましくは、アナログファックスエンジンたとえば、図1に示された例示的なアナログファックスエンジン100で使用されるものと同一のATコマンドインターフェースおよびATコマンドセットを利用する。この形で、アナログファックスとしての動作とIPファックスとしての動作との間の差が、本質的にユーザに透過的になる。ユーザアプリケーション404は、T.30プロトコル406たとえば、ソフトウェアアプリケーションまたはハードウェア回路網を実施することができるが、好ましくは、汎用ファックスエンジン400と動作可能に通信する。T.30プロトコル406は、好ましくは、ファックスフレーム、イメージデータなどをユーザアプリケーション404の制御の下で制御するように動作可能である。この配置の利益は、ユーザが、アナログファックスとIPベースのたとえば、T.38ファックスとの両方を制御するために同一の標準ATコマンドインターフェースを介してユーザ自身の既存T.30スタックを制御できることである。より具体的に言うと、ATコマンドの明確に定義されたセット、たとえばITU-TT.31クラス1標準規格およびITU-TT.32クラス2標準規格を有するATコマンドインターフェースを含む図1に示されたアナログファックスエンジン100と共に使用されるものと同一のユーザアプリケーションまたは代替の制御アプリケーションを使用して、汎用ファックスエンジン400とインターフェースすることができる。これは、エンドユーザが、彼らのファックスアプリケーションソフトウェアに対する大きい変更を伴わずに、PSTNファックスセッションとIPネットワークファックスセッションとの両方をサポートすることを可能にする。伝統的なPSTNとの通信について、汎用ファックスエンジン400は、モデムクラス1データ通信装置DCEインターフェース410、DCEインターフェースに結合されたモデムコントローラ412、およびモデムコントローラに結合されたモデムデータポンプ414を含むアナログスタック408を含む。モデムデータポンプ414は、PSTNサンプルバッファ416に動作可能に結合される。PSTNサンプルバッファ416は、アナログPSTNへのインターフェースとして働くが、PSTNへおよびこれから、それぞれ、パルス符号変調PCMサンプルを送信し、受信するように動作可能である。IPネットワークとの通信について、汎用ファックスエンジン400は、T.38プロトコルクラス1データ端末装置DTEインターフェース420、T.38プロトコルクラス1DTEインターフェースに結合されたT.38プロトコルエンジン422、ならびにT.38プロトコルエンジンおよびT.38クラス1DTEインターフェースと通信するIPシグナリングプロトコルISPモジュール424を含むIP対応スタック418を含む。T.38プロトコルエンジン422は、IPファックスパケットバッファ426に動作可能に結合される。IPファックスパケットバッファ426は、IPネットワークへのインターフェースとして働くが、IPネットワークへおよびこれから、それぞれ、T.38IPファックスパケットを送信し、受信するように動作可能である。このインターフェースを、ソフトウェアベースとすることができる、すなわち、物理IPインターフェースたとえば、IPスタックは、T.38スタックと同一のチップたとえば、T.38クラス1DTEインターフェース420、T.38プロトコルエンジン422、およびISPモジュール424を含むに常駐する必要がない。汎用ファックスエンジン400は、ユーザアプリケーション404または実際のIP接続が存在する他のハードウェアのいずれかへ/から、それぞれ、IPファックスパケットを送信/受信することができる。図4に示された例示的実施形態では、汎用ファックスエンジン400は、それぞれアナログPSTNおよびIPネットワークを介するファックス送信のために、2つの異なるプロトコルすなわち伝統的なグループ3モデムデータポンプ414を使用するおよびT.38プロトコルを使用してファックス通信を提供するように動作可能である。しかし、本発明が、汎用ファックスエンジン400によってサポートされる異なるプロトコルのいかなる特定の個数にも限定されないことを了解されたい。たとえば、他の実施形態によれば、汎用ファックスエンジンは、アナログネットワークおよび/またはIPネットワークにまたがって他のフォーマットのデータトラフィックを中継するために1つまたは複数の追加のプロトコルスタックを含むことができるたとえば、その開示全体がすべてにおいて参照によって本明細書に組み込まれている、ITU-TRecommendationV.150.1,SeriesV:DataCommunicationOvertheTelephoneNetwork,InterworkingwithOtherNetworks,Modem-over-IPnetworks:ProceduresfortheEnd-to-endConnectionofV-seriesDCEs、2003年1月で指定されるIPネットワークにまたがってモデムトラフィックを中継するITU-TV.150.1プロトコルすなわちMoIPモデムオーバーIPmodemoverIP。汎用ファックスエンジン400は、さらに、クラス1ATコマンドパーサ402とアナログスタック408とIP対応スタック418との間に結合されたクラス1ファックスエンジンコントローラ428を含む。ファックスエンジンコントローラ428は、汎用ファックスエンジン400の動作のモードおよび/または状態を制御するように動作可能である。具体的に言うと、ファックスエンジンコントローラ428は、ATコマンドパーサ402、モデムクラス1DCEインターフェース410、およびT.38クラス1DTEインターフェース420に結合される。汎用ファックスエンジン400の少なくとも3つの動作のモードすなわち、アナログファックスモードとすることができる第1モード、IP対応ファックスモードとすることができる第2モード、およびFoIPゲートウェイ/ATAモードとすることができる第3モードがある。汎用ファックスエンジン400の3つの例示的な動作のモードのそれぞれを、図5~7に関連して下でさらに詳細に説明する。図5は、本発明の実施形態による、アナログファックスモデム/アナログファックス機実施態様で使用される図4に示された例示的な汎用ファックスエンジン400を示すブロック図である。この例示的実施形態では、汎用ファックスエンジン400は、伝統的なアナログファックスモデム/アナログファックス機応用例で動作可能であり、この応用例では、ユーザアプリケーション404たとえば、T.30プロトコル406を使用してから/への、ATコマンドパーサ402を介し、ファックスエンジンコントローラ428を介し、アナログスタック408を介する、PSTNへ/からのデータフローパス502が存在する。具体的に言うと、この動作のモードでは、モデムデータポンプ414は、PSTNサンプルバッファ416に接続され、PSTNへ/から、それぞれ、信号を変調/復調するように動作可能である。モデムコントローラ412からの復号されたデータたとえば、T.30制御フレームおよびイメージデータは、クラス1インターフェースを介してユーザアプリケーション404に送られる。本明細書の教示を与えられた当業者に明白になるように、この汎用ファックスエンジンの方法論およびアーキテクチャを、クラス2ファックスインターフェースに同様に拡張することができる。図6は、本発明の実施形態による、IP対応ファックスモデム/IP対応ファックス機実施態様で使用される図4に示された例示的な汎用ファックスエンジン400を示すブロック図である。この例示的実施形態では、汎用ファックスエンジン400は、IPファックスたとえば、FoIPモードで動作可能であり、このモードでは、ユーザアプリケーション404から/への、ATコマンドパーサ402を介し、ファックスエンジンコントローラ428を介し、IP対応スタック418を介する、IPネットワークへ/からのデータフローパス602が存在する。具体的に言うと、この動作のモードでは、汎用ファックスエンジンは、IPネットワークへの確立された接続を有し、IP対応たとえば、T.38スタック418は、動作中すなわち、アクティブである。受信方向では、IPネットワークからのIPファックスデータパケットは、IP対応スタック418を介して通常のT.30メッセージに復号され、クラス1インターフェース402を介してユーザアプリケーション404に送られる。送信方向では、ユーザアプリケーション404からのT.30データが、IP対応スタック418を介して正しいT.38IPファックスパケットに符号化され、IPネットワークに転送される。このモードは、たとえばIP対応ファックスモデム/IP対応ファックス機などの終端T.38デバイスによって使用される。IPネットワークシグナリングプロトコルたとえば、SIP、H.323などを使用して、呼をセットアップすることができるが、そのようなプロトコルが、ファックスエンジン400内に常駐する必要はない。そうではなく、ユーザは、他の場所のシグナリングプロトコルを呼び出し、ネゴシエートされた情報をファックスエンジンに単純に渡すことができる。ここで図7を参照すると、ブロック図は、本発明の実施形態による、アナログPSTNとIPネットワークとの間でインターフェースするFoIPゲートウェイ/ATA実施態様で使用される図4に示された例示的な汎用ファックスエンジン400を示す。この例示的実施形態では、PSTN接続とIP接続との両方が利用される。具体的に言うと、この動作のモードでは、汎用ファックスエンジン400は、PSTNから/への、アナログスタック408を介し、ファックスエンジンコントローラ428を介し、IP対応スタック418を介する、IPネットワークへ/からのデータフローパス702を含む。より具体的に言うと、この動作のモードでは、ファックスエンジンは、メディアゲートウェイまたはアナログ電話アダプタとして機能する。第1方向たとえば、PSTNからIPネットワークへの転送では、PSTNサンプルバッファ416を介してPSTNから受信されたアナログ信号は、アナログスタック408によって復調され、T.30データまたは代替通信プロトコルのデータに復号される。この復号されたデータは、その後、ファックスエンジンコントローラ428を介してIP対応スタック418に送られ、このIP対応スタック418で、T.38IPファックスパケットまたは代替プロトコルに符号化され、IPネットワークに送出される。第2方向たとえば、IPネットワークからPSTNへの転送では、IPファックスパケットバッファ426を介してIPネットワークから受信されたIPファックスパケットが、IP対応スタック418によってT.30メッセージT.30制御フレームおよびイメージデータに復号される。このT.30メッセージは、その後、ファックスエンジンコントローラ428を介してアナログスタック408に送られ、このアナログスタック408で、PSTNを介する送信のためにコーディングされ、変調される。IPネットワークシグナリングプロトコルたとえば、SIP、H.323などを使用して、FoIP呼を確立することができるが、そのようなプロトコルが、ファックスエンジン自体の中に常駐する必要はない。ユーザは、他の場所のシグナリングプロトコルを呼び出し、ネゴシエートされた情報をファックスエンジン400に単純に渡すことができる。汎用ファックスエンジン400の動作のモードまたは少なくともそのサブセットは、好ましくは、ATコマンドインターフェースまたは代替の制御/インターフェース方法論によって制御される。例としてのみ、一般性を失わずに、本発明の実施形態は、新しいモードクラスであるIPファックスクラスを定義するATコマンドセット、ATfclass=nclassを提供する。このクラスは、現在は伝統的なアナログモデムコマンドセットの他のどのモードによっても使用されていない番号たとえば、9を割り当てられる。たとえば、汎用ファックスエンジンの動作モードを、次のように定義することができる。ATfclass=9.1、クラス1T.31インターフェースを有するIP対応ファックスモード、ATfclass=9.2、クラス2T.32インターフェースを有するIP対応ファックスモード、ATfclass=9.3、FoIPゲートウェイ/ATAモード、ATfclass=9.4、IP対応データモデムモード、ATfclass=9.5、MoIPゲートウェイ/ATAモード。既存のATfclass=コマンドは、好ましくは、まだ伝統的なアナログファックス/データモデムと同様に機能する。たとえば、次のコマンドが、汎用ファックスエンジンと共に動作可能である。ATfclass=0、伝統的なアナログデータモデムモード、ATfclass=1.0、クラス1インターフェースを有する伝統的なアナログファックスモデムモード、ATfclass=2.0、クラス2インターフェースを有する伝統的なアナログファックスモデムモード。上の例示的なコマンド定義は、例示としてのみ提示されるものである。しかし、本発明が、本明細書で示され、説明される特定のコマンド定義に限定されないことを理解されたい。そうではなく、本明細書の教示を与えられた当業者に明白になるように、他のおよび/または追加のコマンド定義を利用することができる。本発明の実施形態の方法論は、電子デバイスまたはたとえばネットワークルータ/スイッチデバイスなどの代替システムでの実施に特によく適する可能性がある。例示のみとして、図8は、本発明の態様により形成された例示的なデータ処理システム800を示すブロック図である。システム800は、たとえば、PCと通信するように適合されたファックスデバイスたとえば、ファックスモデム、ファックス機などならびに/あるいはたとえばG3および/またはT.38通信プロトコルを使用する別のファックスデバイスを表すことができる。システム800は、プロセッサ802、プロセッサに結合されたメモリ804、ならびにプロセッサとインターフェースするように動作可能な入出力I/O回路網808を含むことができる。プロセッサ802、メモリ804、およびI/O回路網808を、データ処理システム800の一部として、たとえばバス806または代替接続手段を介して相互接続することができる。たとえばバスを介する適切な相互接続を、コンピュータまたはIPネットワークとインターフェースするために設けることができるネットワークインターフェースカードNICなどのネットワークインターフェース810に対して、およびメディアとインターフェースするために設けることができるディスケットドライブまたはCD-ROMドライブなどのメディアインターフェースに対しても設けることができる。プロセッサ802を、本明細書で上で説明した本発明の方法論の少なくとも一部を実行するように構成することができる。用語プロセッサが、本明細書で使用される時に、たとえば中央処理装置CPUおよび/または他の処理回路網たとえば、ネットワークプロセッサ、DSP、マイクロプロセッサなどを含むものなど、すべての処理デバイスを含むことが意図されていることを了解されたい。さらに、用語プロセッサが、複数の処理デバイスを指す場合があることと、処理デバイスに関連するさまざまな要素を他の処理デバイスによって共用できることとを理解されたい。用語メモリは、本明細書で使用される時に、たとえばランダムアクセスメモリRAM、読取り専用メモリROM、固定記憶媒体たとえば、ハードディスク、取り外し可能記憶媒体たとえば、ディスケット、フラッシュメモリ、その他など、プロセッサまたはCPUに関連するメモりおよび他のコンピュータ可読媒体を含むことが意図されている。さらに、用語I/O回路網は、本明細書で使用される時に、たとえば、プロセッサにデータを入力するための1つまたは複数の入力デバイスたとえば、キーボード、マウスなど、プロセッサに関連する結果を提示するための1つまたは複数の出力デバイスたとえば、プリンタ、モニタなど、および/または入力デバイス1つまたは複数もしくは出力デバイス1つまたは複数をプロセッサに動作可能に結合するためのインターフェース回路網を含むことが意図されている。したがって、本明細書で説明される本発明の方法論を実行する命令またはコードを含むアプリケーションプログラムまたはそのソフトウェアコンポーネントを、関連する記憶媒体たとえば、ROM、固定ストレージ、または取り外し可能ストレージのうちの1つまたは複数に格納することができ、利用の準備ができた時に、プロセッサ802によって全体的にまたは部分的にたとえばRAMにロードし、実行することができる。どの場合でも、図4に示されたコンポーネントの少なくとも一部を、さまざまな形のハードウェア、ソフトウェア、またはその組合せ、たとえば、関連するメモリを有する1つまたは複数のDSP、特定用途向け集積回路1つまたは複数、機能回路網、関連するメモリを有する1つまたは複数の動作可能にプログラムされた汎用ディジタルコンピュータなどで実施することができることを理解されたい。本明細書で提供される本発明の教示を考慮すれば、当業者は、本発明のコンポーネントの他の実施態様を企図することができる。本発明の教示の少なくとも一部を、1つまたは複数の集積回路内で実施することができる。集積回路を形成する際に、ダイは、通常、半導体ウェハの表面上の繰り返されるパターンで製造される。ダイのそれぞれは、本明細書で説明されたメモリを含み、他の構造または回路を含むことができる。個々のダイは、ウェハから切り離されまたはダイシングされ、その後、集積回路としてパッケージングされる。当業者は、ウェハをダイシングし、ダイをパッケージングして集積回路を作る方法を知っているはずである。そのように製造された集積回路は、本発明の一部と考えられる。本発明の実施形態によるICを、ファックス通信を提供するように適合された任意の応用例および/または電子システムたとえば、ファックスモデム/ファックス機で使用することができる。本発明の実施形態を実施するための適切なシステムは、パーソナルコンピュータ、ポータブル通信デバイスたとえば、セル電話機、ファックスデバイスなどを含むが、これらに限定されない。そのような集積回路を組み込まれたシステムは、本発明の一部と考えられる。本明細書で提供される本発明の教示を考慮すれば、当業者は、本発明の技法の他の実施態様および応用例を企図することができる。本発明の例示的実施形態を、添付図面を参照して本明細書で説明したが、本発明がこれらの正確な実施形態に限定されないことと、添付の特許請求の範囲の範囲から逸脱せずに当業者がさまざまな他の変更および修正をその中で行えることとを理解されたい。"