(57)【特許請求の範囲】
【請求項１】
無線通信装置において使用されるコンピュータプログラムであって、該無線通信装置は、メモリと、画面表示と、コンピュータプログラムを実行するプロセッサと、前記無線通信装置の動作制御と、を備え、前記制御には前記メモリに記憶されかつマークアップ言語で記述された複数のユーザインタフェースページが用いられ、前記コンピュータプログラムは、
前記ユーザインタフェースページからプロトコルコンポーネントおよびデータコンポーネントを有するＵＲＬを受信するためのシェルであって、前記ＵＲＬは、実行されるコマンドまたは取得されるコンテンツを特定するものであり、前記シェルは、前記プロトコルコンポーネントに従って前記データコンポーネントをプロトコルハンドラに提供し取得したコンテンツを処理のためにコンテンツハンドラに提供する、シェルと、
前記データコンポーネントによって特定されるコンテンツを取得して、該取得したコンテンツを前記シェルに提供する、または前記データコンポーネントによって特定されるコマンドを実行する、各々が前記ＵＲＬを受信するように前記シェルと通信可能に接続される複数のプロトコルハンドラと、
前記取得されたコンテンツを受信し、前記無線通信装置の画面表示に出力するために該取得したコンテンツを処理する、各々が前記シェルと通信可能に接続される複数のコンテンツハンドラと、
を備え、
前記複数のプロトコルハンドラは、
前記シェルからＵＲＬを受信し、前記無線通信装置における無線電話通信機能を起動するために該ＵＲＬをデコードする電話プロトコルハンドラ、および、
前記シェルからＵＲＬを受信し、前記無線通信装置における英数字メッセージの無線送信機能を起動するために、前記データコンポーネントによって特定されるコマンドを実行するメッセージプロトコルハンドラ、
の少なくともいずれか一方を含むコンピュータプログラム。
【請求項２】
無線通信装置において使用されるコンピュータプログラムであって、該無線通信装置は、メモリと、画面表示と、コンピュータプログラムを実行するプロセッサと、前記無線通信装置の動作制御と、を備え、前記制御には前記メモリに記憶されかつマークアップ言語で記述された複数のユーザインタフェースページが用いられ、前記コンピュータプログラムは、
前記ユーザインタフェースページからプロトコルコンポーネントおよびデータコンポーネントを有するＵＲＬを受信するためのシェルと、
前記データコンポーネントによって特定されるコンテンツを取得して、該取得したコンテンツを前記シェルに提供する、または前記データコンポーネントによって特定されるコマンドを実行する、各々が前記ＵＲＬを受信するように前記シェルと通信可能に接続される複数のプロトコルハンドラと、
前記取得されたコンテンツを受信し、前記無線通信装置の画面表示に出力するために該取得したコンテンツを処理する、各々が前記シェルと通信可能に接続される複数のコンテンツハンドラと、
を備え、
前記ＵＲＬは、実行されるコマンドまたは取得されるコンテンツを特定するものであり、前記シェルは、前記プロトコルコンポーネントに従って前記データコンポーネントを前記プロトコルハンドラに提供し取得したコンテンツを処理のために前記コンテンツハンドラに提供し、  
前記複数のプロトコルハンドラは、
前記シェルからＵＲＬを受信し、前記無線通信装置における無線電話通信機能を起動するために該ＵＲＬをデコードする電話プロトコルハンドラ、および、
前記シェルからＵＲＬを受信し、前記無線通信装置における英数字メッセージの無線送信機能を起動するために、前記データコンポーネントによって特定されるコマンドを実行するメッセージプロトコルハンドラ、
の少なくともいずれか一方を含む、コンピュータプログラム。
【請求項３】
無線通信装置において使用されるコンピュータプログラムであって、該無線通信装置は、メモリと、画面表示と、コンピュータプログラムを実行するプロセッサと、前記無線通信装置の動作制御と、を備え、前記制御には前記メモリに記憶されかつマークアップ言語で記述された複数のユーザインタフェースページが用いられ、前記コンピュータプログラムは、
前記ユーザインタフェースページからプロトコルコンポーネントおよびデータコンポーネントを有するＵＲＬを受信するためのシェルと、
前記データコンポーネントによって特定されるコンテンツを取得して、該取得したコンテンツを前記シェルに提供する、または前記データコンポーネントによって特定されるコマンドを実行する、各々が前記ＵＲＬを受信するように前記シェルと通信可能に接続される複数のプロトコルハンドラと、
前記取得されたコンテンツを受信し、前記無線通信装置の画面表示に出力するために該取得したコンテンツを処理する、各々が前記シェルと通信可能に接続される複数のコンテンツハンドラと、
を備え、
前記ＵＲＬは、実行されるコマンドまたは取得されるコンテンツを特定するものであり、前記シェルは、前記プロトコルコンポーネントに従って前記データコンポーネントを前記プロトコルハンドラに提供し取得したコンテンツを処理のために前記コンテンツハンドラに提供し、
前記複数のプロトコルハンドラは、
前記シェルからＵＲＬを受信し、前記無線通信装置における無線電話通信機能を起動するために該ＵＲＬをデコードする電話プロトコルハンドラ、および、
前記シェルからＵＲＬを受信し、前記無線通信装置における英数字メッセージの無線送信機能を起動するために、前記データコンポーネントによって特定されるコマンドを実行するメッセージプロトコルハンドラ、
を含むコンピュータプログラム。
【請求項４】
前記複数のプロトコルハンドラは、
前記シェルからＵＲＬを受信し、前記無線通信装置のメモリに記憶されるデータにアクセスするために該ＵＲＬをデコードするファイルプロトコルハンドラを含む、請求項１乃至３のいずれかに記載のコンピュータプログラム。
【請求項５】
前記複数のプロトコルハンドラは、
前記シェルからＵＲＬを受信し、該ＵＲＬのデータコンポーネントによってアドレス指定されるコンテンツであって、前記無線通信装置から遠隔に格納されるコンテンツを取得する遠隔ファイルプロトコルハンドラを含む、請求項１乃至４のいずれかに記載のコンピュータプログラム。
【請求項６】
前記複数のコンテンツハンドラは、
ＵＲＬに対応するマークアップ言語コンテンツを受信し、該コンテンツを前記無線通信装置の画面表示に表示するマークアップ言語コンテンツハンドラを含む、請求項１乃至５のいずれかに記載のコンピュータプログラム。
【請求項７】
前記複数のプロトコルハンドラは、
前記シェルからＵＲＬを受信し、該ＵＲＬのデータコンポーネントに従って前記無線通信装置の構成設定を行う構成プロトコルハンドラ、を含む、請求項１乃至６のいずれかに記載のコンピュータプログラム。
【請求項８】
前記無線通信装置と共同し、
前記画面表示は、取得したコンテンツを表示し、
前記メモリは、前記画面表示に接続され、前記シェル、前記プロトコルハンドラ、および前記コンテンツハンドラを記憶するものであり、
前記プロセッサは、前記シェル、前記プロトコルハンドラ、および前記コンテンツハンドラを実行するために前記メモリに接続される、請求項１乃至３のいずれかに記載のコンピュータプログラム。
【請求項９】
メモリ、画面表示、ブラウザプログラムを実行するためのプロセッサ及び前記メモリに記憶されかつマークアップ言語で記述された複数のユーザインタフェースページを用いた制御を含む無線通信装置であって、前記ブラウザプログラムは、
前記ユーザインタフェースページからプロトコルコンポーネントおよびデータコンポーネントを有するＵＲＬを受信するためのシェル手段と、
前記データコンポーネントによって特定されるコンテンツを取得して該取得したコンテンツを前記シェル手段に提供する、または前記データコンポーネントによって特定されるコマンドを実行する、各々が前記ＵＲＬを受信するように前記シェル手段と通信可能に接続される複数のプロトコルハンドラ手段と、
前記取得されたコンテンツを受信し、前記無線通信装置の画面表示に出力するために該取得したコンテンツを処理する、各々が前記シェル手段と通信可能に接続される複数のコンテンツハンドラ手段と、
を備え、
前記ＵＲＬは、実行されるコマンドまたは取得されるコンテンツを特定するものであり、前記シェル手段は、前記プロトコルコンポーネントに従って前記データコンポーネントを前記プロトコルハンドラ手段に提供し、前記取得したコンテンツを処理のために前記コンテンツハンドラ手段に提供し、
前記複数のプロトコルハンドラ手段は、
前記シェル手段からＵＲＬを受信し、前記無線通信装置における無線電話通信機能を起動するために該ＵＲＬをデコードする電話プロトコルハンドラ手段、および、
前記シェル手段からＵＲＬを受信し、前記無線通信装置における英数字メッセージの無線送信機能を起動するために、前記データコンポーネントによって特定されるコマンドを実行するメッセージプロトコルハンドラ手段、
の少なくともいずれか一方を含む、無線通信装置。
【請求項１０】
無線通信装置であって、
画面表示と、
複数のキーと、
複数の設定可能な特徴と、
前記画面表示および前記キーに接続されるプロセッサと、
プロトコルコンポーネントおよびデータコンポーネントを有するＵＲＬを受信するための前記プロセッサによって実行されるシェルであって、前記データコンポーネントは、実行されるコマンドまたは取得されるコンテンツを特定するものであり、前記シェルは、前記プロトコルコンポーネントに従って前記データコンポーネントをプロトコルハンドラに提供し取得したコンテンツを処理のためにコンテンツハンドラに提供する、シェルと、
各々が前記ＵＲＬを受信するために前記シェルと接続され、前記プロセッサによって実行される複数のプロトコルハンドラであって、前記データコンポーネントによって特定されるコンテンツを取得して該取得したコンテンツを前記シェルに提供する、または前記データコンポーネントによって特定されるコマンドを実行する、複数のプロトコルハンドラと、
前記プロセッサにより実行され、前記シェルに接続されるマークアップ言語コンテンツハンドラであって、前記ＵＲＬに対応するマークアップ言語コンテンツを受信し、該コンテンツを前記画面表示に表示するマークアップ言語コンテンツハンドラと、を備え、
前記マークアップ言語コンテンツハンドラは、グループからマークアップ言語タグをデコードするものであり、該グループは、
前記複数のキーのうちの一つのアクションを定義するキータグと、
前記画面表示に周期的に表示されるヘルプテキストデータを定義するヘルプタグと、
キーに関連するメニューについてメニューアイテムを定義するキーメニュータグと、
第２のマークアップ言語ページのデータを第１のマークアップ言語ページに含めるために、第１のマークアップ言語ページとは異なる第２のマークアップ言語ページを特定するタグと、
設定に関するユーザ入力を受け付けるための入力フィールド、および設定可能な特徴についてのＵＲＬを含む式の値に等しい選択属性を定義する入力タイプタグであって、前記選択属性は、前記入力フィールドが予め選択されているか否かを示す、入力タイプタグと、
前記ＵＲＬ、および前記式の値に従って条件付きで表示される第１のマークアップ言語データを有する条件付きタグと、からなる、無線通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線通信装置用のマンマシンインタフェースに関し、特に、マークアップ言語から構築されたマンマシンインタフェースに関する。 
【背景技術】
【０００２】
無線通信装置は、個人通信の必要性によりますます一般的になっている。これら装置としては、例えば、セル式電話、英数字ページャ、「パームトップ」コンピュータ、およびパーソナルインフォメーションマネージャ（ＰＩＭ）、および他の小型の主にハンドヘルド式の通信装置およびコンピューティング装置が含まれる。無線通信装置は、その特徴において相当に成熟しており、現在では、電話の呼び出しのような基本的な固定通信機能だけでなく、電子メール、ファクシミリの送受信、インターネットアクセス、およびワールドワイドウェブの閲覧等、より進んだ通信機能もサポートする。 
【０００３】
一般に、無線通信装置は、各種のハンドセット機能および基地局への通信接続を管理するソフトウェアを有する。すべての電話通信機能を管理するソフトウェアは、通常、電話スタックと呼ばれ、画面表示を管理するとともに、キー押下によるユーザ入力を処理するソフトウェアはマンマシンインタフェース、または「ＭＭＩ」と呼ばれる。ＭＭＩは、無線通信装置のソフトウェアの最上であり、かつ最も目に見えるレイヤである。 
【０００４】
無線通信装置は概して非常に望ましくかつ小さなフォームファクタに達しているため、成功する装置の主な決定要素は、その機能セットおよび使いやすさにあると思われる。したがって、使いやすく、かつ機能の豊富なセットを有する無線通信装置を迅速に設計し、テストして、配送する能力（互いに相反することが多い属性）が、成功する製品の性能に対して極めて重要である。
【０００５】
しかし、無線通信装置は、ノートブックおよびデスクトップのコンピュータ等、同様な通信特徴を有しうる、より大型のプロセッサベースのシステムでは生じない種々のより挑戦的な設計および実施問題を提示する。これら設計における挑戦としては、ユーザインタフェースの設計、特定サービスの運営者のための装置のカスタマイズ、インターネットおよびワールドワイドウェブアクセスと他の通信機能性との統合、およびソフトウェア開発プロセスが含まれる。
【０００６】
ユーザインタフェース設計制約
デスクトップおよびノートブックのコンピュータとは異なり、無線通信装置は、非常に小さな画面表示サイズを必要とするフォームファクタを有する。通常、デスクトップコンピュータは、少なくとも１４インチの画面サイズであり、典型的に６４０×４８０から１０２４×７６８ピクセル間の解像度を有するディスプレイを備える。それに対して、無線通信装置は通常、２５×２５ｍｍから８０×１２０ｍｍの間の画面サイズ、すなわちデスクトップまたはノートブックの画面サイズの約３〜８％の画面サイズ、および９０×６０から１２０×１２０ピクセルの間の解像度を有する。直接の結果として、無線通信装置のユーザインタフェース設計は、テキスト、イメージ、アイコン等の表示にほんのわずかな表示エリアを使用しながら、電子メール、ファクシミリ、およびウェブ閲覧等、デスクトップコンピュータと本質的に同じ特徴に対するアクセスを提供しなければならない。フォーム等、従来のウェブコンテンツは、従来のデスクトップコンピュータのより大きな画面サイズを想定しているため、これらの特徴を提供するようユーザインタフェースを構築するというこの問題は、ウェブベースのコンテンツを取り扱う場合に特に顕著である。このようなフォームを無線通信装置の小さな画面上に表示すると、結果としてごちゃ混ぜになり、コンテンツの使用が困難になる。 
【０００７】
無線通信装置の別のユーザインタフェース制約は、ユーザが使用可能な入力セットが厳しく制限されていることである。従来のデスクトップまたはノートブックコンピュータは、コンピュータマウス、トラックボール、ジョイスティック等のカーソルベースのポインティングデバイスと、完全なキーボードとを備えている。これにより、スクロールバーのクリックおよびドラッグ、ハイパーテキストリンクのクリック、およびＨＴＭＬフォーム等、フォームのフィールド間のキーボードによるタブ送りでのウェブコンテンツのナビゲートが可能になる。無線通信装置は、通常アップおよびダウンキー、および１から３のソフトキーという、非常に限られた数の入力を有する。 
【０００８】
したがって、無線通信装置の限られた画面解像度および入力機能性を考慮した、ウェブコンテンツとのユーザインタフェースのカスタマイズおよび使用を可能にする、無線通信装置のＭＭＩ用のソフトウェアアーキテクチャを提供することが望ましい。
【０００９】
インターネット／ウェブ機能と電話通信との統合 
インターネットおよびワールドワイドウェブの出現に伴って、最高性能の無線通信装置は、完全なインターネットアクセスと、ワールドワイドウェブを直接閲覧する能力を提供する。現在の装置は、厳密なモード式インタフェースを通して、インターネットおよびワールドワイドウェブのアクセスを提供する。厳密なモード式インタフェースでは、ユーザが電話をかける、格納した電話帳にアクセスする、ファクシミリを送信する等のために、無線通信装置を使用して本来の通信モードまたは閲覧モードを選択しなければならない。「閲覧モード」において、ユーザは電話をかけるために電話番号をダイアルすることができない。同様に、電話通信モードにおいて、ユーザはウェブサイトにアクセスできない。このため、ユーザは、閲覧中に取得したウェブコンテンツのアイテムをユーザの電話帳または電子メールメッセージ中に組み込むなど、ウェブコンテンツをダウンロードして、それを電話機能のコンテキストで取り扱うことが可能である継ぎ目のない様式で無線通信装置を動作することができない。
【００１０】
したがって、インターネットおよびワールドワイドウェブアクセス特徴が、電話通信および無線通信装置の他の制御と継ぎ目なく統合されて、ユーザがいつでも無線通信装置のいかなる特徴にもアクセスすることができるＭＭＩを提供することが望ましい。 
【００１１】
ＭＭＩのソフトウェア工学
通常、ＭＭＩは、電話制御機能を管理するより大きなコードにおけるモジュールとして実施される。ＭＭＩは、残りの電話制御ソフトウェアと同じコンピュータ言語でコード化される。これは、電話制御ソフトウェア全体の作成に用いられたのと同じプログラミングスキルおよびツールを使用せずに、ＭＭＩを変更することを困難にしている。換言すれば、ＭＭＩにおけるいずれの変更も、基礎をなす電話通信プログラミングの詳細およびコンピュータ言語に精通した熟練のプログラマのサービスを必要とする。さらに、ＭＭＩは電話制御ソフトウェアについてのコードの一体化部分であるため、ＭＭＩでの新しい変更を実施するということは、電話制御ソフトウェアすべての新しいイメージをコンパイルし、新しいＭＭＩ特徴が他のすべてのコードモジュールと互換性があることを保証するために、その結果をテストすることを意味する。簡潔にいえば、ＭＭＩソフトウェアの変更によって導入される問題は、潜在的には、ハンドセットを誤作動させたり、他のユーザに対するネットワーク上のサービスを混乱させたりする可能性がある。変更の程度に応じて、電話制御ソフトウェアの任意の部分を変更した結果、バグが生じたり、および／または無線通信装置全体を新しいタイプへの承認が必要となる可能性がある。したがって、ＭＭＩ機能性の設計および実施を電話制御ソフトウェアの実施から切り離し、それによって製造業者が、特定の顧客のニーズに合うように、ＭＭＩ設計を迅速かつ安全にカスタマイズすることが可能なソフトウェアアーキテクチャを提供することが望ましい。 
【００１２】
サービス運営者についてのＭＭＩのカスタマイズ：「ブランド化」 
無線通信装置産業において、セルラサービスプロバイダ等のサービス運営者は、精力的に各自の無線通信装置製品をブランド化するとともに、ユーザに対して新しい電話通信特徴およびネットワークサービスを提供することで、顧客を引きつけ、かつ保持することに関心を抱いている。これらの中で重要なことは、上述したように、ボイスメール、電子メッセージング、インターネットアクセス等、ユーザに対する付加価値サービスである。「ブランド化」とは、記章、ロゴ、または他のしるしを無線通信装置のＭＭＩの中に埋め込むこと、およびそれを顧客に対して該サービス運営者から発せられたものであることを識別するその特徴のことである。 
【００１３】
したがって、通常、基本的なハードウェアコンポーネントのみを提供する無線通信装置の製造業者は、サービス運営者に、ソフトウェアプログラミングによりこれらの特徴およびサービスを無線通信装置と統合するための方法を提供するとともに、特徴をブランド化するための機構を提供しなければならない。鍵となる問題は、これらのサービスは、それぞれの機能性および要件が異なっている必要があることであり、ユーザに対してサービスおよび特徴の現行のアレイを提供するというタスクは、困難なものである。 
【００１４】
無線通信装置の製造業者は、従来、無線通信装置を販売しているサービス運営者毎に、各自の通信サービスに関連して無線通信装置制御ソフトウェアの特別バージョンを作製することで、この問題に対処してきた。無線通信装置の特別バージョンはそれぞれ、装置の製造業者のブランド化、運営者のブランド化、およびサービス運営者がサポートする特徴およびサービスが何であれ、それに対するサポートを含む。これらの各バージョンは、新しい特徴またはサービスが消費者に提供される際に、テストし、メンテナンスし、かつ変更すべきである異なるソフトウェアとなる。これは、ソフトウェア開発費用およびメンテナンス問題をかなり増大させる。さらに、無線通信装置の製造業者がサービス運営者にＭＭＩおよび電話制御ソフトウェアのソースコードを提供しない限り、無線通信装置の製造業者が、サービス運営者のブランド化およびＭＭＩ設計要件に直接関与する必要がある。したがって、無線通信装置の製造業者が各サービス運営者に対して単一体の電話制御ソフトウェアを提供することを可能にするとともに、各サービス運営者が独立してかつ無線通信装置の製造業者の助力なしで、無線通信装置についてのＭＭＩを設計、実施、かつブランド化することを可能にする、ＭＭＩについてのソフトウェアアーキテクチャを提供することが望ましい。 
【発明の概要】
【発明が解決しようとする課題】
【００１５】
本発明は、無線通信装置にマークアップ言語をベースとしたＭＭＩを設けることで、従来の無線通信装置の各種制限を克服する。マークアップ言語は、コンテンツの論理的コンポーネントを示すコンテンツ自体に予め定義されたシンボル、ページまたは画面におけるコンテンツのレイアウトについての命令、またはコンテンツの表示、操作、または変更に責任を負うある自動システムによって解釈可能な他のデータを含有することにより、ページのコンテンツまたは画面表示を定義することを可能にするコンピュータプログラミング言語である。特に、本発明は、携帯電話のようにポインティングデバイスを持たない装置において、ユーザに提供するナビゲーション能力を向上させることを目的とする。
【課題を解決するための手段】
【００１６】
１つの態様において、マークアップ言語で定義されたユーザインタフェースを備える無線通信装置が提供される。これを作用させるために、本発明は、ユーザインタフェースにおける電話通信機能のユーザ選択に応答して、無線通信装置の電話通信制御およびインターネット上に配置されたコンテンツに関連するデータアイテムのユーザ選択に応答して、ハイパーテキスト転送プロトコル（ＨＴＴＰ）を介したインターネットアクセスの双方を提供するために無線通信装置が使用するマークアップ言語ブラウザを含む。 
【００１７】
１つの実施形態において、無線通信装置の通信制御および他の機能は、マークアップ言語で書かれた様々なユーザインタフェースページにおいて定義される。各制御機能は、ユニフォームリソースロケータ（ＵＲＬ）に関連づけられるか、またはそれによって起動される。ＵＲＬは、データアイテムを取得するためのプロトコルおよびいずれのデータアイテムをフェッチまたは操作すべきかを指定するデータアイテムである。ユーザインタフェースページは、無線通信装置のローカルメモリに格納され、ブラウザによってフェッチされ、ブラウザがそれらをデコードして、適切なユーザインタフェース要素を表示する。また、ブラウザは、マークアップ言語ページまたは遠隔に格納された他のコンテンツを、ワールドワイドウェブ等の通信ネットワークを介してかかるページにアクセスすることで、モードレスにフェッチし、かつ同様にこれら遠隔的にアクセスしたページをデコードおよび表示することができる。ユーザインタフェースページが表示されると、ユーザが選択した制御機能は、ＵＲＬまたはコマンドデータをブラウザに渡す。ブラウザは、受け取ったＵＲＬまたはコマンドに応じた通信機能を発効させる。
【００１８】
ブラウザは、好ましくは、電話通信プロトコルハンドラ、ローカルファイルプロトコルハンドラ、および遠隔ファイルプロトコルハンドラを含む複数のプロトコルハンドラと、マークアップ言語ハンドラを含む複数のコンテンツハンドラとを含む。電話通信プロトコルハンドラは、電話ダイアリングおよび応答等、電話通信制御特徴についてのＵＲＬをデコードし、無線通信装置のハードウェアを制御する電話通信制御ソフトウェアの基礎をなす機能を起動させる。電話通信制御の表示に必要なＵＲＬのいかなるコンテンツも、マークアップ言語コンテンツハンドラに提供され、マークアップ言語コンテンツハンドラは、コンテンツを構文解析して、画面表示上に表示する。マークアップ言語コンテンツハンドラは一般に、すべてのユーザインタフェースページを含むフェッチされたマークアップ言語ページをいずれも表示すること、および、フォームおよび他の入力手段を介してこれらのページへのユーザ入力を受け取ることに対して責任を負う。 
【００１９】
マークアップ言語ハンドラは一般に、２つのソース、すなわちローカルファイルプロトコルハンドラおよび遠隔ファイルプロトコルハンドラからコンテンツを受け取る。遠隔ファイルプロトコルハンドラは、ワールドワイドウェブ上のコンテンツにアクセスするためにＵＲＬをデコードし、無線通信装置の画面表示にコンテンツを出力するために、ウェブページ、フォーム、アプレット等のフェッチしたコンテンツをマークアップ言語ハンドラに提供する。１つの適した遠隔ファイルプロトコルハンドラは、ＨＴＴＰを実施する。ローカルファイルプロトコルハンドラは、ローカルユーザインタフェースファイルにアクセスするためにＵＲＬをデコードし、かかるコンテンツをマークアップ言語コンテンツハンドラに提供する。ＭＭＩの好ましい実施形態では、ユーザインタフェースはハイパーテキストマークアップ言語即ち「ＨＴＭＬ」で定義され、かつブラウザは、ＨＴＭＬで定義され、整えられたウェブコンテンツおよびユーザインタフェースを双方とも表示するＨＴＭＬコンテンツハンドラを含む。 
【００２０】
無線通信装置のＭＭＩを定義するために、マークアップ言語を使用することで、従来のＭＭＩソフトウェアアーキテクチャを凌ぐ多数の利点がもたらされる。まず、マークアップ言語の使用により、インターネットおよびワールドワイドウェブアクセスを無線通信装置の電話通信および他の特徴と完全かつ継ぎ目なしに統合することができる。ＭＭＩは、すべての機能的画面の表示に、ＨＴＭＬ等のマークアップ言語を用いるため、ワールドワイドウェブコンテンツ（これもまたＨＴＭＬで書かれる）は、無線通信装置の他の特徴と同じ外観を有する。より具体的には、ＭＭＩのページは、ウェブコンテンツがアクセスされるのと全く同様に、ＵＲＬを用いてアクセスされる。無線通信装置は、機能的ページを表示する場合にはローカルＵＲＬにアクセスし、ウェブコンテンツを表示する場合には、ウェブコンテンツを取得するために、ウェブサーバとの接続を自動的に開始する。このため、マークアップ言語ベースのＭＭＩにより、ユーザが、従来の装置のように無線通信装置を電話通信モードと「閲覧」モードの間で切り替える必要なく、いつでもインターネットおよびワールドワイドウェブにアクセスできるようにするモードレスなユーザインタフェースが可能になる。 
【００２１】
マークアップ言語ベースのＭＭＩのさらなる利点として、ワールドワイドウェブからのウェブページ、フォーム等のウェブコンテンツにアクセスでき、かつ電話通信、メッセージング、および無線通信装置の他の非インターネットベースの特徴に直接統合することができることがある。例えば、好ましい実施形態において、無線通信装置は、電話番号および氏名を格納した電話帳を有する。従来では、ユーザが無線通信装置のキーパッドを使用してこれらのエントリを手動でキー入力する必要があった。本発明によるＭＭＩを使用した無線通信装置では、ユーザが容易に情報を直接電話帳に格納できるようにするＨＴＭＬを含みうる、ワールドワイドウェブ上の電話ディレクトリに単にアクセスするだけで、ユーザは、エントリを電話帳に追加することができる。 
【００２２】
また、マークアップ言語の使用により、特定の無線通信装置についてのＭＭＩ作成のソフトウェア工学プロセスの複雑性が低減される。第１に、本発明のＭＭＩはマークアップ言語をベースとしているため、Ｃまたは他の低レベル言語プログラミングに熟練することをプログラマに要求する従来のＭＭＩとは異なり、完全に形の整ったユーザインタフェースを設計するために、非常に限られた量のプログラミングスキルのみを必要とする。ユーザインタフェースの編集および変更には、完全なアプリケーションプログラミング環境ではなく、単純なマークアップ言語およびイメージ編集ツールのみが必要である。第２に、本発明のマークアップ言語ベースのＭＭＩを使用することで、電話通信制御ソフトウェア全体を再びコンパイルし、かつパッケージ全体を再テストして認証する必要なく、ＭＭＩのいずれの特徴も変更することができる。ＭＭＩは基礎をなす電話通信制御およびエアインタフェーススタックから切り離されているため、個々に変更あるいは追加されるユーザインタフェースページをテストする必要があるだけである。これは、市場に出すまでの時間を短縮し、かつ新しい特徴およびサービスが利用可能になる際の、ＭＭＩの設計、メンテナンス、および変更における容易さを増大させる。また、ユーザインタフェースを変更し、その変更をテストするための時間の低減は、従来のＭＭＩを用いた場合よりも短時間でより多くの異なるバージョンのプロトタイプを作成することができることを意味するため、所与のセットのユーザ要件および特徴について最良のユーザインタフェース設計に対する設計探求が促進される。 
【００２３】
さらに、ＭＭＩのユーザインタフェースを作成かつ変更することができる容易さ、および市場に出すまでの時間の短縮により、サービス運営者が、あらゆるターゲット顧客セグメントそれぞれに対して特定の製品ソフトウェアイメージを作成するために装置の製造業者を必要とせずに、特定の顧客セグメントをターゲットにした無線通信装置を迅速に製造することができる。例えば、サービス運営者は、同じ無線通信装置ハードウェアおよび電話通信制御ソフトウェアを、それぞれニーズおよび無線通信装置の特徴を使用する能力が異なる会社役員、ティーンエイジャー、および高齢者向けに設計された異なるユーザインタフェースと共に使用してもよい。 
【００２４】
例えば、ユーザインタフェースのページを定義するためにマークアップ言語を使用すると、任意のページにおいて以下の任意のアイテムを変更することができる。すなわち、タイトルバーの有無およびテキスト、すべての情報的テキスト、オプションリストテキスト、すべての後続画面へのリンク、ソフトキー割り当て、永久にスクロールするバナーメッセージ、バナー広告、およびヘルプテキストである。 
【００２５】
また、マークアップ言語ベースのＭＭＩの使用により、異なるサービス運営者に対する無線通信装置のブランド化における利点がもたらされる。ユーザインタフェースはマークアップ言語ページで定義されるため、個々のサービス運営者がサービス運営者に特定のロゴ、アートワーク、およびテキストを容易に追加および変更することが可能である。このため、本無線通信装置は、多くのサービス運営者に対して同一の無線通信装置ハードウェアおよび電話制御ソフトウェアを提供することができ、サービス運営者はそれぞれ、従来のように無線通信装置の製造業者が各運営者毎に異なるユーザインタフェースを実施、テスト、および出荷する必要なく、各自独特なユーザインタフェースにより、無線通信装置を迅速かつ容易にブランド化することができる。 
【００２６】
マークアップ言語ベースのＭＭＩを備えた無線通信装置の提供において、本発明の一つの実施形態によれば、無線通信装置との作動のために、標準ＨＴＭＬを特に有用にする多くの拡張を用いて、標準ＨＴＭＬが強化される。標準ＨＴＭＬは、大部分の無線通信装置において存在しない特徴である、キーボード、ポインティングデバイス、およびフルサイズの表示画面を備えた従来のコンピュータの存在を想定している。ＨＴＭＬの最も特筆すべき欠陥は、 
・フォーム要素（例えば、チェックボックス、ラジオボタン）は、マウスなしではナビゲートしにくい。 
・今日コンテンツに存在するフォームは、ユーザにとって大きすぎて、ユーザが小さな画面上で記入する際にいくつかのコンテンツを維持することができない傾向がある。フォームがｎ個のフォームに分割される場合、ユーザの入力は、ｎ―１回クライアントとサーバの間で送信され、かつクライアントに返送されて、帯域幅を無駄にする。さらに、シリーズになったより小さなフォームでは、ユーザは、シリーズにおける各フォーム毎にバックキーを押下するため、トランザクションの終了が煩雑になりうる。 
・ハイパーリンクは、選択するためのマウスおよびページのコンテンツをスクロールするための別個のスクロールバーなしでは、追随しにくい。追随するハイパーリンクを選択し、かつ表示をスクロールするために、アップキーおよびダウンキーのみを有する装置において、アップおよびダウンキーにスクロールまたは選択のいずれかを固定して割り当てることは、必要とされるナビゲーション能力の提供に不十分である。 
【００２７】
ユーザインタフェースを定義する言語として、ＨＴＭＬは多くの鍵となる特徴を欠いている。
・ソフト機能キー、または実際に装置上のあらゆるキーについてのアクションを特定する能力。
・選択のポップアップメニューを定義する能力。
・氏名および電話番号等、装置に格納したいデータを表示する、あるいは変更する能力。 
・空白を埋めるために、Ｃコードを書かずにテンプレートとして画面を設計する能力。 
・電波を介した（over the air）コンテンツにより、装置がユーザに提示するインタフェースを拡張またはカスタマイズできるようにする能力。 
【００２８】
本発明の一つの実施形態において、マルチパートフォームの設計、ウェブページのナビゲートおよびハイパーテキストリンクの選択の双方に限られた数のキーの使用、ＵＲＬを使用しての無線通信装置の任意のキー（キーパッドまたはソフトキー）についてのアクションの定義、ソフトキーについてのオプションメニューの作成、およびテキスト、フォーマッティング、およびユーザインタフェースガジェット（gadget）の条件付き包含を容易にするＨＴＭＬ言語への拡張が提供される。 
【００２９】
より具体的には、メニューのキーへのバインディングを含む、特定の機能またはアクションをキーパッドの任意のキーに割り当てることができる「キー」タグが提供される。「ｋｅｙｍｅｎｕ」タグは、メニューアイテムの仕様をキーに対するメニューバウンドに含めることができる。「Ｔｅｍｐｌａｔｅ」タグおよび「ｉｎｃｌｕｄｅ」タグは、外部ＨＴＭＬまたは他のデータディレクトリをページのＨＴＭＬに置換または挿入可能とする。「ｈｅｌｐ」タグは、設定された期間の後、ページのタイトルバーにわたって自動的にスクロールするｈｅｌｐストリングの定義を可能にする。条件付きタグは、例えば変数または装置の構成設定をベースとして、ページ内のＨＴＭＬデータを条件付きで表示するための式をテストできるようにする。フォームについての「ｎｅｘｔ」メソッドは、状態を維持するためにクライアントとサーバの間で隠しデータを繰り返し伝送する必要なく、マルチパートフォームの状態を維持できるようにする。改良されたナビゲーションメソッドは、別個のタブおよびエンターキーと、スクロールバーがない状態で、無線通信装置のアップおよびダウンキーで、ページのスクロールおよびユーザインタフェースガジェットおよびハイパーリンクの選択の双方を制御できるようにする。 
【００３０】
本発明の一つの側面により、表示画面と、メモリと、プロセッサとを備える無線通信装置であって、該無線装置のメモリは、無線通信装置の設定情報と、設定情報を取得して無線通信装置の設定を行なうためのユーザインタフェースを定義する、マークアップ言語でエンコードされた複数のユーザインタフェース定義ファイルと、該複数のユーザインタフェース定義ファイルをデコードして表示画面上に表示するための、プロセッサによって実行されるマークアップ言語ブラウザと、を記憶しており、設定情報の一部は、所定のセキュリティレベルを有するユーザインタフェース定義ファイルを介してのみ取得されることを特徴とする無線通信装置が提供される。また、上記設定情報の一部は、無線通信装置のＰＩＮ番号を含むよう構成されても良い。
【００３１】
また、本発明の別の側面により、表示画面と、無線通信装置の設定情報を記憶するメモリと、プロセッサとを備える無線通信装置において、メモリにプログラムとして記憶され、プロセッサによって実行されるブラウザであって、設定情報を取得して無線通信装置の設定を行なうためのユーザインタフェースを定義する、マークアップ言語でエンコードされた複数のユーザインタフェース定義ファイルを読み出し、読み出した複数のユーザインタフェース定義ファイルを、デコードして表示画面上に表示し、表示されたユーザインタフェース定義ファイルが所定のセキュリティレベルを有する場合のみ、設定情報の一部を取得可能であることを特徴とするブラウザが提供される。
【００３２】
また、本発明の別の側面により、表示画面と、無線通信装置の設定情報を記憶するメモリと、プロセッサとを備える無線通信装置において実施されるコンピュータ実施方法であって、設定情報を取得して無線通信装置の設定を行なうためのユーザインタフェースを定義する、マークアップ言語でエンコードされた複数のユーザインタフェース定義ファイルを読み出すステップと、読み出した複数のユーザインタフェース定義ファイルを、デコードして表示画面上に表示するステップと、表示されたユーザインタフェース定義ファイルが所定のセキュリティレベルを有する場合のみ、設定情報の一部を取得可能とするステップとからなる方法が提供される。
【００３３】
上述の構成のように無線通信装置の設定をマークアップ言語ベースのユーザインタフェースを通じて提供することで、サービス運営者が、熟練またはソフトウェア開発環境を必要とせず、または従来のＭＭＩのソフトウェア管理問題なしで、新しいユーザインタフェースおよび異なる無線通信装置用のカスタム特徴セットを容易かつ迅速に生成することが可能となる。また、サービス運営者および製造業者が、個々でもまたサービス運営者毎に異なるＭＭＩソフトウェアを作成する必要なく、望むように無線通信装置を迅速かつ効率的にブランド化することも可能となる。さらに、表示されたユーザインタフェース定義ファイルが所定のセキュリティレベルを有する場合のみ、設定情報の一部を取得可能とすることで、機能またはデータへの無許可のアクセスを防止することができる。
【００３４】
また、本発明の別の側面により、少なくとも１つのソフトキーを備えた無線通信装置を動作するコンピュータ実施方法であって、マークアップ言語で定義された第１のユーザインタフェース定義ファイルを受信するステップと、該第１のユーザインタフェース定義ファイルを構文解析し、ソフトキーの１つとメニューアイテムのメニューの間の関連を格納するステップであって、各メニューアイテムはＵＲＬまたはアクションのいずれかに関連する、ステップと、ソフトキーのユーザ選択の受信に応答して、メニューアイテムのメニューを表示するステップと、アクションに関連する表示されたメニューアイテムのユーザ選択に応答して、該アクションを発効させるステップと、ＵＲＬに関連するメニューアイテムのユーザ選択に応答して、該ＵＲＬによって指定される無線通信装置の通信機能を発効させるステップとを含む方法が提供される。
【００３５】
また、本発明の別の側面により、無線通信装置のプロセッサにより、ブラウザの実行で該無線通信装置の動作を制御するためのブラウザプログラム製品であって、該ブラウザは、  マークアップ言語で定義された第１のユーザインタフェース定義ファイルを検索する動作と、該第１のユーザインタフェース定義ファイルを構文解析し、ソフトキーの１つとメニューアイテムのメニューの間の関連を格納する動作であって、各メニューアイテムはＵＲＬまたはアクションのいずれかに関連する、動作と、ソフトキーのユーザ選択の受信に応答して、メニューアイテムの前記メニューを表示する動作と、アクションに関連する表示されたメニューアイテムのユーザ選択に応答して、該アクションを発効させる動作と、ＵＲＬに関連するメニューアイテムのユーザ選択に応答して、該ＵＲＬによって指定される無線通信装置の通信機能を発効させる動作とを実行するブラウザが提供される。
【００３６】
さらに、本発明の別の側面により、表示画面と、メモリと、少なくとも一つのソフトキーと、プロセッサとを備える無線通信装置であって、メモリは、マークアップ言語でエンコードされた複数のユーザインタフェース定義ファイルと、プロセッサによって実行されるマークアップ言語ブラウザと、を記憶しており、ブラウザは、ユーザインタフェース定義ファイルを検索する動作と、ユーザインタフェース定義ファイルを構文解析し、ソフトキーの１つとメニューアイテムのメニューの間の関連を格納する動作であって、各メニューアイテムはＵＲＬまたはアクションのいずれかに関連する、動作と、ソフトキーのユーザ選択の受信に応答して、メニューアイテムのメニューを表示する動作と、アクションに関連する表示されたメニューアイテムのユーザ選択に応答して、該アクションを発効させる動作と、ＵＲＬに関連するメニューアイテムのユーザ選択に応答して、該ＵＲＬによって指定される無線通信装置の通信機能を発効させる動作と、を含むことを特徴とする無線通信装置が提供される。
【００３７】
上述の構成により、ソフトキーと関連付けられるＵＲＬに関するメニューアイテムに対して、ユーザ選択がなされた場合に、該ＵＲＬによって指定される無線通信装置の通信機能を発効させることができる。
【図面の簡単な説明】
【００３８】
【図１】本発明による無線通信装置のトップレベルのソフトウェアおよびシステムアーキテクチャの図である。
【図２】本発明による無線通信装置のサンプルユーザインタフェースページの図である。
【図３】本発明による無線通信装置のマンマシンインタフェースの詳細なソフトウェアアーキテクチャの図である。
【図４】ＵＲＬ履歴スタックの図である。
【図５】受信したＵＲＬの取り扱いにおけるシェルの動作のフローチャートである。
【図６ａ】ユーザインタフェースガジェットに関連するストリング入力を処理する際のＨＴＭＬｐコンテンツハンドラの動作のフローチャートである。
【図６ｂ】ユーザインタフェースガジェットに関連するストリング入力を処理する際のＨＴＭＬｐコンテンツハンドラの動作のフローチャートである。
【図７】＜ＫＥＹ＞および＜ＫＥＹＭＥＮＵ＞のタグを使用してキーメニューを示すＨＴＭＬｐファイルおよびページの例である。
【図８】＜ＨＥＬＰ＞タグにより、バナーをスクロールしているヘルプテキストを示すＨＴＭＬｐファイルおよびページの例である。
【図９】テンプレートファイルについての＜ＴＥＭＰＬＡＴＥ＞タグの使用を示すＨＴＭＬｐファイルおよびページの例である。
【図１０】電話帳を編集するためのＨＴＭＬｐファイルおよびページの例である。
【図１１】電話帳を編集するためのＨＴＭＬｐファイルおよびページの別例である。
【図１２】ＣＨＥＣＫＥＤおよびＳＥＬＥＣＴＥＤ属性を評価するための、式の使用を示すＨＴＭＬｐファイルおよびページの例である。
【図１３】＜ＩＮＣ＞タグを含んだＨＴＭＬを示すＨＴＭＬｐファイルおよびページの例である。
【図１４】＜ＩＮＰＵＴ＞タグについてＰＨＯＮＥＮＵＭおよびＰＨＯＮＥＮＡＭＥ属性を使用したＨＴＭＬｐファイルおよびページの例である。
【図１５】ＨＴＭＬｐコンテンツハンドラにより入力キーを処理するためのプロセスのフローチャートである。
【図１６】複雑なフォームについての従来のＨＴＭＬファイルおよびページの例である。
【図１７ａ】図１７ａはＨＩＤＤＥＮ入力データを使用した従来の多重フォームアプローチを示すＨＴＭＬファイルおよびページの例である。
【図１７ｂ】図１７ｂはＨＩＤＤＥＮ入力データを使用した従来の多重フォームアプローチを示すＨＴＭＬファイルおよびページの例である。
【図１８ａ】図１８ａはＮＥＸＴメソッドとともに使用されるマルチパートフォームを示すＨＴＭＬｐファイルおよびページの例である。
【図１８ｂ】図１８ｂはＮＥＸＴメソッドとともに使用されるマルチパートフォームを示すＨＴＭＬｐファイルおよびページの例である。
【図１９】＜ＬＩＮＫＭＥＮＵ＞タグを使用せずに、ハイパーリンクのメニューのデフォルト作成を示すＨＴＭＬｐファイルおよびページの例である。
【図２０】＜ＬＩＮＫＭＥＮＵ＞タグの使用を示すＨＴＭＬｐファイルおよびページの例である。
【図２１ａ】図２１ａは電話番号をダイアルするための各種ユーザインタフェースページを示す。
【図２１ｂ】図２１ｂは電話番号をダイアルするための各種ユーザインタフェースページを示す。
【図２１ｃ】図２１ｃは電話番号をダイアルするための各種ユーザインタフェースページを示す。
【図２１ｄ】図２１ｄは電話番号をダイアルするための各種ユーザインタフェースページを示す。
【図２１ｅ】図２１ｅは電話番号をダイアルするための各種ユーザインタフェースページを示す。
【図２２ａ】図２２ａはアクティブコールを取り扱うための各種ユーザインタフェースページを示す。
【図２２ｂ】図２２ｂはアクティブコールを取り扱うための各種ユーザインタフェースページを示す。
【図２２ｃ】図２２ｃはアクティブコールを取り扱うための各種ユーザインタフェースページを示す。
【図２３】「ｅｘｔｒａ」プロトコルの使用を示すＨＴＭＬｐファイルおよびページの例である。
【図２４】内蔵プロトコルと併用されるアイコンおよびイメージの表である。
【図２５】＜ＤＩＡＬ＞タグの使用を示すＨＴＭＬｐファイルおよびページの例である。
【発明を実施するための形態】
【００３９】
Ａ．システムおよびソフトウェアアーキテクチャ 
次に図１を参照して、本発明によるマークアップ言語ベースのＭＭＩ１０２を使用する無線通信装置１００のシステムおよびソフトウェアアーキテクチャを示す。無線通信装置１００のハードウェアは、プロセッサ１２４と、メモリ１２６と、画面表示１３６と、キーパッド１２８とを含む。メモリ１２６は、データ長期保存用のＲＯＭ、ＲＡＭ、およびフラッシュメモリを含む。ハードウェア特徴の提供に適した無線通信装置１００は、Ｎｏｋｉａ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ、Ｉｎｃ．製のＮｏｋｉａ  ６１００（商標）である。 
【００４０】
無線通信装置１００は、パワー、メモリ、スレッド（通信接続）、キーパッド入力、およびタイマアクティビティを管理するためのモジュールを含む従来のリアルタイムオペレーティングシステム１２２をメモリ１２６に格納して、実行する。リアルタイムオペレーティングシステム１２２は、標準的なアプリケーションプログラミングインタフェースを提供し、ＭＭＩ１０２の上位レベルのコンポーネントが無線通信装置１００の機能性を要求するとともに、データを送受信できるようにする。 
【００４１】
また、電話をかける、電話を受ける、複数の電話線（適用可能であれば）の管理、テキストメッセージング（適用可能であれば）の管理、電話信号の監視、および他の基本的な電話通信機能を含む、主要な電話制御を提供する電話通信制御モジュール１２０もメモリ１２６に格納され、かつリアルタイムオペレーティングシステム１２２と通信する。電話通信制御モジュール１２０は、エアインタフェースプロトコルを実施する従来の電話プロトコルスタックを含む。電話通信制御モジュール１２０は、これらの特徴にアクセスするため、ＭＭＩ１０２に対するアプリケーションプログラミングインタフェースを提供する。電話通信制御モジュール１２０およびリアルタイムオペレーティングシステム１２２は、通常、無線通信装置１００の製造業者によって設けられ、それらの特定の実施は、本発明にとって重要ではない。 
【００４２】
画面表示１３６は、ビットマップＬＣＤであるか、または同様の表示装置である。画面表示１３６は、通常、コンパクトで携帯可能なハンドヘルド式電子装置に適するように、例えば約９０×６０から１２０×１２０ピクセル（約０．２８ｍｍのドットピッチで）と、解像度が非常に限られている。表示技術における進歩の結果、かなり高い解像度の画面表示１３６になるものと予想されるが、そうであっても、無線通信装置の人間工学およびフォームファクタ要件により、ノートブックおよびデスクトップコンピュータの画面表示と比べて比較的小さく（例えば、２５×２５ｍｍから８０×１２０ｍｍの間）、その結果、かかるより大型の画面表示用に設計されたコンテンツを厳密に同じ様式では表示しない。本発明は、ウェブコンテンツの表示時に、かかる画面表示の使いやすさを増大するよう適合される。 
【００４３】
無線通信装置１００は、無線通信装置１００の定義された機能（例えば、「送信」、「終了」、および「電源」）にアクセスするための多くの固定機能キー１３２と、数字入力用の（かつ適切にエンコードされた場合、他の文字を入力するための）数字キー１３４と、示されているユーザインタフェース１０４の特定の画面表示に応じて変わる様々な機能性を有するプログラマブルソフトキー１３０とを含むキーパッド１２８を備える。 
【００４４】
無線通信装置１００は、本発明に従って作成されたＭＭＩ１０２のインスタンスをメモリ１２６に格納し、実行する。このＭＭＩ１０２は、ユーザインタフェース定義ファイル１０４のセットと、ブラウザ１０７と、ポータブルコンポーネント１１６のセットと、可搬性レイヤ１１８とを含む。ブラウザ１０７は、主要なユーザインタフェース機構をユーザに提供し、通信機能およびインターネット／ワールドワイドウェブアクセスの双方にアクセスできるようにする。ポータブルコンポーネント１１６は、グラフィックスプリミティブのセットと、ファイル格納機能と、ブラウザを種々の無線通信装置１００上で使用可能とするローカリゼーション特徴とを提供する。可搬性レイヤ１１８は、リアルタイムオペレーティングシステム１２２および電話制御モジュール１２０に対するブラウザ１０７およびポータブルコンポーネント１１６についてのインタフェースを提供する。 
【００４５】
ＭＭＩ１０２は、シングルスレッドアプリケーションとして実行されるとともに、一般に、任意のリアルタイムオペレーティングシステム１２２、電話制御モジュール１２０、および十分なＲＯＭ、ＲＡＭ、およびフラッシュメモリ、画面表示１３６、および基本サービスを提供する無線通信装置１００上で実行するよう設計される。 
【００４６】
Ｂ．ブラウザ
ブラウザ１０７は、無線通信装置１００の基本的なユーザインタフェースを提供し、かつユーザインタフェース定義ファイル１０４によって定義されるコンテンツ、および通信リンクを介して遠隔ウェブサイトにアクセスされるウェブコンテンツ等、遠隔サイトから検索することのできるコンテンツを画面表示１３６に表示する責任を負う。ユーザインタフェース定義ファイル１０４は、ＨＴＭＬまたは後述する好ましいバリアント型であるＨＴＭＬｐ等のマークアップ言語で書かれたコンテンツファイルおよびコードファイルのセットであり、実行可能埋め込みコードオブジェクトを含みうる。本発明は、ＨＴＭＬに制限されず、ＳＧＭＬまたはＸＭＬ等の他の任意のマークアップ言語、またはＨＴＭＬ拡張のＮｅｔｓｃａｐｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎのセット等、ＨＴＭＬの他の拡張された非標準バージョンと共に動作し、それらを拡張しうる。 
【００４７】
本発明のＭＭＩ１０２を使用する無線通信装置を提供するサービス運営者はそれぞれ、装置製造業者によって提供されるユーザインタフェース定義ファイル１０４のある部分を変更して、各自特定のユーザインタフェースを設計するであろうことから、ユーザインタフェース定義ファイル１０４の特定のコンテンツは可変であり、かつ本明細書に記載される例示的なユーザインタフェース画面のいずれとも異なるものと予期される。さらに、ＭＭＩ１０２は、いかなるユーザインタフェース定義ファイル１０４もない状態でサービス運営者に提供され、サービス運営者に所望のこれらファイルを作成する余地を残してもよいことが予期される。したがって、ユーザインタフェース定義ファイル１０４は、本発明のＭＭＩ１０２によって使用されるが、本発明の必須部分ではない。ユーザインタフェース定義ファイル１０４は、ユーザに提示されるユーザインタフェースを定義するため、サービス運営者が、ユーザインタフェース定義ファイル１０４を単純に編集するだけで、無線通信装置１００を容易かつ迅速に「ブランド化」できるようにしている。このブランド化では、基礎をなすブラウザ１０７、可搬性レイヤ１１８、またはポータブルコンポーネント１１６を再度コンパイルする必要がなく、したがって、カスタマイズを非常に容易かつ費用効率的なものとする。それはまた、サービス運営者が、プログラミングスキルおよび従来のコード開発環境を必要とすることなく、単純なマークアップ言語編集ツールを使用してユーザインタフェースをカスタマイズし、ブランド化できることも意味する。 
【００４８】
ワールドワイドウェブの専門用語に従い、本明細書では、個々のユーザのインタフェース画面を「ページ」と呼ぶ。次に図２を参照して、ブラウザ１０７によって画面表示１３６に表示されるページ１３５の基本的なレイアウトを示す。各ページ１３５は、一般に、４つの基本エリアを有する。常に提示されていることが好ましく、かつ信号強度２０２およびバッテリ強度２０４、待機メッセージインジケータ２０６等のアイテムを表示するステータスバー２００。タイトルバー２１０は、特定画面の名称を表示する（そのように定義されている場合には）。ステータスメッセージエリア２１２は、かけているまたは答えている電話番号等、現行のコンテンツに特定のステータスメッセージを提示するために使用することができる。コンテンツエリア２１４は、ユーザインタフェースページの特定のコンテンツ、例えばメッセージのテキスト、電話帳エントリ等を表示するために使用される。ボタンに沿って（他の場所を使用してもよいが）、ソフトキーラベル２１６があり、これは、ユーザインタフェース定義ファイル１０４に設けられたキーの定義に従って動的に更新される。スクロールアロー２１５は、ユーザがスクロールしている現在の方向（上か下のいずれか）を示す。コンテンツエリア２１４において、フォーカスを有する、すなわち現行のユーザインタフェースガジェットおよび入力フィールドであるコンテンツの特定のアイテムまたはラインを示すために、フォーカスおよび選択アイコン２２０をオプションとして使用してもよい。モードインジケータ２１８は、英字（alpha）、数字、または組み合わせた英数字モードのいずれかのテキストエントリのモードを示す。 
【００４９】
画面表示１３６上に表示されたページまたはコンテンツはいずれも、ユーザインタフェース定義ファイル１０４からローカルに、またはインターネットまたはワールドワイドウェブから遠隔的に取得することができる。ローカルコンテンツの例としては、電話帳、受信したテキストメッセージ、または送信するために作成中のメッセージ、無線通信装置の構成設定等が挙げられる。本発明の特徴の１つは、コンテンツがローカルにまたは遠隔的にフェッチされるかが、取得における遅延（もしあれば）を除いて、広くユーザから隠されていることである。この特徴は、継ぎ目なく統合された、通信機能を有するインターネットおよびワールドワイドウェブアクセスの提示を強化する。 
【００５０】
ユーザインタフェースの特徴の大部分は、ＵＲＬ（ユニバーサルリソースロケータ）によって起動される。公称的には、ＵＲＬは、予め定義されても、あるいはＵＲＬにエンコードされる引数をベースとして、必要に応じて生成されてもよい１個のデータを識別する手段である。ＵＲＬは、以下の形式をとるストリングである。 
protocol:data-identifier[?arguments]
【００５１】
protocolコンポーネントは、データの検索に使用すべき通信プロトコルを指定する。ワールドワイドウェブ上にあるコンテンツの場合、プロトコルは通常「ｈｔｔｐ」、すなわち、ハイパーテキスト転送プロトコルであり、ユーザインタフェース定義ファイル１０４のローカルコンテンツは、メモリ１２６に格納されたローカルファイルシステムにおけるデータを取得するために、「ｆｉｌｅ」プロトコルを使用して検索された。本発明は、無線通信装置１００の動作および構成を制御する多数の追加の新しいプロトコルを提供する。 
【００５２】
data-identifierコンポーネントは、フェッチするのが望ましいコンテンツの仕様である。現在、ワールドワイドウェブ上のコンテンツの場合、data-identifierは通常２つの「／」キャラクタの後にマシン名、もう１つの「／」キャラクタ、およびある種のパスが続く形式をとる。
【００５３】
引数（もしあれば）は、「？」によってdata-identifierから分離され、引数ン可名およびその値からなるペアの形式をとる。「＝」キャラクタは、引数名をその値から分離する。複数の引数は、引数の値と次の引数名の間の「＆」キャラクタによって分離される。
【００５４】
アーキテクチャ的には、ブラウザ１０７は、３つの主な部分、すなわちシェル１０６と、プロトコルハンドラ１１２と、コンテンツハンドラ１１４とを含む。図３は、ブラウザ１０７を含むＭＭＩ１０２の詳細なソフトウェアアーキテクチャを示す。 
【００５５】
シェル１０６は、画面表示１３６の全体の部分の維持、ＵＲＬの部分を正しいプロトコル１１２およびＵＲＬ用のコンテンツハンドラ１１４に渡すことによるＵＲＬの処理、ＵＲＬの履歴スタック１０８の維持、およびユーザ入力のルーティングに責任を負う。ユーザ入力のルーティングには、ユーザ入力のキーストローク、または数字入力および文字のフォームへの入力、または電話番号のダイアリング等、処理のための他のターゲットエンティティを適切なコンテンツハンドラ１１４に渡すことが含まれる。 
【００５６】
プロトコルハンドラ１１２は、シェル１０６からＵＲＬを受け取るとともに、該ＵＲＬに対応するデータをフェッチして、シェル１０６にいずれのコンテンツハンドラ１１４がデータを受け取るべきであるかを命令する責任を負う。場合によっては、ＵＲＬは、プロトコルハンドラ１１２が実行する責任を負う、無線通信装置１００の特徴を制御するためのコマンドである。 
【００５７】
コンテンツハンドラ１１４は、フェッチされたＵＲＬを表示し、かつユーザと対話する責任を負う。少なくとも１つのコンテンツハンドラ１１４が常に現行のコンテンツハンドラ１１４である。新しいＵＲＬがいずれもシェル１０６に提供し戻されるのは、現行のコンテンツハンドラからであり、かつデフォルトで他の入力ターゲットのいずれにも送られないすべてのキーストロークを受け取るのも現行のコンテンツハンドラである。シェル１０６についてはさらに、図４〜図５に関して後述する。 
【００５８】
１．プロトコルハンドラ概観 
プロトコルハンドラ１１２は、ＭＭＩ１０２において２つの機能を果たす。第１に、プロトコルハンドラ１１２は、データをフェッチしてその型を決定する。型の決定により、今度は該データの表示にいずれのコンテンツハンドラを使用するかを決定する。第２に、リアルタイムオペレーティングシステム１２２または電話制御モジュール１２０の埋め込みオブジェクトまたは適切なＡＰＩにアクセスすることにより、無線通信装置１００においてコマンドを実行する。プロトコルハンドラ１１２は、そのコマンドの結果を戻して、異なる画面を表示させてもよく、または結果を戻さなくてもよい。好ましい実施形態のプロトコルハンドラ１１２は、以下を含む。 
【００５９】
内蔵プロトコルハンドラ１１２ａは、無線通信装置１００に内蔵されているアイコンへのアクセスを提供する。 
【００６０】
構成プロトコルハンドラ１１２ｂは、無線通信装置１００の構成設定を得て、設定する。 
【００６１】
エクストラプロトコルハンドラ１１２ｃは、ページにおける埋め込みオブジェクトから、あるいは先にアクセスしたページから渡される引数およびフォームデータへのアクセスを提供する。このプロトコルは、ページを動的に生成する必要なく、データを直接ページに渡せるようにする。 
【００６２】
ファイルプロトコルハンドラ１１２ｄは、ＲＯＭおよびフラッシュファイルシステムにおけるローカルコンテンツへのアクセスを提供する。一般に、このコンテンツは、ユーザインタフェースのページを定義するユーザインタフェース定義ファイル１０４である。ファイルプロトコルハンドラｌ１１２ｄは、ＰＯＳＩＸ仕様等、ファイルシステムアクセスに適した仕様に従って、当業者により実施されうる。 
【００６３】
ＨＴＴＰハンドラ１１２ｅは、標準ハイパーテキスト転送プロトコルを使用して、ワールドワイドウェブ上に格納された遠隔コンテンツへのアクセスを提供する遠隔ファイルプロトコルハンドラである。ＨＴＴＰハンドラ１１２ｅは、ＲＦＣ２０６８：ハイパーテキスト転送プロトコル−ＨＴＴＰ／１．１に定義される仕様に従って当業者によって実施されうる。遠隔ファイルプロトコルハンドラを実施するために、他の遠隔ファイルアクセス仕様を使用してもよい。 
【００６４】
メッセージプロトコルハンドラ１１２ｆは、メッセージ送信、格納しておいたメッセージの削除、新規または格納しておいたメッセージを読む、または格納したメッセージのロックを含む、各種メッセージング機構を起動する。 
【００６５】
電話プロトコルハンドラ１１２ｇは、電話をかける、電話を受ける、電話帳の表示、電話帳エントリの編集、および新しい電話帳エントリの作成を含む、各種電話機能を起動する。
【００６６】
構成プロトコルハンドラ１１２ｂ（可搬性レイヤ１１８の一部として図示）は、無線通信装置１００の各種構成設定を検索、かつ設定する。 
【００６７】
ａ）基本プロトコルハンドラＡＰＩ 
一般に、プロトコルハンドラ１１２は、実行することができる十分に定義された機能セットを有するという点でデバイスドライバと同様であり、各プロトコルハンドラ１１２は、同じ機能をサポートすることにより、これらの機能を各自の様式でサポートする。各プロトコルハンドラ１１２は、３つの機能を実施する。 
ＧｅｔＵＲＬ：ＵＲＬおよびフェッチすべき該ＵＲＬを含むページのセキュリティレベルが与えられると、該ＵＲＬに関連するデータおよびそのデータの特権レベルを戻す。ＵＲＬが実際に、データへのリファレンスではなくコマンドである場合には、データを戻す必要はない。 
ＢｕｉｌｄＵＲＬ：完全なＵＲＬおよび部分的なＵＲＬ（protocol:要素がない）が与えられると、完全なＵＲＬを戻す。これは、主にＨＴＭＬページ内のリファレンスに使用される。 
ＰｕｔＵＲＬ：ＵＲＬ、ＵＲＬの下で格納されるべきデータストリーム、および「ｐｕｔ」メソッドを含むページのセキュリティレベルが与えられると、セキュリティレベルがデータを格納することができるほど十分に高い場合に、データを格納する。 
【００６８】
プロトコルハンドラ１１２によってサポートされる各種埋め込みオブジェクトおよびコマンドＵＲＬについては、後述する。 
【００６９】
２．コンテンツハンドラ概観 
コンテンツハンドラ１１４は、フェッチしたＵＲＬに対応するページのコンテンツデータをデコードして、コンテンツを表示するか、そうでなければコンテンツを操作することに対して責任を負う。コンテンツハンドラ１１４は、通常、受信したコンテンツをデコードして、１ページまたはその一部を画面表示１３６に提示する。コンテンツハンドラ１１４によっては、メモリ１２６から、または通信リンクを介して受け取ったデータからページを構築するものもある一方で、無線通信装置１００の状態を表示するか、または他のいくつかの管理機能を果たすものもある。ブラウザ１０７の好ましい実施形態では、コンテンツハンドラ１１４は以下を含む。 
【００７０】
コールマネージャコンテンツハンドラ１１４ｂは、ユーザインタフェース定義ファイル１０４において定義された着信画面を管理して、ユーザが着信を受信できるようにする。コールマネージャコンテンツハンドラ１１４ｂは、埋め込みオブジェクトを通して他の機能性を提供する。 
【００７１】
ＨＴＭＬｐコンテンツハンドラ１１４ｃは、メモリ１２６における適切なユーザインタフェース定義ファイル１０４にアクセスすることで、大半のユーザインタフェースを表示する。ＨＴＭＬｐコンテンツハンドラ１１４ｃは、ＨＴＭＬ３．２互換パーサを含み、ＨＴＭＬをデコードして、ＨＴＭＬタグに従ってテキストおよびグラフィックスを表示するために必要なデータ構造およびオブジェクトを作成することができる。さらに、ＨＴＭＬｐコンテンツハンドラ１１４ｃは、ＨＴＭＬ３．２の特徴および機能性に多くの有利な拡張を提供する後述の、本明細書では「ＨＴＭＬｐ」と呼ばれるＨＴＭＬ３．２の変形形式を許容する。 
【００７２】
ユーザインタフェースとしてより良好に機能するため、かつユーザインタフェースの設計において柔軟性を追加するために、ＨＴＭＬｐコンテンツハンドラ１１４ｃは、Ｃまたは他のプログラミング言語で書かれたオブジェクトをＨＴＭＬまたはＨＴＭＬｐページに埋め込んで、無線通信装置１００にある異なる型のデータを表示できるようにする。しかし、ＨＴＭＬｐコンテンツハンドラ１１４ｃは、標準ＨＴＭＬパーサと異なり、まず現行ページでユーザが選択したＵＲＬを任意の埋め込みオブジェクトに渡して、ＵＲＬを、ユーザが選択または入力したもので変更するか、あるいはシェル１０６に与えられ、処理される前に、完全に処理できるようにする。 
【００７３】
好ましい実施形態において、利用可能な埋め込みオブジェクトとしては、以下が含まれる。 
【００７４】
電話帳オブジェクトは、氏名、関連する電話番号、住所、電子メールアドレス、短縮ダイアルキー選択、呼び出し音、およびデータの他の定義可能なフィールドのレコードを格納する。電話帳オブジェクトは、レコードのフィールドを取得してセットするためのメソッドを含む。電話帳オブジェクトは、ページに埋め込んで、電話プロトコルの適切なＵＲＬによって起動させることができる。 
【００７５】
最近および受け損なった電話リストオブジェクトは、最近かけた電話番号、受けた電話番号、または受けなかった電話番号の継続して更新されるリストを格納する。呼リストオブジェクトは、リスト上の電話番号を削除したり、またダイアルしたりするためのメソッドを含む。呼リストは、ページに埋め込んで、電話プロトコルの適切なＵＲＬによって起動させることができる。 
【００７６】
短縮ダイアル番号リストオブジェクトは、キーの選択により短縮ダイアリング機能性を提供するように、キーパッド１２８のキーに電話番号および関連事項のセットを格納する。このリストオブジェクトは、短縮ダイアル番号をセットし、取得し、ダイアルするためのメソッドを含む。 
【００７７】
電話番号索引オブジェクトは、電話帳オブジェクトにアクセスして、入力または選択された氏名または氏名の一部に関連する電話番号を戻す。 
【００７８】
電話帳氏名索引オブジェクトは、電話帳オブジェクトにアクセスして、入力または電話番号の一部の選択された電話番号に関連する氏名を戻す。 
【００７９】
受信または送信したテキストメッセージ／英数字ページのリストオブジェクト。メッセージリストオブジェクトは、電子メールまたはショートメッセージサービスメッセージを含むメッセージのリストを格納するとともに、メッセージを見る、格納する、編集する、削除する、および送信するためのメソッドを含む。メッセージリストは、ページに埋め込んで、メッセージプロトコルの適切なＵＲＬによって起動させることができる。 
【００８０】
メインコンテンツハンドラ１１４ｄは主に、ＨＴＭＬｐを使用して、無線通信装置１００のメイン画面を表示するという点において、ＨＴＭＬｐコンテンツハンドラ１１４ｃのフロントエンドである。 
【００８１】
広告コンテンツハンドラ１１４ａは、無線通信装置１００のアイドル時にいずれの広告ページを表示するかを選択し、ＨＴＭＬｐコンテンツハンドラ１１４ｃにそれを表示するよう命令する、ＨＴＭＬｐコンテンツハンドラ１１４ｃのフロントエンドである。さらに、応答していたまたは失効した広告をオプションとして削除するために、キーストロークおよびユーザインタフェースガジェット起動を中断する。 
【００８２】
ａ）基本コンテンツハンドラＡＰＩ 
プロトコルハンドラ１１２のように、コンテンツハンドラ１１４は、シェル１０６がそれらと通信するために使用する、十分に定義されたインタフェースを有する。インタフェースは、画面表示１３５の周囲で、表示されている画面内に定義されたコンテンツエリアがあるという意味において、コンテンツハンドラ１１４の対話のニーズに合わせられる。各コンテンツハンドラ１１４がサポートする４つの機能とは、以下のものである。
ＣｏｎｔｅｎｔＯｐｅｎ：これは、コンテンツハンドラ１１４に画面表示１３６のコンテンツエリア２１４、ソフトキー１３０およびソフトキーラベル２１６、タイトルバー２１０、およびステータスメッセージエリア２１２の制御を与えるコールである。各コンテンツハンドラ１１４は、ＣｏｎｔｅｎｔＯｐｅｎ関数が呼び出されると、以下の４つの情報を受け取る。 
１．データをフェッチしたプロトコルハンドラ１１２により戻されるデータストリーム。これは、表示されるデータである。 
２．データをどこに表示すべきかを示す、コンテンツエリア２１４へのハンドル。
３．コンテンツハンドラ１１４が以前にこのデータを表示したことがあるか否かを示すフラグ。 
４．エンティティがシェル１０６にＵＲＬをフェッチするよう求めたものにより渡されたエクストラデータへのポインタであって、表示されているページにエクストラデータを入力できるようにするポインタ。エクストラデータの使用については、ＨＴＭＬｐの＜ＴＥＭＰＬＡＴＥ＞タグ、および「ｅｘｔｒａ」プロトコルに関してさらに後述する。
ＣｏｎｔｅｎｔＣｌｏｓｅ：ユーザがページを閉じるよう求めるか、あるいは異なるページを開くよう求めると、現行のコンテンツハンドラ１１４が閉じる。これは、ページがＵＲＬ履歴スタック１０８に維持されているか否か、またはページが該スタックから永久に削除されてしまっているかを示すフラグを受け取る。 
ＣｏｎｔｅｎｔＰｒｏｃｅｓｓＫｅｙ：キーストロークを処理する他に何もない状態において、シェル１０６は、デフォルトによりキーストロークを現行のコンテンツハンドラ１１４に送る。現行のコンテンツハンドラ１１４とは、そのＵＲＬがＵＲＬスタックの最上部にあるコンテンツを表示しているものである。 
ＣｏｎｔｅｎｔＡｃｔｉｖａｔｅ：ユーザがソフトキー１３０を押下するか、あるいはメニューからアイテムを選択すると、そのキーまたはメニューにバインディングされたストリングが、この機能を介して現行のコンテンツハンドラ１１４に渡される。場合によっては、ストリングが、フェッチすべきシェル１０６に直接渡すことのできるＵＲＬである場合があり、また、ストリングが、ユーザが望むものの指示であり、コンテンツハンドラ１１４は、自身のアクションを実行するか、あるいは画面表示１３６上でユーザが選択したアイテムを使用して、シェル１０６に与えることができるＵＲＬを生成する場合もある。例えば、ユーザが電話帳におけるエントリを選択して、「編集」とラベルされたソフトキー１３０を押下する場合、ＨＴＭＬｐコンテンツハンドラ１１４ｃが、ソフトキー１３０に関連するストリングを取り、それを埋め込み電話帳オブジェクトに渡す。埋め込み電話帳オブジェクトは、埋め込みオブジェクトにおいてユーザがいずれの電話帳エントリを選択したのかに基づいて、該ストリングをシェル１０６に渡す実際のＵＲＬを生成するためのテンプレートとして使用する。 
【００８３】
コンテンツハンドラ１１４の特定の機能性については、さらに後述する。 
【００８４】
３．制御フロー 
ブラウザ１０７の好ましい実施形態は、他の環境において使用されるイベントループの代わりである、単一のコールバックキュー１１０の周辺に編成される。ＭＭＩ１０２のいずれの部分も、コールバックキュー１１０に関数要求を追加することで、関数を後に呼び出すよう要求することができる。 
【００８５】
コールバックキュー１１０は、それぞれ呼び出すべき関数へのポインタと、ルーチンに渡される２つの３２ビット引数を有する、多数の要素を有する。関数ポインタは、システムにおけるいずれのモジュールであってもよい。 
【００８６】
本質的に、システム全体は、一番上の制御ループを実行する。
１．コールバックキュー１１０における次のアイテムを呼び出す。 
２．その呼び出しが行ったすべての変更により、画面表示１３６を更新する。このステップは、画面にグラフィックス要素を描画し（例えば、ステータスメッセージおよびアイコンをスクロール、更新する）、キーストロークを表示し、ＵＲＬに関連する機能または特徴のユーザ起動に応答して、新しいページを表示する。 
３．ステップ１に戻る。 
【００８７】
コールバックキュー１１０についてのアイテムは、主にキーストローク（上または下）、アクティブコールにおける変化、タイマ経過、および入りテキストメッセージ等の非同期イベントによって追加される。 
【００８８】
ある延長（protracted）動作もまた、コールバックキュー１１０を使用して、他のアクション（ユーザ入力等）をなお処理可能としながら、動作を継続する。例えば、動画化したＧＩＦイメージのフレーム読み出しは、２つの概念的な段階に分けられる。 
１．最初のフレームを読み出して、次のフレームの読み出す呼び出しを待ち行列に入れる。 
２．次のフレームの読み出しを試みる。成功した場合には、次のフレームを読み出す呼び出しを待ち行列に入れる。 
【００８９】
このようにして、動画を含むページを、残りの動画を効率的にバックグランドにロードしながら、可能な限り高速に表示することができる。 
【００９０】
４．シェル 
シェル１０６は、入力キーストロークおよびより下位のレイヤからの他の入力の処理と、かかる入力の適切なプロトコルハンドラ１１２およびコンテンツハンドラ１１４への引き渡しを提供する。シェル１０６の関数リストを、付録Ａに提供する。 
【００９１】
ａ）キーパッド入力 
キーパッド入力は、可搬性レイヤ１１８からシェル１０６に自発的に到来する。シェル１０６は、特に現在表示されているページのユーザインタフェースオブジェクトである、キーストロークを処理することができるエンティティのリストであるキーストロークターゲットリストを維持する。キーストロークが到来すると、シェル１０６は、該キーストロークをキーストロークターゲットリストの最初のエンティティにＳｈｅｌｌｐｒｏｃｅｓｓｋｅｙを介して渡す。そのエンティティが該キーストロークを処理しないと決定する場合には、シェル１０６を呼び出して、キーストロークをリスト内の次のエンティティに与える（ＳｈｅｌｌＰｒｅｖｉｏｕｓＩｎｐｕｔ）。リストの初期化時にシェル１０６によって配置される、リストの最後のエンティティは、キーストロークを現行のコンテンツハンドラ１１４に分配する。現行のコンテンツハンドラ１１４は、システム全体でのキーストロークデフォルトを実施するシェル１０６におけるデフォルト処理ルーチンに渡すよう選択するか、またはキーストロークを所望のように処理することができる。 
【００９２】
シェル１０６は、エンティティ（通常、ユーザインタフェースオブジェクト）をキーストロークターゲットリストに登録する（ＳｈｅｌｌＧｒａｂＩｎｐｕｔ）と共に、リストからエンティティを削除する（ＳｈｅｌｌＲｅｌｅａｓｅＩｎｐｕｔ）関数を含む。 
【００９３】
ｂ）ソフトキー 
特殊な機能を有するキーの一種は、ソフトキー１３０である。ソフトキー１３０は、そのラベルが表示画面１３６におけるページに表示されるとともに、その目的が、ユーザインタフェース定義ファイル１０４において定義されたパラメータに従って、ページ毎に変わるキーである。シェル１０６は、通常１から３の間であるが、無線通信装置１００に応じて可変であるいくつかのソフトキー１３０を管理する。各ソフトキー１３０は、ストリングまたはストリングを指定するメニューアイテムを有するメニューにバウンディングされてもよく、または、ＵＲＬスタックから１つまたは複数のエントリをポップ（pop：取り出）しても、または何も行わないように設定されても良い。 
【００９４】
ソフトキー１３０、またはストリングにバインディングされたメニューアイテムが起動されると、ストリングが、ＣｏｎｔｅｎｔＡｃｔｉｖａｔｅ関数を介して現行のコンテンツハンドラ１１４に渡される。いくつかの場合では、ソフトキー１３０にバインディングされるストリングは、フェッチすべきＵＲＬである。この例では、ＵＲＬはコンテンツハンドラ１１４によってシェル１０６に渡され、適切なプロトコルハンドラ１１２およびコンテンツハンドラ１１４によって処理され（ＳｈｅｌｌＧｅｔＵＲＬ）、フェッチされる。他の場合では、バインドストリングは、コンテンツハンドラ１１４がページを変えずに処理するコマンドである。最後に、バインドストリングは、フェッチされる前に、ユーザからのある入力に基づいて、コンテンツハンドラ１１４によって変更されるテンプレートＵＲＬ（以下参照）を２つ組み合わせたものであってもよい。 
【００９５】
上述したように、ＣｏｎｔｅｎｔＡｃｔｉｖａｔｅ関数の一部として、ＨＴＭＬｐコンテンツハンドラ１１４ｃは、ストリング自体を検査する前に、ユーザ選択のユーザインタフェースエンティティにバインディングされたストリングを現行ページにおける任意の埋め込みオブジェクトに渡す。埋め込みオブジェクトによっては、この方法でこのようにして表示しているデータに対して動作するというコマンドを単に取るだけのものもあるが、その一方で、ユーザが選択したデータのある部分に置換される、ストリング内の特殊なエスケープを探してＵＲＬをもたらし、それから該ＵＲＬをシェル１０６に渡すものもある。ＨＴＭＬｐコンテンツハンドラ１１４ｃはまた、ハイパーリンクからＵＲＬをただ受け入れるだけというよりもむしろ、受け入れるある特別なコマンドも有する。 
【００９６】
ｃ）ＵＲＬ処理 
上述した制御フローで画面表示１３６を更新するステップは、新しく表示するページを取得するというコンテキストにおいて行われる場合、ＵＲＬをＳｈｅｌｌＧｅｔＵＲＬ関数を介してシェル１０６に渡すことによって達成される。図４は、ＵＲＬ処理をサポートするために、シェル１０６によって使用されるＵＲＬ履歴スタック１０８を示す。ＵＲＬ履歴スタック１０８は、ＬＩＦＯスタックである。各エントリ４０２は、ＵＲＬ４０４と、ＵＲＬを処理する特定のコンテンツハンドラ１１４についての関数の関数表４１２へのポインタ４０６と、「エクストラ」プロトコルによって検索されるか、またはＵＲＬについてコンテキストハンドラによって使用されるよう、ＵＲＬと共に渡されるエクストラデータ４０８（もしあれば）と、ページが動作している特権レベル４１４と、ＵＲＬの優先度４１６と、シェル１０６がコンテンツハンドラ１１４の代わりに維持する状態ブロック４１８へのポインタと、を含む。 
【００９７】
図５を参照して、ＵＲＬ処理におけるシェル１０６の動作のフローチャートを示す。シェル１０６は、最初の「：」キャラクタの前の、ＵＲＬストリングの最初の部分を抽出し（５００）、それを既知のプロトコルハンドラ１１２のリストと比較して、ＵＲＬデータのフェッチに適したハンドラを識別する（５０２）。プロトコルハンドラ１１２が見つからない場合、シェル１０６は、現在、ＵＲＬスタックの一番上にあるＵＲＬについてのプロトコルのＢｕｉｌｄＵＲＬ関数を呼び出すことで、完全なＵＲＬを作成し（５０８）、それを現在一番上にあるＵＲＬとフェッチされているＵＲＬとに渡す。プロトコルハンドラ１１２は、渡された相対的なＵＲＬの代わりに使用すべき絶対的なＵＲＬを戻す。 
【００９８】
プロトコルハンドラ１１２が見つかる場合、シェル１０６は、このプロトコルハンドラ１１２のＧｅｔＵＲＬ関数を呼び出し（５０４）、ＵＲＬの残りを渡す。プロトコルハンドラ１１２は、ＵＲＬをフェッチして、戻されるデータの型を示すストリングと、データを解釈すべき特権レベルと、実際のデータを含む（まだデータを提示する必要はないが、ストリームからの読み出しは、到来したままデータを戻さなければならない）Ｓｔｒｅａｍへのポインタとを含むＣｏｎｔｅｎｔＳｔｒｅａｍ構造へのポインタを戻すものと予期される。いずれのストリームも戻されない場合（５０６）、シェル１０６はエラーを戻す（５１０）。 
【００９９】
シェル１０６は、データ型ストリングを既知のコンテンツハンドラ１１２のリストとマッチングさせる（５１２）。マッチングがない場合、シェル１０６は、エラーを戻す（５２０）。マッチングがある場合（５１４）、このコンテンツハンドラ１１４が現行のコンテンツハンドラになる。シェル１０６は、ソフトキー１３０、コンテンツエリアサイズ２１４、タイトルバー２１０、およびステータスメッセージエリア２１２を各自のデフォルト状態にリセットする（５１６）。シェル１０６は、現行のコンテンツハンドラ１１４のＣｏｎｔｅｎｔＯｐｅｎ関数を呼び出して、ＣｏｎｔｅｎｔＳｔｒｅｍおよびコンテンツ表示エリア２１４の制御の双方を、コンテンツ表示のために、現行のコンテンツハンドラ１１４に渡す。
【０１００】
オープン呼び出しが成功した場合（５２２）、シェル１０６は、ＵＲＬ、現行のコンテンツハンドラ１１４関数へのポインタ、任意のエクストラデータをスタックに配置してＵＲＬ履歴スタック１０８を更新し、ＵＲＬを要求しているエンティティに成功を戻し（５２４）、そうでなければ、シェル１０６がＵＲＬ履歴スタック１０８からの先のＵＲＬに応答して（５２６）、エラーを戻す。 
【０１０１】
５．セキュリティ 
電波を介して受信するコンテンツは、電話特徴を起動するとともに、電話帳エントリ等の電話データにアクセスすることができることから、本発明は、機能またはデータへの無許可のアクセスを防止するために、セキュリティに関する機構を提供する。 
【０１０２】
ＵＲＬが、ＧｅｔＵＲＬ関数の一部としてプロトコルハンドラ１１２によってフェッチされると、そのデータがプロトコルハンドラによって特権レベルに割り当てられる。コンテンツが特権ソースから来たものであれば、プロトコルハンドラ１１２は、最高の特権レベルを割り当てる。例えば、無線通信装置１００のＲＯＭ１２６に格納されるユーザインタフェース定義ファイル１０４からのページはすべて、最高の特権レベルを割り当てられる。フォーマットしたテキストメッセージには、ユーザにより受信されたか、あるいは作成されたかに係わらず、最低の特権レベルが割り当てられる。特権レベルが割り当てられていないコンテンツは、シェル１０６によって自動的に最低の特権レベルが与えられる。例えば、ワールドワイドウェブからのコンテンツには（そうでなくても、予め割り当てられていない場合には）、最低の特権レベルが与えられる。コンテンツのアイテムの特権レベルは、そのＵＲＬと共にＵＲＬ履歴スタック１０８に格納される。 
【０１０３】
無線通信装置１００の選択された関数は、無線通信装置１００の製造業者またはサービス運営者のいずれかによって、特権に敏感なように構成される。かかる関数は、呼び出されると、ＵＲＬ履歴スタック１０８内のページのＵＲＬからコンテンツを要求しているページの特権レベルを決定する。要求しているページの特権レベルが要求されているコンテンツの特権レベルよりも高い場合に、コンテンツがアクセスされる。要求しているページの特権レベルが要求されているコンテンツの特権レベルよりも低い場合には、該関数は、即座にアクセスを拒むか、あるいはユーザに動作を確認することができる。例えば、より低い特権ページがＣａｌｌＭａｎａｇｅｒを介して電話をかけるよう要求する場合、ユーザには実際の番号をダイアルするという警告がなされ、ユーザは、電話をダイアルする前に、要求を確認しなければならない。 
【０１０４】
６．コンテンツハンドラ 
以下の項では、個々のコンテンツハンドラ１１４がどのようにして、各コンテンツハンドラ１１４へのＡＰＩにおける４つの機能を実施するかが概説される。 
【０１０５】
ａ）ＨＴＭＬｐコンテンツハンドラ
（１）ＨＴＭＬｐ ＡＰＩ 
ＨＴＭＬｐコンテンツハンドラ１１４ｃは、ＨＴＭＬ３．２仕様を用いて、完全なＨＴＭＬ準拠パーサを提供する。このパーサは、必要に応じて、画面表示１３６の表示、およびかかるエンティティに関連する各データの格納、ユーザインタフェースエンティティを作成するために、コンテンツのページの構文解析中に、ＨＴＭＬｐコンテンツハンドラ１１４ｃによって起動される。 
【０１０６】
上述したように、各コンテンツハンドラ１１４は、ＨＴＭＬｐＯｐｅｎ、ＨＴＭＬｐＣｌｏｓｅ、ＨＴＭＬｐＡｃｔｉｖａｔｅ、およびＨＴＭＬｐＰｒｏｃｅｓｓＫｅｙという４つの関数の外部インタフェースを提供する。ＨＴＭＬｐＯｐｅｎおよびＨＴＭＬｐＣｌｏｓｅについてここに説明する。理解しやすいように、ＨＴＭＬｐＡｃｔｉｖａｔｅおよびＨＴＭＬｐＰｒｏｃｅｓｓＫｅｙについては、ＨＴＭＬｐの新しいタグの説明後に、後述する。
【０１０７】
（ａ）ＨＴＭＬｐＯｐｅｎ 
この関数は、コンテンツのページを表示するため、シェル１０６によって呼び出され、画面表示１３６のコンテンツエリア２１４の制御をＨＴＭＬｐコンテンツハンドラ１１４ｃに与える。上述したように、ＨＴＭＬｐコンテンツハンドラ１１４ｃは、シェル１０６から表示すべきデータのストリームと、コンテンツエリア２１４へのハンドルと、該コンテンツデータ（ページ）が以前表示されたことがあるか否かを示す表示フラグと、該ページに関連するあらゆるエクストラデータへのポインタと、を受け取る。 
【０１０８】
該関数は、表示フラグから、そのページが以前表示されたことがあるか否かを決定し、またそうであれば、ページの任意の埋め込みオブジェクトがキャッシュされたか否かを決定する。この場合、ページは再度表示されて、任意の埋め込みオブジェクトは、以前の状態を再確立するために呼び出されるＲｅｓｔｏｒｅＳｔａｔｅ関数を有する。 
【０１０９】
ページの埋め込みオブジェクトがキャッシュされていなかった、あるいはページが表示されるのは今回が初めてである場合、該ページのコンテンツストリームが基礎をなすＨＴＭＬパーサに渡されて、ＨＴＭＬｐコードとして解釈される。パーサは、ウィンドウと、必要に応じてユーザインタフェースエンティティとを作成し、テキストをラッピングし、必要に応じてソフトキー１３０を更新するとともに割り当てる。ページは、完全に構文解析されると、ユーザに表示される。ユーザインタフェースエンティティを作成する際に、ＨＴＭＬパーサは、ユーザインタフェース要素（キー１３２、ソフトキー１３０、メニューアイテム等を含む）およびこれらのエンティティにバインディングされたＵＲＬ（ローカルまたは遠隔に係わらず）との間の関連表を確立する。関連は、特定のユーザインタフェースエンティティと、エンティティがユーザによって選択されるか、そうでなければ起動される場合、フェッチされるＵＲＬとを識別する。これらの関連は、ページが受け取ったキーストロークを、ＨＴＭＬｐＰｒｏｃｅｓｓＫｅｙ関数により続けて処理する場合に、用いられる。他のページをすべて保持するメインウィンドウへのハンドルは、ＳｈｅｌｌＳｅｔＳｔａｔｅを呼び出すことにより、そのページについて状態ブロック４１８としてセットされる。 
【０１１０】
（ｂ）ＨＴＭＬｐＣｌｏｓｅ 
この関数は、ユーザが現行ページを閉じるか、または異なるページに切り替える際に呼び出される。シェル１０６は、該ページをＵＲＬ履歴スタック１０８から削除すべきか、あるいはＵＲＬ履歴スタック１０８に残りうるかを示すフラグを渡す。ページを削除すべきではなく、かつページがキャッシュ不可能とマークされていない場合、メインページが見えないようセットされ、ユーザから効果的にそれを隠すが、アクティブページとして残す。
【０１１１】
ページがキャッシュ不可能であるか、またはページがＵＲＬ履歴スタック１０８から削除されるべきである場合、ページウィンドウおよびそれに関連するデータ構造が破壊される。ページは、ページが表示されている間に潜在的に変化しうるそれ自身の外部にあるデータを参照する場合に、キャッシュ不可能であるとみなされる。例えば、ページが＜ＩＮＣ＞（「ｉｎｃｌｕｄｅ」）タグを含むか、構成設定を表示するために、後述する構成機構を使用する場合には、キャッシュ不可能であると考えられる。条件付き＜ＩＦ＞タグ、および＜ＴＥＭＰＬＡＴＥ＞タグの使用は、これらのタグについてＤＹＮＡＭＩＣ属性がセットされているか否か、および％[ｕｒｌ]エスケープが＜ＴＥＭＰＬＡＴＥ＞＜／ＴＥＭＰＬＡＴＥ＞ブロック内にあるか否かに応じて、ページをキャッシュ不可能にさせる場合もあり、させない場合もある。これらの特徴については、さらに後述する。 
【０１１２】
（２）ＨＴＭＬへの拡張：ＨＴＭＬｐ 
本発明は、完全にＨＴＭＬと互換性のあるＭＭＩ１０２を提供する。しかし、コンテンツを単に表示するだけでなく、無線通信装置１００のユーザインタフェースをさらに洗練させて、通信機能および小型画面表示１３６に関してより機能的にするとともに、無線通信装置を装置の製造業者およびサービス運営者の双方により容易かつ迅速にカスタマイズできるようにするＨＴＭＬの拡張セットを提供することが望ましい。 
【０１１３】
ＨＴＭＬｐを構成する拡張は、以下の通りである。
（ａ）Ａ．ユーザインタフェース拡張 
この項では、ユーザインタフェースを豊かにする、ＨＴＭＬｐの拡張について説明する。これらの各種タグは、ＨＴＭＬｐコンテンツハンドラ１１４ｃがシェル１０６からコンテンツのページを受け取ったときに、ＨＴＭＬｐコンテンツハンドラ１１４ｃによってデコードされる。 
【０１１４】
（ｉ）関数へのバインディングキー：＜Ｋｅｙ＞タグ 
通常の無線通信装置１００は、１から３つのソフトキー１３０、標準数字キー１３４、およびいくつかの特殊目的キー１３２を有する。ＨＴＭＬｐという新しい拡張により、キーパッド１２８の任意のキーを＜ＫＥＹ＞タグを使用してＨＴＭＬページにバインディングすることができる。構文は、＜KEY KEY=keyLABEL=stringACTION=url|POP|DONE|CLEAR|MENU|GO|NONE＞である。 
【０１１５】
ＫＥＹ属性の値は、以下のうちの１つである。
［１，．．．ｍ］  バインディングするソフトキーを指定する。キーは左から右に、または上から下に（それらが電話上のどこにあるかに応じて）番号付けされる。通常（ｍ≦３）であるが、これは装置毎に可変でありうる。
［ｓｅｎｄ］  「Ｓｅｎｄ」または「Ｔａｌｋ」キーを指定する。
［ｂａｃｋ］  「Ｂａｃｋ」キーを指定する。すべての装置がこのキーを備えるわけではない。このキーをバインディングするためには、ページは、特権付与されなくてはならない。
［＃ｎ］  ダイアルキーのうちの１つを指定するが、但し、ｎはキー上のラベル（０〜９、＊、または＃）である。すべてのダイアルキーを同じアクションにバインディングするには、＃ｘを指定する。
［ｅｎｄ］  「Ｅｎｄ」キーを指定する。このキーをバインディングするためには、ページは、特権付与されなくてはならない。
［ｍｏｄｅ］  「Ｍｏｄｅ」または「ＡＢＣ」キーを指定する。
［ｃｌｅａｒ］  「Ｃｌｅａｒ」または「Ｄｅｌ」キーを指定する。
［ｕｐ］  アップアローキーまたはダウンアクションを指定する。
［ｄｏｗｎ］  ダウンアローキーまたはダウンアクションを指定する。
［ｌｅｆｔ］  レフトアローキーを指定する。
［ｒｉｇｈｔ］  ライトアローキーを指定する。
［ｓｅｌｅｃｔ］  ｓｅｌｅｃｔキーまたは選択アクションを指定する。
［ｐｏｗｅｒ］  ｐｏｗｅｒキーを指定する。バインディングするためには、ページは、特権付与されなくてはならない。
［ｄｅｆａｕｌｔ］  標準アクション以外がとられる場合、アクションを常に明示的に指定しなければならない、ｂａｃｋ、ｅｎｄ、およびｐｏｗｅｒキーは例外として、他のアクションが指定されていないいずれのキーに対しても１つのアクションを指定する。
【０１１６】
キーがソフトキー１３０である場合、ＬＡＢＥＬ属性の値は、該キーの画面上のラベルに現れるストリングである。ストリングが長すぎて、割り当てられたスペースに収まらない場合には、切り捨てられる（truncate）。ＬＡＢＥＬ属性は、ソフトキー１３０に対してのみ有効である。 
【０１１７】
ＡＣＴＩＯＮ属性の値は、バインドキーが押下されたときに何が起こるべきかを指定する。
［ＵＲＬ］  フェッチすべきＵＲＬ、またはページにおける埋め込みオブジェクトのためのある他のコマンドを指定する。ＵＲＬは、処理のために、ＨＴＭＬｐコンテンツハンドラのＨＴＭＬｐＡｃｔｉｖｅ関数に渡される。
［ＰＯＰ］  前ページを表示するよう要求する。
［ＤＯＮＥ］  最も最近の＜ＴＯＰ＞ページの前のページを表示するよう要求する。
［ＣＬＥＡＲ］すべてのページをＵＲＬ履歴スタック１０８からクリアして、メイン画面を表示するよう要求する。
［ＭＥＮＵ］ソフトキー１３０がメニューを繰り出すよう指定する。メニューにおけるアイテムは、＜ＨＥＡＤ＞セクションにおける＜ＫＥＹＭＥＮＵ＞タグによって指定される。これは、ソフトキー１３０についてのみ有効である。
［ＧＯ］現在選択されているリンクをフェッチするよう求める。これは、＜ＬＩＮＫＭＥＮＵ＞属性を有するページについてのみ有効である。
［ＮＯＮＥ］キー押下時に、いずれのアクションも取らないよう求める。これは、オーバーライドすべきキーについてデフォルトアクションを可能にする。 
【０１１８】
ＨＴＭＬｐコンテンツハンドラ１１４ｃは、＜ＫＥＹ＞タグを有するページをロードすると、キー、ラベル（もしあれば）、およびアクションの関連を格納するキーバインディング表を作成する。
【０１１９】
ＡＣＴＩＯＮ属性にバインディングされたストリングは、ＨＴＭＬｐＡｃｔｉｖａｔｅ関数により、以下のように処理される。 
【０１２０】
（ｉｉ）ＨＴＭＬｐＡｃｔｉｖａｔｅ 
ＨＴＭＬｐＡｃｔｉｖａｔｅ関数は、キー、ソフトキー、メニューアイテム、ハイパーリンク等のユーザインタフェースエンティティにバインディングされたストリングに対する適切な応答を決定するために使用される。入力は、シェル１０６からのストリング、より具体的には、ＫＥＹまたはＫＥＹＭＥＮＵタグのＡＣＴＩＯＮ属性、またはＡタグのＨＲＥＦ属性にバインディングされたストリングである。新しいＨＴＭＬｐタグにより、一般に、無線通信装置１００の任意のキーまたはメニューアイテムを特定のアクションまたはＵＲＬに関連づけることが可能になる。 
【０１２１】
図６ａ〜図６ｂを参照して、ＨＴＭＬｐＡｃｔｉｖａｔｅ関数の一実施形態のフローチャートを示す。ＨＴＭＬｐコンテンツハンドラ１１４ｃは、現行ページにおける埋め込みオブジェクトのリストを維持する。ページに埋め込みオブジェクトがある場合（６０２）、該関数は、処理のためにストリングを埋め込みオブジェクトに渡す（６０４）。埋め込みオブジェクトは、ストリングが処理されたか否か、およびストリングをさらに処理する必要はないことを示すブールを戻す。ストリングが埋め込みオブジェクトによって処理された（６０６）場合、関数は制御をシェル１０６に戻す（６０８）。埋め込みオブジェクトへのストリングの処理（６０４）については、さらに後述する。 
【０１２２】
ストリングが処理されていなかった場合、ＨＴＭＬｐＡｃｔｉｖａｔｅ関数は、その値に従うストリングをＡＣＴＩＯＮ属性として、プロセス６１０に進む。 
【０１２３】
ストリングが「ＰＯＰ」である場合（６１２）、シェルのＳｈｅｌｌＧｏＢａｃｋ（ＰＯＰ）関数が呼び出される（６１４）。この関数は、ＵＲＬ履歴スタック１０８の最上部のＵＲＬをポップして、先のＵＲＬをロードさせる。 
【０１２４】
同様に、ストリングが「ＤＯＮＥ」である場合（６１６）、ＳｈｅｌｌＧｏＢａｃｋ（ＤＯＮＥ）関数が呼び出される（６１８）。これは同様であるが、最も最近の＜ＴＯＰ＞タグの前のページを表示する。＜ＴＯＰ＞タグは、マルチパートフォームの最初のパートを識別するが、これについてはさらに後述する。 
【０１２５】
ＨＴＭＬｐコンテンツハンドラ１１４ｃは、フォームまたはハイパーリンクにおける入力フィールドでありうる、ページにおける現行オブジェクトへのポインタを維持する。この現行オブジェクトは、入力フォーカスが配置される場所である。 
【０１２６】
ストリングが「ＧＯ」であり（６２０）、かつ現行オブジェクトがハイパーリンクではない（６２２）場合には、何も起こらない。現行オブジェクトがハイパーリンクである場合には、コンテンツハンドラ１１４がハイパーリンクに関連したＵＲＬストリングを取得して、そのＵＲＬストリングをＳｈｅｌｌＧｅｔＵＲＬに渡し（６２４）、これが実際のコンテンツをフェッチする。
【０１２７】
ストリングが「ＣＬＥＡＲ」である場合（６２６）、シェル１０６のＳｈｅｌｌＧｏＢａｃｋ（ＣＬＥＡＲ）が呼び出される（６２８）。この関数は、ＵＲＬ履歴スタック１０８をクリアして、デフォルトのメインページを表示させる。 
【０１２８】
ストリングが「ｒｅｓｅｔｆｏｒｍｉｄ」の形式を有する場合（６３０）、該関数はフォーム番号（form number）がｆｏｒｍｉｄである入力要素を各自の元の状態に戻す（６３２）。このアクションは、＜ＩＮＰＵＴ  ＴＹＰＥ＝ｒｅｓｅｔ＞ガジェットについての任意のソフトキー１３０またはソフトキーメニューにバインディングされる。 
【０１２９】
ストリングが形式「ｓｕｂｍｉｔｆｏｒｍｉｄ，ｌａｂｅｌ」である場合（６３４）、該関数は、フォーム番号ｆｏｒｍｉｄを定義したＦＯＲＭタグのＭＥＴＨＯＤおよびＡＣＴＩＯＮ属性に従って、フォーム番号ｆｏｒｍｉｄを提出する（６３６）。ｌａｂｅｌは、もしあれば、ユーザが起動したのはいずれの＜ＩＮＰＵＴＴＹＰＥ＝ｓｕｂｍｉｔ＞ガジェットであるかを示し、そのため、そのネーム値の対を、フォームにおける残りのガジェットからの値と共に提出することができる。
【０１３０】
ストリングが「ＳＥＬＥＣＴ」である場合（６３８）、該関数は、以下のガジェット型に従って、ユーザが選択したユーザインタフェースガジェットを起動する（６４０）。
<INPUT TYPE=radio> そのラジオボタンを選択し、同じ名称の他のラジオボタンを選択しない。
<INPUT TYPE=checkbox> チェックボックスをチェックするか、またはチェックしない。
<SELECT> オプションが表示される場合、ユーザが選択したオプションを選択する。ＳＥＬＥＣＴリストがポップダウンリストである場合、ポップダウンを閉じる。ハイパーリンク  リンクをたどる。 
【０１３１】
ストリングが「ＮＯＮＥ」である場合（６４２）、いずれのアクションも取られない。
【０１３２】
これらすべての条件をパスした後、ストリングがＵＲＬ等の任意の他の値である場合（６４４）、ストリングは処理のためにＳｈｅｌｌＧｅｔＵＲＬに渡される（６４６）。ＵＲＬが引数を持たない（その中に「？」がない）場合には、エクストラデータとしてこのページに渡されたパラメータはいずれもまた、ＳｈｅｌｌＧｅｔＵＲＬへの呼び出しにおいて渡される。 
【０１３３】
ＨＴＭＬｐＡｃｔｉｖａｔｅ関数および埋め込みオブジェクトに関するその特定の利点の例について、さらに以下に説明する。 
【０１３４】
＜ＫＥＹ＞タグを使用したＡｃｔｉｖａｔｅ関数による処理の例は、次の通りである。ページが以下のＫＥＹタグ、＜ＫＥＹ  ＫＥＹ＝”ｓｅｎｄ”ＡＣＴＩＯＮ＝ｐｈｏｎｅ：ｄｉａｌ＞を含むと想定する。 
【０１３５】
このページがロードされると、ＨＴＭＬｐコンテンツハンドラ１１４ｃは、Ｓｅｎｄキーと、そのキーバインディング表におけるＵＲＬ「ｐｈｏｎｅ：ｄｉａｌ」の間の関連を格納する。この格納データは、ユーザがＳｅｎｄキーを押下したときに、電話プロトコルハンドラ１１２ｇの電話ダイアル機能を起動するために使用される。ＨＴＭＬｐコンテンツハンドラ１１４ｃは、現行のコンテンツハンドラ１１４である。 
【０１３６】
ある後の時点でユーザがＳｅｎｄキーを押下すると仮定する。可搬性レイヤ１１８は、キーが押下されたことを示すシェルのＳｈｅｌｌＰｒｏｃｅｓｓＫｅｙ関数を呼び出して、Ｓｅｎｄキーについてのキー番号、および押下されたことを示すフラグを渡す。上述したように、シェル１０６は、キーストロークターゲットリストを維持する。ＳｈｅｌｌＰｒｏｃｅｓｓＫｅｙは、受信したキーをスタック上の最初のターゲットに送る。このターゲットが該キーについて目的を持たない場合、ターゲットはシェル１０６のＰｒｅｖｉｏｕｓＩｎｐｕｔ関数を呼び出して、Ｓｅｎｄキーインデックスを渡す。シェル１０６は、キーストロークターゲットリストにおける次のアイテムを見つける。このプロセスは、キーがＨＴＭＬｐコンテンツハンドラ１１４ｃに渡されるまで繰り返される。ＵＲＬ履歴スタック１０８の最上部にあるＵＲＬはＨＴＭＬｐコンテンツハンドラ１１４ｃへのポインタ４０６を含むため、これは、シェル１０６が現行のコンテンツハンドラ１１４のＰｒｏｃｅｓｓＫｅｙ関数を呼び出すときに発生する。 
【０１３７】
次に、シェル１０６は、ＨＴＭＬｐＰｒｏｃｅｓｓＫｅｙ（「Ｓｅｎｄ」）を呼び出す。この関数は、ＳｅｎｄキーとＵＲＬ「ｐｈｏｎｅ：ｄｉａｌ」の間の関連を含むキーバインディング表を見る。ＨＴＭＬｐコンテンツハンドラ１１４ｃは、ＳｈｅｌｌＡｃｔｉｖａｔｅ（ｐｈｏｎｅ：ｄｉａｌ）を呼び出し、これは、ＨＴＭＬｐコンテンツハンドラ１１４ｃのＨＴＭＬｐＡｃｔｉｖａｔｅ関数を呼び出す。 
【０１３８】
ここで、ページに埋め込みオブジェクトがないと仮定する。次に、該関数は、入力ストリングをＰＯＰ、ＤＯＮＥ、ＧＯ、ＣＬＥＡＲ、およびＮＯＮＥ等の様々な他のアクションに対してテストする。ストリング「ｐｈｏｎｅ：ｄｉａｌ」はこれらのいずれともマッチしないため、ＨＴＭＬｐＡｃｔｉｖａｔｅ関数は、シェルのＳｈｅｌｌＧｅｔＵＲＬ（ｐｈｏｎｅ：ｄｉａｌ）関数を呼び出す。 
【０１３９】
シェル１０６は、この関数を図５のフローチャートに示すように処理する。例を続けて、シェルは、ＵＲＬが電話プロトコルハンドラ１１２ｇについてのものであると決定し、「ｄｉａｌ」の部分を処理のために電話プロトコルハンドラ１１２ｇに渡す。このプロトコルハンドラ１１２ｇは、ダイアルすべき番号を含む「ＣａｌｌＭａｎａｇｅｒ」型（コールマネージャコンテンツハンドラ１１４ｂに定められた）のコンテンツストリームを戻す。シェル１０６はＨＴＭＬｐコンテンツハンドラ１１４ｃを閉じるが、該ＵＲＬをＵＲＬ履歴スタック１０８から削除しない。シェル１０６は、ＵＲＬ「ｐｈｏｎｅ：ｄｉａｌ」をＵＲＬ履歴スタック１０８の最上部に配置する。シェル１０６は、電話プロトコルハンドラ１１２ｇが返したコンテンツストリームから、コンテンツハンドラ１１４のストリング名を取得して、ストリームを処理する。シェル１０６は、その表におけるストリングを索引して、ＵＲＬ履歴スタック１０８の最上部エントリのＣＯＮＴＥＮＴフィールドを更新する。最後に、シェル１０６は、新しい現行のコンテンツハンドラ１１４のＯｐｅｎ関数を呼び出して、コンテンツストリームデータを渡す。コールマネージャコンテンツハンドラ１１４ｂのＯｐｅｎルーチンにおいて、コールマネージャコンテンツハンドラ１１４ｂは、ストリームから電話番号を検索して、電話制御モジュール１２０における、通話を確立するために必要な関数を呼び出す。 
【０１４０】
（ｉｉｉ）メニュー構築 
ソフトキー１３０が＜ＫＥＹ＞タグを使用してメニューにバインディングされ、かつＡＣＴＩＯＮ＝”ｍｅｎｕ”である場合、メニューへのエントリは、ページのＨＥＡＤセクションにおける＜ＫＥＹＭＥＮＵ＞タグを使用して指定される。＜ＫＥＹＭＥＮＵ＞タグは、以下の構文を有する。 
<KEYMENU KEY=nLABEL=stringACTION=url|POP|DONE|CLEAR|GO> 
【０１４１】
エントリは、入力（encounter）された順序でメニューに表示される。しかし、メニューエントリがすべて共にヘッダにある必要はない。 
【０１４２】
ＫＥＹ属性の値は、いずれのメニューにエントリを追加すべきであるかを指定する。これは、存在すべきメニューを指定した＜ＫＥＹ＞タグに与えられる値と同じである。 
【０１４３】
ＬＡＢＥＬ属性の値は、メニューエントリに現れるストリングである。メニューは、すべてのエントリを保持するのに必要な幅である。しかし、ラベルは、画面よりも幅のある場合には、切り捨てられる（truncate）。 
【０１４４】
ＡＣＴＩＯＮ属性の値は、エントリが選択される場合に何が起こるべきかを指定する。可能な値は、
［ＵＲＬ］  フェッチすべきＵＲＬ、またはページにおける埋め込みオブジェクトのためのある他のコマンドを指定する。
［ＰＯＰ］  前ページを表示するよう要求する。
［ＤＯＮＥ］  最も最近の＜ＴＯＰ＞ページの前のページを表示するよう要求する。
［ＣＬＥＡＲ］  すべてのページをＵＲＬスタックからポップして、メイン画面を表示するよう要求する。
［ＧＯ］  現在選択されているリンクをフェッチするよう要求する。これは、＜ＬＩＮＫＭＥＮＵ＞属性を有するページについてのみ有効である。 
【０１４５】
これらのＡＣＴＩＯＮ属性は、上述したＨＴＭＬｐＡｃｔｉｖａｔｅ関数における＜ＫＥＹ＞タグの属性と同じ様式で処理される。 
【０１４６】
図７は、メニューが表示されるよう選択されるときの、キーメニューが定義されているページ、および表示画面１３６についてのＨＴＭＬｐソースコードの例を示す。ＨＴＭＬｐコードを左側に示し、その結果得られるページを右側に示す。４行目は、最初のソフトキー（ＫＥＹ＝１）についてのメニューを定義する。なお、メニューが開いている場合、メニューについてのソフトキーラベル２１６は「Ｓｅｌｅｃｔ」に変わり、ユーザがソフトキー１３０を再度押下すると、選択されたエントリが起動されることを示し、このラベル２１６は、代わりにメニューを閉じるよう変わってもよく、選択を起動するために、Ｓｅｎｄキーを残す。５〜７行目は、このメニューについてのメニューアイテムを定義し、それぞれ、適切なページを表示して、メッセージ、最近の通話、または電話設定を検索するために、ユーザインタフェース定義ファイル１０４のうちの１つを指定する各自のＡＣＴＩＯＮ属性を有する。「Ｓｅｌｅｃｔ」とマークされたソフトキーを押下するか、あるいはエントリの左側のアイコンにマッチする数字キーを押下することにより、メニューにおけるエントリの１つを選択すると、ＫＥＹＭＥＮＵにおいて指定されたＡＣＴＩＯＮが実行される。この例において、適切なＨＴＭＬｐユーザインタフェース定義ファイル１０４は、ＲＯＭからフェッチされる。 
【０１４７】
（ｉｖ）遅延ヘルプ 
コンピュータについての多くのユーザインタフェースは、ある形式のオンライン文脈特定ヘルプテキストを提供する。従来、これらのヘルプ画面は、ユーザがデータを入力しようとしているユーザインタフェースの部分に重なった各自のウィンドウに表示される。さらに、ヘルプ画面は通常受け身的であり、ユーザがヘルプを要求するという直接的なアクションに応答してのみ、現れる。しかし、非常に小さな画面表示を備える無線通信装置では、コンテンツエリアの上にヘルプ画面を重ねると、ユーザの妨げになる。さらに、ユーザがヘルプを利用することができることを知らない場合もあるため、ユーザがヘルプを要求するのを受け身的に待つということは、ユーザによっては、補助が不十分である可能性がある。 
【０１４８】
ページを見ているときに、次に何をすべきかが不確かでありうるユーザを補助するため、かつユーザがデータを入力しようとしている、ページのコンテンツエリア２１４を隠さずに、かかるヘルプを提供するために、本発明は、ユーザによるキーストローク入力なしで、ある量の時間が経過した後、ページのタイトル２１０の代わりに、ヘルプテキストを画面にわたって自動的にスクロールできるようにする。１つよりも多くのヘルプテキストストリングを指定してもよく、この場合、ストリングは、互いの間に適した間隔をおいて、連続して表示される。ヘルプテキストストリングは、ページが見られる度に、それぞれ一度だけ表示される。 
【０１４９】
ページが１つまたは複数のヘルプストリングを指定できるようにするためには、新しい＜ＨＥＬＰ＞タグがドキュメントの＜ＨＥＡＤ＞セクションにおいて指定される。＜ＨＥＬＰ＞タグの構文は、 
<HELP>helpstring</HELP>
であり、ここで、helpstringとは、表示すべきヘルプテキストである。 
【０１５０】
＜ＨＥＬＰ＞タグを含むページがロードされると、ＨＴＭＬｐコンテンツハンドラ１１４ｃは、ヘルプテキストストリングを含む、表等の構造を構築する。この表は、シェル１０６に渡され、シェル１０６が後の使用のために表を格納する。そして、＜ＨＥＬＰ＞タグの機能性は、アイドル時処理中に主にシェル１０６によって処理される。 
【０１５１】
シェル１０６は、最後のキーストロークからの秒数カウンタを維持している。カウンタは、通常各ＳｈｅｌｌＰｒｏｃｅｓｓＫｅｙ毎にクリアされる。リアルタイムオペレーティングシステム１２２は、バックグランドで実行されるタイマを有すると共に、カウンタを増分する、シェル１０６におけるルーチンを呼び出す。カウンタが閾値の秒数に達すると、シェル１０６がスクローリングバナーオブジェクトを作成し、これに対して、表中の最初のヘルプテキストストリングを表示するよう命令する。スクローリングバナーオブジェクトは、いつ、ヘルプテキストストリングが完全に画面表示１３６からスクロールし終えるかを内部で決定して、これをシェル１０６に通知し、シェル１０６はタイトル２１０を再び表示する。第２の閾値が、テキストヘルプストリング表示のためにセットされる。閾値は、ヘルプテキストストリングを表示している望ましい時間の長さを基にして、シェル１０６によって予め決定される。 
【０１５２】
図８は、２つのＨＥＬＰタグを含むページについてのＨＴＭＬｐソース、およびページがロードされると、渡される画面表示１３６の結果得られるシーケンスの例を示す。ＨＴＭＬｐコードの７〜８行目は、表示すべきヘルプテキストを定義する。２番目および３番目の画面イメージは、最初のヘルプテキストストリングがタイトルの代わりにスクロールされているところを示す。 
【０１５３】
（ｖ）テンプレートとしてのページ 
本発明には、標準ＨＴＭＬエディタを使用して、フォームエントリフィールドを完全にするために、Ｃコードによって渡される引数を使用して、またはページにおけるフォームの初期状態を決定するために、装置からオンザフライにフェッチされるデータを指定することで、ページを設計できるようにする多数のＨＴＭＬの拡張がある。これらの拡張としては、テンプレート、条件付きＨＴＭＬ、構成設定性能、および「ｉｎｃｌｕｄｅｄ（包含された）」ＨＴＭＬが含まれる。 
【０１５４】
一般に、埋め込みオブジェクトのためのＣコードは、表示すべきパラメータを有するが、表示の形式はページについてのＨＴＭＬで定義されることが望ましい。例えば、着信にある形式のデータを表示しているページは、電話番号およびそれに関連する氏名を表示することが好ましい。したがって、着信表示用のＨＴＭＬページは、パラメータ（電話番号および発呼者氏名）を取り、必要であればそれらをフォーマットすることが可能であるべきである。 
【０１５５】
しかし、従来のＨＴＭＬ３．２は、この所望の用途に、データを直接ページに渡す機構を提供せず、最高でも、ＨＴＭＬに、ページを必要に応じて作成することを可能にするだけである。ＨＴＭＬの生成は遅くかつコンピュータ集約的であり、ページ生成のための実行可能スクリプトは通常、生成されるページよりも多くの格納領域を必要とし、そのため、ページ自体を格納するよりも効率を低くしている。引数を間接的に渡せるようにすることで、本発明は、実行時にＨＴＭＬを生成する必要性をなくす。これにより、ページをＲＯＭ１２６に格納することが可能になり、かつ必要なメモリは、必要に応じてＨＴＭＬを生成するためのコードよりも少ない。 
【０１５６】
（ａ）テンプレートとしてのページの使用 
データをページに渡せるようにする最初の拡張は、＜ＴＥＭＰＬＡＴＥ＞タグである。＜ＴＥＭＰＬＡＴＥ＞タグは、ページのどこに現れてもよい。ドキュメントの構造において、適切な場所にある対応する＜／ＴＥＭＰＬＡＴＥ＞タグとマッチしなければならない。 
【０１５７】
＜ＴＥＭＰＬＡＴＥ＞タグと＜／ＴＥＭＰＬＡＴＥ＞タグの間のテキストはすべて、％（ｕｒｌ）、％[ｕｒｌ]、または％＜ｕｒｌ＞の形式のエスケープについて検査される。これは、タグ内の、さらには引用された属性値内のテキストを含む。このようなエスケープが見つかると、ＵＲＬについてのデータがフェッチされ、普通テキストまたはＨＴＭＬである場合には、まるで最初からそこにあったのかのように、エスケープの代わりにＨＴＭＬドキュメントに挿入される。＜ＴＥＭＰＬＡＴＥ＞と＜／ＴＥＭＰＬＡＴＥ＞の間のテキストに％キャラクタを含めるには、「％％」のようにもう一つの％が前にこなければならない。 
【０１５８】
フォーム％＜ｕｒｌ＞は、ｕｒｌについてのデータとして戻されたデータを、別のＵＲＬについての引数として使用するためにエンコードさせる。ＵＲＬ引数は、制限されたキャラクタセットを有し、該キャラクタセット外のものはいずれも、後に２つの１６進数字が続く％としてエンコードされる。 
【０１５９】
％（ｕｒｌ）と％[ｕｒｌ]の間の違いは、ＨＴＭＬｐコンテンツハンドラ１１４ｃのキャッシングの振る舞いにある。通常、ページについてのデータは、構文解析され、ページのレンダリングに必要な情報が、ＵＲＬがＵＲＬ履歴スタック１０８に残っている限り、保存される。これにより、すでにフェッチされているページを迅速に再表示することができる。しかし、％[ｕｒｌ]エスケープがテンプレートセクションに見られる場合には、ユーザが最後にそのページを見たときからの、ＵＲＬデータにおける変更をいずれも取り込むために、ＵＲＬについてのデータが、ページの再表示が必要なときにページを再度構文解析することを保証するのに十分動的であることが示される。 
【０１６０】
図９は、ＴＥＭＰＬＡＴＥタグの例を示す。この例において、１９行目〜２５行目の＜ＴＥＭＰＬＡＴＥ＞タグの間のテキストは、テンプレートテキストを定義し、２０行目のエスケープは、ＵＲＬ「ｅｘｔｒａ：ｎａｍｅ」をフェッチさせる結果となり、これにより、テキストを、何であれ、変数「ｎａｍｅ」のもとに格納されているデータと置換する。画面表示は、これをテキスト「Ａｄａｍ  Ｍ」として示す。 
【０１６１】
ＨＴＭＬ４．０の仕様は、ページにおける埋め込みオブジェクトの使用に備えている。通常、埋め込みオブジェクトは、各自のコンテンツの構築および表示に責任を負う、ページ上のある場所に位置決めされたコードのアイテムである。埋め込みオブジェクトは、ＨＴＭＬソースの所望の位置に配置された、ＯＢＪＥＣＴタグについてＵＲＬにおいて指定される。通常、ＵＲＬは、ＡｃｔｉｖｅＸ制御、Ｊａｖａアプレット、Ｃコード等のコードエンティティを指定する。ＨＴＭＬ４．０の仕様では、ＵＲＬは単にサーバに渡されて、サーバが所望のエンティティを戻すだけである。しかし、ＨＴＭＬ４．０では、埋め込みオブジェクトを有するページが一旦ロードされると、埋め込みオブジェクトに対する引数のさらなる処理または引き渡しを行うことはできない。特に、ユーザが、埋め込みオブジェクトを含むページ上のハイパーリンク（ＵＲＬに関連するユーザインタフェースガジェット）を選択する場合、埋め込みオブジェクトは、ＵＲＬを処理する機会を何等持たず、その代わり、ＵＲＬは単にリンクされたページに続くだけである。 
【０１６２】
しかし、本発明は、処理のために、ハイパーリンクに関連するＵＲＬまたはユーザインタフェースガジェットをまず埋め込みオブジェクトに提供することで、埋め込みオブジェクトの機能性を拡張する。これは、サーバがページを更新する必要なく、埋め込みオブジェクトに直接ＨＴＭＬ形式で提供される引数に応答させるものである。この埋め込みオブジェクト機能性の実施は、図６ａおよび図６ｂに関して上述したように、ＨＴＭＬｐコンテンツハンドラ１１４ｃのＨＴＭＬｐＡｃｔｉｖａｔｅ関数において提供される。 
【０１６３】
上述したように、ＨＴＭＬｐコンテンツハンドラ１１４ｃがＵＲＬであるストリングを処理する際、ページに埋め込みオブジェクトがある場合には、ＨＴＭＬｐコンテンツハンドラ１１４ｃはＵＲＬを埋め込みオブジェクトに渡す。本発明によれば、埋め込みオブジェクトは、ＵＲＬ処理の際に、３つのアクションのうちの１つを行う。 
・ＵＲＬをコマンドとして処理する。 
・ＵＲＬにおいてエスケープシーケンスを探して、ＵＲＬをフェッチすべきシェル１０６に渡す前に、それらシーケンスをユーザが選択したデータからの情報で置換する。 
・ＵＲＬを処理せずにＨＴＭＬｐコンテンツハンドラ１１４ｃに返し、これは、ＨＴＭＬｐＡｃｔｉｖａｔｅの残りに従って処理される。 
【０１６４】
第２のタイプの処理の例として、ＨＴＭＬｐページにおける電話帳埋め込みオブジェクトのインスタンスは、「@n」または「@I」等のエスケープシーケンスを探して、それをユーザが選択した電話帳レコードの名称またはレコードＩＤで置換することができる。電話帳オブジェクトは、レコードの名称あるいは任意のフィールドのいずれかを編集することができる編集メソッドを含む。ＵＲＬ「phone:edit?Name=@n」を電話帳オブジェクトに渡すことで、名称が選択された電話帳レコードからすでにセットされている状態で、もう一つの番号を選択された電話帳レコードに追加するという処理が、電話帳エントリ作成プロセスに入ることによって開始され、ＵＲＬ「phone:edit?id=@i」を電話帳オブジェクトに渡すことで、レコードのすべてのフィールドが編集される。 
【０１６５】
この拡張機能性の利点は、Ｃでハードコードされたページを有する代わりに、ユーザが実行することのできる機能の仕様はＨＴＭＬで行ないながら、Ｃでコードされたデータアクセスおよび動的振る舞いを要求する要素を有することができることである。これは、埋め込みオブジェクトがユーザと対話する唯一の方法は、ここでも、埋め込みオブジェクトが実施される言語でハードコードされた各自のユーザインタフェースを提示することによるものであるため、ＨＴＭＬ４．０では不可能であり、したがってサービス運営者による変更またはブランド化が容易ではない。 
【０１６６】
図１０および図１１は、可能な電話帳ページの２つの例を提供するとともに、埋め込みオブジェクトが、本発明の拡張処理により提供することができる柔軟性を示す。 
【０１６７】
図１０において、ユーザは、新しいエントリを作成できるか、または短縮ダイアルキー、呼び出し音、または番号を変更するために、既存の電話帳エントリのフィールドの１つを修正することができる。５行目は、表示されて図示されており、ユーザが最初のソフトキー１３０を押下することで起動されるキーメニューを定義する。メニューエントリ（６〜１２行目）は、現在の選択からのデータについてのエスケーププレースホルダを有するＵＲＬにバインディングされる。特に、６行目は、メニューアイテムについてのＡＣＴＩＯＮを、埋め込み電話帳オブジェクトにおいて現在選択されている名称にすでに指定されている、電話帳エントリ作成プロセスの最初のページに変更させる、埋め込み電話帳オブジェクトについてのＵＲＬとなるように定義する。一般に、本発明における他のＵＲＬは、選択された電話帳レコードを用いて、各自の引数を埋めることで起動可能であり、これらＵＲＬはいずれも、メニューエントリ、ソフトキー、またはキーパッド上の他のキーにバインディングすることができる。特殊なエスケープシーケンスについて、電話プロトコルのｐｈｏｎｅ：ｌｉｓｔＵＲＬに関して後述する。 
【０１６８】
図１１において、ユーザは、新しいエントリを作成するか、または別個のページに進み、特定のエントリについてのパラメータすべてを表示して、ユーザが望む場合にはそれらを変更することができる（これは、別個の画面ｐｂｅｄｉｔ．ｈｔｍｌを介して行われ、ｐｈｏｎｅ：ｌｉｓｔ埋め込みオブジェクトへのｅｄｉｔｕｒｌ引数における「@」エスケープは、ｐｂｅｄｉｔ．ｈｔｍｌへ渡すために、関連するすべてのエントリを抽出する）。さらに、ここでは、グラフィカルタイトルバーが、無線通信装置の製造業者のロゴをバナーとしたタイトル付き背景と共に使用される。埋め込まれるオブジェクトは、電話リストオブジェクトへのＵＲＬと共に１０行目において指定される。 
【０１６９】
ＨＴＭＬｐコンテンツハンドラ１１４ｃが＜ＯＢＪＥＣＴ＞タグに遭遇すると、シェル１０６に、ＯＢＪＥＣＴタグへのＣＯＤＥ属性として与えられるＵＲＬに関連するデータをフェッチするよう要求する。シェル１０６は、「Ｏｂｊｅｃｔ」型でなければならないこのデータをコンテンツストリームとして返す。ストリームには、以下を含む構造がある。
・オブジェクトへのポインタ（ＨＴＭＬｐページウィンドウの子となるべきウィンドウ）
・与えられているストリングで呼び出すことができるＨＴＭＬｐＡｃｔｉｖａｔｅ関数へのポインタ
・オブジェクトの現在状態をフェッチする関数へのポインタ。これは、ＨＴＭＬｐＣｌｏｓｅにより呼び出される。 
・フェッチされた状態を受け入れ、オブジェクトをその状態に回復する関数へのポインタ。これは、ページが以前に表示されたことがあると分かる場合、ＨＴＭＬｐＯｐｅｎによって呼び出される。
・オブジェクトの「値」をストリングとして戻す関数へのポインタ。これは、オブジェクトが、提出されているフォームの一部である場合に呼び出される。 
・オブジェクトをセットすべき「値」を受け入れる関数へのポインタ。該値は、ストリングである。関数は、オブジェクトがフォームの一部であり、かつオブジェクトと同じ名称を有するエクストラデータ（ＮＡＭＥ属性によってＯＢＪＥＣＴタグに与えられる）が引き渡された場合に呼び出される。 
【０１７０】
（ｂ）装置設定へのアクセス 
無線通信装置１００の各種構成可能なパラメータは、さらに後述する構成プロトコルを介してアクセス可能である。フォームがジェットを使用し、各設定について可能な値を指定して、これらの設定を調整できるページを提供することが望ましい。しかし、これを行うためには、これらフォームがジェットの初期状態を、影響するものと思われる設定の現行値にマッチするようセット可能でなければならない。 
【０１７１】
装置設定の値の設定に使用する最も好ましいフォームガジェットは、ラジオボタン、チェックボックス、およびスクローリングリストである。ラジオボタンおよびチェックボックスは双方とも、ＲＡＤＩＯあるいはＣＨＥＣＫＢＯＸいずれかのＴＹＰＥ属性を有するＩＮＰＵＴタグを介してアクセスされる。これらの入力要素について、ＨＴＭＬ３．２において、入力要素がフォーム上で選択されるか否かを定義する選択属性を指定することが可能である。選択属性は、ＣＨＥＣＫＥＤおよびＳＥＬＥＣＴＥＤを含む。ＣＨＥＣＫＥＤ属性は、ラジオボタンまたはチェックボックスを初めに選択すべきであることを示す。同様に、スクローリングリストは、＜ＯＰＴＩＯＮ＞タグを内部に有する＜ＳＥＬＥＣＴ＞タグによって指定され、そのうちの任意のものは、選択リストのオプションを初めに選択すべきであることを示すために、ＳＥＬＥＣＴＥＤ属性を有しうる。 
【０１７２】
通常、これらの属性はブールであり、ＣＨＥＣＫＥＤまたはＳＥＬＥＣＴＥＤ属性がソースに存在する場合、ラジオボタン、チェックボックス、またはオプションが選択される一方で、存在しない場合には、選択されない。しかし、本発明では、これらの属性は、値を受け入れるように拡張されている。値は、式の形式を採り、これは、真と評価される場合、アイテムを最初に選択させる。 
【０１７３】
式は、ＵＲＬからデータをフェッチし、それを真または偽についてチェックされるブール値として扱うか、あるいは同等かまたは不等かについてストリングと比較される。 
【０１７４】
構文は、
ATTRIBUTE=[!]url
であるか、または
ATTRIBUTE=url[!]=string
である。 
【０１７５】
ＡＴＴＲＩＢＵＴＥは、ＣＨＥＣＫＥＤまたはＳＥＬＥＣＴＥＤのいずれかである。ここで、ＵＲＬは、構成プロトコルへのものであり、「ｃｏｎｆｉｇ：ｓｅｔｔｉｎｇ」の形式を採るが、但しＳｅｔｔｉｎｇは、構成プロトコルハンドラ１１２ｂがアクセスする関心のある特定の設定である。 
【０１７６】
最初の構文形式は、フェッチされたＵＲＬデータをブール値として扱い、テキストを整数に変換して、それが０か、または０ではないかを見る。先行する「！」が存在し、かつ値が０である場合、アイテムが選択され、また先行する「！」が存在せず、かつ値が０ではない場合、アイテムが選択される。ｕｒｌ自体が等符号を含む場合には、それを括弧でくくらなければならない。 
【０１７７】
２番目の構文形式は、ｓｔｒｉｎｇとＵＲＬについて検索したデータの間でストリングの比較を行う。「！＝」が与えられる場合、ストリングが等しくなければアイテムが選択され、また＝だけが与えられる場合、ストリングが等しければアイテムが選択される。 
【０１７８】
ＵＲＬが戻したデータが普通テキストでも、またＨＴＭＬでもない場合、式は常に偽と評価し、アイテムはチェックされないままである。 
【０１７９】
図１２は、この式の使用例を提供し、ＨＴＭＬｐソースおよび結果得られるページの双方を示す。９〜１４行目は各種構成設定を指定し、ＣＨＥＣＫＥＤ属性が、構成プロトコルハンダーへのＵＲＬである式によってセットされているところを図示している。図示のページは、これら設定を構成するための結果得られるユーザインタフェースを示す。この例において、ユーザには、３つのラジオボタンと、テキスト入力フィールドとが提示される。ユーザは、画面表示１３６のバックライトを、装置の使用時のみオンするか、または使用時か、プラグインされているときにオンするか、あるいは全くオンにしないかを指定することができる。さらに、ユーザは、入力することなく、それが過ぎた後は無線通信装置がもはや使用されていないと見なされる秒数をセットすることができる。これらの設定は、「バックライト」および「バックライト遅延」設定それぞれに格納することができる。画面が最初に現れると、現行設定に相当するラジオボタンがチェックされ、テキスト入力フィールドが現在の遅延を含む。 
【０１８０】
一般に、この拡張された拡張属性を有する＜ＩＮＰＵＴ＞タグがロードされると、ＨＴＭＬｐコンテンツハンドラ１１４ｃがＵＲＬをフェッチすべきシェル１０６に渡す。ＨＴＭＬｐコンテンツハンドラ１１４ｃは、フェッチされたデータをその構文形式に従って上述したように評価し、ＵＲＬデータの評価に従って選択属性の値を確立する。「ｉｎｃｌｕｄｉｎｇ（包含）」ＨＴＭＬ。 
【０１８１】
「ｉｎｃｌｕｄｉｎｇ（包含）」は、ＨＴＭＬまたはＨＴＭＬｐコードのブロックをページにおいて参照できるようにする、ＨＴＭＬに対する拡張である。包含されたＨＴＭＬはいずれも、包含されたＨＴＭＬ自身が他のＨＴＭＬを含むことができるように、再帰的に解かれる。現在、ＨＴＭＬ４．０は、ページからページにＨＴＭＬのブロックを包含する機構を提供していない。包含ＨＴＭＬの利点は、多くのページが現れるよう設計される、ページのヘッダまたはフッタ、ナビゲーションツールバー等の共通のＨＴＭＬコンポーネントを容易に包含ページへの単一のリファレンスに組み込むことができる。 
【０１８２】
本発明は、任意のソースからのＨＴＭＬ（普通テキストも含む）を、そのＵＲＬを与えることにより、含むための機構を提供する。これは、主にテンプレートページを介して装置設定を表示するために使用されるが、複数のページに共通する要素をコンテンツアーカイブの別個部分に配置して、それをその他のページに含めることにより、コンテンツサイズを低減するためにも使用することができる。該機構は、以下の構文を有する＜ＩＮＣ＞タグによって提供される。 
<INC SRC=urlDYNAMIC> 
【０１８３】
ＳＲＣ（ソース）属性は存在しなければならず、そのデータをその時点にドキュメントに包含すべきＵＲＬを指定する。＜ＩＮＣ＞タグがＨＴＭＬｐコンテンツハンドラ１１４ｃによって解かれると、ＵＲＬに関連するデータがフェッチされ、＜ＩＮＣ＞タグの場所に挿入される。 
【０１８４】
＜ＩＮＣ＞タグは、別のタグの中を除いて、ページのどこに用いてもよい。例えば、「<A HREF=<INC SRC=file:commonurl.txt>>」は許されない。 
【０１８５】
図１３は、＜ＩＮＣ＞タグの例を示す。この例において、最初のページのｉｎｆｏ．ｈｔｍｌは、第２のファイルｂｂｏｄｙ．ｈｔｍｌを参照する２行目に＜ＩＮＣ＞タグを有し、ｂｂｏｄｙ．ｈｔｍｌ自身は、第３のファイルｓｔｄｌｏｇｏ．ｈｔｍｌを参照する８行目に＜ＩＮＣ＞タグを有する。最初のページがロードされると、ＨＴＭＬｐコンテンツハンドラ１１４ｃは、すべての＜ＩＮＣ＞タグを完全に解き、図示のような結果得られるページを生成する。ファイルｉｎｆｏ．ｈｔｍｌは、ファイルｅｎｄｂｏｄｙ．ｈｔｍｌを参照する１３行目に＜ＩＮＣ＞タグを有し、この後者のファイルは、完全に異なるファイルｂｂｏｄｙ．ｈｔｍｌに現れる＜ＢＯＤＹ＞タグを適切に閉じる＜／ＢＯＤＹ＞タグを含む。
【０１８６】
一般に、ページの構文解析時、ＨＴＭＬｐコンテンツハンドラ１１４ｃは、＜ＩＮＣ＞タグを識別する際に、リファレンスＵＲＬをフェッチして、ファイルからのデータを現在のファイルのソースに直接挿入し、必要に応じて、ページを表示するためにそれを解く。
【０１８７】
ＤＹＮＡＭＩＣ属性が＜ＩＮＣ＞タグについて指定される場合、それは、ページが一時的に閉じられるときにキャッシュされた表示命令を使用するのではなく、ユーザがそれを戻したときに、ページを再構築させる。一般に、ＤＹＮＡＭＩＣ属性は、ＳＲＣとして使用されるｕｒｌが、ページが一時的に閉じられている間に変更されうるデータを参照していることを示し、そのため、かかるあらゆる変更を調整するよう、それを再び読み込んで、ページを再構築しなければならない。 
【０１８８】
（ｄ）条件付きＨＴＭＬ 
テンプレートＨＴＭＬｐの各ページの表示は、ファイルプロトコル１１２ｄについてのＵＲＬにおける「？」に続く引数（ファイルプロトコル１１２ｄについてのＵＲＬにおいて指定される引数が、ｅｘｔｒａ：ｐｒｏｔｏｃｏｌを使用して、ファイル内の値として使用可能である）として直接、参照しているＵＲＬにおけるＭＥＴＨＯＤ＝ＮＥＸＴフォームからのフォームデータとして、あるいは本発明におけるＣコードからのパラメータとして、テンプレートページについてのＵＲＬとともに渡されるパラメータによって制御することができる。 
【０１８９】
条件付きＨＴＭＬは、ページのいずれの要素を表示するかを制御するために、条件付き式をページのＨＴＭＬソースにおいて直接エンコードすることを許さない。本発明は、この欠点を新しい＜ＩＦ＞タグにより克服する。＜ＩＦ＞タグは、パラメータまたは装置設定等の式のテストを可能にして、ページの表示を制御する。構文は、以下の通りである。
<IF TEST=expressionDYNAMIC>html<ELSE
TEST=expression>html<ELSE>html</IF>
【０１９０】
ＴＥＳＴ属性における式は、ＣＨＥＣＫＥＤおよびＳＥＬＥＣＴＥＤ属性について上述したのとまったく同様に評価される。
【０１９１】
例えば、以下のＨＴＭＬｐソースを考慮する。
<IF TEST=extra:conf>
<KEY KEY=1 LABEL=Conference
ACTION=phone:conference>
<ELSE>
<KEY KEY=1 LABEL="Pick
Up"ACTION=phone:answer> 
</IF>
<KEY KEY=send ACTION=phone:answer>
<IF TEST=config:anykey> 
<KEY KEY=default ACTION=phone:answer> 
<KEY KEY=back ACTION=phone:answer>
<ELSE> 
<KEY KEY=default ACTION=none> 
<KEY KEY=back ACTION=phone:ignore> 
</IF> 
【０１９２】
最初の＜ＩＦ＞タグにおいて、ＴＥＳＴは、ページをロードしたＣコードによって、ページに渡されるエクストラデータ「ｃｏｎｆ」に関して評価される。このデータは、ＨＴＭＬｐコンテンツハンドラ１１４ｃに対して利用可能な変数に格納される。ページがロードされると、「ｃｏｎｆ」がＴＲＵＥ（真）に評価される場合、最初のソフトキー１３０（ＫＥＹ＝１）が「Ｃｏｎｆｅｒｅｎｃｅ」とラベルされ、キーバインディングテーブルにおいてＵＲＬ「ｐｈｏｎｅ：Ｃｏｎｆｅｒｅｎｃｅ」にバインディングされ、ユーザが電話の会議特徴を起動できるようにする。「ｃｏｎｆ」がＦＡＬＳＥ（偽）と評価される場合、ソフトキーは、代わりに「Ｐｉｃｋ  Ｕｐ」とラベルされ、キーは異なるＵＲＬにバインディングされる。 
【０１９３】
第２の＜ＩＦ＞タグにおいて、テストされるデータは、「ｃｏｎｆｉｇ：ａｎｙｋｅｙ」ＵＲＬによってアクセスされる無線通信装置の構成設定である。この設定についての装置設定に応じて、Ｂａｃｋキーを含むすべてのキーが「ｐｈｏｎｅ：ａｎｓｗｅｒ」関数にバインディングされるか、あるいはＢａｃｋキー（および、特殊なバインディングを有する他の任意のキー）以外のすべてのキーは何も行わない一方で、Ｂａｃｋキーが「ｐｈｏｎｅ：ｉｇｎｏｒｅ」関数にバインディングされる。
【０１９４】
＜ＩＦ＞タグは、テンプレートモードにおいて使用される形式％[ｕｒｌ]と同様に、パーサに、使用するＵＲＬが動的データを生成し、ページが再度構文解析されるべきであると教えるＤＹＮＡＭＩＣ属性を有し、ｕｒｌが、ページが再度見えるようになったときに、ページを再構築するよう要求するのに十分動的なデータを参照することを通知する。
【０１９５】
（ｖｉ）電話番号エントリフィールド 
ＨＴＭＬ４．０は、汎用言語として設計され、無線通信装置、特に電話をかけ、かつ電話番号および関連する氏名を格納することができるものにおける使用に特に適合させる特徴を何等含んでいない。 
【０１９６】
ＨＴＭＬをこのような無線通信装置１００により適合させるために、本発明は、「ｐｈｏｎｅｎｕｍ」および「ｐｈｏｎｅｎａｍｅ」を＜ＩＮＰＵＴ＞タグのＴＹＰＥ属性についての新しい値として指定する。一般に、＜ＩＮＰＵＴ＞タグは、チェックボックス、ラジオボタン、テキスト、またはイメージ等のデータ入力タイプの仕様を可能にするものである。 
【０１９７】
本発明の新しい入力タイプは、ユーザが電話番号または人の氏名を入力できるようにする。ユーザタイプとして、入力フィールドは、入力データを使用して、電話帳データ構造においてマッチングするレコードを索引する。そして、マッチングしたレコードが、電話帳表示に使用されるのとまったく同じフォーマットで入力フィールド下のリストに表示される。マッチングしたレコードが一旦表示されると、ユーザは、リストにおけるアイテムを選択して、そのアイテムをフォームを完成させるために使用することができる。 
【０１９８】
より具体的には、入力タイプが「ｐｈｏｎｅｎｕｍ」である場合、入力数字が電話帳にあるすべての電話番号と比較され、マッチした電話がリストに表示される。ユーザがリストにおけるマッチした電話番号の１つを選択すると、これが、入力とマッチした部分に下線を引いた状態で、入力フィールドを完全に選択された電話番号で置換させる。マッチングにおいて、一桁の数字（０〜９）または二桁の数字（００〜９９）が短縮ダイアルリストのみに対してマッチングされ、マッチした短縮ダイアル番号を表示する。 
【０１９９】
入力タイプが「ｐｈｏｎｅｎａｍｅ」である場合、入力キャラクタが電話帳における氏名と比較され、マッチしたエントリが、マッチしたキャラクタに下線が引かれた状態で表示される。氏名の最初の語におけるマッチは、後続する語におけるマッチよりも優先され、リストはそれに従って格納される。ユーザがマッチした氏名の１つを選択すると、これにより、入力フィールドを完全にマッチした氏名で置換させる。 
【０２００】
図１４は、ＨＴＭＬｐソースおよび結果得られるページの例を示す。ここで、７行目は、電話番号をダイアルするための電話プロトコルを指定し、入力タイプは「ｐｈｏｎｅｎｕｍ」である。ユーザは最初に「２」をタイプしており、これが短縮ダイアルリストに対してマッチングされ、マッチした氏名を表示する。次のイメージにおいて、ユーザは、「９９５」とタイプしており、これが電話帳リストに対してマッチングされ、マッチングした１つの氏名を表示する。３番目のイメージでは、ユーザが氏名を選択しており、これにより、前にある数字および残りの数字を含む、マッチした電話番号全体が、ダイアリングでの使用のために入力フィールドに挿入される。 
【０２０１】
（ｂ）マルチパートフォーム 
上述したように、デスクトップおよびその大型画面向けに定められた通常のＨＴＭＬページでは、従来のフォームは多くの入力フィールドを使用する。仮に、かかるフォームが通常の無線通信装置１００の小さな画面表示１３６上に表示されると、ユーザが、いずれの所与のときでも大部分が画面表示１３６からスクロールして消えていくフォームのコンテキストを見失うか、またはユーザが入力しているデータの大部分を見ることができないため、ユーザは、フォームにおいて非常に迷いやすい。図１６は、無線通信装置１００の表示画面１３６において使いにくい従来のＨＴＭＬフォームの例を示す。 
【０２０２】
１つの解決策は、単一のフォームを、それぞれ必要なアイテムの１つまたは２つを集めた一連のフォームに分割することである。しかし、この場合、従来のＨＴＭＬでは、次のフォームをフェッチするＵＲＬの一部として、各フォームからデータをサーバに伝送する必要がある。そして、サーバは、ＵＲＬで渡されたデータを取り、ページを戻す。該ページは、先行フォームから渡されたデータが、戻されたページ中のフォームに「隠し」タイプ入力要素として含む状態で、オンザフライで生成されなければならない。この様式では、ユーザが入力するデータは、フォーム全体が記入されるまで、複数回送信および返信される。このプロセスは、非常に帯域幅集約的であり、時間がかかるとともに、費用がかさむ。 
【０２０３】
１つのフォームを複数のフォームに分割することの他の欠点は、ユーザが途中で結局フォームを完成させたくないと決心した場合に、ユーザが踏まなければならない手順である。このような場合、ユーザは、記入したサブフォームそれぞれについて、「Ｅｎｄ」または「Ｂａｃｋ」キーを一回押下する必要がある。これは、それぞれが別個のページであるためである。ユーザが急いでいる場合には、フォームをキャンセルしているときに、行き過ぎやすく、実際に望むところが消えてなくなる結果に終わる可能性がある。 
【０２０４】
図１７ａおよび図１７ｂは、１つのＨＴＭＬページでクライアントコンピュータから受信したパラメータが、クライアントコンピュータにアップロードされる前に、サーバコンピュータにより次のＨＴＭＬページにおけるＨＩＤＤＥＮタイプの入力として挿入される、上述した従来のマルチフォーム方法を示す。図からわかるように、クライアントとサーバの間でこのデータを連続して往復して渡すために、複数のページを動的に作成しなければならない。 
【０２０５】
サーバとクライアントの間でデータを往復して送信するためのこのプロトコルは、クライアントとサーバの間の各トランザクションがステートレス（stateless）であり、したがって現行状態を完成するために、先行状態からのデータには暗黙的に依拠しなくてもよいという標準ＨＴＭＬの基本的な仮定から生じるものである。 
【０２０６】
本発明は、ＨＴＭＬのこれらの欠点を、クライアントは各自の状態を十分に保存するとともに、この情報を次の状態の決定に用いることができるという事実を利用するよう設計された、フォームについての新しい「ＮＥＸＴ」メソッド、および新しい＜ＴＯＰ＞タグにより、克服する。 
【０２０７】
（ｖｉｉ）「ＮＥＸＴ」フォームメソッド 
ＨＴＭＬページにおけるフォームは、ユーザからデータを収集するための１つまたは複数の入力要素からなる。データは、それぞれやってきた入力要素の名称でタグ付けされており、ＦＯＲＭタグ内の２つのパラメータ、ＭＥＴＨＯＤおよびＡＣＴＩＯＮに従ってサーバに提出される。ＡＣＴＩＯＮは、データが通常添付されるＵＲＬであり、ＭＥＴＨＯＤはＧＥＴまたはＰＯＳＴのいずれかである。ＧＥＴは、データに基づいて別のページをフェッチするために使用され、ＰＯＳＴは通常、トランザクションを締めくくるよう、データを送信するために使用される。
【０２０８】
これら２つのメソッドに対して、本発明は、新しいＮＥＸＴメソッドを追加する。一般に、ＮＥＸＴメソッドは、フォームを、各パートがフォーム全体のすべての入力フィールドのサブセットを含み、フォーム全体のデータを外部データ構造に格納するマルチパートで指定できるようにする。 
【０２０９】
ＮＥＸＴメソッドは、以下の効果を有する。
１．ＡＣＴＩＯＮ 
ＵＲＬで使用されるメソッドは、ＵＲＬを何等変更しない「ＧＥＴ」であり、ページは単純にサーバからフェッチされる。ＧｅｔＵＲＬは、プロトコルハンドラ１１２について呼び出される関数である。 
【０２１０】
２．フェッチされたページにおける任意のフォームは、現行ページ上のフォームにおいてアクティブなｎａｍｅ／ｖａｌｕｅデータセットで始まる。これは、先行ページから渡されたいずれのｎａｍｅ／ｖａｌｕｅデータも含む。これは、「隠し」入力フィールドの使用を取り替え、データをサーバまで転送し、かつサーバにデータを再び転送させて、ページを返送する必要があることの帯域幅ペナルティを回避する。その代わり、ユーザがサービスを契約したときに、トランザクションを構成するその他のページと共にダウンロードされたページは関連するＣＧＩスクリプトなしでサーバに常駐することができるか、または装置に常駐することができる。 
【０２１１】
図１８ａ〜図１８ｂは、図示した従来のＨＴＭＬページと同じ情報を取り込むが、画面表示１３６のはるかに有用であり、かつ使いやすいフォーマットを提示するマルチパートフォームのＨＴＭＬｐソースおよびページを示す。最初の３つのページ、「ｐｕｒｃｈａｓｅｆｏｒｍ．ｈｔｍｌ」、「ａｄｄｒ．ｈｔｍｌ」、および「ｃｒｅｄｉｔ．ｈｔｍｌ」はすべて、＜ＦＯＲＭ＞タグにおいてＮＥＸＴメソッドを用いて、さらなる入力を取得するために、次にロードされるページを指定する。最後のページ「ｃｏｎｆｉｒｍ．ｈｔｍｌ」は、マルチパートフォームに蓄積されたすべてのデータを処理するためのＣＧＩスクリプトを指定するために、従来のＡＣＴＩＯＮ値を用いている。この様式では、クライアント（無線通信装置１００）が先行入力ページの状態データを維持するため、フォームへのすべての入力を取得して、それらをサーバに送信し戻すために、サーバとクライアントの間に必要な帯域幅は、はるかに低い程度である。氏名、住所、クレジットカード番号等のこの状態データは、メモリ１２６内の無線通信装置１００の内部データ構造内で維持されるため、従来のＨＴＭＬのようにＨＩＤＤＥＮタイプの入力要素に埋め込む必要がない。この内部データ構造は、最初のページがＨＴＭＬｐコンテンツハンドラ１１４ｃによって構文解析される際に作成され、マルチページフォームがロードされる際にそれぞれの新しいページとして更新される。 
【０２１２】
「ｃｏｎｆｉｒｍ．ｈｔｍｌ」ページで使用される＜ＴＯＰ＞タグおよび＜ＤＯＮＥ＞アクションについては、次の項で説明する。 
【０２１３】
（ｖｉｉｉ）複雑な対話 
デスクトップブラウザに表示される標準ＨＴＭＬでのマルチ要素フォームであったものを、ここでは、それぞれ１つまたは２つの要素フォーム（画面表示１３６に楽に収まるために）を含む、ＨＴＭＬｐでの複数ページに変形することができるとすると、ユーザは、各フィールドについてデータを提供している途中で、自分がどこにいるのかを容易に知ることができ、かつプロセス全体を終了したいと容易に決定することができよう。ユーザが先行ページに戻ることしかできない場合には、これは、トランザクションを締めくくるための遅くかつ骨の折れるプロセスであろう。 
【０２１４】
より容易にマルチページを終了させるために、本発明は、ユーザが完全に終了したいと望む複雑な対話の開始として、ページをマークできるようにする。これは、対話の「開始（top）」の所望の場所に、＜ＴＯＰ＞タグ： 
＜ＴＯＰ＞
を提供することによって行われる。このような対話は、マルチパートフォームであっても、またはページの任意の他の複雑な群であってもよい。 
【０２１５】
対話の最初にアクセスするには、ソフトキー１３０がＡＣＴＩＯＮ属性が「ＤＯＮＥ」である＜ＫＥＹ＞タグを用いて定義される。このソフトキー１３０がユーザにより選択されると、ユーザは、＜ＴＯＰ＞でマークされた最も新しいページとしてユーザに参照されるページに戻ることになる。ＡＣＴＩＯＮがＤＯＮＥ値であるこの処理は、上述したように、ＨＴＭＬｐＡｃｔｉｖａｔｅ関数中に行われる。 
【０２１６】
（ｂ）ナビゲーション 
従来の無線通信装置１００でのＨＴＭＬの表示は、キーボードが厳しく制限され、かつポインティングデバイスがまったくないことにより、さらに妨げられる。通常のＨＴＭＬ環境には、クリックまたはドラッグ可能なスクロールバーと、フォームのフィールド間をシフトするためのタブキーと、ユーザが辿りたいと望めば、コンテンツに含まれるハイパーリンクを選択することができるマウスとがある。 
【０２１７】
しかし、本発明が有利に働く無線通信装置１００では、ナビゲーション制御を提供するために頼ることのできるのは、アップキー、ダウンキー、およびソフトキー１３０のうちの可能な１つだけである。豊富なセットのナビゲーション能力を提供するために、本発明は以下の特徴をＨＴＭＬｐに提供する。 
【０２１８】
（ｉ）フォームエントリ 
ページがフォーム要素を含む場合には、アップおよびダウンアローが、以下の様式でフォームフィールド間を移動できるようにするために、多重定義される。 
・フォームにおいて次の（ダウンアロー）または前の（アップアロー）フィールドが見える場合、アクティブフォームフィールドになる。これは、グラフィカル選択インジケータによって表され、テキスト入力要素もまた、明滅するテキストカーソルを得る。 
・フォームにおける次の（または前の）フィールドが画面上では見えない場合、ページの次の（または前の）行が画面上に入るように、画面がスクロールされる。次の（または前の）フィールドが画面上に入れられた行にある場合、アクティブフォームフィールドになる。そうでなければ、現行フォームフィールドがアクティブのままである。 
【０２１９】
画面表示がスクロールするにつれ、現行フォームフィールドが、ユーザが直接該フィールドを選択する必要なく、連続して更新される。この様式において、ユーザは、記入すべき次のフィールドまで続く説明テキストを予想通りに読むことが可能でありながら、単にスクロールするだけでフィールド間を容易に切り替えることができる。 
【０２２０】
これに加えて、最初のソフトキー１３０がページによってある他の目的にバインディングされていない場合、現行フォームフィールドが変化すると、キーバインディング表におけるアクションが以下のように変化する。
【０２２１】
【表１】
0005548229.tif 000002
【０２２２】
表１に定義される各種アクションは、現行フォームフィールドであるユーザインタフェースガジェットのタイプに応じて、ソフトキー１３０の適切で動的に可変な振る舞いについて提供される。これらのアクションは、ユーザがページをスクロールし、ガジェット間のフォーカスを変えることで、現行フォームフィールドが変わる際に、動的に割り当てられる。例えば、現行フォームフィールドがハイパーリンクである場合には、ソフトキーはリンクのＵＲＬに自動的に割り当てられ、ソフトキーを選択すると、ハイパーリンクが自動的にフェッチされる。フォームフィールドが、リスト、ポップダウン、チェックボックス、またはラジオボタン等、あるタイプの選択デバイスである場合には、ソフトキーは、適宜選択デバイスからアイテムを選択するか、選択解除するか、あるいは提出する。例えば、スクローリングリストにおいて、ＳＥＬＥＣＴＥＤ属性（本発明の式評価特徴を有するかまたは有さない）を使用してアイテムが予め選択されている場合、ソフトキー１３０は、該アイテムを選択解除するよう定義される。 
【０２２３】
ページナビゲーションに関するこの機能性は、ＨＴＭＬｐＰｒｏｃｅｓｓＫｅｙ関数において実施される。この関数は、現行ページの他のエントリが、入力キーストロークを受けるために選定されていない場合、シェル１０６によって呼び出される。該関数への入力は、キーパッド１２８のキーを示すキー番号と、該キーが押下されているか、解放されているかを示すブールである。図１５を参照して、ＨＴＭＬｐＰｒｏｃｅｓｓＫｅｙ関数の一実施形態のフローチャートを示す。 
【０２２４】
該キーに関連するＵＲＬがある場合、ＰｒｏｃｅｓｓＫｅｙ関数６０６は、シェル１０６のＧｅｔＵＲＬ関数を呼び出して、関連するＵＲＬを渡す（１５０２）。シェル１０６は、図５に示すようにこのＵＲＬを処理して、該ＵＲＬの処理に適切なプロトコルハンドラ１１２およびコンテンツハンドラ１１４を決定する。 
【０２２５】
該関数は、キー番号から、該キーが、＜ＫＥＹ＞タグ、あるいは＜Ａ＞または＜ＩＮＰＵＴ＞タグのＫＥＹ属性を用いて、あるアクションにバインディングされているか否かを決定する（１５０２）。バインディングされている場合には、キーはソフトキー１３０（シェル１０６によって処理される）ではなく、アクションは、キーが解放されたときに、ＳｈｅｌｌＡｃｔｉｖａｔｅに渡される（１５０４）。 
【０２２６】
そうではない場合には、アップおよびダウンキーのみが特別に処理され（１５０６）、他はすべて、各自のデフォルト処理を受けるために、ＳｈｅｌｌＤｅｆａｕｌｔＰｒｏｃｅｓｓＫｅｙに渡される（１５０８）。 
【０２２７】
アップおよびダウンキーの振る舞いは、ページに選択可能なユーザインタフェースガジェットがあるか否かによって左右される。選択可能なガジェットは、フォーム入力フィールド（ＩＮＰＵＴ、ＳＥＬＥＣＴ、ＴＥＸＴＡＲＥＡ、またはＯＢＪＥＣＴタグから）か、あるいはハイパーリンク（ＬＩＮＫＭＥＮＵタグが存在する場合には）のいずれかである。ページに選択可能なガジェットがない場合（１５０９）、関数は所与の方向に次の行を見えるようにする（１５１４）。 
【０２２８】
ページに選択可能なガジェットがある場合（１５０９）、アップおよびダウンキーに対する反応は、以下の通りである。選択された方向での次のユーザインタフェース下ジェットが見えている場合（１５１０）、関数はそのガジェットを現行ガジェットとする（１５１６）。次のユーザインタフェースガジェットが見えていない場合、所与の方向での次の行が見えるように、コンテンツエリア２１４がスクロールされる（１５１２）。これにより、次のガジェットが見えるようになると（１５１３）、それが現行ガジェットとなる（１５１６）。いずれのユーザインタフェースガジェットも見えない場合には、いずれのガジェットも現行ではない。 
【０２２９】
（ｉｉｉ）メニューとしてのコンテンツ 
フォームを含まないコンテンツは、大まかに２つのクラスにグループ化することができる。すなわち、１）読まれることを意図した情報コンテンツと、２）さらなる情報を得るために、またはあるアクションを行うために、ユーザがリストから何かを選択できるようにするメニューコンテンツと、である。 
【０２３０】
ユーザが必要とするスクローリングおよびリンク選択の振る舞いは、これらのタイプのコンテンツそれぞれについて異なる。情報コンテンツでは、スクロールにより、次のテキストを読めるようにすべきであり（コンテンツのフォーカスとして）、リンクはいずれもメニューから選択される（リンクは、二番目に重要である）。しかし、メニューコンテンツの場合、重要性が逆になり、テキストはリンクを説明するという役割を果たすが、ユーザが見る必要があるのはリンク自体である。このように、リンクが常に選択されるべきであり、発生するスクローリングはいずれも、次のリンクへ行き着くというコンテキストにおいて発生すべきである。従来のＨＴＭＬは、コンテンツのこれらのタイプを区別せず、それらの相違に適応するよう、コンテンツを表示するコンピュータのナビゲーション特徴を変更するための機能を提供しない。 
【０２３１】
コンテンツのこれら２つのタイプを区別し、かつ望ましいナビゲーション制御を提供するために、本発明は、新しい＜ＬＩＮＫＭＥＮＵ＞タグを提供する。＜ＬＩＮＫＭＥＮＵ＞タグは、コンテンツが選択メニューであることを示すために、ヘッダに与えることができる。構文は、次の通りである。 
<LINKMENU TARGET=nameNOSCROLL> 
【０２３２】
ＴＡＲＧＥＴ属性は、ページ上のすべてのリンクのＮＡＭＥ属性とマッチする値を有する。ｎａｍｅ値がＴＡＲＧＥＴ値とマッチするリンクは、ページが表示されるときに初期的に選択されているリンクである。ＴＡＲＧＥＴ値がＵＲＬ（値の最初の部分が、コロンが後に続く英字キャラクタである）である場合、ＵＲＬがフェッチされて、戻されたコンテンツがページ上のすべてのリンクのＮＡＭＥ属性と比較される。 
【０２３３】
ＮＯＳＣＲＯＬＬ属性が存在する場合、該属性は、選択されたリンクを見えるようにするために、表示をスクロールしないよう要求する。 
【０２３４】
＜ＬＩＮＫＭＥＮＵ＞の指定は、以下の効果を有する。まず、リンクは、従来のＨＴＭＬでのように、グラフィック的に目立たない（例えば、下線を付されない）。次に、ページの最初のリンクが選択されているものとしてマークされる（ＴＡＲＧＥＴ属性が与えられていない限り）。最後に、ＨＴＭＬｐＰｒｏｃｅｓｓＫｅｙメソッドにおいて説明したように、アップおよびダウンキーが現行のユーザインタフェースガジェットを、見えている前のまたは次のリンクにセットする。次のリンクは、現行リンクの下にあり、かつ水平距離にして最短距離にあるリンクとして定義される。これにより、リンクの列を優雅に、かつ予期されるように処理することができる。前のまたは次のリンクが見えていない場合、画面は適切な方向に一行スクロールする。そして、所望のリンクが見えるようになると、そのリンクが選択される。そうではない場合には、現行リンクが、現在見えている限り、アクティブのまま残る。 
【０２３５】
＜ＬＩＮＫＭＥＮＵ＞がページに与えられていない場合、コンテンツは以下のように扱われる。まず、リンクに下線を付すことで、リンクを目立たせる。次に、最後のソフトキーがいずれにもバインディングされていなければ、ページにおけるすべてのリンクが、そのソフトキーにバインディングされたメニューに収集される。最後に、アップおよびダウンセレクタが一度にテキスト一行づつページをスクロールする。 
【０２３６】
＜ＬＩＮＫＭＥＮＵ＞タグのこの機能性は、ＨＴＭＬｐコンテンツハンドラ１１４ｃにより、該ハンドラがページを構文解析して、キーバインディング表およびメニューをセットするときに、発効される。 
【０２３７】
図１９は、＜ＬＩＮＫＭＥＮＵ＞が指定されない第２のタイプの振る舞いの例を示す。この例では、ｉｇｕａｎａ．ｇｉｆおよびｌｉｚａｒｄｓ／ｂｌｕｅ−ｔｏｎｇｕｅｄ−ｉｇｕａｎａ．ｈｔｍｌ等のファイルまたはデータベースデータ<a href=map?city=adelaide label=map>を含む他のコンテンツへのリンクはすべて、２番目のソフトキー１３０にバインディングされる「Ｌｉｎｋｓ」という名称のメニューに自動的に配置される。このメニューは、ソフトキー１３０が押下されると、２番目のイメージに示すように表示される。
【０２３８】
図２０は、＜ＬＩＮＫＭＥＮＵ＞が指定される第１のタイプの振る舞いを示す。なお、ページにおけるリンク、例えば<A HREF=flights/ua909.html>UA 909</Aには、従来のＨＴＭＬでのように、下線が付されない。むしろ、アップおよびダウンアローがこれらのリンクを順序通りに動かして選択する。 
【０２３９】
（ｉｉｉ）リンクのキーへのバインディング 
本発明は、＜Ａ＞タグに新しい属性を提供する。これらの属性は、標準ＨＴＭＬブラウザは該属性を無視するため、無線通信装置１００およびデスクトップコンピュータの双方にコンテンツを提供する互換性のある方法を提供する。これらの属性は、ＫＥＹおよびＬＡＢＥＬ属性である。 
<A KEY=key LABEL=string HREF=url> 
【０２４０】
指定される場合、ＫＥＹ属性は、指示されたキーがＨＲＥＦについてこれにより指定されたＵＲＬを辿るよう求める。「ｂａｃｋ」キーは、このようにしてバインディングしていなくてもよい。したがって、この属性は、特定のキーを特定のＵＲＬにバインディングするための手段を提供する。 
【０２４１】
指定される場合、ＬＡＢＥＬストリングは、２つの方法の１つで使用される。 
ＫＥＹも提供され、かつこれはソフトキー１３０である場合、ストリングは、画面表示１３６上に表示されるソフトキー１３０についてのラベルである。 
ＫＥＹが提供されない場合、ストリングは、ＬＩＮＫＭＥＮＵタグが与えれていないときに、ＨＴＭＬｐコンテンツハンドラ１１４ｃによって自動的に構築された、リンクのメニューに使用されるラベルである。ＬＡＢＥＬ属性がない場合には、リンクのテキストが使用される（あてはまるかぎりは）。 
【０２４２】
（ｉｖ）キーの入力要素へのバインディング 
従来のＨＴＭＬは、＜ＩＮＰＵＴ＞タグにＳＵＢＭＩＴおよびＲＥＳＥＴ属性を提供する。しかし、これらの属性は、リターンキー、またはユーザインタフェースガジェット上のマウスクリックのいずれかにハードコードされる。 
【０２４３】
本発明は、バインディングしたい所望のキーを指定する＜ＩＮＰＵＴ＞タグのＫＥＹ属性を使用して、特定のキーにもこれらをバインディング可能にすることで、ＳＵＢＭＩＴおよびＲＥＳＥＴ入力要素の使用を拡張する。 
【０２４４】
好ましい実施形態において、デフォルトにより、ＳＵＢＭＩＴ要素は第２のソフトキー１３０にバインディングされ、かつＲＥＳＥＴ要素は３番目のソフトキー１３０にバインディングされる。装置が２つのソフトキー１３０しか持たない場合、ＲＥＳＥＴ要素にはアクセス不可能である。しかし、これらの装置の形式が単純であるとすれば、通常、このことは問題ではない。 
【０２４５】
複数のＳＵＢＭＩＴ要素を有するフォームは、明示的なキーバインディングが与えれていない限り、それらすべてを第２のソフトキー１３０上のメニューに配置される。同じキーにバインディングされた複数のＳＵＢＭＩＴまたはＲＥＳＥＴ要素は、そのキー上でメニューに組み合わせられる。 
【０２４６】
（ｃ）特殊化されたコンテンツ 
本発明はまた、特殊なタイプのコンテンツをサポートするか、または既存のワールドワイドウェブでの実施を無線通信装置１００のより小型の画面表示１３６にマッピングするための方法を提供するために、ＨＴＭＬへのさらなる拡張を含む。 
【０２４７】
（ｉ）電話のダイアリング 
他の電話型製品のように、無線通信装置１００は、ＤＴＭＦベースのネットワークサービス、またはボイスメールシステム等の、機能性制御にＤＴＭＦトーンを使用する他のシステムにアクセスすることができる。したがって、ＨＴＭＬｐは、かかるシステムと容易にインタフェースするために、ページのフェッチ時に、ＤＴＭＦトーンの生成を非常に容易にする新しいタグを含む。これは、新しい＜ＤＩＡＬ＞タグを使用して達成される。 
<DIALNAME=stringICON=numberNOSCREENCHANGE>(n|n@t;)+</DIAL>
【０２４８】
ｎは番号または特別なダイアルコード（pauseのｐのように）であり、@ｔ；は、もしあれば、１０秒単位で継続期間を指定する。ＤＴＭＦトーン生成と、新しく電話をかけることとの間の選択は、通話が現在アクティブ（保留されていない）であるか否かに基づいて行われ、通話がアクティブである場合には、ＤＴＭＦトーンが生成される。
【０２４９】
ＮＡＭＥおよびＩＣＯＮ属性は、電話をかけている間に表示されているページおよびダイアルした番号を容易に電話帳に配置可能とする追従ページにおいて使用するため、電話をかける相手を指定する。ＩＣＯＮ属性もまた、通話接続ページにおいて使用され、その主な目的は、ユーザがダイアルした番号を電話帳に格納できるようにする通話に追従するページにある。電話番号は、埋め込み電話帳オブジェクトおよび他の場所にある各自のアイコンによって識別され、実際の番号入力時にユーザがアイコンを変更しない場合には、ＩＣＯＮ属性が使用するアイコンを指定する。 
【０２５０】
ＮＯＳＣＲＥＥＮＣＨＡＮＧＥ属性は、通話が成功した後に、表示が、図２２ａ〜図２２ｃ等の標準の通話管理ページに変わるのではなく、このページに戻るべきであると指示する。 
【０２５１】
非特権ページによる実際に新しく電話をかけようとする試みはいずれも、不当なコンテンツが望ましくない電話をかけないようにするため、ユーザに確認される。 
【０２５２】
このタグは、ユーザインタフェースページが、既存のＤＴＭＦベースのコマンドツリーにグラフィカルな命令シートを提供できるようにする。ユーザは、画面上の機能を起動し、それから、画面が、ユーザが要求したアクションを実行するために適したＤＴＭＦトーンを生成すると共に、新しい状態でユーザが利用可能な操作を表示する新しいページを提示する。図２５は、このタイプの使用例を示す。「ＶｏｉｃｅＢｏｘ」というタイトルのファイルは、ボイスメールシステムにアクセスするためのユーザインタフェースページである。２行目の＜ＤＩＡＬ＞タグは、ボイスメールシステムのための電話番号と、ユーザパスワード「４４１６７２２」とを含む。４〜８行目は、該システムの各種機能を起動するためのキーパッド１２８のキーを定義する。「Ｌｉｓｔｅｎ」というタイトルのファイルでは、２行目の＜ＤＩＡＬ＞タグはまず、ボイスメールシステムをトリガして、再生モードに入らせる番号「５」に対応するＤＴＭＦトーンを生成する。４〜８行目はここで、各番号キー１３４に、それぞれボイスメールシステムのさらなる機能を生成する特定の番号をダイアルするためのＵＲＬである各種アクションを割り当てる。したがって、＜ＤＩＡＬ＞タグを使用することで、正確な基礎をなすＤＴＭＦ信号を提供しながら、ユーザがグラフィカル的にボイス応答システムのコマンドツリーをナビゲートできるようにする。
【０２５３】
＜ＤＩＡＬ＞は、ＨＴＭＬｐコンテンツハンドラ１１４ｃによってシェル１０６に提供され、シェル１０６は次に、それを処理およびＵＲＬに提供された番号に対応するＤＴＭＦトーン生成のために、電話プロトコルハンドラ１１２ｇに提供する。 
【０２５４】
（ｉｉ）広告コンテンツ 
既存のワールドワイドウェブコンテンツは、広くグラフィカル広告バナーによってサポートされている。しかし、無線通信装置１００の画面表示１３６の帯域幅および画面サイズは限られており、従来のイメージ集約的な広告バナーが無線通信装置１００上に適切に表示されないため、この種の広告を問題のあるものにしている。 
【０２５５】
本発明は、既存の＜ＭＡＲＱＵＥＥ＞タグに対する拡張を提供することで、この制限を克服する。このタグは、通常、画面にわたってスクロールすべきであるテキストを指定するが、ページの＜ＢＯＤＹ＞セクションに限られている。従来、＜ＭＡＲＱＵＥＥ＞タグが＜ＨＥＡＤ＞セクションに配置される場合、従来のブラウザはタグを無視する。 
【０２５６】
本発明において、ＨＴＭＬｐコンテンツハンドラ１１４ｃは、＜ＭＡＲＱＵＥＥ＞タグをドキュメントの＜ＨＥＡＤ＞セクションに配置できるようにする。そのように用いられると、＜ＭＡＲＱＵＥＥ＞タグにおける付随の広告テキストがページのタイトルおよび＜ＨＥＬＰ＞タグで指定されているいずれの遅延ヘルプに取って代わる。この機能性は、遅延ヘルプを表示していなときをＨＴＭＬｐコンテンツハンドラ１１４ｃに通知するよう求められるシェル１０６からの呼び出しに応答した、ＨＴＭＬｐコンテンツハンドラ１１４ｃにより、実施される。通知されると、ＨＴＭＬｐコンテンツハンドラ１１４ｃは、シェル１０６にタイトルエリア２１０にわたって広告テキストをスクロールするよう命令する。 
【０２５７】
要約すれば、ＨＴＭＬｐコンテンツハンドラ１１４ｃおよびＨＴＭＬｐ拡張は、従来のＨＴＭＬに存在しない多くの有利な特徴および関数を提供する。 
【０２５８】
（ｂ）広告マネージャ 
広告マネージャコンテンツハンドラ１１４ａは、アイドル時に表示する広告を選択するとともに、古い広告、または要求した回数だけ応答されたか、あるいは実行された広告を削除する。広告は、ＨＴＭＬまたはＨＴＭＬｐページとして定義され、メモリ１２６にユーザインタフェース定義ファイル１０４の一部として格納される。広告は通常、操作者によりスケジュールをベースにして無線通信装置１００にダウンロードされる。ユーザが広告に応答するか、または広告がある回数だけ表示された後、あるいはより重要な広告が来た場合、ダウンロードされた広告は自動的に削除される。 
【０２５９】
広告マネージャコンテンツハンドラ１１４ａは、以下のような基本的なコンテンツハンドラ関数を実施する。 
【０２６０】
（１）ＡｄｖｅｒｔＯｐｅｎ 
広告マネージャコンテンツハンドラ１１４ａがページを一時的なものとすると、広告ページは再度実行されることは決してなく、したがってＵＲＬ履歴スタック１０８に格納されない。これは、現れる任意の他のページ（例えば、着信、低バッテリ等）がＵＲＬ履歴スタック１０８において広告ページと置換されることを意味する。 
【０２６１】
ＡｄｖｅｒｔＯｐｅｎは、呼び出されると、使用可能な広告ページのセットを見て、表示する１つを選択する。それは、ファイルを開いて、ストリームを表示のためにＨＴＭＬｐコンテンツハンドラ１１４ｃに渡す。 
【０２６２】
（２）ＡｄｖｅｒｔＣｌｏｓｅ 
この関数は、表示していた広告ページをチェックして、削除するようマークされている場合には（応答されたか、あるいは要求した回数だけ表示されたため）、該広告ページを削除する。 
【０２６３】
（３）ＡｄｖｅｒｔＡｃｔｉｖａｔｅ 
ストリングは、ＨＴＭＬｐコンテンツハンドラ１１４ｃに渡されて、ユーザが応答したために、現在の広告を削除するものとしてマークした後に、ＨＴＭＬｐＡｃｔｉｖａｔｅにおいて処理される。 
【０２６４】
（４）ＡｄｖｅｒｔＰｒｏｃｅｓｓＫｅｙ 
そうでなければ広告ページにバインディングされていない任意のキーを押下すると、ページを閉じることになり、かつキー押下を広告ページが現れる前にアクティブであったページにより再度処理されることになる。 
【０２６５】
ｃ）コールマネージャ 
コールマネージャコンテンツハンドラ１１４ｂは、２つの目的のために使用される。
１．アクティブコールを表示するため。 
２．発信の接続進行を表示するため。 
【０２６６】
コールマネージャコンテンツハンドラ１１４ｂを現在使用している、ＵＲＬ履歴スタック１０８におけるページは常に１つしかなく、該ページは、これら２つのモードの１つである。コールマネージャコンテンツハンドラ１１４ｂは、以下のような基本的なコンテンツハンドラ関数を実施する。 
【０２６７】
（１）ＣａｌｌＭａｎａｇｅｒＯｐｅｎ 
該ページが再度実行される場合、この関数は、ページの表示前に作成したウィンドウを再び見えるようにし、そのコンテンツを再度表示する。 
【０２６８】
これが、ページが開かれる最初である場合、ＣａｌｌＭａｎａｇｅｒＯｐｅｎは、ＵＲＬについてのデータストリームを検査して、ダイアルすべき電話番号があるか否かを見る。ストリームにおいて、ストリングの形式は：
num=string&name=string&icon=n 
である。
【０２６９】
これは、関数に、ダイアルする番号（もしあれば、ＤＴＭＦトーンが続く）、番号について表示する氏名（番号自身が電話帳にない場合）、および氏名と共に表示するアイコンを教える。
【０２７０】
ダイアルする番号がある場合、コールマネジャーコンテンツハンドラ１１４ｂは、電話制御モジュール１２０によって提供されるインタフェースを使用してダイアリングモードに入り、電話をかける際の進行を示すダイアリングページを表示する。このページは、いずれのＤＴＭＦトーンをダイアルしているかについてのフィードバックを提供するとともに、もしエラーが生じたなら、エラーを報告する。図２１ａ〜図２１ｅは、「ｃｏｎｎｅｃｔｉｎｇ（接続中）」、「ｌｉｎｅ  ｉｓ   ｂｕｓｙ（お話中）」等の接続状態を示すダイアリングページ例を図示する。図２０ｃ〜図２０ｅでは、ダイアルしている電話番号全体を示し、ダイアルしている現在の数字の下に移動するインジケータを付けている。 
【０２７１】
ダイアルする番号がない場合、コンテンツハンドラ１１４ｂのＣａｌｌＭａｎａｇｅｒＯｐｅｎ関数は、アクティブコールのリストならびにそれらを操作するためのインタフェースを表示する。アクティブコールが１つだけしかない場合には、より単純なインタフェースが表示される。図２１ａ〜図２１ｃは、これらのインタフェースを示す。図２１ａは、アクティブコールが１つの場合のインタフェースを示し、図２１ｂは、複数のアクティブコールがある場合のインタフェースを示し、図２１ｃは、図２１ｂと同じインタフェースを示すが、電話会議にするか、または呼を保留するかを選択できるようにするソフトキー１３０のメニューを備える。 
【０２７２】
（２）ＣａｌｌＭａｎａｇｅｒＣｌｏｓｅ 
ページが永久的に閉じられ、かつＵＲＬ履歴スタック１０８から削除される場合、これは、アクティブコールを表示するために割り当てていたリソースを解放することになる。アクティブコールがまだある場合、この関数は、ユーザ入力がないある量の時間後、アクティブコールのリストが再度表示されるように、ＳｈｅｌｌＡｄｄＩｄｅｌＨｏｏｋを呼び出す。
【０２７３】
（３）ＣａｌｌＭａｎａｇｅｒＡｃｔｉｖｅ 
この関数は、選択された呼に関してどのアクションが利用可能であるかに応じて、ソフトキー１３０にバインディングされた以下のコマンドを探す。
［Conference］  多数共同呼（multi-party call）において他の呼（保留）を現在の呼と合わせる。
［Spilit］  参加中の多数共同呼から選択された呼を除去する。
［Hold］  選択した呼または多数共同呼を保留にする。
［Pick Up］  保留していた呼または多数共同呼をアクティブにする。
［Back］  コールマネージャ画面を閉じる。
［Stop］  現行のＤＴＭＦシーケンスを停止して、進行中の通話画面の代わりにアクティブコールのリストを表示する。 
【０２７４】
（４）ＣａｌｌＭａｎａｇｅｒＰｒｏｃｅｓｓＫｅｙ 
この関数は、多数共同呼の場合にアップおよびダウンキーを処理して、ユーザ選択をある呼から次の呼へ移動させる。選択された呼は、アクティブコールとなり、旧アクティブコールが保留になる。 
【０２７５】
数字キー１３４は、アクティブコールが選択される場合にＤＴＭＦトーンを生成し（現在選択された呼をアクティブにしないことは不可能であることを示すように見えるアップおよびダウンキーへの応答に係わらず、ユーザがただ保留するよう求め、選択を変えない場合には、選択した呼を保留することが可能である）、そうでない場合にはダイヤラー画面が提示され、電話をかける最初の番号として数字が入力される。 
【０２７６】
Ｅｎｄキーは、現在の呼を終了する。呼が多数共同呼の一部である場合には、終了する前に会議（conference）から除去される。 
【０２７７】
Ｓｅｎｄキーは、ダイヤラー画面を提示するが、ユーザがＳｅｎｄを押下して次に電話をかけるまで、現行の呼に影響を与えない。 
【０２７８】
ｄ）メインコンテンツハンドラ 
メインコンテンツハンドラ１１４ｄは、装置のメインページを表示するために、ＨＴＭＬｐコンテンツハンドラ１１４ｃのフロントエンドとしての役割を広く果たす。 
【０２７９】
（１）ＭａｉｎＯｐｅｎ 
ユーザがキーを押下し始めると、番号をダイアルし始めるように、入力モードを数字およびシフト状態にリセットする。 
そして、メインページへのストリームを開き、ストリームをＨＴＭＬｐコンテンツハンドラ１１４ｃに渡して、表示する。メインページのサンプルを図２２ａから図２２ｃに示す。 
【０２８０】
（２）ＭａｉｎＣｌｏｓｅ 
同じ引数を有するＨＴＭＬｐＣｌｏｓｅを呼び出す。 
【０２８１】
（３）ＭａｉｎＡｃｔｉｖｅ 
同じ引数を有するＨＴＭＬｐＡｃｔｉｖａｔｅを呼び出す。 
【０２８２】
（４）ＭａｉｎＰｒｏｃｅｓｓＫｅｙ 
キーがＥｎｄであり、かつアクティブコールがある場合、この関数はアクティブコール画面を提示し、それが現れるのを待つ必要なく、ユーザが電話を切ることができるようにする。 
【０２８３】
任意の他のキー押下は、ＨＴＭＬｐＰｒｏｃｅｓｓＫｅｙに渡されて、処理される。 
【０２８４】
７．プロトコルハンドラ 
本発明によれば、無線通信装置１００の機能性は、いくつかのプロトコル、およびかかるデータまたは関数を識別するＵＲＬに応答して、データをフェッチまたは通知（post）したり、要求された関数を実行したりするプロトコルハンドラ１１２を介してアクセスされる。
【０２８５】
好ましい実施形態では、無線通信装置１００と対話するための３つのメインプロトコル、すなわち、電話、メッセージ、および構成がある。４番目のプロトコルである「エクストラ」プロトコルは、＜ＴＥＭＰＬＡＴＥ＞タグおよび他の特徴とともに記載したように、ＨＴＭＬｐテンプレートページを大部分のユーザインタフェースに使用できるようにする。 
【０２８６】
各プロトコルについて、サポートされたＵＲＬは、ＨＴＭＬまたはＨＴＭＬｐページに埋め込まれるオブジェクトを返すもの、およびコンテンツを表示するか、または無線通信装置１００の機能を起動するものに分けられる。 
【０２８７】
ａ）電話プロトコル 
これは、装置の特徴、およびＨＴＭＬよりはむしろＣで書かれた各種埋め込みオブジェクトにアクセスするための主要なプロトコルである。電話プロトコルハンドラ１１２ｇによってデコードされる。これらの埋め込みオブジェクトとしては、上述した電話帳オブジェクト、最近の通話リストオブジェクト等が含まれる。各埋め込みオブジェクトは、パラメータ幅および高さを有する。これらのパラメータは、埋め込みオブジェクトについてＵＲＬにおいて指定され、その出力を表示するために、埋め込みオブジェクトによって提供されるウィンドウのピクセル幅および高さを定義する。 
【０２８８】
各埋め込みオブジェクトはまた、ＵＲＬ仕様に従って実行するメソッドのセットも有する。 
【０２８９】
（１）埋め込みオブジェクト 
各埋め込みオブジェクト毎に、それが許容するパラメータならびにそれに対して行うことができるメソッドが記述されている。これらのメソッドは、キー１２８、ハイパーリンク、またはソフトキーメニューエントリにバインディングされたストリングである。 
【０２９０】
phone:dialing?width=number&height=number&storekey=n,storelabel/editlabel
電話をダイアリングするための埋め込みオブジェクトを含むストリームを返す。該オブジェクトは、番号により、または氏名により格納された電話帳データ構造におけるエントリを索引でき、かつその入力フィールドの下に、＜ＩＮＰＵＴ＞タグのｐｈｏｎｅｎａｍｅおよびｐｈｏｎｅｎｕｍ属性に関して、上述したようにマッチしたものを表示する。 
パラメータ
［storekey］  ユーザがマッチリストにおけるエントリを選択した場合には、ユーザがエントリを編集できるようにするために、またはユーザが入力した番号または氏名を格納できるようにするために、いずれのソフトキー１３０を使用すべきかを指定する。ｓｔｏｒｅｋｅｙパラメータについて指定されるｓｔｏｒｅｌａｂｅｌおよびｅｄｉｔｌａｂｅｌ値は、ソフトキーが以下の２つの機能のいずれかを行うようセットされる場合に、ソフトキーに与えられるラベルを指定する。 
メソッド
［edit］  マッチリストで選択された番号を編集するよう要求する。
［store］  ユーザがタイプしたものから適切なフィールドを記入した新しい電話帳エントリシーケンスに入ることで、ユーザがタイプしたものを電話帳に格納するよう要求する。現行テキストエントリモードが数字である場合、入力されたデータは電話番号としてとられ、現行テキストエントリモードが非数字である場合には、氏名ととられる。 
【０２９１】
また、「@」キャラクタを含むアクションはいずれも、このオブジェクトのメソッドとして考慮される。ｐｈｏｎｅ：ｌｉｓｔオブジェクトについて記述された@エスケープは、ここでもまた機能する。 
【０２９２】
phone:list?width=number&height=number&editkey=n,label&service=string&data=string&showstatus
電話帳データ構造からのレコードを表示するために、電話帳埋め込みオブジェクトを含むストリームを返す。
パラメータ
［Editkey］  何が選択されるかに応じて（電話番号のみを編集できる）、ラベルおよびアクションを変更すべきソフトキー１３０を指定する。
［Service,data］  サービス（ＵＲＬ）またはデータ（格納されたコンテンツ）エントリが選択されるときに、ステータスメッセージエリア２１２に表示するストリングを指定する一方、ｓｈｏｗｓｔａｔｕｓは、任意のステータスメッセージ２１２が表示されているか否か（電話番号エントリの場合、電話番号が表示される）を決定する。 
メソッド
［New］  リストが検索モードであり、かつマッチリストにおけるエントリが選択される場合、氏名、番号等を収集し、結果を電話帳に格納するユーザインタフェース定義ファイル１０４のシーケンスである、新しい電話帳エントリシーケンスが、選択されたエントリの氏名を新しいエントリの氏名として使用して入力される。マッチリストにおいてエントリが選択されない場合、新しい電話番号エントリシーケンスは、ユーザが初期データとしてタイプしたものと共に入力される。データは、現行テキストエントリモードが数字である場合には電話番号のために、現行テキストエントリモードが非数字である場合には氏名として使用される。
［Edit］  現行電話帳エントリを編集するためにＵＲＬが生成され、ＵＲＬがフェッチされる。
［Delete］  ユーザに要求を確認した後、現行電話帳エントリを削除する。 
【０２９３】
また、「@」キャラクタを含むＵＲＬはいずれも、このオブジェクトのメソッドとして考慮され、かつ続くエスケープについて検索される。エスケープが見つかると、エスケープが現行選択からの関連データにより置換される。すべてのエスケープが一旦置換されると、結果得られるＵＲＬがフェッチされる。 
【０２９４】
【表２】
0005548229.tif 000003
【０２９５】
phone:recentcall?filter=number&editkey=n,editlabel/storelabel&callkey=n,label&width=n&height=n&noempty
最近受信した、または最近かけた電話のリストを表示することができる埋め込みオブジェクトを含むストリームを戻す。呼のリストにおける各アイテムは、それに関連するフラグのセットを有する。オブジェクトに、あるフラグセットを有するアイテムのみを表示するよう指示することができる。現在定義された１つのフラグはビット０であり、ユーザが電話にでることができなかった番号から電話をかける。 
パラメータ 
ｆｉｌｔｅｒが存在する場合、それは特定タイプの呼のみを表示すべきであることを示す（１つのみの現行フィルタの値は１であり、これは、出ることのなかった着信を意味する）。ｅｄｉｔｋｅｙおよびｃａｌｌｋｅｙは、選択された呼に基づいて、ラベルおよびアクションを変更すべきソフトキーを指定する。ｎｏｅｍｐｔｙが存在する場合、それは、呼のリストが、フィルタリング後に空である場合には、オブジェクトを含む画面を表示すべきではないことを示す。 
メソッド
［edit］  現行選択が電話帳にある番号である場合、番号についての電話帳編集画面を提示する。
［store］  現行選択が電話帳にある番号ではない場合、電話番号を現行選択にセットした、新しい電話帳エントリシーケンスを提示する。
［call］  現行選択されている番号への呼を示す。
［dismiss］  リストにおけるすべてのアイテムについて、「ｍｉｓｓｅｄ」フラグ（ビット０）がクリアされた後に、画面を閉じる。 
【０２９６】
phone:ringtone?width=number&height=number&ptrAddr=hex
着信に対して装置が生成することのできる呼び出し音のリストを表示できる埋め込みオブジェクトを含むストリームを戻す。
パラメータ 
ｐｔｒＡｄｄｒが与えられる場合、オブジェクトは、ユーザにシステムデフォルト呼び出し音を使用するというオプションを与える。ユーザが呼び出し音を選択すると、次にその番号がｈｅｘで与えられるメモリアドレスに配置される。ｐｔｒＡｄｄｒが与えられない場合、オブジェクトはシステムデフォルト呼び出し音をセットする。 
メソッド
［test］  選択された呼び出し音を一度通して再生する。
［ok］  呼び出し音を選択されたものにセットし、画面を閉じる。 
【０２９７】
phone:speeddial?width=number&height=number&ptrAddr=hexnumber&Name=string&icon=n
短縮ダイアルロケーションのリストを表示するための埋め込みオブジェクトを含むストリームを戻す。
パラメータ 
ｐｔｒＡｄｄｒは、ユーザがエントリを選択したとき、オブジェクトがどこに選択された短縮ダイアル番号を格納するかを指定する。Ｎａｍｅおよびｉｃｏｎ引数は、ｐｈｏｎｅ：ｓｔｏｒｅのものと同一であり、短縮ダイアル番号が割り当てられた番号の氏名およびアイコンを指定する。
メソッド
［Ok］  現行選択が現在別の番号に割り当てられていない場合には、短縮ダイアル番号を現行選択にセットし、画面を閉じる。Ｎａｍｅおよびｉｃｏｎ引数は、ユーザに対する確認画面を構築する際に使用される。
［Clear］  選択された短縮ダイアルエントリの割り当てをクリアする。 
【０２９８】
（２）コンテンツ／コマンドＵＲＬ
phone:active 
アクティブコール画面を表示させて、ユーザがアクティブであり得るいずれの呼も操作できるようにする「ＣａｌｌＭａｎａｇｅｒ」型のストリームを戻す。いずれの呼もアクティブではない場合には、何も行わない。 
【０２９９】
phone:anser 
任意の着信に応答させ、アクティブコール画面を表示させるストリームを戻す。着信がない場合には何も行わない。着信があった場合には、参照するＵＲＬがＵＲＬスタックからポップする。 
【０３００】
phone:conf 
任意の着信に応答させ、かつ現行アクティブコールと合わせる。アクティブコール画面を表示させるストリームを戻す。着信がない場合には何も行わない。着信があった場合には、参照するＵＲＬがＵＲＬ履歴スタック１０８からポップする。 
【０３０１】
phone:dial?num=string&name=string&icon=number&hidden 
指示された番号に、ボイスコールを生成させる。ｎａｍｅおよびｉｃｏｎが提供される場合、これらは呼進行を表示するページ、およびユーザが番号を電話帳に追加したいか否かについて訊ねられる任意の追従ページにおいて使用される。ｈｉｄｄｅｎが指定される場合、ユーザは、呼が一旦接続されると、呼を見ることがない（アクティブコール画面が表示されない）。ＵＲＬは、呼進行画面を表示させるストリームを戻す。 
【０３０２】
引数が与えられない場合、ＵＲＬは、ユーザが電話する電話番号を入力できるようにする、ダイヤラー画面を表示させるストリームを戻す。 
【０３０３】
要求を発しているページが十分な特権を欠く場合、ユーザは、電話番号のダイアルを許可するか否かについて訊ねられる。例えば、受信したテキストメッセージは、ユーザが気付かない９００番や長距離の番号への電話を含みうるため、十分な特権を欠く。 
【０３０４】
phone:display?id=number 
指定された電話帳レコードのデータフィールドを表示するストリームを戻す。 
【０３０５】
phone:edit?name=string&num=string&offset=number&id=number
渡されたパラメータと共に、電話帳の新規／編集画面を表示させるストリームを戻す。ｏｆｆｓｅｔおよびｉｄは、既存のレコードを編集するために、内部でのみ使用される（ｏｆｆｓｅｔはいずれの電話番号を編集するかを示す一方、ｉｄは編集すべき記録の識別子である）。しかし、ｎａｍｅおよびｎｕｍは、新規電話帳レコードの作成に使用することができ、ユーザに適切なアイコンを選択する機会や、別の場合には、電話帳に格納する前にエントリを編集する機会を与える。 
【０３０６】
phone:firstopen?password=string 
与えられたパスワードｓｔｒｉｎｇを構成設定に格納されたものに対してチェックする。マッチすれば、参照画面がポップされ、ｐｈｏｎｅ：ｍａｉｎで置換される。マッチしなければ、電話をオフにする。これにより、電源オンセキュリティ画面をＨＴＭＬページにすることができる。 
【０３０７】
phone:ignore 
任意の着信を拒絶させる。着信がある場合、参照しているＵＲＬがＵＲＬ履歴スタック１０８からポップされる。着信がない場合には、何も行わない。いずれのストリームも戻されず、そのため、参照しているＵＲＬをフェッチする前にアクティブであったＵＲＬが再度表示される。 
【０３０８】
phone:indir?url=string&pop=action 
最後にフェッチしたものからストリームを戻す前に、１つまたは複数のＵＲＬ（各自の副作用を、それが何であれ、起動する）をフェッチする。ｐｏｐ引数が与えられる場合、それは、戻されたデータを表示する前に、１つまたは複数のＵＲＬをＵＲＬ履歴スタック１０８から削除すべきであることを示す。ａｃｔｉｏｎは、１つのＵＲＬ、現行の対話にあるすべてのＵＲＬ、または履歴スタック１０８からのすべてのＵＲＬを削除するために、ｐｏｐ、ａｂｏｒｔ、またはｃｌｅａｒのうちの１つであることができる。 
【０３０９】
phone:look?cat=number&sort&form=format 
番号がｃａｔ引数によって与えられるカテゴリにある電話帳から氏名を検索する。ｓｏｒｔ引数が与えられる場合、結果はアルファベット順にソートされる。ｆｏｒｍ引数は、データを提供すべきフォーマットを指定する。これらは常に、ある形式のＨＴＭＬ（このＵＲＬの結果はＨＴＭＬストリームである）であるが、使用されるタグは以下のように様々である。 
・ｌｉｎｋ：各エントリ名が、適切な場所へのリンクとしてフォーマットされる。サービスフィールドを有するエントリの場合、ＨＲＥＦがサービスフィールドのコンテンツであり、一方、データフィールドを有するエントリの場合、ＨＲＥＦがそのデータを示す。他のすべてのエントリは、エントリの最初の番号をダイアルする。 
・ｆｏｒｍ：ｎａｍｅが＜ＳＥＬＥＣＴ＞リストの＜ＯＰＴＩＯＮ＞要素（これは、このデータをフェッチする＜ＩＮＣ＞タグを取り囲まなければならない）としてフォーマットされる。各オプションの値は、リンクについて上述したように、ＵＲＬである。 
・ｍｅｎｕ：各エントリは、リンクの場合と同様にして＜ＫＥＹＭＥＮＵ＞タグとして提供される。使用するキーは、form=menu=xで指定されるが、但しｘはキーである。 
・ｃｏｕｎｔ：所与のカテゴリにあるレコードの数を生成する。 
【０３１０】
ｐｈｏｎｅ：ｌｏｏｋ  ＵＲＬは、新しい＜ＩＮＣ＞タグと組み合わせられると、ＨＴＭＬページがある種のブランド化したグラフィカルコンテキストで電話帳のサブセットを表示できるようにする。より重要なこととして、それは、サービス運営者およびユーザの双方に対して、いずれのサービスがユーザにとって利用可能であるかを管理する単純な方法を提供する。サービスのグループは、特定のカテゴリで電話帳に記録される。そして、装置は、このＵＲＬを使用して、これらのエントリを表示すると共に、ユーザが１つのサービスを選択できるようにするページを有する。サービスの追加および削除は、単にエントリを電話帳に追加またはそこから削除するだけの問題であり、サービスのリストを表示するページを変更する必要はない。 
【０３１１】
phone:main
所定のメイン画面を表示させるストリームを戻す。 
【０３１２】
phone:release?id=number 
ｉｄ引数が与えられる場合には、アクティブコールまたは指定したコールを解除する。何のデータも戻さない。 
【０３１３】
phone:shortcut?num=n 
ショートカット機能を起動する。ｎは、０〜９の範囲である。 
【０３１４】
ショートカットは、無線通信装置１００の製造業者によって定義され、通常、ソフトキー１３０の１つを押下したまま、次に数字キー１３４の１つを押下することで、起動される。これらは、一般に、電源オンパスワード画面を除き、すべての画面から利用することができる。 
【０３１５】
例えば、ショートカット１は、キーパッドをロックまたはロック解除しうる一方で、ショートカット２は、電話の呼び出し音をミュートにし、ショートカット３は、無線通信装置１００がオンされたときに、パスワード保護を起動または非起動としうる。あるショートカットはまた、電源オンパスワード画面以外のある画面に限定されることもある。 
【０３１６】
phone:store?Name=string&Phone=speed=icon=string&Owner=string&Service=url&Category=number&Group=number&Ring=number&Data=type%0adata&speed=speed&icon=icon&id=id&offset=number&prio=n&pop=string
電話帳におけるレコードを作成、増補、または編集する。ｉｄおよびｏｆｆｓｅｔが指定される場合、レコードにおける選択された電話番号が編集される。他の場合、同じＮａｍｅのレコードがすでに存在していれば、レコードが増補される一方、マッチするＮａｍｅがなければ、新しいレコードが作成されることになる。 
パラメータ
［Phone］  このパラメータのコンテンツは、「ｓｐｅｅｄ」および「ｉｃｏｎ」パラメータが指定されているか否かによってかなり異なる。これらが指定されていなければ、このパラメータは、「speed=icon=number/speed=icon=number/…」の形式のストリングを含む。換言すれば、それぞれに短縮ダイアルロケーションおよびアイコンを関連させた、１つまたは複数の電話番号を指定するストリングである。「ｓｐｅｅｄ」および「ｉｃｏｎ」が指定されていれば、このパラメータは、電話帳に格納する単一の電話番号のみを含む。
［Owner］  エントリのコンテンツを電波を介して更新可能とするパスワードを指定する。
［Service］  エントリに格納すべきＵＲＬを指定する。このＵＲＬは、電話帳では電話番号のように現れるが、Ｓｅｎｄキーが押下されると、ＵＲＬのデータがフェッチされる。
［Category］  エントリを通常の電話帳画面から隠すが、ＨＴＭＬページに包含する場合には、ｐｈｏｎｅ：ｌｏｏｋによって見つけられるようにする。Ｃａｔｅｇｏｒｙ０、１、および２は、通常の電話帳により表示される。
［Ring］  この電話帳レコードにおける任意の番号からの着信時に使用する呼び出し音（０〜１２７、０はシステムデフォルトの使用を意味する）を指定する。高ビット（３２７６８）がセットされる場合、それは、装置が静止モード（quiet mode）である場合であっても、この電話帳レコードにおける任意の番号からの着信があれば、呼び出し音を鳴らすべきであることを示す。高ビットはまた、ｐｒｉｏ引数を用いてセットすることもできる。これが１である場合、高ビットがセットされることになる。
［Data］  任意のデータを電話帳レコードに格納できるようにする。データは、電話帳では電話番号のように現れるが、Ｓｅｎｄキーの押下時には、データが表示される。引数値の最初の部分は、データ型である。通常これは、テキストあるいはＨＴＭＬｐのいずれかである。２番目の部分は、１６進数のストリングとしてのデータ自身であり、オクテット当たり２つを格納する。
［Pop］  （オプション）ｐｈｏｎｅ：ｓｔｏｒｅＵＲＬを要求したＵＲＬを、string値に従ってＵＲＬ履歴スタック１０８から削除させる（pop⇒そのＵＲＬだけを削除する、done⇒最も最近のもので、一番上のＵＲＬ以降のすべてのＵＲＬを削除する、clear⇒メイン画面まで遡るすべてのＵＲＬを削除する）。 
【０３１７】
この特定のコマンドは、ユーザにかなりの柔軟性を提供する。第１に、ＤＡＴＡ引数は、電話番号だけではなくいずれのデータも電話帳に格納できるようにする。特に、ＵＲＬ、イメージ、オーディオデータ、および任意の他のコンテンツを、無線通信装置１００に汎用データベースを作成することで、格納することができる。例えば、ユーザは、ウェブコンテンツを閲覧し、表示されているＵＲＬを選択し、かつそれを後に再度呼び出すために、電話帳に即座に格納することができる。 
【０３１８】
第２に、ＲＩＮＧ引数は、電話帳エントリそれぞれに異なる呼び出し音を指定できるようにする。このＲＩＮＧトーンは、着信が電話帳エントリ内の任意の番号から受信したときに使用される。これにより、ユーザが、各種電話番号に特定の異なった呼び出し音を指定することができる。例えば、ユーザは、異なる家族の面々、同僚、医者のオフィス毎に特定の呼び出し音を指定することができる。 
【０３１９】
第３に、ＲＩＮＧ引数はまた、ｒｉｎｇトーン値に高ビットをセットするか、またはＰＲＩＯ引数に非ゼロを指定することで、任意の電話帳エントリおよびその呼び出し音について優先呼び出しを可能にする。従来の無線通信装置は、通常、電話を無音にして、通常着信音が鳴らないようにする静止モードを含む。本発明では、このＲＩＮＧ引数は、そのようにブロックせずに、音が鳴るようにさせる電話帳エントリからの呼を指定することができる。したがって、ユーザは、この優先呼び出しを家族の面々、および他の大事な人についてセットすることで、静止モードであっても、かかる人々からの電話を鳴らすことができる。 
【０３２０】
コールマネージャコンテンツハンドラ１１４ｂは、各着信の電話番号を、格納された電話番号と比較し、かつ指定した呼び出し音（もしあれば）を使用して、電話の呼び出しを選択かつ制御することで、この特徴を実施する。 
【０３２１】
ｂ）メッセージプロトコル 
テキストメッセージは、英数字ページと同様に、本発明を用いて受信し、閲覧することが可能である。メッセージは、ファイルに格納され、一意の識別子により識別される。このプロトコルは、メッセージプロトコルハンドラ１１２ｆによって処理される。 
【０３２２】
（１）埋め込みオブジェクト 
message:list?width=number&height=number&type=type&num=string&lockkey=n,locklabel/unlocklabel
所与のタイプのメッセージリストを表示する埋め込みオブジェクトを含むストリームを戻す。 
パラメータ
［num］  （オプション）所与のソースからのメッセージのみを表示するよう指示する。
［lockkey］  （オプション）選択されたメッセージが現在ロックされているか否かに基づいて、いずれのソフトキー１３０を更新すべきかを指定する。そのソフトキーを押下すると、メッセージのロック状態がトグルされる。パラメータのｌｏｃｋｌａｂｅｌおよびｕｎｌｏｃｋｌａｂｅｌ部分は、実施する機能に基づいて、ソフトキー１３０に与えるべきラベルを指定する。
［type］  （オプション）どんなタイプのメッセージを表示すべきかを指定する。可能な値は、「ＴＥＸＴ」、「ＦＡＸ」、または「ＶＯＩＣＥ」である。
メソッド
［lock］  選択したメッセージを自動削除からロックする。
［unlock］  選択したメッセージをロック解除して、それを自動的に削除できるようにする。
［new］  新しい送信メッセージの作成を開始する。
［open］  選択したメッセージを表示し、それを読んだものとしてマークする。 
【０３２３】
@を含む任意のＵＲＬもまた、このオブジェクトのメソッドであると考えられる。これは、以下のエスケープについて検索される。エスケープが見つかる場合、エスケープは現行選択からの関連データにより置換される。すべてのエスケープが一旦置換されると、結果得られるＵＲＬがフェッチされる。 
【０３２４】
【表３】
0005548229.tif 000004
【０３２５】
（２）コンテンツ／コマンドＵＲＬ
message:count?type=type 
テキストとして、待機しているメッセージの数を含むストリームを戻す。可能なｔｙｐｅ値は、ＶＯＩＣＥ、ＴＥＸＴ、またはＦＡＸである。通常、これは、すべてのタイプのメッセージについてインボックスを実施する際に＜ＩＮＣ＞タグと共に使用され、装置がサポートするメッセージタイプのリストを提供し、このリストにより、ユーザがそのタイプのメッセージについて個々の画面を得ることが可能になる。リストは、このＵＲＬおよび＜ＩＮＣ＞タグを使用して、この画面上で使用可能なメッセージの数を、リストを構成するテキストの一部として表示する。ＵＲＬはまた、そのタイプの任意のメッセージが使用可能であるか否かに基づいて、異なる＜ＩＭＧ＞タグを選択するために、ＩＦタグのＴＥＳＴ属性において使用することもできる。例えば、静止画像は、メッセージがないときに使用できるが、動画像は、そのタイプの使用可能なメッセージがあるときに使用される。 
【０３２６】
message:operate?reply=&delete=&lock=&unlock=&adjust=&id=number
ｉｄが指定されているメッセージに対して操作を行う。可能な操作は（ＵＲＬでは、これらのうちの１つのみを指定することができる）、
・reply：宛先アドレスをｉｄが指定されたメッセージの送信者にセットして、メッセージ作成画面を提示させる。
・delete：メッセージを削除させる。 
・delconfirm：ユーザに削除の確認を求めた後に、メッセージを削除させる。
・lock：メッセージをロックされているとマークさせ、メッセージ格納が満杯のときに、そのメッセージが自動的に削除されないようにする。
・unlock：メッセージをロック解除とマークさせ、メッセージ格納が満杯のときに、そのメッセージを自動的に削除できるようにする。
【０３２７】
ａｄｊｕｓｔ引数が与えられる場合、それはＵＲＬ履歴スタック１０８を以下のように調整させる。
・reply：調整は行われない。 
・delete：参照しているＵＲＬがＵＲＬスタックからポップされる。
・lock、unlock：ｍｅｓｓａｇｅ：ｒｅａｄＵＲＬからのストリームを、メッセージについて戻し、参照しているＵＲＬを置換する。
このＵＲＬは、操作するのに十分な特権を必要とする。参照しているＵＲＬが特権を欠く場合には、操作はユーザに確認される。
【０３２８】
message:read?id=number 
ｉｄが渡されたメッセージを表示するストリームを戻す。ストリームは、テンプレートＨＴＭＬファイルのためのものである。そのテンプレートを埋めるパラメータは、メッセージのコンテンツに基づいて戻される。 
【０３２９】
message:send?addr=string&body=string&newaddr=&newbody=&pop=&reply=id
テキストメッセージを指示したアドレスに送信するよう要求する。ａｄｄｒがない、またはｎｅｗａｄｄｒが存在する場合、これは、与えられた本文をいずれも維持しながら、ユーザがメッセージのアドレスをセット可能とするストリームおよびパラメータを戻す。
ｂｏｄｙがない、またはｎｅｗｂｏｄｙが存在する場合、これは、与えられたいずれのａｄｄｒおよびｒｅｐｌｙも維持しながら、ユーザがメッセージの本文を追加または編集できるようにするストリームおよびパラメータを戻す。
ａｄｄｒおよびｂｏｄｙの双方が与えられ、かつｎｅｗａｄｄｒおよびｎｅｗｂｏｄｙの双方が存在しない場合には、メッセージが送信される。ｒｅｐｌｙが与えられる場合には、対応するメッセージが、返信済みとしてマークされる。
メッセージが送信され、かつｐｏｐが存在する場合、参照しているＵＲＬがＵＲＬ履歴スタック１０８からポップされる。
このＵＲＬはまた、ＰＯＳＴ動作（ＰｕｔＵＲＬ）と共に動作し、その場合、ａｄｄｒがＵＲＬにおいて指定され、かつＵＲＬに配置すべきデータストリームがメッセージの本文としてとられる。
このＵＲＬは、操作するのに十分な特権を必要とする。参照しているＵＲＬが特権を欠く場合には、操作はユーザに確認される。
【０３３０】
ｃ）構成プロトコル 
装置機能との対話のための第３のプロトコルは、構成プロトコルであり、これは装置の構成情報をセットすると共に、得るために使用される。このプロトコルは、構成プロトコルハンドラ１１２ｂによって処理される。 
【０３３１】
このプロトコルで形成されるＵＲＬは、装置設定自身である。ＵＲＬがフェッチされると、ＵＲＬの現行設定が、テキストに変換され、ストリームとして戻される。データが構成プロトコルＵＲＬにポストされると、データが必要に応じて変換され、装置設定がセットされる。構成ＵＲＬは、取得および設定の双方の場合に、装置設定内のビットをアドレス指定することができる。そして、ＵＲＬは以下のように見える。 
config:setting.bitnumber:bitsize
:bitsizeが存在しない場合、１と仮定される。 
bitnumberは、０〜３１であり、３１が最上位ビットである。 
【０３３２】
大部分の設定は、任意のモジュールでフェッチすることができるが、（無線通信装置のＰＩＮ番号のように）いくつかは十分な特権を有するページ（通常、ＲＯＭメモリ１２６にあるＨＴＭＬファイル）のみによって取得することができる。十分な特権（ここでもまた、通常は、ＲＯＭメモリ１２６にあるＨＴＭＬファイルによる）なしでは、装置設定をセットすることはできない。 
複数の設定は、「config:set」にポストすることで、セットすることができる。そして、ストリームは、「setting.bitnumber:bitsize/value」という形式の行を含む。
【０３３３】
【表４】
0005548229.tif 000005
【０３３４】
ｄ）「ｅｘｔｒａ」プロトコル 
「ｅｘｔｒａ」プロトコルは、主に＜ＩＮＣ＞、＜ＩＦ＞、および＜ＴＥＭＰＬＡＴＥ＞タグと共に使用され、ＨＴＭＬｐテンプレートを本発明の大半のユーザインタフェースとして機能できるようにする。このプロトコルは、エクストラプロトコルハンドラ１１２ｃによって処理される。 
【０３３５】
一般に、エクストラパラメータは、以下のいずれかからＨＴＭＬｐテンプレートに渡される。
１）ＭＭＩ１０２のＣコード 
２）ａｒｇｕｍｅｎｔｓストリングとして、ファイルＵＲＬに。これは、「file://filename?variablename=extra#data」の形式をとる。エクストラデータは、その変数名とともに格納され、かつ何のページであれ、ページがｆｉｌｅｎａｍｅをフェッチするためのＨＴＭＬを完成させるために使用される。 
３）形式データを次のＵＲＬに渡すために、新しいＭＥＴＨＯＤ＝ＮＥＸＴ属性を使用した先の形式からのデータとして。 
【０３３６】
さらに、ＨＴＭＬｐページにあるＵＲＬがフェッチされ、引数を持たない場合、フェッチされているＵＲＬを含むページに渡されたパラメータはいずれも、フェッチされているＵＲＬにも渡される。 
【０３３７】
エクストラプロトコルハンドラ１１２ｃは、ＵＲＬにマッチする引数を探して、該引数をストリームに変換する。例えば、「＜INC src=extra:body＞」は、ＨＴＭＬｐストリームへの「body」引数を含む。別の例として、標準のグラフィカル要素を有する標準フォーマットでメッセージを表示するために使用されるＨＴＭＬｐページがあると仮定する。表示するメッセージは、ＨＴＭＬページをロードするＵＲＬについての引数として与えられる。
【０３３８】
例えば、ＵＲＬ「file://message.html?message=Please+enter+a+valid+phone+number」がエクストラプロトコルハンドラ１１２に与えられる場合、これは、テキスト「Please enter a valid phone number」を変数名「message」を有するテキストストリングとして格納する。このエクストラデータは、ストリングデータを出力する「extra:message」ＵＲＬの使用により、他のどんなページにも表示される。図２２ａから図２２ｃは、この使用を図示したものである。この例では、エクストラデータは＜ＩＮＣ＞タグによって検索され、テキストストリングを直接的にページに組み込むことになる。
【０３３９】
一般に、エクストラプロトコルハンドラ１１２ｃは、ＨＴＭＬｐコンテンツハンドラ１１４ｃがＨＴＭＬｐページにおける「ｅｘｔｒａ」ＵＲＬを構文解析する結果、呼び出される。そのように識別すると、ＵＲＬは、エクストラプロトコルハンドラ１１２ｃに渡されて、エクストラデータをデコードすると共に検索し、これをＨＴＭＬｐコンテンツハンドラ１１４ｃに戻して、ページにレンダリングする。
【０３４０】
ｅ）内蔵プロトコル 
内蔵プロトコルは、ＩＭＧタグのＳＲＣ属性で使用するため、内蔵アイコンおよびイメージへのアクセスを提供する。これらのアイコンおよびイメージは、メモリ１２６のＲＯＭに格納される。「内蔵」テキストは、ＵＲＬのプロトコルコンポーネントを形成し、所望のアイコンの名称は、ＵＲＬのデータコンポーネントを構成する。図２３は、アイコンの好ましいセットと、それらを指定するための完全なＵＲＬとを示す。 
【０３４１】
一般に、内蔵プロトコルハンドラ１１２ａは、ＨＴＭＬｐコンテンツハンドラ１１４ｃがＨＴＭＬｐページにおける「builtin」ＵＲＬを構文解析する結果、呼び出される。そのように識別すると、ＵＲＬは内蔵プロトコルハンドラ１１２ａに渡されて、アイコンまたはイメージデータをデコードすると共に、メモリ１２６から検索し、これをＨＴＭＬｐコンテンツハンドラ１１４ｃに戻して、ページにレンダリングする。 
【０３４２】
Ｃ．ポータブルコンポーネント 
再度図３を参照して、ポータブルコンポーネント１１６は、ユーザインタフェースエンティティとユーザインタフェースの実施に使用される他の機能的コンポーネントのセット、および無線通信装置１００に必要とされる格納装置である。コンポーネントは、可搬性レイヤ１１８によって提供されるＡＰＩに書き込むと共に、ＭＭＩ１０２の基本的な実施要素としての役割を果たしながら、依然として異なる無線通信装置１００との使用のためポータブルである。 
【０３４３】
（１）グラフィックス 
グラフィックシステム２２４は、画面表示１３６をウィンドウと呼ばれるセクションに分割する。ウィンドウは、子ウィンドウが完全に親ウィンドウ内に含まれる階層に構成される。しかし、本発明のウィンドウシステムは、他のウィンドウシステムとは異なり、２つのタイプのウィンドウ、「ダル（dull）」と「スプライト（sprite）」とを区別する。従来のシステムのように、あらゆるユーザインタフェースコンポーネントおよびウィンドウに各自のビットマップを持たせる（これは、より複雑なビットマップ処理を必要とする）のではなく、グラフィックシステム２２４は、ユーザインタフェースコンポーネントが通常重複しないという事実を利用する。グラフィックシステム２２４は代わりに、いくつかのウィンドウ（例えば、ダイアログボックス、または他のウィンドウと重複し、それらを隠す必要のある他のウィンドウ）をビットマップを有する（「スプライト」にする）ものとして定義する一方で、その他（「ダル」ウィンドウ）を、ビットマップを有する最も近くにある先祖のビットマップに描画する。この区別により、ユーザインタフェースコンポーネントの格納に必要なメモリの量が低減し、かつ画面表示１３６の更新プロセスが単純化される。 
【０３４４】
ユーザインタフェース要素がウィンドウに引き出されるとき、描画は実際に直接画面表示１３６にではなくメモリ１２６におけるビットマップに起こる。ある時点で（実際に、コールバックキュー１１０が処理されるトップループにおいて）、これら任意かつすべてのビットマップへのすべての変更が画面表示１３６に転送される。この動作により、画面表示１３６の正確かつクリーンな更新が保証されると共に、基礎をなすビデオドライバを単純化する。該ビデオドライバは、メモリ１２６から画面表示１３６にビットマップを転送する必要があるだけである。 
【０３４５】
グラフィックシステム２２４は、以下の基本的なグラフィックプリミティブを提供する。 
・ライン（太いまたは細い、任意または特別な場合の単一ピクセル厚の垂直または水平、水平ライン、垂直ライン、および長方形もまたフィルパターンを有することができ、それらをドットまたは波線にする） 
・長方形（外郭線または中実） 
・ビットマップ（ピクセル当たり１つのビット、ステンシル（セットビットはカラーで描画されるが、クリアビットは何もしない）として、またはイメージ（セットビットは一色で描画されるが、クリアビットは別の一色で描画される）として） 
・テキスト 
【０３４６】
画面表示１３６の座標系は、座標が画面表示１３６上のピクセル間にあるようなものである。その結果、長方形が（ａ，ｂ）から（ｃ，ｄ）に、もう一つを（ｃ，ｄ）から（ｅ，ｄ）に描画する場合、重複しない。 
【０３４７】
テキストは、ＴｅｘｔＳｔａｔｅと呼ばれるデータ構造を用いて、描画かつ処理される。テキストは、各種の構成可能な属性を有する。 
・ポイントサイズ（小、中、大に予めセットされる）
・スタイル（標準、太字、斜体、下線、固定幅、および取り消し線）
・カラー 
【０３４８】
ＴｅｘｔＳｔａｔｅはまた描画位置を格納し、これは、描画されたストリングのすぐ後ろになるよう更新されるため、複数のストリングを、幅を計算する必要なく、次々と描画することができる。 
【０３４９】
２．ユーザインタフェースガジェット 
無線通信装置１００のユーザインタフェースの大部分は、ソフトキー１３０およびソフトキーメニューの形で設けることができる。コンテンツエリア２１４は、通常、テキスト、アイコン、およびＨＴＭＬフォーム等を表示する。これらの特徴をサポートするために、多くのユーザインタフェースガジェット２２６が設けられる。 
・Checkbox：チェックボックスおよびラジオボタンの双方を実施するために使用される（ラジオボタンは、ユーザが選択したときに、選択解除する必要のあるその他のラジオボタンを知るために、外部コールバックに頼る）。ＨＴＭＬにおける<INPUT TYPE=checkbox>および<INPUT TYPE=radio>に応答して、インスタンス生成される。
・Icon：内蔵アイコンを表示する。
・LabelLine：標準の場所に標準フォントのオプションのテキストラベルを有する水平ライン。ＨＴＭＬにおける<HR>タグによってインスタンス生成される。
・List：ユーザインタフェースにおける各種アイテムリストすべての基礎。特殊なリストのサブクラスは、個々のアイテムを描画し（Listによって配置される）、Listの選択をいつキーストロークまたは他の手段で調整すべきであるかを決定する。
・Popup：ユーザが１つまたは複数のアイテムを選択することができるストリングのポップアップリストを実施する。各アイテムは、それにバインディングされたストリング値を有する。SIZEパラメータが１であるとき、ＨＴＭＬにおける＜ＳＥＬＥＣＴ＞タグによってインスタンス生成される。
・ScrollBanner：指定した速度で、右から左に、または左から右にスクロールすることができる単一行テキストばなーを実施する。ＨＴＭＬにおける＜ＭＡＲＱＵＥＥ＞タグによってインスタンス生成される。
・StringList：Popupのリスト部分を実施するが、また、スクローリングリストとして独立することもできる。ソフトキーメニューは、StringListによって実施される。SIZEパラメータが１ではないとき、ＨＴＭＬにおける＜ＳＥＬＥＣＴ＞タグによってインスタンス生成される。 
・TextEdit：単一行または複数行テキスト編集エリア。ＨＴＭＬにおける＜ＩＮＰＵＴ
ＴＹＰＥ＝ｔｅｘｔ＞および＜ＩＮＰＵＴ  ＴＹＰＥ＝ｐａｓｓｗｏｒｄ＞タグによってインスタンス生成される。 
これらのエンティティは、各種グラフィック要素を表示するために、必要に応じて各種モジュールによって作成される。 
【０３５０】
これら各種タイプのユーザインタフェース要素は、ページが構文解析されるとき、かつ対応するＨＴＭＬタグに応答して、ＨＴＭＬｐコンテンツハンドラ１１４ｃによって作成される。例えば、ページにおけるＩＮＰＵＴＴＹＰ＝ＴＥＸＴタグは、画面表示１３６の適切な場所にあるＴｅｘｔＥｄｉｔオブジェクトという結果になる。ユーザがアップまたはダウンキーで該オブジェクトを選択すると、かかるキーストロークがシェル１０６によりＴｅｘｔＥｄｉｔオブジェクトに渡されるため、ユーザによるキーストローク入力を受け取るよう、入力フォーカスが与えられる。 
【０３５１】
ユーザインタフェースガジェットと関連するものは、テキストを入力かつ表示するための他の２つのモジュールである。ＴｅｘｔＥｎｔｒｙモジュール２２８は、キーストロークを許容して、それらをテキスト入力のためにコマンドにマッピングする。該コマンドは、仮の（後続するキーストロークに基づくさらなる変更の対象となる）キャラクタおよびワードの表示、仮のキャラクタおよびワードの置換を含み、最後の仮のキャラクタまたはワードを最終とし、カーソルまたは挿入シンボルキャラクタを移動する。 
【０３５２】
テキスト入力を要求するエントリはいずれも、ＴｅｘｔＥｎｔｒｙモジュール２２８により登録されてから、キーストローク自身を挿入するのではなく、略すべてのキーストロークをそれに渡す。各種絵文字言語のフロントエンド処理も同様に、このモジュールで処理される。 
【０３５３】
もう一方のモジュールは、ＴｅｘｔＷｒａｐモジュール２３０であり、これは、任意の領域を処理すると共に、これら領域内のテキストおよびオブジェクトをラップする。このモジュールは、主にＨＴＭＬコンテンツの表示に使用されるが、複数行をラップすることができるリストエントリについても使用可能である。 
【０３５４】
３．データ格納 
実施のもう一つの要素は、データ格納２３２である。データ格納２３２は、以下の特性を有する単純な「ｆｌａｔ−ｆｉｌｅ」データベースである。 
・レコード当たり２５５フィールドまで。フィールドは、名称および番号の双方を有するが、実際にデータにアクセスするには番号のみが用いられる。 
・すべてのレコードは、論理的にすべてのフィールドを持つように定義される。格納最適化として、特定のレコードの特定のフィールドにデータが与えられていない場合、そのレコードの該フィールドは、スペースをとらない。 
・各レコードは、レコードへのアクセスを得るために使用される一意の識別子である（今のところ１６ビット）。 
・データベースレコードは、直接操作されない。代わりに、レコードのフィールドを取得、セットする関数が使用される。 
・データベースは、それ用に操作された８つまでのインデックスを持つことができる。各インデックスは、選択ルーチンと比較ルーチンとを有する。選択ルーチンは、いずれのレコードがインデックスの一部であるかを決定し、比較ルーチンは、インデックスにおけるレコードをソートするために使用される。インデックスが定義されると、これは、いずれのデータベースフィールドが選択および比較ルーチンによって使用されるかを指定する。レコードが変更されると、それらフィールドの１つが変更される場合のみ、レコードが再配置されるか、追加されるか、またはインデックスから削除される。 
・レコードにアクセスするためには、２つの機能のうちの１つが、ＤａｔａＳｔｏｒｅＲｅｃｏｒｄトークンを得るために呼び出される。エンティティがレコードの検査または操作を行うとき、ＤａｔａＳｔｏｒｅＲｅｃｏｒｄＤｏｎｅを呼び出す。 
【０３５５】
４．ファイルシステム 
無線通信装置１００は、２つの基礎をなすファイルシステムと通信するファイルインタフェースを備える。 
・コードにコンパイルされたデータ構造である読み出し専用ファイルシステム
・無線通信装置１００のフラッシュメモリチップの中で分散されるフラッシュファイルシステム 
ファイルアクセスは、関数の（最小）類似したセットを介する。 
・ＦｉｌｅＯｐｅｎ ・ＦｉｌｅＣｒｅａｔｅ ・ＦｉｌｅＲｅａｄ ・ＦｉｌｅＷｒｉｔｅ 
・ＦｉｌｅＳｅｅｋ ・ＦｉｌｅＴｒｕｎｃａｔｅ ・ＦｉｌｅＣｌｏｓｅ ・ＦｉｌｅＤｅｌｅｔｅ 
【０３５６】
各ファイルシステムは、すべての基本的な動作を呼び出すルーチンを含む構造によって定義される。オープンファイルのリファレンスは、ファイルシステム特定データ、およびファイルがあるファイルシステムについてのルーチン表へのポインタを含む。ファイルが開かれると、上位レイヤが影響を受けるファイル名を検査し、適切なルーチン表を選択してから、そのテーブルにおけるＯｐｅｎルーチンを使用して、ファイルを開く。その後、ファイルリファレンスを通して、ファイルにアクセスする。 
【０３５７】
Ｄ．可搬性レイヤ 
再度図３を参照して、可搬性レイヤ１１８の各種モジュールが示される。可搬性レイヤ１１８は、任意の電話制御モジュール１２０およびリアルタイムオペレーティングシステム１２２でＭＭＩ１０２を比較的単純に実施するように設計される。可搬性レイヤは、以下のモジュールを提供する。 
【０３５８】
１．呼制御 
呼制御モジュール１４０は、上位レイヤが呼を作成、操作し、ＤＴＭＦトーンを生成すると共に、状態変更の通知を受け取れるようにする。 
インタフェースは、動作が呼に対して行われるという意味では非同期であるが、各動作の成功または失敗は、動作が要求された後そのうち報告される。
【０３５９】
【表５】
0005548229.tif 000006
【０３６０】
２．メッセージ制御 
メッセージ制御モジュール１４２は、上位レイヤがショートテキストメッセージを送受信できるようにする。このレイヤは、より大きなメッセージのセグメント化および再組立をサポートしても、しなくてもよい。 
【０３６１】
【表６】
0005548229.tif 000007
【０３６２】
３．プラットフォーム 
プラットフォームモジュール１４４は、プラットフォームに特定の関数を用意する。 
【０３６３】
【表７】
0005548229.tif 000008
【０３６４】
４．タイマ
タイマモジュール１４６は、上位レイヤが指定した時間量の経過後に、関数呼び出しを受け取れるようにする基本的なタイミングサービスを提供する。 
【０３６５】
【表８】
0005548229.tif 000009
【０３６６】
５．表示
表示モジュール１４８は、画面表示１３６を管理する。 
【０３６７】
【表９】
0005548229.tif 000010
【０３６８】
６．フラッシュドライバ 
フラッシュドライバモジュール１５０は、上位レイヤファイルシステムモジュール２３４が無線通信装置１００のフラッシュメモリチップに対する読み出しおよび書き込みをできるようにする。 
【０３６９】
【表１０】
0005548229.tif 000011
【０３７０】
７．構成プロトコルハンドラ 
このプロトコルハンドラ１１２ｂは、ＣコードおよびＨＴＭＬが無線通信装置１００の構成設定を取得し、セットできるようにする。これらの設定は、上位レイヤで実施されるものであり、モジュールは、必要に応じて下位レベルコードへの他の設定と通信する。構成設定にアクセスする必要があるため、構成プロトコルハンドラ１１２ｂは、可搬性レイヤ１１８に配置されることが好ましい。 
【０３７１】
構成ＵＲＬは、取得およびセットの双方のために、装置設定内のビットをアドレス指定しうる。構成ＵＲＬは、以下の構文を有する。 
config:setting.bitnumber:bitsize 
:bitsizeが存在しない場合には、１と仮定される。bitnumberは、０〜１５であり、１５が最上位ビットである。 
【０３７２】
大部分の設定は、それらを必要とする任意のモジュールまたはページによってフェッチされうるが、電話のＰＩＮ番号等のいくつかの構成設定は、十分な特権を有するＵＲＬ（通常、装置のＲＯＭにあるＨＴＭＬファイル）によってのみ取得可能なものもある。十分な特権（ここでも、通常装置のＲＯＭにあるＨＴＭＬファイル）なしでは、いずれの装置設定もセットすることはできない。 
【０３７３】
以下は、構成プロトコルハンドラ１１２ｂの各関数の呼び出しに好ましい構成ＵＲＬのセットである。
【０３７４】
【表１１】
0005548229.tif 000012
【０３７５】
要約すると、本発明は、システム、各種メソッド、および無線通信装置の柔軟性および機能性を実質的に強化するソフトウェア製品を提供する。本発明は、プロトコルハンドラおよびコンテンツハンドラの使用を含め、無線通信装置のすべての特徴および機能性に、マークアップ言語ベースのユーザインタフェースを介してアクセスかつ操作することができるシステムおよびソフトウェアアーキテクチャを提供する。ＨＴＭＬｐの拡張特徴およびＨＴＭＬｐコンテンツハンドラは、特に、ウェブおよび他のコンテンツを無線通信装置の小さな画面表示に容易に表示できるようにすると共に、メニュー化、ナビゲーション特徴、およびＨＴＭＬのフォーム処理特徴を強化する。無線通信装置の電話または他の機能性へのアクセスを、マークアップ言語ベースのユーザインタフェースを通して提供することで、本発明は、サービス運営者が、熟練またはソフトウェア開発環境を必要とせず、または従来のＭＭＩのソフトウェア管理問題なしで、新しいユーザインタフェースおよび異なる無線通信装置用のカスタム特徴セットを容易かつ迅速に生成できるようにする。さらに、本発明は、サービス運営者および製造業者が、個々でもまた各サービス運営者毎に異なるＭＭＩソフトウェアを作成する必要なく、望むように無線通信装置を迅速かつ効率的にブランド化できるようにする。 
付録Ａ
シェル関数
シェル１０６は、キー処理、ＵＲＬ履歴スタック１０８管理、他のデータ処理に使用するために、本発明のその他の部分に多くの関数を提供する。これらについて、以下に手短に説明する。 
【表１２】
0005548229.tif 000013
【表１３】
0005548229.tif 000014
【表１４】
0005548229.tif 000015
【表１５】
0005548229.tif 000016
【表１６】
0005548229.tif 000017
【表１７】
0005548229.tif 000018
【表１８】
0005548229.tif 000019
【表１９】
0005548229.tif 000020
【表２０】
0005548229.tif 000021
【符号の説明】
【０３７６】
１００：無線通信装置
１０２：ＭＭＩ
１０４：ユーザインタフェース定義ファイル
１０６：シェル
１０７：ブラウザ
１０８：ＵＲＬ履歴スタック
１１０：コールバックキュー
１１２：プロトコルハンドラ
１１４：コンテンツハンドラ
１１６：ポータブルコンポーネント
１１８：可搬性レイヤ
１２０：電話制御モジュール
１２２：リアルタイムオペレーティングシステム
１２４：プロセッサ
１２６：メモリ
１３０：ソフトキー
１３２：関数
１３４：数字キー
１３６：画面表示
１４０：呼制御
１４２：メッセージ制御
１４４：プラットフォーム
１４６：タイマ
１４８：表示
１５０：フラッシュドライバ
２００：ステータスバー
２１０：タイトルバー
２１２：ステータスライン
２１５：スクロールアロー
２１６：ソフトキーラベル
２２０：フォーカストライアングルおよび選択
２２４：グラフィックス
２２６：ＵＩ（ユーザインタフェース）ガジェット
２２８：テキストエントリ
２３０：テクストラップ
２３２：データ格納
２３４：ファイルシステム
２３６：ローカリゼーション
４０６：コンテンツハンドラ
４０８：エクストラデータ
４１０：次
４１２：開く、閉じる、起動、キー処理
４１４：特権
４１６：優先度
４１８：状態 
【図１】
0005548229.tif 000022
【図２】
0005548229.tif 000023
【図３】
0005548229.tif 000024
【図４】
0005548229.tif 000025
【図５】
0005548229.tif 000026
【図６ａ】
0005548229.tif 000027
【図６ｂ】
0005548229.tif 000028
【図７】
0005548229.tif 000029
【図８】
0005548229.tif 000030
【図９】
0005548229.tif 000031
【図１０】
0005548229.tif 000032
【図１１】
0005548229.tif 000033
【図１２】
0005548229.tif 000034
【図１３】
0005548229.tif 000035
【図１４】
0005548229.tif 000036
【図１５】
0005548229.tif 000037
【図１６】
0005548229.tif 000038
【図１７ａ】
0005548229.tif 000039
【図１７ｂ】
0005548229.tif 000040
【図１８ａ】
0005548229.tif 000041
【図１８ｂ】
0005548229.tif 000042
【図１９】
0005548229.tif 000043
【図２０】
0005548229.tif 000044
【図２１ａ】
0005548229.tif 000045
【図２１ｂ】
0005548229.tif 000046
【図２１ｃ】
0005548229.tif 000047
【図２１ｄ】
0005548229.tif 000048
【図２１ｅ】
0005548229.tif 000049
【図２２ａ】
0005548229.tif 000050
【図２２ｂ】
0005548229.tif 000051
【図２２ｃ】
0005548229.tif 000052
【図２３】
0005548229.tif 000053
【図２４】
0005548229.tif 000054
【図２５】
0005548229.tif 000055