本開示では、「通信デバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス(wireless communications device)」、「PTT通信デバイス」、「ハンドヘルドデバイス」、「ワイヤレス通信デバイス(wireless communication device)」、および「ハンドセット」という用語は、互換的に使用される。「呼」および「通信」という用語も互換的に使用される。「グループ通信」という用語は、プッシュツートーク半二重通信などの1対多通信のために使用される半二重または仮想半二重通信チャネルを包含するものであるが、2つのグループメンバーのみが存在し、通信している、1対1通信をも包含することができる。「例示的」という用語は、開示する要素または実施形態が一例にすぎないことを意味し、使用のいかなる選好をも示さない。さらに、複数の図面を通して同様の数字は同様の要素を指し、本明細書において別段に規定されていない限り、冠詞「a」および「the」は複数の参照を含む。本開示の1つまたは複数の様々な態様は、限定はしないが、本開示の本明細書で参照する態様を実施するための回路および/またはプログラミングを含み得、その回路および/またはプログラミングは、システム設計者の設計選択に応じて、本明細書で参照する態様を実施するように構成されたハードウェア、ソフトウェア、および/またはファームウェアのほぼすべての組合せであり得ることを、当業者は諒解できよう。
実施形態は1つまたは複数のコンピュータ上で実行し得る。図1および以下の説明は、本開示が実装され得る好適なコンピューティング環境の短い概略的な説明を与えるものである。本明細書で開示するコンピュータシステムが、図1のコンピュータ100に関して説明する構成要素の一部または全部を有することができることを、当業者は諒解できよう。
本開示全体にわたって使用される回路という用語は、ハードウェア割込みコントローラ、ハードドライブ、ネットワークアダプタ、グラフィックスプロセッサ、ハードウェアベースのビデオ/オーディオコーデックなどのハードウェア構成要素と、そのようなハードウェアを動作させるために使用されるファームウェア/ソフトウェアとを含むことができる。回路という用語はまた、ファームウェアによってまたはある方法で設定されたスイッチによって機能を実行するように構成されたマイクロプロセッサ、あるいは1つまたは複数の論理プロセッサ、たとえば、マルチコア汎用処理ユニットの1つまたは複数のコアを含むことができる。論理プロセッサは、この例では、メモリ、たとえば、RAM、ROM、ファームウェア、および/または仮想メモリからロードされた機能を実行するように動作可能な論理を実施するソフトウェア命令によって構成され得る。回路がハードウェアとソフトウェアとの組合せを含む例示的な実施形態では、実装者は、論理プロセッサによって実行され得る機械可読コードに後でコンパイルされる、論理を実施するソースコードを書き得る。現況技術は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組合せの間の差がほとんどない程度まで発展していることを当業者は諒解することができるので、機能を実施するためのハードウェア対ソフトウェアの選択は設計選択にすぎない。したがって、ソフトウェアプロセスは等価なハードウェア構造に変換され得ること、およびハードウェア構造はそれ自体が等価なソフトウェアプロセスに変換され得ることを当業者は諒解することができるので、ハードウェア実装形態対ソフトウェア実装形態の選択はささいなことであり、実装者に任せられている。
次に図1を参照すると、例示的なコンピューティングシステム100が示されている。コンピュータシステム100は論理プロセッサ102、たとえば、実行コアを含むことができる。1つの論理プロセッサ102が示されているが、他の実施形態では、コンピュータシステム100は、複数の論理プロセッサ、たとえば、プロセッサ基板当たりの複数の実行コア、および/または複数の実行コアをそれぞれ有することができる複数のプロセッサ基板を有し得る。図によって示されるように、様々なコンピュータ可読記憶媒体110は、様々なシステム構成要素を論理プロセッサ102に結合するシステムバスによって相互接続され得る。システムバスは、様々なバスアーキテクチャのいずれかを使用したメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む、いくつかのタイプのバス構造のいずれかであり得る。例示的な実施形態では、コンピュータ可読記憶媒体110は、たとえば、ランダムアクセスメモリ(RAM)104と、記憶デバイス106、たとえば、電気機械ハードドライブ、ソリッドステートハードドライブなどと、ファームウェア108、たとえば、フラッシュRAMまたはROMと、たとえば、CD-ROM、フレキシブルディスク、DVD、フラッシュドライブ、外部記憶デバイスなどのリムーバブル記憶デバイス118とを含むことができる。磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジなど、他のタイプのコンピュータ可読記憶媒体がデータを記憶するために使用され得ることを、当業者は諒解されたい。
コンピュータ可読記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータの記憶域をコンピュータ100に与える。スタートアップ中などにコンピュータシステム100内の要素間で情報を転送するのに役立つ基本ルーチンを含んでいる基本入出力システム(BIOS)120はファームウェア108に記憶され得る。いくつかのアプリケーション124およびオペレーティングシステム122は、ファームウェア108、記憶デバイス106、RAM104、および/またはリムーバブル記憶デバイス118に記憶され、論理プロセッサ102によって実行され得る。
コマンドおよび情報は、限定はしないが、キーボードとポインティングデバイスとを含むことができる入力デバイス116を通してコンピュータ100によって受信され得る。他の入力デバイスには、マイクロフォン、ジョイスティック、ゲームパッド、スキャナなどがある。これらおよび他の入力デバイスは、しばしば、システムバスに結合されたシリアルポートインターフェースを通して論理プロセッサ102に接続されるが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス(USB)などの他のインターフェースによって接続され得る。また、ディスプレイまたは他のタイプのディスプレイデバイスが、グラフィックスプロセッサ112の一部であるかまたはそれに接続され得るビデオアダプタなどのインターフェースを介してシステムバスに接続され得る。ディスプレイに加えて、コンピュータは、一般に、スピーカーやプリンタなどの他の周辺出力デバイス(図示せず)を含む。図1の例示的なシステムはまた、ホストアダプタ、小型コンピュータシステムインターフェース(SCSI)バス、およびSCSIバスに接続された外部記憶デバイスを含むことができる。
コンピュータシステム100は、リモートコンピュータなど、1つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境において動作し得る。リモートコンピュータは、別のコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他の一般的なネットワークノードであり得、一般に、コンピュータシステム100に関連して上記で説明した要素の多くまたはすべてを含むことができる。
LANまたはWANネットワーキング環境において使用されるとき、コンピュータシステム100はネットワークインターフェースカード114(NIC)を通してLANまたはWANに接続され得る。内部または外部にあり得るNIC114はシステムバスに接続され得る。ネットワーク化された環境では、コンピュータシステム100に関連して示したプログラムモジュールまたはそれらの部分は、リモートメモリ記憶デバイスに記憶され得る。本明細書で説明するネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段が使用され得ることが諒解されよう。その上、本開示の多数の実施形態はコンピュータ化システムに特に好適であると想定されるが、本明細書中のいかなることも、本開示をそのような実施形態に限定するものではない。
次に図2を参照すると、ターゲットデバイス、たとえば、IPアドレスに関連するエンドポイントへの直接通信を開くPTTボタン202をもつワイヤレス通信デバイス200とすることができる例示的なワイヤレス電気通信デバイスが示されている。ワイヤレス通信デバイス200はまた、グラフィックスディスプレイ204を有するものとして示されている。ワイヤレス通信デバイス200は、ボイスおよびデータパケットを処理し、ソフトウェアアプリケーションを実行し、ワイヤレスネットワーク上で情報を送信することができる、コンピュータプラットフォーム206を含むことができる。コンピュータプラットフォーム206は、構成要素の中でも、特定用途向け集積回路(「ASIC」)などのプロセッサ208、またはARMアーキテクチャを実装するものなどのRISCプロセッサを含む。プロセッサ208は、ワイヤレス通信デバイス200の製造時に取り付けられ、通常アップグレード可能ではない。プロセッサ208または他のプロセッサはアプリケーションプログラミングインターフェース(「API」)レイヤ210を実行し、APIレイヤ210は常駐アプリケーション環境を含み、プロセッサ208にロードされるオペレーティングシステムを含むことができる。常駐アプリケーション環境は、メモリ212、たとえば、ワイヤレス通信デバイス200のコンピュータ可読記憶媒体中の任意の常駐プログラムとインターフェースする。常駐アプリケーション環境の一例は、QUALCOMM(登録商標)によって開発されたワイヤレス通信デバイスプラットフォーム用の「Binary Runtime Environment for Wireless」(BREW)ソフトウェアである。
本明細書に示すように、ワイヤレス通信デバイス200は、グラフィックスディスプレイ204をもつワイヤレス通信電話とすることができるが、携帯情報端末(PDA)、グラフィックスディスプレイ204をもつページャ、さらにはワイヤレス通信ポータルを有し、場合によってはネットワークまたはインターネットへのワイヤード接続を有し得る別個のコンピュータプラットフォーム206など、当技術分野で知られているコンピュータプラットフォーム206をもつ任意のワイヤレスデバイスとすることもできる。さらに、メモリ212は、読取り専用メモリまたはランダムアクセスメモリ(RAMおよびROM)、EPROM、EEPROM、フラッシュカード、またはコンピュータプラットフォームに共通の任意のメモリから構成され得る。コンピュータプラットフォーム206は、メモリ212中でアクティブに使用されないソフトウェアアプリケーションの記憶用のローカルデータベース214を含むこともできる。ローカルデータベース214は、一般に1つまたは複数のフラッシュメモリセルから構成されるが、磁気媒体、EPROM、EEPROM、光学媒体、テープ、またはソフトもしくはハードディスクなど、当技術分野で知られている任意の2次または3次記憶デバイスとすることができる。グラフィックスディスプレイ204は、本明細書でより十分に説明するように、プレビューを生成するために、進行中のグループ呼出しに関する情報だけでなく、データパッケージに関する情報も提示することができる。
コンピュータプラットフォーム206はまた、直接通信チャネルを開くことができる直接通信インターフェース216を含むことができる。直接通信インターフェース216は、ワイヤレス通信デバイス200間で伝送されるボイスおよびデータを通常搬送するワイヤレス通信デバイス200のための標準通信インターフェースの一部とすることもできる。直接通信インターフェース216は、一般に、当技術分野で知られているハードウェアから構成される。
図2の説明を続けると、限定はしないが、PTT機能およびデータパッケージ機能を含むことができる、グループアプリケーションクライアントのソフトウェアレイヤの一実施形態の図がさらに示されている。本明細書に示す実施形態はPTTセッションにおいて実装されるが、本システムは、グループメンバーの間でボイスおよび/またはデータを実質的に同時に送信するために任意のグループ通信セッションセットアップにおいて利用され得る。一実施形態では、ワイヤレス通信デバイス環境におけるコンピュータプラットフォーム206は、QUALCOMM(登録商標)によって開発された、ワイヤレス通信局モデム(MSM)218と、改良型ワイヤレス通信加入者ソフトウェア(AMSS)220との上に展開された一連のソフトウェア「レイヤ」を含むことができる。この例では、基礎をなすMSMチップセットは、CDMA2000 1XとCDMA2000 1xEV-DOとを含むCDMA通信技術のスイート全体のためのソフトウェアプロトコルスタックを実装することができる。この例では、AMSS220は、一実施形態では、同じくQUALCOMM(登録商標)によって開発されたBREW(登録商標)であるワイヤレス通信オペレーティングシステムレイヤ222をサポートするように構成され得る。ワイヤレス通信オペレーティングシステムレイヤ222は、AMSS220とコンピュータプラットフォーム上のOEMソフトウェアとへの直接接触をなくす隔離レイヤを与えながら、チップまたはデバイス固有の動作のためのアプリケーションプログラミングインターフェースを与えることができる。ワイヤレス通信オペレーティングシステムレイヤ222は、デバイス固有のソフトウェアの新しいリリースが公開されるたびにアプリケーションを書き直す必要なしに、ワイヤレス通信デバイスの機能を使用するアプリケーション開発を可能にすることができる。
この例では、ワイヤレス通信オペレーティングシステム222は、ここではPTT認識UI224で示されている外部インターフェースを通してPTTサービスへのアクセスを提供するように構成されたPTTクライアント226を含むことができる。PTTクライアント226は、メディアクライアント228など、ワイヤレス通信オペレーティングシステム222のアプリケーションを使用可能にするために必要とされるすべての機能を含むことができる。一実施形態では、PTTクライアント226は、PTTサービスへのアクセスを維持し、通信要求に応答し、PTTサービスについてのすべてのPTT認識ワイヤレス通信オペレーティングシステムのアプリケーション要求を処理し、すべての発信PTT要求を処理し、発信PTTトークスパートのボコーダパケットを収集およびパッケージングし、終了したPTTトークスパートのボコーダデータのパケットをパースすることができる。
メディアクライアント228は、従来の半二重ボイス通信(VoIP-PTTメディア)以外のメディアタイプへのアクセスのためにPTTサービスを拡張するワイヤレス通信オペレーティングシステムベースのアプリケーションとすることができる。メディアクライアント228は、ワイヤレス通信オペレーティングシステムベースのアプリケーションとして完全に展開され得るか、またはAMSS220インターフェースと組み合わせて使用され得るアプリケーションである、メディア認識APIなどの外部インターフェースを通して、メディアサービスへのアクセスを与えることができる。メディアクライアント228は、ユーザからの要求を処理し、グループ向けメディア要求の結果をユーザに通知することができる。メディアクライアント228は、図3のおよび以下でより詳細に説明するメディアサーバ316からダウンロードすべきデータパッケージがあることを示す着信通知を処理するようにさらに構成され得る。たとえば、メディアクライアント228は、一実施形態では、即時にデータパッケージをダウンロードするように構成され得るか、またはメディアクライアント228は、他の実施形態では、所定の時間期間に、たとえば、毎日午後10時00分にデータパッケージをダウンロードするように構成され得るか、または、ファイルをダウンロードすべきかどうか、および/またはいつファイルをダウンロードすべきかを判断するためにPTT UI224を介してユーザにプロンプトを出すように構成され得る。また、他のプッシュツートークアプリケーション230、またはグループ通信チャネル上でデータを受信および送信することができるアプリケーションがプラットフォーム上に常駐することができる。
図3に、ワイヤレス通信デバイス200、スマートページャ304および携帯情報端末(PDA)306など、PTTグループ302中の1つまたは複数のワイヤレス電気通信デバイスの間でデータパッケージを他のワイヤレス通信デバイスと共有するためのシステム300の例示的な実施形態を示す。システム300では、各ワイヤレス電気通信デバイス200、304、および306は、ワイヤレス通信ネットワーク308上で1つまたは複数の他のワイヤレス電気通信デバイスのターゲットセットと選択的に直接通信することが可能であり得る。たとえば、ワイヤレス通信電話200のターゲットセットは、通信グループ302中のすべてのデバイス、またはページャ304およびPDA306など、そのサブセットとすることができる。
一実施形態では、(ワイヤレス通信電話200などの)ワイヤレス電気通信デバイスは、少なくとも、ワイヤレスネットワーク308上のサーバ側LAN312上に存在する、図1のコンピュータ100と同様の構成要素を有することができる通信サーバ310にフラグを送ることができる。フラグは、この例では、ワイヤレスデバイスがワイヤレスネットワーク308上に存在すること、すなわちアクセス可能であることを判断するために、サーバによって使用され得る。通信サーバ310は、この情報を、第1のワイヤレス電気通信デバイスによって指定されたターゲットワイヤレス電気通信デバイスのセットと共有することができ、あるいは、この情報を、サーバ側LAN312上に常駐するかまたはワイヤレスネットワーク308を介してアクセス可能な他のコンピュータデバイスと共有することもできる。グループ通信コンピュータ310は、ワイヤレスデバイスのグループ識別データを記憶するための付属のまたはアクセス可能なデータベース314を有することができる。(図1のコンピュータ100と同様の構成要素を含むことができる)メディアサーバ316は、サーバ側LAN312上に存在し得るファイル管理サーバのための回路をさらに含む。サーバ側LAN312上、またはワイヤレスネットワーク308上、またはインターネット全体に常駐するコンピュータ構成要素の数は限定されないことを諒解されたい。
通信サーバ310は、グループ302中のデバイス間にポイントツーポイントIP PTTチャネルを確立することができる。PTTチャネルは、通信ワイヤレス電気通信デバイス200、304、および/または306とターゲットセットの1つまたは複数の他のワイヤレス電気通信デバイスとの間の(真のまたは仮想)半二重チャネルを介して確立され得る。また、ターゲットセットのワイヤレス電気通信デバイスのうちの少なくとも1つがワイヤレスネットワーク308上のそれらの存在をグループ通信サーバ310に通知した場合、グループ通信サーバ310はターゲットセットとの要求された直接通信をブリッジしようと試みることができる。
通信サーバ310はまた、ターゲットセットのすべて(または少なくとも1つ)のワイヤレス電気通信デバイスがワイヤレスネットワーク308上のそれらの存在をグループ通信サーバ310に通知していないときに、ターゲットセット302への直接通信をブリッジすることができないことをワイヤレス電気通信デバイス200、304、および306に通知することができる。さらに、通信サーバ310は、ここではグループ識別データの付属メディアサーバ316を有するものとして示されているが、グループ通信コンピュータデバイス310は、その上に常駐するグループ識別情報データを有し、本明細書で説明するすべての記憶機能を実行することができる。
概観では、システム300は、ワイヤレス通信デバイスの通信グループ302のメンバーであり得る、ワイヤレス通信電話200など、少なくとも1つのワイヤレス通信デバイスを含むことができる。ワイヤレス通信デバイスは、この例では、ワイヤレス通信ネットワーク308上で互いと通信するか、またはグループとして通信するように構成され得る。さらに、ワイヤレス通信デバイスのうちの少なくとも1つは、データパッケージを通信グループ302の他のメンバーに選択的に送るように構成され得る。少なくとも1つの通信サーバ310はワイヤレス通信ネットワーク308上の通信グループ302についての情報を記憶するように構成され、その情報は1つまたは複数の通信グループの特定のメンバーワイヤレス通信デバイスの識別情報を含む。通信サーバ310は、通信グループ302の、ワイヤレス通信電話200などの送信ワイヤレス通信デバイスからデータパッケージを選択的に受信するようにさらに構成される。
メディアサーバ316は、(ワイヤレス通信電話200などの)ワイヤレス通信デバイスからデータパッケージを受信し、通信グループ302のメンバーが、ワイヤレス通信ネットワーク308上で記憶されたデータパッケージにアクセスすることを選択的に可能にするように構成され得る。一実施形態では、データパッケージは、限定はしないが、JPEG、TIFなどでの画像、MP3、MP4、WAVなどのオーディオファイル、ドキュメント、および/またはプレゼンテーションを含むことができる。データパッケージは、マルチメディアアプリケーション(Powerpoint、MOVファイルなど)などのストリーミングメディアをさらに含むことができる。また、データパッケージは、話者の画像が実質的なリアルタイムでまたは遅れて他のグループメンバーにブロードキャストされる、通信グループのメンバー間の半二重ビデオ会議とすることができる。
データパッケージファイルのサイズは非常に大きいことがあり、メディアの送信が潜在的に遅れるため、または受信ワイヤレス通信デバイスが送られたメディアを処理することができないために、システム300は、通信グループ302のターゲットメンバーが、他のPTT通信を中断することなしに記憶されたメディアに選択的にアクセスすることができるように、メディアサーバ316を使用してデータパッケージを記憶することができる。代替的に、一実施形態では、データパッケージがメディアサーバ316において記憶される場合、メディアサーバ316は、発信デバイスまたは通信グループ302のターゲットワイヤレス通信デバイスにハイパーテキストリンクを送るように構成され得る。ハイパーテキストリンクは、この例では、メディアサーバ316において記憶されたグループ向けメディアへのリンクを与えることができる。通信グループ302のメンバーワイヤレスデバイスのうちの少なくとも1つによってデータパッケージが受信されると、通信サーバ310は、通信グループ302のうちの少なくとも1つのメンバーワイヤレス通信デバイスがデータパッケージを受信したことを示す確認応答をワイヤレス通信デバイス200、304、および306に送ることができる。
ワイヤレス通信デバイス200、304、306は、データパッケージを送るときに、通信グループ識別データ、たとえば、ターゲットリストを通信サーバ310に送ることができ、したがって、メディアサーバ316は、本明細書でさらに説明するように、様々な基準に基づいて通信グループ識別データ中で識別されたメンバーワイヤレス通信デバイスにデータパッケージを送るかまたは記憶するように構成され得る。あるいは、ワイヤレス通信デバイス200、304、および306は、データパッケージを送るより前に、通信サーバ310に通信グループ302のメンバーデータを要求することができ、サーバ310はワイヤレス通信デバイス200、304、および306に1つまたは複数のアドレスまたは通信グループアドレスを送ることができる。一実施形態では、通信サーバ310は、受信したデータパッケージに対する通信グループのメンバーデバイスの機能に基づいて利用可能な潜在的通信グループをフィルタ処理することができる。
本明細書でさらに説明するように、ワイヤレス通信デバイス200、304、および306は、通信グループ302のメンバーワイヤレス通信デバイスとのグループ通信に関与し、同じ通信セッションにおいてグループ通信中にデータパッケージをすべてのメンバーまたはそのサブセットに送ることができる。あるいは、データパッケージはグループ通信セッションとは無関係に送られ得る。
図4に、一般的なセルラー電気通信構成における例示的なワイヤレスネットワークを示す。ワイヤレスネットワークは、この例では、PTTシステム中の設定されたグループメンバー(デバイス200-A〜D)のワイヤレス通信デバイス間の通信を制御する一連の通信サーバ310を含むことができる。このワイヤレスネットワークは、例示的なものにすぎず、リモートモジュールが互いの間および中で、ならびに/あるいは、限定はしないが、ワイヤレスネットワークキャリアおよび/またはサーバを含むワイヤレスネットワークの構成要素の間および中で、無線で通信するための任意のシステムを含むことができる。一連の通信サーバ310はグループ通信サーバLAN312に接続される。ワイヤレス電話は、データサービスオプションを使用してグループ通信サーバ310にパケットデータセッションを要求することができる。
図4の説明を続けると、通信サーバ310は、この例では、ここではキャリアネットワーク416上に常駐するものとして示されているPDSN414など、ワイヤレスサービスプロバイダのパケットデータサービスノード(PDSN)に接続され得る。ワイヤレス通信デバイスがサービスを取得するためにワイヤレスデータネットワークにアクセスするとき、PSDN414は、ワイヤレス通信デバイス200、304、および/または306を認証するために、認証、許可、およびアカウンティングサーバ「AAA」428とインターフェースすることができる。AAA428は、ユーザアカウントや特権などの情報を記憶するように動作可能なデータベースに結合され得る。各PDSN414は、パケット制御機能(PCF)422を介して基地局420の基地局コントローラ418とインターフェースすることができる。PCF422は、基地局420に位置することができる。ワイヤレスネットワーク308は、メッセージングサービスコントローラ(「MSC」)424に(概してデータパケットの形態で)送られるメッセージを制御することができる。キャリアネットワーク308は、この例では、ネットワーク、インターネットおよび/またはPOTS(「旧式電話システム(plain ordinary telephone system)」)によってMSC424と通信することができる。一般に、ワイヤレスネットワーク308とMSC424との間のネットワークまたはインターネット接続はデータを転送し、POTSはボイス情報を転送する。MSC424は1つまたは複数の基地局420に接続され得る。キャリアネットワークと同様の方法で、MSC424は、一般に、データ転送用のネットワークおよび/またはインターネットとボイス情報用のPOTSとの両方によってブランチツーソース(branch-to-source)(BTS)426に接続される。BTS426は、最終的に、ショートメッセージングサービス(「SMS」)、または当技術分野で知られている他の無線方法によって、メッセージをワイヤレスにセルラー電話200-A〜Dなどのワイヤレスデバイスにブロードキャストし、そのワイヤレスデバイスからメッセージを受信する。また、本明細書で説明するように、キャリア境界および/またはPTT事業者ネットワーク境界はデータの共有を抑止または禁止しないことに留意されたい。
ワイヤレス電話200などのセルラー電話およびワイヤレス通信電気通信デバイスは、計算能力の向上を伴いながら製造されており、パーソナルコンピュータおよびハンドヘルドPDAと同様になりつつある。これらの「スマート」なセルラー電話は、ソフトウェア開発者が、ワイヤレスデバイスのプロセッサ上でダウンロード可能および実行可能であるソフトウェアアプリケーションを作成することを可能にする。セルラー電話200などのワイヤレスデバイスは、アプリケーション、ウェブベージ、アプレット、MIDlet、マルチメディア、画像、ゲームおよび単純なデータなど、コンピュータコードの個別セグメントである、多数のタイプの「データパッケージ」をダウンロードすることができる。(図3などによって示されるように)通信グループ302を指定したワイヤレスデバイスでは、ワイヤレス通信デバイスは、セットの他のメンバーと直接接続し、ボイスおよびデータ通信に関与することができる。しかしながら、そのような直接グループ通信はグループ通信コンピュータデバイス310を介してまたはその制御下で行われる。デバイスのすべてのデータパケットが必ずしも通信サーバ310自体の中を進む必要はないが、通信サーバ310は、一般に、通信グループのメンバーの識別情報を認識しており、および/または検索することができる、すなわち通信グループ302のメンバーの識別情報を別のコンピュータデバイスに向けることができる唯一のサーバ側構成要素であるので、最終的に通信を制御することができなければならない。
以下は、動作手順を示す一連のフローチャートである。フローチャートは、最初のフローチャートが全体的な見地による実装形態を提示するように編成されている。たとえば、全体的な概観を提示するフローチャートの提示で開始し、その後、後続のフローチャートに追加および/またはさらなる詳細を与える、本明細書で利用される提示のスタイルは、概して、様々な動作手順の迅速で容易な理解を可能にすることを、当業者は諒解できよう。
図5に、本開示の態様を実施するための動作手順を示し、図によって示されるように、動作手順は動作500〜510を含む。図によって示されるように、動作500はプロシージャを開始し、動作502は、グループ通信チャネルを介してデータパッケージをターゲットに送りたいという要求を受信するステップを示す。たとえば、図2を参照すると、プロセッサ208は、PTT認識UI224を示す命令を実行することができ、ユーザインターフェースがディスプレイ204によって表示され得る。ワイヤレス通信デバイス200のユーザ入力インターフェース、たとえば、キーボード、タッチパッド、マウス、トラックボールなどは、プッシュツートーク通信チャネルを介してデータパッケージ、たとえば、画像を送りたいという要求を受信することができる。特定の例では、ユーザは、何かの画像を自分のグループ302のメンバーに急速に送ることを望み、したがって、電子メールの代わりにプッシュツートークを介してその画像を送ることを決定し得る。
動作手順の説明を続けると、動作504は、ターゲットワイヤレス通信デバイスとの少なくとも1つのグループ通信チャネルが確立されていないことを判断するステップを示す。たとえば、プロセッサ208は、たとえば、PTTクライアント226から取得された情報から、発信者、たとえば、デバイス200と、ターゲット、たとえば、図3のデバイス304または通信サーバ310との間にプッシュツートーク通信チャネルが存在しないことを判断することができる。特定の例では、メディアクライアント228が実行され得、PTTクライアント226は、ターゲットとのPTTチャネルが開かれているかどうかを識別する情報についての要求を受信することができる。PTTクライアント226が実行され得、そのようなチャネルが確立されていないことを示す信号がメディアクライアント228に返信され得る。
動作506を参照すると、データパッケージをキューに選択的に記憶するステップが示されている。一実施形態では、プロセッサ208は命令を実行することができ、データパッケージはキュー、たとえばメモリ212に記憶され得る。たとえば、データパッケージをキューに記憶するステップは、データパッケージへのポインタをキューとして識別されたメモリのエリアに記憶するステップを含むことができるか、またはデータパッケージのコピーをキューとして識別されたエリアに物理的に記憶するステップを含むことができる。この例では、PTTチャネルを確立する代わりに、データパッケージを記憶し、ターゲットのうちの1つまたは複数への通信が確立された、後の時点で送ることができる。
動作508は、ターゲットワイヤレス通信デバイスとのグループ通信チャネルが確立されていることを判断するステップを示す。たとえば、データパッケージがキューに記憶された少し後に、発信者、たとえば、デバイス200と、通信サーバ310または別のデバイス、たとえば、デバイス304など、何らかの他のPTT対応ターゲットとの間にPTTチャネルが確立され得る。特定の例では、メディアクライアント228は、発信者とターゲットとの間に作成される接続をリッスンするようにプロセッサ208を構成しておくことができる。この例では、ターゲットとのチャネルが開かれたとき、メディアクライアント228は、チャネルが開かれていることを示す情報を受信することができる。
特定の例では、デバイス200がフロアを有することを示す信号を使用して、ターゲットとのPTTセッションが確立されていることをメディアクライアント228に通知することができる。PTTチャネルが要求されるとき、通信サーバ310は、デバイス200、304、または306のユーザがプッシュツートークセッションを確立することを希望していることを示す呼セットアップ要求メッセージを受信することができる。呼セットアップ要求は、たとえば、ターゲットデバイスのアドレス、およびデータパッケージを共有すべきであるという指示、およびワイヤレス通信デバイス200のためのメディアを記憶するメディアサーバ316を識別する情報を含んでいることができる。呼セットアップ要求はまた、DataOverSignaling Accessチャネルメッセージとともに送られ得る。この例では、通信サーバ310は、ターゲットの位置を特定すること、ネットワーク308中の様々なIPエンドポイント間にIPチャネルを開くこと、呼制限を適用すること、ボコーダおよびロケーションを選択すること、および/またはPTTセッション中にアップロードされたデータパッケージを記憶することを処理するためにメディアサーバ316を割り当てることを含むPTT呼セットアップ機能を実行するように構成され得る。次いで、メディアPTTセッションが作成されたことと、発信者デバイスとターゲットデバイスの両方の識別情報とをメディアサーバ316に通知することができる。この例では、通信サーバ310は、ワイヤレス通信デバイス200がデータパッケージを送信/受信することが可能であるかどうか、および/またはターゲットがデータパッケージを送信/受信することを許可されるかどうかを判断するように動作可能な回路を含むことができる。たとえば、両方のデバイスがデータパッケージを送信/受信することが可能であり、ターゲットがPTTセッションのために利用可能である場合、通信サーバ310は、発信ワイヤレス通信デバイス200に確認応答メッセージを送ることができ、発信ワイヤレス通信デバイスはフロアを取得することができる。
動作510は、確立されたグループ通信チャネルを介して少なくともグループ通信サーバにすべてのキューイングされたデータパッケージを送るステップを示す。たとえば、発信デバイスは、確立されたPTTチャネルを介してデータパッケージをターゲットに送ることができる。特定の例では、メディアクライアント228がプロセッサ208によって実行され得、プロセッサ208は、デバイス200のトランシーバによってデータパッケージをターゲットに送ることができる。データパッケージはすでに確立されたPTTチャネルの間に送られるので、ネットワーク上でセッションをセットアップするコストが低減される。
特定の例では、データパッケージは、PTTトークスパート中にボイスとともに送られ得る。フロア許可メッセージを受信したことに応答して、メディアクライアント228は、ボイスとデータパッケージとを含むデータを送るためのパーミッションを要求することができる。すなわち、この例では、PTT呼とメディア共有の両方のために使用される単一のフロア制御機構のみがあり、チャネルが開かれたとき、メディアクライアント228は、トークスパート中にメディアを送ることができる。メディアクライアント228は、PTTクライアント226がデータパッケージを既存のPTT呼に追加することを要求することができる。メディア追加要求は、PTTクライアント226と同じフロア制御機構を使用してメディアを共有すべきであるという指示を含んでいることができる。PTTクライアント226は、通信サーバ310が新しいメディアタイプを既存の呼に追加することを要求することができる。通信サーバ310は、ターゲットが新しいメディアタイプをサポートすることができることを検証することができる。新しいメディアタイプがPTT呼に正常に追加された後に、データパッケージは送られ得る。
別の具体的な例では、メディアクライアント228は、PTT呼とは異なるフロア制御機構を使用してデータパッケージをターゲットに送るように構成され得る。すなわち、データパッケージは、メディアPTTチャネル上のボイスデータとは無関係に送られ得る。一実施形態では、メディアクライアント228は、ターゲットとのチャネルが開かれていることを示す信号を受信したとき、データパッケージを送ることができる。このシナリオでは、ワイヤレス通信デバイス200のユーザはPTT呼に参加することができ、チャネルが開かれたとき、プロセッサ208は割込みをかけられ、キューからデータパッケージを送るようにメディアクライアント228に指示するメディアクライアント228命令を実行することができる。メディアクライアント228は、そのデータパッケージが、PTT呼とは別個のフロア制御機構、すなわち、PTT呼のために使用されているフロア制御機構とは無関係なフロア制御機構を使用して共有されるべきものであることを判断し、新しいメディアタイプを既存のPTT呼に追加したいという要求をPTTクライアント226に送るように構成され得る。メディア追加要求は、PTT呼とは異なるフロア制御機構を使用してデータを共有すべきであるという指示を含んでいることができる。PTTクライアント226は、新しいメディアタイプを既存の呼に追加したいという要求を通信サーバ310に送ることができる。通信サーバ310は、呼参加者のうちの1つまたは複数が新しいメディアタイプをサポートすることができることを検証するように構成され得、次いで、通信サーバ310は、新しいメディアタイプが呼に追加されたことを示す通知を呼参加者に送ることができる。一実施形態では、呼参加者への通知は、データパッケージの配信のためのメディアサーバ316上の新しい宛先ポート番号に加えて、別個のメディアフロアのフロア識別子を含んでいることができる。
新しいメディアタイプがPTT呼に正常に追加された後、プロセッサ208は、グループ向けメディアをターゲットに送るためのパーミッションを要求するようにメディアクライアント228を構成することができる。PTTクライアント226からのPTT要求は、グループ向けメディアフロアに割り当てられたフロア識別子を含んでいることができる。通信サーバ310は、フロア要求を許可するより前に、データフロアが利用可能であることを検証することができる。次いで、PTTクライアント226は、フロア要求が許可されたことをメディアクライアント228に通知することができ、データパッケージはターゲットに送られ得る。
次に図6を参照すると、追加の動作612、614、および616を含む、図5の動作手順500の代替実施形態が示されている。一実施形態では、データパッケージを送るステップは、限定はしないが、メディアオブジェクトをメディアサーバに送るステップを含むことができる。たとえば、一実施形態では、ターゲットはメディアサーバ316とすることができる。この例では、プロセッサ208は、メディアクライアント228を示す命令を実行し、データパッケージを示す情報の1つまたは複数のパケットをメディアサーバ316に送ることができる。次いで、メディアサーバ316は、データパッケージをターゲットに送るかまたはデータパッケージを記憶するように構成され得る。
図6の説明を続けると、動作614は、ターゲットワイヤレス通信デバイスにすべてのキューイングされたデータパッケージを送るステップを示す。たとえば、一実施形態では、ターゲットは別のワイヤレス通信デバイス、たとえば、デバイス304とすることができる。通信サーバ310は、発信デバイスとターゲットデバイス、たとえば、デバイス304との間にPTTチャネルを確立することができる。この例では、PTTチャネルが確立されたとき、メディアクライアント228がプロセッサ208によって実行され得、プロセッサ208は、キューからデータパッケージを取得し、それをデバイス200のトランシーバによってターゲットに送ることができる。
図6によって示されるように、動作616は、一実施形態では、キューが複数のデータパッケージを含むことを示す。たとえば、一実施形態では、キュー、たとえば、メモリ212のエリアは、1つのターゲットおよび/または複数のターゲットにアドレス指定され得る複数のデータパッケージを含むことができる。この例では、PTTチャネルが確立されたとき、メディアクライアント228は、PTTクライアント226から、チャネルが開かれていることを示す情報を受信することができ、メディアクライアント228はプロセッサ208によって実行され得、プロセッサ208はキューからデータパッケージを取得することができる。
例示的な一実施形態では、発信デバイスとメディアサーバ316との間にPTTチャネルが開かれたとき、異なるターゲットデバイス、たとえば、デバイス304および306にアドレス指定されたすべてのデータパッケージがメディアサーバ316にアップロードされ得る。この例では、メディアサーバ316は、データパッケージが後で送られ得るように、それらをターゲットのアドレスによって分類し、データベース314に記憶することができる。別の例では、単一のターゲットにアドレス指定されたデータパッケージがアップロードされ、データベース314に記憶され得るか、またはターゲットのサブセットに関連するデータパッケージがアップロードされ得る。
例示的な一実施形態では、発信デバイスとリモートワイヤレス通信デバイス、たとえば、デバイス304との間にPTTチャネルが開かれたとき、ターゲットにアドレス指定されたすべてのデータパッケージがPTTチャネルを介して送られ得る。この例では、通信サーバ310は呼セットアップ機能を処理することができ、データパッケージのコピーがメディアサーバ316によって記憶され得る。
次に図7を参照すると、複数のキューイングされたデータパッケージのメモリサイズが所定のメモリサイズしきい値よりも小さいと判断するステップを示す動作718を含む、図6の動作手順の代替実施形態が示されている。一実施形態では、プロセッサ208は、たとえば、各データパッケージのメモリサイズを合計することによってキュー中のデータパッケージがどのくらい大きいかを判断し、この値を所定の量と比較するようにプロセッサ208を構成する命令を実行することができる。一実施形態では、キュー中のメモリオブジェクトの合計サイズが所定の値よりも小さい場合、デバイスは、PTTチャネルが開かれるまで待ってからデータパッケージを送るように構成され得る。たとえば、次いで、メディアクライアント228は、PTTチャネルが確立されるときをリッスンするようにプロセッサ208を構成することができる。特定の例では、所定のしきい値は5メガバイトに設定され得る。この場合、3つのデータパッケージがキューに追加され、各データパッケージのサイズが1メガバイトであるならば、合計は所定のしきい値よりも小さくなり、PTTチャネルが開かれるまで、データパッケージを送るのを待つという判断が行われ得る。
図8を参照すると、所定のメモリサイズしきい値を識別する情報を受信するステップを示す動作820を含む、図7の動作手順の代替実施形態が示されている。たとえば、一実施形態では、所定のしきい値はネットワークから受信された情報に基づくことができる。ネットワークの回路は、コマンドチャネル上で現在のネットワークしきい値を示す信号をワイヤレス通信デバイス200に送ることができる。ワイヤレス通信デバイス200は、しきい値が到達されているかどうかを判断するためにメディアクライアント228によって使用され得るデータ構造中の値を設定するための命令を実行することができる。一実施形態では、その情報は、ワイヤレス通信デバイス200に関連するユーザのユーザプロファイル中の情報に従って設定され得るか、基地局コントローラのロケーションに基づいて割り当てられた静的値であり得るか、ネットワーク管理者によって設定された静的値であり得るか、または、たとえば、時刻、曜日など、何らかの他の変数に応じて変わり得る。
図9を参照すると、一実施形態では、所定のメモリサイズしきい値が現在のネットワーク状態に基づくことを示す動作922を含む、図8の動作手順の代替実施形態が示されている。たとえば、現在のネットワーク状態に基づく情報が、メモリサイズしきい値を動的に設定するために使用され得る。たとえば、ネットワーク状態は、所与の基地局のために利用可能なデータチャネルの数を反映する値を含むことができる。別の例では、現在のネットワーク状態は、地理的ロケーション、たとえば、基地局、市外局番、郵便番号、都市などの上で使用中であるデータチャネルの平均数を反映する値を含むことができる。一実施形態では、所定のメモリサイズしきい値は、使用中であるデータチャネルの数に応じた値とすることができる。使用中のデータチャネルの数が増加すると、しきい値も増加し得る。一実施形態では、基地局コントローラごとに、どのくらいのデータチャネルが利用可能であるかに関係する様々なしきい値を示すテーブルが利用可能であり得る。一例では、データチャネルの80%が使用中である場合、しきい値は5メガバイトであり得、データチャネルの20%が使用中である場合、しきい値は1メガバイトであり得る。メモリ中に保持されたデータパケットの数、(優先度ランキング方式などの)メモリ中に保持されたデータパケットの重要性の基準、または当業者には明らかであろう他のトリガなど、キューイングされたデータを送るための最適時点を判断するための他の方法が使用され得る。
次に図10を参照すると、動作1000、1002、1004、1006、および1008を含む、本開示の態様を実施するための動作手順が示されている。動作1000は動作手順を開始し、動作1002は、ワイヤレス通信デバイスにおいて、グループ通信チャネルを介してデータパッケージをターゲットに送りたいという要求を受信するステップを示す。たとえば、図2を参照すると、プロセッサ208は、PTT認識UI224を示す命令を実行することができ、ユーザインターフェースがディスプレイ204によって表示され得る。ワイヤレス通信デバイス200のユーザ入力インターフェース、たとえば、キーボード、タッチパッド、マウス、トラックボールなどは、プッシュツートーク通信チャネルを介してデータパッケージを送りたいという要求を受信することができる。特定の例では、ユーザは、自分のデバイスによってキャプチャされたビデオを自分のグループ302のメンバーに急速に送ることを望み、したがって、電子メールの代わりにプッシュツートークを介してそのビデオを送ることを決定し得る。
図10の説明を続けると、動作1004は、データパッケージのサイズが所定のサイズよりも小さいと判断するステップと、そのデータパッケージをキューに記憶するステップとを示す。たとえば、プロセッサ208は、データパッケージがどのくらい大きいかを判断し、データパッケージのサイズを所定のサイズ値と比較するようにプロセッサ208を構成する命令を実行することができる。この例では、オブジェクトはサイズ限界よりも小さいことがあり、データパッケージをターゲットに送る代わりに、それをキューに記憶し、後の時点で送ることができる。たとえば、データパッケージをキューに記憶するステップは、データパッケージへのポインタをキューとして識別されたメモリのエリアに記憶するステップを含むことができるか、またはデータパッケージのコピーをキューとして識別されたエリアに物理的に記憶するステップを含むことができる。
動作1006は、モバイルデバイスによって、所定の時間量が経過していることを判断するステップを示す。例示的な一実施形態では、データパッケージ、たとえば、オブジェクトへのポインタがキューに記憶されたとき、内部タイマーが所定の時間量、たとえば、10秒後に満了するように設定され得る。所定の値は、ネットワーク管理者によって設定され得、様々な状態に基づくことができる。例示的な一実施形態では、タイマーが満了したとき、プロセッサ208に割込みが送られ得、プロセッサ208は割込みハンドラ命令を実行することができる。
動作1008は、グループ通信チャネルが開いたときに、ワイヤレス通信デバイスからデータパッケージをターゲットに送るステップを示す。所定の時間量が経過した後に、データパッケージはターゲット、たとえば、別のワイヤレス通信デバイスおよび/またはメディアサーバ316に送られ得る。たとえば、特定の実施形態では、割込みハンドラ命令がプロセッサ208によって実行され得、プロセッサはメディアクライアント228を実行することができる。プロセッサ208は、デバイスのトランシーバによってデータパッケージをターゲットに送ることができる。この例では、たとえば、所定の時間量が経過するかまたはターゲットとのPTTチャネルが確立されるまで、データパッケージを送るプロセスに遅延が導入され得る。すなわち、一実施形態では、割込みが所定の時間期間の終わりに満了するように設定され得るが、割込みが送られるより前にPTTチャネルが確立された場合、メディアクライアント228が実行され得、割込みはクリアされ得る。この場合、PTTチャネルが別の理由で開かれたので、それを使用してデータパッケージをアップロードすることができる。
次に図11を参照すると、追加の動作1110、1112、1114、1116、1118、および1120を含む、図10の動作手順1000の代替実施形態が示されている。動作1110は、データパッケージを含む電子メールを、ターゲットワイヤレス通信デバイスに関連する電子メールアドレスに送るステップを示す。この例示的な実施形態では、ターゲットは電子メールアカウントに関連することができる。この例では、タイマーが満了したとき、プロセッサ208は、ワイヤレス通信デバイス200のメモリに記憶された電子アドレス帳から電子メールアドレスを取得するための命令を実行することができる。この例では、プロセッサ208は、アドレス帳からターゲットの電子メールアドレスを取得し、データパッケージを含むメッセージを生成することができる電子メールクライアントに情報を渡すようにプロセッサ208を構成する命令を実行することができる。次いで、ターゲットデバイス304に関連するアドレスに電子メールを送ることができる。
図11の動作1112は、データパッケージを含むマルチメディアメッセージをターゲットワイヤレス通信デバイスに送るステップを示す。この例示的な実施形態では、タイマーが満了したとき、プロセッサ208は、マルチメディアメッセージクライアントが、データパッケージを含むマルチメディアメッセージを生成し、そのマルチメディアメッセージをターゲットに送るための命令を実行することができる。
図11の動作1114は、データパッケージをメディアサーバに送るステップを示す。この例示的な実施形態では、ターゲットはメディアサーバ316とすることができる。たとえば、プロセッサ208は、メディアクライアント228を示す命令を実行することができ、データパッケージを示す情報の1つまたは複数のパケットをメディアサーバ316に送ることができる。メディアサーバ316は、PTTチャネルを介して、または何らかの他の配信機構、たとえば、電子メール、マルチデータパッケージメッセージなどによってデータパッケージをターゲット、たとえば、デバイス304に送るように構成され得る。
図11の動作1116は、グループ通信チャネルを介してデータパッケージを送るステップを示す。たとえば、発信デバイスは、所定の時間量が経過した後に、確立されたPTTチャネルを介してデータパッケージをターゲットに送ることができる。すなわち、所定の時間量が経過した後にターゲットとのPTTチャネルが確立され得る。特定の例では、タイマーによって割込みが生成され得、メディアクライアント228を実行するようにプロセッサ208を構成する割込みハンドラコードがプロセッサ208によって実行され得る。メディアクライアント228が実行され得、プロセッサ208は、デバイスのトランシーバによってデータパッケージをターゲットに送ることができる。PTTチャネルが要求されるとき、通信サーバ310は、デバイス200のユーザがプッシュツートークセッションを確立することを希望していることを示す呼セットアップ要求メッセージを受信することができる。呼セットアップ要求は、たとえば、ターゲットデバイスのアドレス、およびデータパッケージを共有すべきであるという指示、およびワイヤレス通信デバイス200のためのメディアを記憶するメディアサーバ316を識別する情報を含んでいることができる。
図11の動作1118は、所定の時間量が現在のネットワーク状態に応じて設定されることを示す。たとえば、一実施形態では、現在のネットワーク状態に基づく情報が、所定の時間量を示す値を動的に設定するために使用され得る。たとえば、所定の時間量は、ネットワークのリソースへのプレッシャーが増加するにつれて増加し得る。例示的な一実施形態では、ネットワークへのプレッシャーは、所与の基地局のために利用可能であるデータチャネルの数を反映する情報から計算され得る。他の例では、地理的ロケーション上で使用中であるデータチャネルの平均数を反映する値が使用され得る。
図11の動作1120は、所定のサイズが、ワイヤレス通信デバイスに関連するユーザプロファイルに記憶された情報に従って設定されることを示す。たとえば、一実施形態では、ユーザプロファイル情報は、デバイス200を操作するユーザのための優先度レベルを定義することができる。この情報は、たとえば、AAA428に結合されたデータベースに記憶され得、および/またはワイヤレス通信デバイス200に、たとえば、SIMカードに記憶され得る。一実施形態では、いくつかのタイプのユーザは異なる所定のサイズしきい値を有することがある。たとえば、プレミアムアカウントまたは緊急サービスプロバイダに関連するアカウントは、他のユーザよりも低いしきい値を有することがある。
次に図12を参照すると、動作1200、1202、1204、1206、および1208を含む、本開示の態様を実施するための動作手順が示されている。動作1200は動作プロセスを開始し、動作1202は、各データパッケージがメモリサイズを有する、複数のデータパッケージをキューに記憶するステップを示す。たとえば、一実施形態では、メモリ212は、複数のデータパッケージ、またはデータパッケージのロケーションへのポインタを記憶することができ、データパッケージごとに、ターゲットアドレスを識別する情報も記憶され得る。この例では、各データパッケージはサイズを有することができ、たとえば、あるデータパッケージは1メガバイトのサイズを有し得、別のデータパッケージは3メガバイトのサイズを有し得る。例示的な一実施形態では、プロセッサ208が、データパッケージをメモリ212に記憶するために使用され得る。この例では、プロセッサ208は、データパッケージのコピーまたはデータパッケージのロケーションへのポインタを、キューのために予約されたメモリ212の特定のエリアに記憶するようにプロセッサ208に指示する命令を実行することができ、プロセッサ208は、データパッケージが記憶されていることを示すために、キューに関連するデータ構造中の値を変更することができる。
図12の説明を続けると、動作1204は、キュー中の複数のデータパッケージの合計メモリサイズが所定のメモリサイズしきい値よりも大きいと判断するステップを示す。たとえば、プロセッサ208は、キュー中の複数のデータパッケージの合計メモリサイズが所定のメモリサイズしきい値よりも大きいと判断することができる。たとえば、一実施形態では、プロセッサ208は、データパッケージがキューに追加されたとき、たとえば、キュー中の各データパッケージのサイズを加算して合計を取得し、その合計を所定の値と比較するようにプロセッサ208に指示する命令を実行することができる。合計が所定のメモリサイズしきい値よりも大きい場合、動作の結果を示す情報がメモリに記憶され、たとえば、メディアクライアント228に送られ得る。
一実施形態では、キュー中にデータパッケージを有するターゲットごとの合計を含むデータ構造がメモリ212に記憶され得る。新しいデータパッケージが追加されたとき、プロセッサ208は、ターゲットのアドレスがデータ構造中にあるかどうかを判断するための命令を実行することができる。ターゲットのアドレスがある場合、それの合計は更新され得、そうでない場合、ターゲットはリストに追加され得る。一実施形態では、プロセッサ208は、キュー中のすべてのオブジェクトの合計メモリサイズが所定の値よりも大きいと判断するように構成され得るか、または特定の受信人に関連するすべてのデータパッケージの合計メモリサイズが所定の値よりも大きいと判断するように構成され得る。より一般的には、その判断は、キュー中のデータパッケージの合計メモリサイズに基づくことができるか、またはターゲットごとの、キュー中のデータパッケージの合計メモリサイズに基づくことができる。この実施形態、または別の実施形態では、プロセッサ208は、ターゲットごとの合計とキュー全体の合計とを保持するように構成され得る。データパッケージがキューに追加されたとき、プロセッサ208は、キュー中のすべてのデータパッケージの合計値を調べ、各ターゲットに関連する合計値を調べる命令を実行することができる。
動作1206は、キュー中の複数のデータパッケージのメモリサイズが所定のメモリサイズしきい値よりも大きいと判断したことに応答して、ターゲットとのプッシュツートークチャネルを確立するステップを示す。一例では、その判断が行われた後に、デバイス200のトランシーバは、上記で説明した技法と同様の技法を使用して、ターゲットとのプッシュツートーク通信チャネルを確立することができる。特定の例では、メディアクライアント228は信号を受信することができ、プロセッサ208は、プッシュツートーククライアント226に信号を送る命令を実行することができる。次いで、プッシュツートーククライアント命令が実行され得、デバイス200とターゲット、たとえば、別のデバイスおよび/またはメディアサーバ316との間にPTTチャネルが開かれ得る。次いで、データパッケージがデバイス200からPTTチャネルを介して送られ得る。
特定の例では、ターゲットはメディアサーバ316とすることができる。PTTクライアント226は、メディアキュー中のデータパッケージの全部または一部分をメディアサーバ316に送るようにデバイス200のトランシーバを構成することができ、それらのデータパッケージはデータベース314に記憶され得る。たとえば、キュー中のすべてのデータパッケージの合計メモリサイズが所定の値よりも大きい実施形態では、PTTクライアント226はメディアサーバ316にすべてのデータパッケージを送るように構成され得、それらのデータパッケージはデバイス304および/または306などのデバイスにとって利用可能になり得る。同じまたは他の実施形態では、ターゲットに関連する合計値が所定の値よりも大きい場合、PTTクライアント226は、ターゲットとのPTTチャネルを開くようにデバイス200のトランシーバを構成することができる。
次に動作1208を参照すると、プッシュツートークチャネルを介して複数のデータパッケージをターゲットに送るステップが示されている。たとえば、発信デバイスは、確立されたPTTチャネルを介してデータパッケージをターゲットに送ることができる。特定の例では、メディアクライアント228がプロセッサ208によって実行され得、プロセッサ208は、キューからデータパッケージを取得し、それらをデバイスのトランシーバによってターゲットに送ることができる。この例では、データパッケージは一緒にグループ化されるので、データパッケージを送るためだけに複数のセッションをセットアップすることの、ネットワークに関するコストが低減される。
図13に、追加の動作1310〜1316を含む、図12の動作手順1200の代替実施形態を示す。動作1310は、第2のターゲットにアドレス指定された複数の第2のデータパッケージをキューに記憶するステップであって、第2のデータパッケージの各々がメモリサイズを有する、記憶するステップと、キュー中の複数の第2のデータパッケージの合計メモリサイズが所定のメモリサイズしきい値よりも小さいと判断するステップと、所定の時間量が経過した後に、第2のデータパッケージを第2のターゲットに送るステップとを示す。動作1310を含む実施形態では、プロセッサ208は、キュー中の第2のターゲットにアドレス指定されたデータパッケージがどのくらい大きいかを判断し、この値を所定のメモリサイズしきい値と比較するようにプロセッサ208を構成する命令を実行することができる。一実施形態では、メモリオブジェクトのサイズが所定の値よりも小さい場合、デバイス200は、データパッケージを送るより前に、それらを所定の時間量の間キューに記憶するように構成され得る。たとえば、データパッケージがキューに記憶されたとき、内部タイマーが所定の時間量、たとえば、10秒後に満了するように設定され得る。例示的な一実施形態では、タイマーが満了したとき、プロセッサ208に割込みが送られ得、プロセッサ208は特定の割込みハンドラ命令を実行することができる。プロセッサ208は、キューからデータパッケージを取得し、それらをデバイスのトランシーバによってターゲットに送ることができる。この例では、たとえば、所定の時間量が経過するかまたはターゲットとのPTTチャネルが確立されるまで、データパッケージを送るプロセスに遅延が導入され得る。
図13の説明を続けると、動作1312は、第3のターゲットにアドレス指定された第3のデータパッケージをキューに記憶するステップと、基地局コントローラから、第3のターゲットとのプッシュツートークチャネルを割り振る信号を受信するステップと、第3のデータパッケージを第3のターゲットに送るステップとを示す。動作1312を含む実施形態では、第3のターゲットにアドレス指定されたデータパッケージがキューに記憶され得る。特定の例では、データパッケージは所定のサイズよりも小さいことがある。ある時間期間後に、デバイス200は、基地局コントローラ418から、第3のターゲットとのPTTチャネルが確立されていることを示す信号を受信し得る。たとえば、第3のデバイスの操作者がデバイス200とのPTTチャネルを開いたか、またはデバイスの操作者が第3のデバイスとのPTTチャネルを開くことを決定した可能性がある。この例では、次いで、デバイス200は、そのチャネルを介して第3のデータパッケージを第3のターゲットに送ることができる。特定の例では、メディアクライアント228は、チャネルが開かれるときをリッスンするように構成され得、第3のターゲットとのチャネルが開かれた場合、プロセッサ208に割込みが送られ得る。次いで、プロセッサ208は、データパッケージを第3のデバイスに送る命令を実行することができる。
図13の動作1314は、一実施形態では、所定のメモリサイズしきい値が現在のネットワーク状態に応じて設定されることを示す。たとえば、現在のネットワーク状態に基づく情報が、メモリサイズしきい値を動的に設定するために使用され得る。たとえば、ネットワーク状態は、所与の基地局のために利用可能なデータチャネルの数を反映する値を含むことができる。別の例では、現在のネットワーク状態は、地理的ロケーション、たとえば、基地局、市外局番、郵便番号、都市などの上で使用中であるデータチャネルの平均数を反映する値を含むことができる。一実施形態では、所定のメモリサイズしきい値は、使用中であるデータチャネルの数に応じた値とすることができる。使用中のデータチャネルの数が増加すると、しきい値も増加し得る。
図13の動作1316は、一実施形態では、所定のメモリサイズしきい値が、モバイルデバイスに関連するユーザプロファイル中の情報に従って設定されることを示す。たとえば、一実施形態では、ユーザプロファイル情報はユーザのための優先度レベルを定義することができる。この情報は、たとえば、AAA428に結合されたデータベースに記憶され得、および/またはワイヤレス通信デバイス200に、たとえば、SIMカードに記憶され得る。
次に図14を参照すると、動作1418および1420を含む、図13の動作手順の代替実施形態が示されている。動作1418は、プッシュツートーク通信チャネルを介して第2のデータパッケージを特定のターゲットに送るステップを示す。たとえば、発信デバイスは、所定の時間量が経過した後に、PTTチャネルを介してデータパッケージを第2のターゲットに送ることができる。特定の例では、タイマーによって割込みが生成され得、メディアクライアント228を実行するようにプロセッサ208を構成する割込みハンドラコードがプロセッサ208によって実行され得る。メディアクライアント228が実行され得、プロセッサ208は、デバイスのトランシーバによってデータパッケージを第2のターゲットに送ることができる。PTTチャネルが要求されるとき、通信サーバ310は、デバイス200のユーザがプッシュツートークセッションを確立することを希望していることを示す呼セットアップ要求メッセージを受信することができる。呼セットアップ要求は、たとえば、ターゲットデバイスのアドレス、およびデータパッケージを共有すべきであるという指示、およびワイヤレス通信デバイス200のためのメディアを記憶するメディアサーバ316を識別する情報を含んでいることができる。
動作1420は、所定の時間量が、通信チャネルの見込み可用度(likely availability)、グループ通信をセットアップするコスト、またはデバイスにおける総トラフィックなど、現在のネットワーク状態に応じて設定されることを示す。たとえば、一実施形態では、現在のネットワーク状態に基づく情報が、所定の時間量を示す値を動的に設定するために使用され得る。たとえば、所定の時間量は、ネットワークのリソースへのプレッシャーが増加するにつれて増加し得る。例示的な一実施形態では、ネットワークへのプレッシャーは、所与の基地局のために利用可能であるデータチャネルの数を反映する情報から計算され得る。他の例では、地理的ロケーション上で使用中であるデータチャネルの平均数を反映する値が使用され得る。
次に図15を参照すると、動作1500〜1506を含む、本開示の態様を実施するための動作手順が示されている。動作1500は手順を開始し、動作1502は、複数のデータパッケージをキューイングするステップであって、複数のデータパッケージの少なくとも一部分が特定のターゲットにアドレス指定された、キューイングするステップを示す。たとえば、複数のデータパッケージ、またはデータパッケージのロケーションへのポインタがキューイングされ得、データパッケージごとに、ターゲットアドレスを識別する情報が記憶され得る。この実施形態では、少なくともいくつかのデータパッケージは、デバイス304などの特定のターゲットにアドレス指定され得る。例示的な一実施形態では、プロセッサ208が、データパッケージをキューイングするために使用され得る。
図15の説明を続けると、動作1504は、特定のターゲットとのプッシュツートークチャネルが確立されていることを判断するステップを示す。たとえば、データパッケージがキューイングされた少し後に、発信者、たとえば、デバイス200と、特定のターゲットデバイス、たとえば、デバイス304との間にPTTチャネルが確立され得る。この例では、メディアクライアント228は、発信者とターゲットとの間に作成される接続をリッスンするようにプロセッサ208を構成しておくことができる。この例では、ターゲットとのチャネルが開かれたとき、メディアクライアント228は、チャネルが開かれていることを示す情報を受信することができる。上記で説明したことと同様に、通信サーバ310から受信されたフロア許可メッセージを使用して、特定のターゲットとのPTTセッションが確立されていることを示すことができる。そのような信号が受信されたとき、プロセッサ208は割込みをかけられ、メディアクライアント228を実行するように指示され得る。
図15の説明を続けると、動作1506は、プッシュツートークチャネルを介して複数のデータパッケージの部分を特定のターゲットに送るステップを示す。たとえば、発信デバイスは、トランシーバによって、確立されたPTTチャネルを介してデータパッケージをターゲットに送ることができる。特定の例では、発信者と特定のデバイスとの間にチャネルが確立されていることをプロセッサ208が検出したとき、プロセッサ208にメディアクライアント228を実行するように指示する割込みが生成され得る。プロセッサ208は、デバイスのトランシーバによってデータパッケージをターゲットに送ることができる。この例では、データパッケージはすでに確立されたPTTチャネルの間に送られるので、ネットワーク上でセッションをセットアップするコストが低減される。
次に図16を参照すると、動作1608および1610を含む、動作手順1500の代替実施形態が示されている。動作1608は、複数のデータパッケージの部分が、所定のサイズしきい値よりも大きい合計メモリサイズを有することを判断するステップを示す。たとえば、プロセッサ208は、特定のターゲットにアドレス指定されたデータパッケージの部分の合計メモリサイズが所定のメモリサイズしきい値よりも大きいと判断することができる。たとえば、一実施形態では、プロセッサ208は、データパッケージがキューイングされたとき、たとえば、データパッケージのサイズをキューイングされたデータパッケージの合計値に加算して合計を取得し、その合計を所定の値と比較するようにプロセッサ208に指示する命令を実行することができる。合計が所定のメモリサイズしきい値よりも大きい場合、動作の結果を示す情報がメモリに記憶され、たとえば、メディアクライアント228に送られ得る。
図16の説明を続けると、動作1610は、第2のターゲットにアドレス指定された、複数のデータパッケージの第2の部分が所定の時間量の間キューイングされていることを判断するステップと、第2の部分を第2のターゲットに送るステップとを示す。動作1610を含む実施形態では、第2のターゲットにアドレス指定されたデータパッケージがキューイングされ得る。第2のターゲットにアドレス指定されたデータパッケージがキューイングされたとき、タイマーが所定の時間量、たとえば、5分後に満了するように設定され得る。タイマーが満了した場合、プロセッサ208に割込みが送られ得、プロセッサ208は、第2のターゲットにアドレス指定されたデータパッケージが所定の時間量の間キュー中にあったことを発見する特定の割込みハンドラ命令を実行することができる。次いで、プロセッサ208は、デバイスのトランシーバによって、キューイングされたデータパッケージを第2のターゲットに送ることができる。この例では、たとえば、所定の時間量が経過するかまたはターゲットとのPTTチャネルが確立されるまで、データパッケージを送るプロセスに遅延が導入され得る。
図17に、追加の動作1714および1716を含む、図16の動作手順の代替実施形態を示す。動作1714は、所定のメモリサイズしきい値が現在のネットワーク状態に応じて設定されることを示す。たとえば、一実施形態では、現在のネットワーク状態に基づく情報が、メモリサイズしきい値を動的に設定するために使用され得る。
図17の動作1716は、所定のメモリサイズしきい値が、モバイルデバイスに関連するユーザプロファイル中の情報に従って設定されることを示す。たとえば、一実施形態では、ユーザプロファイル情報は、デバイス200を操作するユーザのための優先度レベルを定義することができる。この情報は、たとえば、AAA428に結合されたデータベースに記憶され得、および/またはワイヤレス通信デバイス200に、たとえば、SIMカードに記憶され得る。
図18に、動作1800〜1804を含む、本開示の態様を実施するための動作手順を示す。動作1800は手順を開始し、動作1802は、発信デバイスからプッシュツートークチャネルを介して、複数のデータパッケージのサイズが所定のサイズを超えるまでキューに記憶されていた複数のデータパッケージを受信するステップを示す。一実施形態では、通信サーバ310はプッシュツートークチャネルを介して複数のデータパッケージを受信することができる。複数のデータパッケージ、またはデータパッケージへのポインタは、キュー中のデータパッケージのサイズが所定の値よりも大きくなるまで、前にデバイス200のキュー、たとえば、メモリ212に記憶されていることがあり得る。
動作1804は、複数のデータパッケージのうちの少なくとも1つをターゲットデバイスに送るステップを示す。たとえば、データパッケージのうちの少なくとも1つがターゲットデバイスに送られ得る。たとえば、PTTチャネルが通信サーバ310によってセットアップされたとき、メディアサーバ316は通知され、通信チャネルに追加されていることがあり得る。メディアサーバ316は、この例では、データパッケージを記憶し、それらをターゲットに送るために使用され得る。
次に図19を参照すると、動作1906、1908、および1910を含む、図18の動作手順の代替実施形態が示されている。動作1906は、プッシュツートーク通信チャネルを介して複数のデータパッケージのうちの少なくとも1つを送るステップを示す。たとえば、一実施形態では、通信サーバ310のプロセッサ102は、上記で説明した技法を使用して発信者とターゲットとの間にPTTチャネルをセットアップすることができ、少なくとも1つのデータパッケージを示す情報の1つまたは複数のパケットを送ることができる。
図19の説明を続けると、動作1908は、電子メールによってキュー中の少なくとも1つのデータパッケージを送るステップを示す。この例示的な実施形態では、通信サーバ310またはメディアサーバ316は、データパッケージを含む電子メールをターゲットに送ることができる。たとえば、ワイヤレスネットワーク308は、電子メールを生成することができるコンピュータシステムまたはプロセスを含むことができる。この例では、ユーザプロファイルは、電話アドレスを電子メールアカウントにマッピングするテーブルを含むことができる。この例では、プロセッサは、ターゲットの電子メールアドレスを取得し、データパッケージを含むメッセージを生成することができる電子メールクライアントに情報を渡すようにプロセッサを構成する命令を実行することができる。次いで、ターゲットデバイスに関連するアドレスに電子メールを送ることができる。
図19の説明を続けると、動作1910は、データパッケージに関連するハイパーテキストリンクをターゲットデバイスに送るステップを示す。一実施形態では、メディアサーバ316は、データパッケージをデータベースに記憶し、データパッケージのためのハイパーテキストリンクを生成することができる。この例では、次いで、ハイパーテキストリンクはターゲットに送られ得、ターゲットの操作者がハイパーテキストリンクをクリックしたとき、メディアサーバ316は、要求を受信し、ハイパーテキストリンクに関連するデータパッケージを取得し、そのデータパッケージをターゲットに送ることができる。
次に図20を参照すると、動作2000〜2006を含む、本開示の態様を実施するための動作手順が示されている。動作2000は手順を開始し、動作2002は、コンピュータシステムによって、発信デバイスから、メモリサイズを有する、ターゲットデバイスにアドレス指定されたデータパッケージを受信するステップを示す。一実施形態では、メディアサーバ316、たとえば、図1のコンピュータシステム100と同様の構成要素を含むことができるコンピュータシステムは、発信デバイス、たとえば、デバイス200からデータパッケージを受信することができる。この例では、データパッケージはターゲットにアドレス指定され得、たとえば、デバイス306の電話番号を含むことができ、データパッケージは、それのサイズを識別する特質を有することができる。
図20の説明を続けると、動作2004は、コンピュータシステムによって、メモリサイズが所定のメモリサイズしきい値よりも小さいと判断するステップを示す。本開示の実施形態では、コンピュータシステム、たとえば、回路は、データパッケージがどのくらい大きいかを判断し、この値を所定の値と比較することができる。一実施形態では、メモリオブジェクトのサイズが所定の値よりも小さい場合、メディアサーバ316は、ターゲットとのPTTチャネルが開かれるまで待ってからデータパッケージを送るように構成され得る。特定の例では、所定のしきい値は5メガバイトに設定され得る。この場合、データパッケージのサイズが1メガバイトであるならば、合計は所定のしきい値よりも小さくなるであろう。
図20の説明を続けると、動作2006は、コンピュータシステムによってデータパッケージをキューに記憶するステップを示す。この例では、メディアサーバ316は、データパッケージのサイズが所定のしきい値よりも小さいと判断することができ、データパッケージ、またはデータパッケージへのポインタは、キュー、たとえばメディアサーバ316のメモリに記憶され得る。この例では、PTTチャネルを確立する代わりに、データパッケージを記憶し、後の時点で送ることができる。
次に図21を参照すると、動作2108〜2114を含む、図20の動作手順2000の代替実施形態が示されている。動作2108は、コンピュータシステムによって、所定の時間量が経過していることを判断するステップと、コンピュータシステムによって、データパッケージを含む電子メールをターゲットデバイスに送るステップとを示す。例示的な一実施形態では、データパッケージがキューイングされたとき、タイマーが所定の時間量後に満了するように設定され得る。タイマーが満了した場合、メディアサーバのプロセッサ102に割込みが送られ得、プロセッサ102は特定の割込みハンドラ命令を実行することができる。たとえば、特定の実施形態では、割込みハンドラ命令がプロセッサ102によって実行され得、プロセッサ102は、電子メールによってデータパッケージをターゲットに送ることができる。
図21の説明を続けると、動作2110は、コンピュータシステムによって、所定の時間量が経過していることを判断するステップと、コンピュータシステムによって、データパッケージを含むマルチメディアメッセージをターゲットデバイスに送るステップとを示す。例示的な一実施形態では、データパッケージがキューイングされたとき、タイマーが所定の時間量後に満了するように設定され得る。タイマーが満了した場合、メディアサーバのプロセッサ102に割込みが送られ得、プロセッサ102は特定の割込みハンドラ命令を実行することができる。この例示的な実施形態では、プロセッサ102は、データパッケージを含むマルチメディアメッセージを生成する命令を実行することができる。たとえば、ワイヤレス通信デバイス200は、データパッケージを含むマルチメディアメッセージを生成することができるマルチメディアメッセージクライアントにターゲットのアドレスとデータパッケージとを渡すことができる。次いで、マルチメディアメッセージをターゲットに関連するアドレスに送ることができる。
図21の説明を続けると、動作2112は、コンピュータシステムによって、発信デバイスから、メモリサイズを有する、ターゲットデバイスにアドレス指定された第2のデータパッケージを受信するステップと、コンピュータシステムによって、キューに記憶されたデータパッケージの合計メモリサイズ値が所定のメモリサイズしきい値よりも大きいと判断するステップと、プッシュツートーク通信チャネルを介してメディアキュー中のデータパッケージをターゲットデバイスに送るステップとを示す。たとえば、プロセッサ102は、キュー中の複数のデータパッケージの合計メモリサイズが所定のメモリサイズしきい値よりも大きいと判断することができる。たとえば、一実施形態では、コンピュータシステムのプロセッサ102は、データパッケージがキューに追加されたとき、たとえば、キュー中の各データパッケージのサイズを加算して合計を取得し、その合計を所定の値と比較するようにプロセッサ102に指示する命令を実行することができる。合計が所定のメモリサイズしきい値よりも大きい場合、動作の結果を示す情報がメモリに記憶され得る。その判断が行われた後に、データパッケージは確立されたPTTチャネルを介してターゲットに送られ得る。
図21の説明を続けると、動作2114は、コンピュータシステムによって、発信デバイスとターゲットデバイスとの間にプッシュツートーク通信チャネルが開かれていることを判断するステップと、データパッケージをターゲットデバイスに送るステップとを示す。たとえば、データパッケージがキューに記憶された少し後に、発信者、たとえば、デバイス200とターゲットデバイスとの間にPTTチャネルが確立され得る。この例では、通信サーバ310は、ターゲットと発信者とを識別する呼セットアップ要求メッセージを受信することができる。この例では、通信サーバ310は、発信者とターゲットとの間に接続が作成されていると判断することができる信号をメディアサーバ316に送ることができる。メディアサーバ316は、ターゲットにアドレス指定されたデータパッケージがキューイングされたことを示す信号を通信サーバ310に送ることができ、通信サーバ310は、メディア処理機能を含むチャネルをセットアップし、そのデータパッケージをターゲットデバイスに送ることができる。
次に図22を参照すると、動作2200〜2206を含む、本開示の態様を実施するための動作手順が示されている。動作2202は、ターゲットとのプッシュツートークチャネルをセットアップしたいという要求をリモートコンピュータに送るステップを示す。例示的な一実施形態では、発信デバイス、たとえば、デバイス200は、ターゲットデバイス、たとえば、デバイス304とのPTTチャネルを確立することができる。たとえば、デバイス200のユーザは、PTT呼セットアップ要求を通信サーバ310に送るようにワイヤレス通信デバイス200に指示するPTTボタン202を押すことができる。この例では、通信サーバ310は、発信者とターゲットとの間にPTTチャネルをセットアップすることができ、たとえば、通信サーバ310は、ネットワーク中の各IPエンドポイント間に別々のポイントツーポイント接続を割り振ることができる。
図22の説明を続けると、動作2204は、ターゲットにアドレス指定されたデータパッケージが前にキューイングされたことを判断するステップを示す。たとえば、発信者とターゲットとの間にPTTチャネルがセットアップされた後、プロセッサ208は、ターゲットにアドレス指定されたデータパッケージが前にキューイングされたことを判断することができる。特定の例では、プロセッサ208は割込みをかけられ得、メディアクライアント228が実行され得る。プロセッサ208は、たとえば、メモリ212に記憶されたデータ構造中の情報を調べることによって、ターゲットにアドレス指定されたデータパッケージがキューイングされていることを判断することができる。
次に動作2206を参照すると、プッシュツートークチャネルを介してデータパッケージをターゲットデバイスに送るステップが示されている。たとえば、デバイス200のトランシーバは、プッシュツートークチャネルを介してデータパッケージを示す情報の1つまたは複数のパケットをターゲットデバイスに送ることができる。特定の例では、プロセッサ208はメディアクライアント228を実行することができ、情報はトランシーバに送られ得る。次いで、トランシーバは、ネットワーク308を介してデータパッケージをターゲットに送ることができる。
図23に、少なくとも1つのデータパッケージが第2のターゲットにアドレス指定された、複数のデータパッケージをキューイングするステップを示す追加の動作2308を含む、図22の動作手順2200の代替実施形態を示す。たとえば、一実施形態では、少なくとも1つのデータパッケージが第2のターゲットにアドレス指定された、複数のデータパッケージがキューイングされ得る。たとえば、データパッケージがキューイングされていることを識別する情報が、メモリ212に記憶されたデータ構造に記憶され、メディアクライアント228によって使用され得る。
図24に、追加の動作2410および2412を含む、図22の動作手順2200の代替実施形態を示す。動作2410は、プッシュツートークチャネルを介して、第2のターゲットにアドレス指定された少なくとも1つのデータパッケージをメディアサーバに送るステップを示す。たとえば、一実施形態では、通信サーバ310は、そのうちの1つがメディアサーバ316であり得る、ネットワーク中の各IPエンドポイント間の別々のポイントツーポイント接続を組み合わせることによってPTTチャネルを確立することができる。この例では、PTTチャネルが開かれたとき、プロセッサ208は割込みをかけられ得、メディアクライアント228が実行され得る。プロセッサ208は、たとえば、メモリ212に記憶されたデータ構造中の情報を調べることによって、ターゲットにアドレス指定されたデータパッケージがキューイングされていることを判断することができ、チャネルが開かれているので、そのチャネルを使用して追加のデータパッケージを送ることができる。しかしながら、第2のターゲットにアドレス指定されたデータパッケージは、第2のターゲットとのチャネルが確立されていないので、メディアサーバ316に送られ得る。次いで、メディアサーバ316は、第2のターゲットにアドレス指定されたデータパッケージを記憶することができ、そのデータパッケージは後の時点で第2のターゲットに送られ得る。
動作2412は、所定の時間量が経過していることを判断するステップと、第2のターゲットにアドレス指定された少なくとも1つのデータパッケージを送るステップとを示す。たとえば、例示的な一実施形態では、データパッケージがキューイングされたとき、タイマーが所定の時間量後に満了するように設定され得る。所定の値は、ネットワーク管理者によって設定され得、様々な状態に基づくことができる。例示的な一実施形態では、タイマーが満了したとき、プロセッサ208に割込みが送られ得、割込みハンドラ命令がプロセッサ208によって実行され得る。割込みハンドラ命令は、プロセッサ208にメディアクライアント228を実行するように指示することができ、プロセッサ208は、デバイスのトランシーバによってデータパッケージをターゲットに送ることができる。この例では、たとえば、所定の時間量が経過するかまたはいずれかのターゲットとのPTTチャネルが確立されるまで、データパッケージを送るプロセスに遅延が導入され得る。
上記の発明を実施するための形態には、例および/または動作図を介して、システムおよび/またはプロセスの様々な実施形態を記載した。そのようなブロック図および/または例が1つまたは複数の機能および/または動作を含んでいる限り、そのようなブロック図または例内の各機能および/または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、またはそれらのほぼすべての組合せによって、個別におよび/またはまとめて実装され得ることを当業者は理解されよう。
本明細書で説明する本主題の特定の態様について図示および説明したが、本明細書の教示に基づいて、本明細書で説明した主題およびそのより広い態様から逸脱することなく変更および改変を行うことができ、したがって、添付の特許請求の範囲は、本明細書で説明した主題の真の趣旨および範囲内にあるすべてのそのような変更および改変をそれらの範囲内に包含すべきであることが当業者には明らかであろう。