(57)【要約】      （修正有）【課題】ユーザが、複数の電子通信サービスを横断して連絡先と通信することを可能にし得る統合通信アプリケーションを提供する。【解決手段】ユーザがメッセージを送信したい時、通信アプリケーションは、指定受信者の部分的識別子の受け取りに応じて、いくつかの電子通信サービスに関連付けられる一組のアカウントアドレス候補を特定する。アプリケーションは、一組のアカウントアドレス候補を含むリストをユーザに提示する。アカウントアドレスの１つのユーザ選択の受け取りに応じて、アプリケーションはメッセージ送信元の送信者アカウントを決定する。また、アプリケーションは、ユーザと相手との通信履歴を集約する。ユーザと相手のユーザ識別子に関連付けられる一組の通信ファイルは、ファイル内の各会話内容のタイムスタンプに基づいた順序で取得、配列でき、ユーザに提示する。【選択図】図２
2016197891.tif 000002
【特許請求の範囲】
【請求項１】
送信者によって送信されるメッセージの指定受信者の部分的識別子を含むユーザ入力をコンピュータで受け取ることと、
少なくとも部分的に前記部分的識別子に基づいて、一組のアカウントアドレス候補を含むリストを前記コンピュータによって決定することと、
前記一組のアカウントアドレス候補を含むリストを前記コンピュータによって提示することと、
前記アカウントアドレス候補のうちの１つのユーザ選択を、前記メッセージの前記指定受信者の前記識別子として、前記コンピュータによって受け取ることと、
前記選択に応じて、前記メッセージを前記指定受信者に送信するために使用する、前記送信者に関連付けられる送信者アカウントアドレスを前記コンピュータによって決定することと、
前記メッセージを前記送信者アカウントアドレスから前記選択されたアカウントアドレス候補へ送信することと、
を含むことを特徴とする方法。
【請求項２】
前記一組のアカウントアドレス候補が、複数の電子通信サービスに関連付けられる一組のユーザ識別子を含む
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記複数の電子通信サービスが、電子メール、インスタントメッセージング（ＩＭ）、ショートメッセージサービス（ＳＭＳ）、ボイスオーバ・インターネットプロトコル（ＶｏＩＰ）のうちの少なくとも１つを含む
ことを特徴とする請求項２に記載の方法。
【請求項４】
前記送信者アカウントアドレスを決定することが、
前記選択されたアカウントアドレス候補が、前記複数の電子通信サービスのうちの第１の１つに関連付けられると判定することと、
前記送信者に関連付けられるアカウント及び前記複数の電子通信サービスのうちの前記第１の１つを前記送信者アカウントアドレスとして選択することとを含む
ことを特徴とする請求項２に記載の方法。
【請求項５】
前記複数の電子通信サービスのうちの第１の１つを、前記選択されたアカウントアドレス候補に関連付けられるものとして前記コンピュータによって特定することと、
前記メッセージの別の指定受信者の別の部分的識別子を含む別のユーザ入力を受け取ることと、
前記ユーザ連絡先のデータベースを前記コンピュータによって検索して別の一組のアカウントアドレス候補を特定することと、
前記別の一組のアカウントアドレス候補のサブセットを決定することであって、前記サブセット内の各アカウントアドレス候補が前記第１の電子通信サービスに関連付けられる、決定することと、
前記送信者が前記メッセージの別の指定受信者を選択し得るアカウントアドレス候補の前記サブセットを前記コンピュータによって提示することと、を更に含む
ことを特徴とする請求項２に記載の方法。
【請求項６】
前記一組のアカウントアドレス候補を含む前記リストを決定することが、
前記部分的識別子が、ユーザ連絡先のデータベースにおける１つ以上の連絡先の、ファーストネーム、ラストネーム、又はアカウントアドレスのうちの少なくとも１つと一致するかを判定することを含み、
前記部分的識別子が前記ファーストネーム、前記ラストネーム、又は前記アカウントアドレスのうちの少なくとも１つに一致すると判定に応じて、前記判定された一致を含む前記リストが提示される、
ことを特徴とする請求項１に記載の方法。
【請求項７】
文字列を含むユーザ入力をコンピュータで受け取ることと、
ユーザ連絡先のデータベースを、前記文字列に少なくとも部分的に基づいて、前記コンピュータによって検索し、第１の組の受信者アカウント候補を特定することと、
送信者が接続されている一組の電子通信サービスを前記コンピュータによって特定することと、
前記送信者の１つ以上のサービス固有の連絡先リストを、前記文字列に少なくとも部分的に基づいて、前記コンピュータによって検索し、第２の組の受信者アカウント候補を特定することであって、各サービス固有の連絡先リストが前記一組の電子通信サービスにおける前記通信サービスのうちの１つに関連付けられる、特定することと、
前記第１及び第２の組の受信者アカウント候補を前記コンピュータによって前記送信者に提示することと、
前記第１及び第２の組の受信者アカウント候補からの特定の受信者アカウントのユーザ選択を前記コンピュータによって受け取って通信を送信することと、
を含むことを特徴とする方法。
【請求項８】
前記ユーザ連絡先のデータベースを検索することが、前記文字列と、前記ユーザ連絡先のデータベースにおける各連絡先のファーストネーム、ラストネーム、又はアカウントアドレスの少なくとも一部との間での一致を検索することを含む
ことを特徴とする請求項７に記載の方法。
【請求項９】
前記一組の電子通信サービスが、インスタントメッセージングサービスを含む
ことを特徴とする請求項７に記載の方法。
【請求項１０】
前記特定の受信者アカウント候補の関連する電子通信サービスを決定することと、
前記通信を送信する送信者アカウントを、前記関連する電子通信サービスに基づいて、選択することと、を更に含む
ことを特徴とする請求項７に記載の方法。
【請求項１１】
プログラム命令で符号化されたコンピュータ可読記憶媒体であって、前記プログラム命令が、実行された時に、コンピュータ装置内のプロセッサに、チャットセッションを円滑にするため、
送信者によって送信されるインスタントメッセージの指定受信者の部分的識別子を含むユーザ入力を受け取ることと、
前記部分的識別子に少なくとも部分的に基づいて、ユーザ連絡先のデータベースを検索し、複数の電子通信サービスに関連付けられる一組のユーザ識別子を含む、一組の受信者候補の一組のアカウントアドレス候補を特定することと、
前記一組のアカウントアドレス候補を含むリストを提示することと、
前記アカウントアドレス候補のうちの１つのユーザ選択を前記インスタントメッセージの前記指定受信者の前記識別子として受け取ることと、
前記インスタントメッセージを前記指定受信者に送信するために使用する前記送信者に関連付けられる送信者アカウントアドレスを、前記選択されたアカウントアドレス候補に少なくとも部分的に基づいて、決定することと、を含む方法を実行させる
ことを特徴とするコンピュータ可読記憶媒体。
【請求項１２】
前記ユーザ識別子のうちの少なくとも１つが、２つの異なる電子通信サービスに関連付けられる
ことを特徴とする請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１３】
前記インスタントメッセージが、テキストデータ、映像データ、オーディオデータ、又は画像データのうちの少なくとも１つを含む
ことを特徴とする請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１４】
前記送信者に関連付けられる前記送信者アカウントアドレスを決定することが、
前記選択されたアカウントアドレス候補に関連付けられる特定の電子通信サービスを決定することと、
前記特定の電子通信サービスに関連付けられる一組の送信者アカウントアドレスを決定することと、
前記アカウントアドレス候補と最も頻繁に通信する前記一組の送信者アカウントアドレスにおける特定の送信者アカウントアドレスを特定することによって、前記一組の送信者アカウントアドレスから前記送信者アカウントアドレスを選択することと、を含む
ことを特徴とする請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１５】
前記ユーザ連絡先のデータベースを検索することが、
前記部分的識別子を前記ユーザ連絡先のデータベースにおける一組のファーストネームと突き合わせて、一致するファーストネームのサブセットを特定することと、
前記部分的識別子を前記ユーザ連絡先のデータベースにおける一組のラストネームと突き合わせて、一致するラストネームのサブセットを特定することと、
前記部分的識別子を前記ユーザ連絡先のデータベースにおける一組のアカウントアドレスと突き合わせて、一致するアカウントアドレスのサブセットと特定することと、を含み、
前記一組のアカウントアドレス候補が、前記一致するファーストネームのサブセット、前記一致するラストネームのサブセット、及び前記一致するアカウントアドレスのサブセットを含む
ことを特徴とする請求項１１に記載のコンピュータ可読媒体。
【請求項１６】
電子デバイスであって、
プロセッサと、
前記プロセッサに連結され、通信を円滑にするために実行する命令を含む、メモリデバイスと、を備え、前記命令が前記プロセッサによって実行された時に、プロセッサに、
送信者によって送信されるメッセージの指定受信者の部分的識別子を含むユーザ入力を受け取らせ、
前記部分的識別子に少なくとも部分的に基づいて、ユーザ連絡先のデータベースを検索させ、複数の電子通信サービスに関連付けられるユーザ識別子を含む、一組の受信者候補の一組のアカウントアドレス候補を特定させ、
前記一組のアカウントアドレス候補を含むリストを提示させ、
前記アカウントアドレス候補のうちの１つのユーザ選択を前記メッセージの前記指定受信者の前記識別子として受け取らせ、
前記選択に応じて、前記メッセージを前記指定受信者に送信するために使用する前記送信者に関連付けられる送信者アカウントアドレスを決定させる
ことを特徴とする電子デバイス。
【請求項１７】
前記ユーザ入力が、キーボード入力、ジェスチャ入力、視線入力、又は音声コマンド入力を介して受け取られる
ことを特徴とする請求項１６に記載の電子デバイス。
【請求項１８】
前記部分的識別子が、文字列、受信者候補の特性、又は前記受信者候補の前記電子デバイスの特性のうちの少なくとも１つである
ことを特徴とする請求項１６に記載の電子デバイス。
【請求項１９】
前記プロセッサに前記ユーザ連絡先のデータベースを検索させる前記命令が、前記プロセッサによって実行された時に、前記プロセッサに、
前記部分的識別子が、前記ユーザ連絡先のデータベースにおける連絡先のファーストネーム、ラストネーム、又はアカウントアドレスのうちの少なくとも１つと一致するかを判定させ、
前記部分的識別子と前記連絡先の前記ファーストネーム、前記ラストネーム、又は前記アカウントアドレスのうちの少なくとも１つとの一致を判定した後で、前記送信者が接続されている一組の電子通信サービスを特定させ、
前記一組の電子通信サービスそれぞれについて、前記部分的識別子が、前記ユーザ連絡先のデータベースにおける連絡先の、前記一組の電子通信サービスうちの１つに関連付けられる、メッセージ識別子と一致するかを判定させる、命令を更に含み、
前記提示されたリストが前記部分的識別子との一致を含む
ことを特徴とする請求項１６に記載の電子デバイス。
【請求項２０】
前記プロセッサに前記ユーザ連絡先のデータベースを検索させる前記命令が、前記プロセッサによって実行された時に、前記プロセッサに、
前記部分的識別子が、前記ユーザ連絡先のデータベースにおける連絡先のファーストネーム、ラストネーム、又はアカウントアドレスのうちの少なくとも１つと一致するかを判定させ、
前記部分的識別子が、ユーザの前記ファーストネーム、前記ラストネーム、又は前記アカウントアドレスのうち少なくとも１つと一致しない判定に応じて、前記部分的識別子が、サービス固有の連絡先リストにおける、前記一組の電子通信サービスのうちの少なくとも１つに関連付けられる、通信識別子のうちの少なくとも１つと一致するかを判定させる、
命令を更に含む
ことを特徴とする請求項１６に記載の電子デバイス。
【請求項２１】
プログラム命令で符号化されたコンピュータ可読記憶媒体であって、前記プログラム命令が、実行された時に、コンピュータ装置内のプロセッサに、通信セッションを設定するため、
文字列を含むユーザ入力を受け取ることと、
ユーザ連絡先のデータベースを、前記文字列に少なくとも部分的に基づいて、検索し、第１の組の受信者アカウントを特定することと、
前記ユーザが接続されている一組の電子通信サービスを特定することと、
前記送信者の１つ以上のサービス固有の連絡先リストを、前記文字列に少なくとも部分的に基づいて、検索し、第２の組の受信者アカウント候補を特定することであって、各サービス固有の連絡先リストが前記一組の電子通信サービスにおける前記通信サービスのうちの１つに関連付けられる、特定することと、
前記第１及び第２の組の受信者アカウント候補を前記送信者に提示することと、
前記第１及び第２の組の受信者アカウント候補から特定の受信者アカウント候補のユーザ選択を受け取って、通信を送信することと、を含む、方法を実行させる
ことを特徴とするコンピュータ可読記憶媒体。
【請求項２２】
前記送信者の前記サービス固有の連絡先リストのうちの１つが、ローカルで前記コンピュータ可読記憶媒体に記憶されており、前記送信者の前記サービス固有の連絡先リストのうちの別の１つがアプリケーションプログラミングインターフェース（ＡＰＩ）を介してアクセスできるリモートサーバに記憶されている
ことを特徴とする請求項２１に記載のコンピュータ可読記憶媒体。
【請求項２３】
前記一組の通信サービスが、前記送信者が現在ログインされている一組の通信サービスを含む
ことを特徴とする請求項２１に記載のコンピュータ可読記憶媒体。
【請求項２４】
前記第１及び第２の組の受信者アカウント候補を提示することが、前記第１の組の前記受信者アカウント候補が前記第２の組の前記受信者アカウント候補より優先する順序付けリストを提示することを含む
ことを特徴とする請求項２１に記載のコンピュータ可読記憶媒体。
【請求項２５】
前記第１及び第２の組の受信者アカウント候補が、関連するユーザ識別子と電子通信サービスを表示することによって前記ユーザに提示され、前記第１及び第２の組の受信者アカウント候補が、関連するユーザ識別子に少なくとも部分的に基づいたアルファベット順で表示される
ことを特徴とする請求項２１に記載のコンピュータ可読記憶媒体。
【請求項２６】
前記一組の受信者アカウント候補を決定することが、前記ユーザ連絡先のデータベースに記憶された各連絡先のファーストネーム、ラストネーム、又はアカウントアドレスのうちの少なくとも１つの一部分との突き合わせを実行することを含む
ことを特徴とする請求項２１に記載のコンピュータ可読記憶媒体。
【請求項２７】
前記方法が、
前記特定の受信者アカウント候補の前記ユーザ選択の受け取りに応じて、前記特定の受信者アカウント候補に関連付けられる特定の電子通信サービスを決定することと、
前記特定の電子通信サービスに関連付けられる送信者アカウントを決定することと、
前記通信を前記送信者アカウントを使って前記特定の受信者アカウント候補に送信することと、を更に含む
ことを特徴とする請求項２１に記載のコンピュータ可読記憶媒体。
【請求項２８】
コンピュータで、第１のユーザと第２のユーザとの間の通信履歴に対する要求を受け取ることと、
前記第１のユーザと前記第２のユーザとの間の通信を記憶する一組の通信セッションファイルを前記コンピュータによって取得することであって、前記一組の通信セッションファイルそれぞれが、タイムスタンプに関連付けられる一組の会話内容それぞれを含み、前記一組の通信セッションファイルのうちの異なるファイルにおける前記会話内容が、複数の電子通信サービスのうちの異なるサービスを使って送信される、前記一組の通信セッションファイルを取得することと、
前記関連するタイムスタンプに基づいた順序で前記一組の通信セッションファイルすべての前記会話内容を前記コンピュータによって配列することと、
前記配列された会話内容の少なくとも一部分を前記コンピュータによって提示することと
を含むことを特徴とする方法。
【請求項２９】
前記要求が前記第１のユーザから受け取られ、前記第２のユーザの第１の識別子を含み、前記方法が、
前記第２のユーザの１つ以上の他の識別子を前記コンピュータによって決定することを更に含み、
前記一組の通信セッションファイルを取得することが、前記第２のユーザの前記１つ以上の他の識別子のうちの１つに関連付けられる通信セッションファイルを取得することを含む
ことを特徴とする請求項２８に記載の方法。
【請求項３０】
前記第２のユーザの前記１つ以上の他の識別子は、前記複数の電子通信サービスの異なるサービスに関連付けられており、前記１つ以上の他の識別子が、ユーザ連絡先のデータベースを検索し、前記第２のユーザの前記第１の識別子に関連付けられる一組の識別子を特定することによって決定される
ことを特徴とする請求項２９に記載の方法。
【請求項３１】
順序が古い順である
ことを特徴とする請求項２８に記載の方法。
【請求項３２】
前記一組の前記第１のユーザと前記第２のユーザとの間の通信セッションファイルを取得することが、
前記第１のユーザに関連付けられる第１の組のアカウント識別子を特定することであって、前記第１の組のアカウント識別子それぞれが、一組の電子通信サービスのうちの１つのサービスに関連付けられる、第１の組のアカウント識別子を特定することと、
前記一組の電子通信サービスについて、前記第２のユーザに関連付けられる第２の組のアカウント識別子を特定することと、を含み、前記一組のチャットセッションファイルが、前記第１の組のアカウント識別子の少なくとも１つのアカウント識別子と、及び前記第２の組のアカウント識別子の少なくとも１つのアカウント識別子に関連付けられる通信セッションファイルを取得することによって取得される
ことを特徴とする請求項２８に記載の方法。
【請求項３３】
第１のユーザと第２のユーザとの間の通信履歴に対する要求をコンピュータで受け取ることと、
前記第１のユーザの、複数の電子通信サービスに関連付けられる第１の組のアカウント識別子を前記コンピュータによって特定することと、前記複数の電子通信サービスに少なくとも部分的に基づいて、前記第２のユーザの第２の組のアカウント識別子を更に特定することと、
前記第１の組のアカウント識別子及び前記第２の組のアカウント識別子に少なくとも部分的に基づいて、前記第１のユーザと前記第２のユーザとの間の通信を記憶する一組の通信セッションファイルにアクセスすることと、
前記一組の通信セッションファイルの一部のコンテンツを前記第１のユーザに表示することと、
を含むことを特徴とする方法。
【請求項３４】
前記一組の通信セッションファイルそれぞれが、それぞれタイムスタンプに関連付けられる一組の会話単位を含み、
前記方法が、前記通信セッションファイルすべての会話単位を、前記関連するタイムスタンプに基づいて、順序付けることを更に含み、前記第１のユーザに表示される前記一組の通信セッションファイルの前記一部が前記順序付けられた会話単位の少なくとも一部を含む
ことを特徴とする請求項３３に記載の方法。
【請求項３５】
前記通信履歴がテキストデータ、オーディオデータ、映像データ、画像データ、又はこれらの組み合わせのうちの少なくとも１つを含む
ことを特徴とする請求項３３に記載の方法。
【請求項３６】
前記一組の通信セッションファイルが、ローカルで取得される前記通信セッションファイルの第１のサブセットと、アプリケーションプログラミングインターフェース（ＡＰＩ）を介してアクセス可能なリモートサーバから取得される前記通信セッションファイルの第２のサブセットを含む
ことを特徴とする請求項３３に記載の方法。
【請求項３７】
前記複数の電子通信サービスが、電子メール、インスタントメッセージング、ショートメッセージサービス（ＳＭＳ）、又ボイスオーバ・インターネットプロトコル（ＶｏＩＰ）のうちの少なくとも１つを含む
ことを特徴とする請求項３３に記載の方法。
【請求項３８】
プログラム命令で符号化されたコンピュータ可読記憶媒体であって、前記プログラム命令が、実行された時に、コンピュータ装置内のプロセッサに、
第１のユーザと第２のユーザとの間メッセージ交換履歴に対する要求を受け取ることと、
複数の電子通信サービスを横断して、前記第１のユーザと前記第２のユーザとの間の交換記録にアクセスすることであって、前記複数の交換記録それぞれが、タイムスタンプにそれぞれ関連付けられる一組の通信単位を有する、交換記録にアクセスすることと、
前記複数の交換記録の前記一組の通信単位を、前記関連するタイムスタンプに少なくとも部分的に基づいて、順序で配列することと、
前記配列した一組の通信単位の少なくとも一部分を提示することと、を含む、方法を実行させる
ことを特徴とするプログラム命令で符号化されたコンピュータ可読媒体。
【請求項３９】
前記要求が、キーボード入力、ジェスチャ入力、又は音声コマンドのうちの少なくとも１つを介して受信される
ことを特徴とする請求項３８に記載のコンピュータ可読記憶媒体。
【請求項４０】
前記複数の電子通信サービスの前記異なるサービスが、異なるサービスプロバイダから提供される異なる電子通信サービスを含む
ことを特徴とする請求項３８に記載のコンピュータ可読記憶媒体。
【請求項４１】
前記第１のユーザと前記第２のユーザとの間の前記メッセージ交換履歴に対する要求を受け取ることが、前記複数の電子通信サービスのいずれか１つにおける第２のユーザのアカウント識別子の選択を受け取ることを含む
ことを特徴とする請求項３８に記載のコンピュータ可読記憶媒体。
【請求項４２】
前記第１のユーザと前記第２のユーザとの間の前記通信履歴に対する要求を受け取ることが、前記第１のユーザに関連付けられるユーザ連絡先のデータベースにおける前記第２のユーザの選択を受け取ることを含む
ことを特徴とする請求項３８に記載のコンピュータ可読記憶媒体。
【請求項４３】
電子デバイスであって、
プロセッサと、
前記プロセッサに連結され、通信を円滑にするために実行される命令を含む、メモリデバイスと、を備え、前記命令が前記プロセッサによって実行された時に、前記プロセッサに、
第１のユーザと第２のユーザとの間の通信履歴に対する要求を受け取らせ、
前記第１のユーザと前記第２のユーザとの間の通信を記憶する一組の通信セッションファイルへアクセスさせ、前記一組の通信セッションファイルそれぞれが、一組の会話内容それぞれを含み、前記一組の会話内容それぞれがタイムスタンプに関連付けられており、前記一組の通信セッションファイルのうちの異なるファイルにおける前記会話内容が複数の電子通信サービスのうちの異なるサービスを使って送信されている、
前記関連するタイムスタンプに基づいて、前記一組の通信セッションファイルすべての前記会話内容を順序で配列させ、
前記配列された会話内容の少なくとも一部分を提示させる
ことを特徴とする電子デバイス。
【請求項４４】
前記配列された会話内容が前記電子デバイスのユーザインターフェース内のページに表示され、前記配列された会話内容の提示された一部分が前記第１のユーザが現在見ている前記ページの前記一部分に対応する
ことを特徴とする請求項４３に記載の電子デバイス。
【請求項４５】
前記配列された会話内容の少なくとも前記一部分がロードされ、前記プロセッサに前記ユーザ連絡先のデータベースを検索させる前記命令が、前記プロセッサによって実行された時に、前記プロセッサに、
前記ユーザが現在見ている前記ページの前記一部分が前記ページの別の部分に変更されたという指示を受け取らせ、
前記指示の受け取りに応じて、前記ユーザが現在見ている前記ページの前記他の部分に対応する前記配列された会話内容の別の部分をロードさせる、命令を更に含む
ことを特徴とする請求項４４に記載の電子デバイス。
【請求項４６】
順序が新しい順になる
ことを特徴とする請求項４３に記載の電子デバイス。
【請求項４７】
前記一組の通信セッションファイルへのアクセスが、１つ以上のアプリケーションプログラミングインターフェース（ＡＰＩ）を介した対応する電子通信サービスにおける前記通信セッションファイルのサブセットへのアクセスを要求することによって得られる
ことを特徴とする請求項４３に記載の電子デバイス。
【請求項４８】
プログラム命令で符号化されたコンピュータ可読記憶媒体であって、前記プログラム命令が実行された時に、コンピュータ装置内のプロセッサに、
第１のユーザと第２のユーザとの間の通信履歴に対する要求を受け取ることと、
前記第１のユーザの、複数の電子通信サービスに関連付けられる第１の組のアカウント識別子を特定することと、前記複数の電子通信サービスに少なくとも部分的に基づいて、前記第２のユーザの第２の組のアカウント識別子を更に特定することと、
前記第１の組のアカウント識別子及び前記第２の組のアカウント識別子に少なくとも部分的に基づいて、前記第１のユーザと前記第２のユーザとの間の一組の通信セッションファイルにアクセスすることと、
前記一組の通信セッションファイルの一部を前記第１のユーザに表示することと、を含む、方法を実行させる
ことを特徴とする前記プログラム命令で符号化されたコンピュータ可読記憶媒体。
【請求項４９】
前記一組の通信セッションファイル内の通信セッションファイルそれぞれが、それぞれタイムスタンプに関連付けられる一組の通信単位を含み、前記方法が、
前記一組の通信セッションファイルを横断して前記一組の通信単位をソートすることを更に含み、前記第１のユーザに表示される前記一組の通信セッションファイルの前記一部分が、異なる通信セッションファイルからの交互に配置された通信単位を含む
ことを特徴とする請求項４８に記載のコンピュータ可読記憶媒体。
【請求項５０】
前記一組の通信セッションファイルにアクセスすることが、
前記第１の組のアカウント識別子におけるアカウント識別子うちの少なくとも１つ、及び前記第２の組のアカウント識別子におけるアカウント識別子の少なくとも１つを含む通信セッションファイルを決定することを含む
ことを特徴とする請求項４８に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、全体として、電子環境における通信セッションを円滑化すること、特に、通信セッションの参加者のアカウントを決定すること、並びに、ユーザが相手との通信履歴を見ることができるように通信履歴を集約することに関する。
【背景技術】
【０００２】
典型的には、電子通信セッションを開始するために、ユーザは、ユーザ名とパスワードを使ってインスタントメッセージングサービスにログインする。ユーザは、インスタントメッセージングサービスにログインした後、そのサービスにおけるユーザの既存の連絡先の状態を示す連絡先リストを見ることができる。ユーザが、ユーザの連絡先リストにある特定の連絡先と通信セッションを設定したいと望む場合、ユーザは、ユーザの連絡先リストから特定の連絡先又は指定受信者を表す識別子を選択し、ユーザが識別子を選択した時に現れるメッセージボックスにメッセージを作成し、そのメッセージを受信者に送信することができる。メッセージを受信した受信者は、送信者に応答するか、又は応答を拒否することができる。受信者が送信者に応答する場合、通信セッションが確立され、送信者と受信者（「通信セッションの参加者」と呼ぶ）との間の通信が開始する。場合によっては、通信セッションの参加者は、その通信セッションに参加するように他の連絡先を招待し得る。
【０００３】
数多くのインスタントメッセージングサービスが普及しており、一部は、特定のユーザグループに一層の人気がある。ユーザは、多くの場合、いくつかのインスタントメッセージングサービスに登録し、同じように多くの、しかし、一部は重複しない、インスタントメッセージングサービスに登録している他のユーザと通信する。更に、いくつかのインスタントメッセージングサービスに登録しているユーザは、多くの場合、そのサービスの一部に異なるユーザ名を持っている。ユーザは、連絡先が利用しているサービス名及び使用しているユーザ名を記録するのに困ることがある。
【０００４】
場合によっては、ユーザは、いくつかのインスタントメッセージングサービスにログインされ得る。ユーザが、指定受信者が現在利用しているサービスに現在ログインされていない場合、ユーザは指定受信者にメッセージを送信する前にそのサービスにログインしなければならない。他の例では、ユーザは、いくつかのインスタントメッセージングサービスにログインされ得るが、これらのサービスのいくつかだけをアクティブに利用している場合がある。ユーザが、指定受信者が使用しているサービスを現在アクティブに利用していない場合は、指定受信者にメッセージを送信するためには、ユーザは、指定受信者が利用しているサービスに切り換えなければならない。ユーザが異なる連絡先と通信したい時に、絶えず、異なるサービスにログイン及び／又はサービスを切り換える必要があるということは、ユーザにとって厄介である。
【０００５】
更に、ユーザは、別のユーザとの通信履歴を見たいことがある。例えば、ユーザは、ユーザと別のユーザとの間の特定の対話を検索することがある。しかし、ユーザが、複数のインスタントメッセージングサービスに関連付けられる複数のユーザ名を持っている場合、特定の対話を見つけ出すのは困難であり得る。
【発明の概要】
【０００６】
本発明の特定の実施形態は、電子通信セッションの参加者アカウントの決定を実行する統合通信アプリケーションに関する。いくつかの実施形態において、統合通信アプリケーションは、ユーザが、数の異なる電子通信サービスのいずれかを利用してメッセージを送受信することを可能にする単一のアプリケーションである。ユーザは、指定受信者の部分的な識別子を入力することによって、ユーザが通信したい指定受信者を特定し得る。ユーザの入力の受け取りに応じて、ユーザの電子デバイス上の統合通信アプリケーションは、部分的な識別子に基づいて、ユーザ連絡先のデータベースを検索し、多くの受信者候補のアカウントアドレスを特定する。アカウントアドレスは、いくつかの電子通信サービスに関連付けられるアカウント識別子を含み得る。ユーザデバイスは、ユーザが指定受信者の識別子を選択できるように、一組のアカウント識別子候補を含むリストを提示し得る。ユーザが選択した識別子を受け取ると、ユーザデバイスは、識別子に関連付けられる電子通信サービスに基づいて、メッセージの送信元の送信者アカウントを決定し得る。この後、ユーザデバイスは、決定された送信者アカウントを使って、メッセージを指定受信者に送信し得る。
【０００７】
更に、本発明のいくつかの実施形態は、統合通信アプリケーションのユーザが、ユーザと相手との間の通信履歴を見ることを可能にする。通信履歴は、互いの通信に利用した異なるユーザ識別子及び電子通信サービスに関係なくユーザと相手とのすべての通信を含み得る。ユーザと相手との間の通信履歴に対する要求を受け取ると、統合通信アプリケーションは、ユーザと相手との間の通信を記憶した一組の通信セッションファイルを取得する。通信セッションファイルそれぞれは、それぞれタイムスタンプに関連付けられた一組の会話内容を含み得る。いくつかの実施形態において、異なる通信セッションファイルにおける会話内容は、異なるいくつかの電子通信サービスを使って送信されたと考えられ得る。統合通信アプリケーションは、関連するタイムスタンプに基づく順序で、これらの一組の通信セッションファイルすべてから会話内容を整理し、整理した会話内容の少なくとも一部をユーザに提示する。
【０００８】
本発明の特定の態様は、電子通信セッションにおける送信者と指定受信者についての参加者アカウントアドレスを決定する方法に関する。統合通信アプリケーションは、送信者によって送信されるメッセージの指定受信者の部分的識別子を含むユーザ入力を受け取り得る。統合通信アプリケーションは、部分的識別子に基づいて、ユーザ連絡先のデータベースを検索し、一組の受信者候補について一組のアカウントアドレス候補を特定し得る。いくつかの実施形態において、一組のアカウントアドレス候補は、複数の電子通信サービスに関連付けられるユーザ識別子を含み得る。統合通信アプリケーションは、特定された一組のアカウントアドレス候補を含むリストを提示し得る。統合通信アプリケーションは、ユーザが選択したアカウントアドレス候補のうちの１つをメッセージの指定受信者を表すものとして受け取り得る。統合通信アプリケーションは、ユーザの選択に応じて、メッセージを指定受信者に送信するために使用する送信者に関連付けられる送信者アカウントを決定し、その送信者アカウントを使ってメッセージを送信する。
【０００９】
本発明の他の特定の態様は、２つ以上のユーザ間の通信履歴を集約する方法に関する。統合通信アプリケーションは、ユーザと相手との間の通信履歴に対する要求を受け取り得る。統合通信アプリケーションは、ユーザと相手との間の通信を記憶した一組の通信セッションファイルを取得し得る。いくつかの実施形態において、一組の通信セッションファイルそれぞれは、それぞれタイムスタンプに関連付け得る一組の会話内容を含み得る。一組の通信セッションファイルのうちの異なるファイルにおける会話内容は、異なる電子通信サービスを利用して送信されたと考えられ得る。統合通信アプリケーションは、関連するタイムスタンプに基づく順序で一組の通信セッションファイルすべてから会話内容を整理し得る。投合通信アプリケーションは、整理された会話内容の少なくとも一部をユーザに提示し得る。
【００１０】
以下の詳細な説明及び添付の図面を参照することにより、本発明の性質及び利点の理解をより深めることができよう。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係るコンピュータシステムを示す図である。
【００１２】
【図２】本発明の一実施形態に係る、通信セッションを円滑化するプロセスを説明するためのフローチャートである。
【００１３】
【図３】本発明の一実施形態に係る、指定受信者との通信セッションを設定する例示的な一連のスクリーン画像を示す図である。
【００１４】
【図４】本発明の一実施例に係る、一組の受信者候補についての一組のアカウントアドレス候補を特定するプロセスを説明するためのフローチャートである。
【００１５】
【図５】ユーザ連絡先及びその関連情報のデータベースへの連絡先エントリの実施例を示す図である。
【００１６】
【図６】本発明の一実施例に係る、特定のアカウントアドレス候補がユーザによる選択に応じて、メッセージを送信する送信者アカウントを決定するプロセスを説明するためのフローチャートである。
【００１７】
【図７】本発明の一実施形態に係る、複数の参加者を通信セッションに招待する例示的な一連のスクリーン画像を示す図である。
【００１８】
【図８】ユーザ間の通信履歴を生成するように配置及び集約され得る電子通信セッションファイルのローカル及びリモートストレージを示す系統図である。
【００１９】
【図９】本発明の一実施形態に係る、複数の通信セッションファイルを集約することによって通信履歴を含むページ作成の実施例を示す図である。
【００２０】
【図１０】本発明の一実施形態に係る、２人のユーザ間の通信を記憶した通信履歴を集約するプロセスを説明するためのフローチャートである。
【００２１】
【図１１Ａ】本発明の一実施形態に係る、ページの動的なローディング及びアンローディング部を示す、１つの時点での通信の通信履歴ページを表す図である。
【図１１Ｂ】本発明の一実施形態に係る、ページの動的なローディング及びアンローディング部を示す、別の時点での通信の通信履歴ページを表す図である。  全ての図は、２０１２年に作成され、２０１３年に最終更新されたものであり、その全ての著作権はＡｐｐｌｅ  Ｉｎｃ．が所有している。
【発明を実施するための形態】
【００２２】
本発明の特定の実施形態は、電子通信セッションの参加者アカウント決定を実行する統合通信アプリケーション（「統合メッセージ処理アプリケーション」とも呼ぶ）に関する。いくつかの実施形態において、統合通信アプリケーションは、ユーザが、多数の異なる電子通信サービスのいずれかを利用してメッセージを送受信することを可能にする単一のアプリケーションである。ユーザは、指定受信者の部分的な識別子を入力することによって、ユーザが通信したい指定受信者を特定し得る。ユーザの入力の受け取りに応じて、ユーザの電子デバイス上の統合通信アプリケーションは、部分的な識別子に基づいて、ユーザ連絡先のデータベースを検索し、多くの受信者候補のアカウントアドレスを特定する。アカウントアドレスは、いくつかの電子通信サービスに関連付けられるアカウント識別子を含み得る。ユーザデバイスは、ユーザが指定受信者の識別子を選択できるように、一組のアカウント識別子候補を含むリストを提示し得る。ユーザが選択した識別子を受け取ると、ユーザデバイスは、識別子に関連付けられる電子通信サービスに基づいて、メッセージの送信元の送信者アカウントを決定し得る。この後、ユーザデバイスは、決定された送信者アカウントを使って、メッセージを指定受信者に送信し得る。
【００２３】
更に、本発明のいくつかの実施形態は、統合通信アプリケーションのユーザが、ユーザと相手との間の通信履歴を見ることを可能にする。通信履歴は、互いの通信に利用した異なるユーザ識別子及び電子通信サービスに関係なくユーザと相手とのすべての通信を含み得る。ユーザが、ユーザと相手との間の通信履歴を見たいというユーザの指示を受け取ると、統合通信アプリケーションは、ユーザと相手との間の通信を記憶した一組の通信セッションファイルを取得する。通信セッションファイルそれぞれは、それぞれタイムスタンプに関連付けられる一組の会話内容を含み得る。いくつかの実施形態において、異なる通信セッションファイルにおける会話内容は、異なるいくつかの電子通信サービスを使って送信されたと考えられ得る。統合通信アプリケーションは、関連するタイムスタンプに基づく順序で、これらの一組の通信セッションファイルすべてから会話内容を整理し、整理した会話内容の少なくとも一部をユーザに提示する。
【００２４】
本明細書で使用されている用語「電子通信サービス」は、そのサービスにアカウントを有するユーザのグループ間での通信を（例えば、インスタントメッセージング・コンピュータプログラムなどのアプリケーションを介して通信プラットフォームを提供することによって）円滑にすることができる任意のサービスを意味する。電子通信サービスは、電子メール、インスタントメッセージング（ＩＭ）、ショートメッセージサービス（ＳＭＳ）、ボイスオーバ・インターネットプロトコル（ＶｏＩＰ）などの様々なチャネルを介して通信を提供し得る。異なる電子通信サービスの例としては、ＡＩＭ（登録商標）、ｉＣｈａｔ（登録商標）、Ｇｏｏｇｌｅ（登録商標）Ｔａｌｋ、Ｓｋｙｐｅ（登録商標）、Ｖｉｂｅｒ（登録商標）が挙げられる。数多くの電子通信サービスが登録されたユーザ間でリアルタイムの通信を提供し得る。ユーザ間の通信タイプには、オーディオ、映像、画像、及びテキスト通信が挙げられる。
【００２５】
本明細書で用いられている電子通信サービスは、サービスにアカウントを有するすべてのユーザが同じサービスにアカウントを有する任意の別のユーザに通信を送信できる「閉じた宇宙」と定義される。（一部のサービスは、ユーザに対して、他のユーザのユーザとの通信を遮断すること、又は通信を受信したい特定のユーザを選択することを可能にし得る。）いくつかの実施形態において、電子通信サービスは、プラットフォーム非依存型又はプラットフォーム依存型であり得る。電子メールサービスなどのプラットフォーム非依存型の電子通信サービスは、ユーザが、電子メールプロバイダに関係なく、異なるサーバを跨いで他のユーザに通信を送信することを可能にする。例えば、Ｙａｈｏｏ（登録商標）Ｍａｉｌ及びＧｍａｉｌ（登録商標）、並びにその他の電子メールサービスは、プラットフォーム非依存型であり、任意のサーバ上に有効な電子メールアカウントを有するすべてのユーザは、その他のすべての電子メールサーバ上のすべての他のユーザに電子メールを送信することができる。したがって、本開示との関連において、すべてのインターネットベースの電子メールサービスは、単一の電子通信サービスを構成するものとみなされる。対照的に、ＡＩＭ（登録商標）、Ｙａｈｏｏ（登録商標）、Ｍｅｓｓｅｎｇｅｒ、及びＳｋｙｐｅ（登録商標）などのインスタントメッセージング又はチャットサービスは、１つのサービスのユーザが、自分のアカウントを使って別のサービスのユーザアカウントと通信できない、プラットフォーム依存型サービスである。したがって、本開示との関連において、殆どのインターネットベースのメッセージングサービスは、異なる電子通信サービスとみなされる。
【００２６】
本明細書で用いられている「アカウントアドレス」は、任意の電子通信サービス上の任意のアカウントを意味する。アカウントアドレスは、ユーザ識別子（例えば、ユーザ名、ハンドル、エリアス、番号等）、及びユーザ識別子が有効な電子通信サービスの識別子を含み得る。単一のユーザは、複数の電子通信サービスに横断した１つ以上のユーザ識別子を有し得、単一のサービス上に複数のユーザ識別子を有し得る。異なるサービス上の単一ユーザのアカウント又はアカウントアドレスは、同じユーザ識別子を有する、又は有しないことがある。
【００２７】
統合メッセージ処理アプリケーションは、ユーザに対して、単一のユーザインターフェース内から、アカウントを有する電子通信サービスすべてにアクセスすることを可能にし得る。いくつかの実施形態において、ユーザは、メッセージングインターフェースを作動し、電子メールを送受信、テキストベース及び／又は映像の「チャット」セッションの実行、テキストメッセージの送受信等を行い得る。
【００２８】
図１は、本発明の一実施形態に係るコンピュータシステム１００を示す。コンピュータシステム１００は、例えば、デスクトップコンピュータ若しくはラップトップコンピュータ、タブレットコンピュータ、スマートフォン、パーソナルデータアシスタント（ＰＤＡ）、又はその他のすべてのタイプのコンピュータ装置を含むが、特定のフォームファクタに限定されない、様々な電子コンピュータ装置のいずれかとして実装し得る。コンピュータシステム１００は、処理ユニット１０５、ストレージサブシステム１１０、入力装置１２０、出力装置１２５、カメラ１３０、ネットワークインターフェース１３５、及びバス１４０を含み得る。
【００２９】
処理ユニット１０５は、１つ以上のコアプロセッサ有し得る、単一のプロセッサ、又は複数のプロセッサを含み得る。いくつかの実施形態において、処理ユニット１０５は、汎用一次プロセッサ並びに、グラフィックプロセッサ、デジタル信号プロセッサなどの１つ以上の専用コプロセッサを含み得る。いくつかの実施形態において、一部又はすべての処理ユニット１０５は、アプリケーションに特化した集積回路（ＡＳＩＣ）又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）などのカスタマイズされた回路を使って実装し得る。いくつかの実施形態において、そのような集積回路は、回路自体に記憶された命令を実行する。他の実施形態において、処理ユニット１０５は、ストレージサブシステム１１０に記憶された命令を実行し得る。
【００３０】
ストレージサブシステム１１０は、システムメモリ、読み出し専用メモリ（ＲＯＭ）、パーマネントストレージデバイスなどの様々なメモリユニットを含み得る。ＲＯＭは、処理ユニット１０５及びコンピュータシステム１００のその他のモジュールによって必要とされる静的データ及び命令を記憶し得る。パーマネントストレージデバイスは、読み出し書き込みメモリ装置であり得る。パーマネントストレージデバイスは、コンピュータシステム１００の電源が切れた時でも命令とデータを記憶する不揮発性メモリユニットであり得る。本発明のいくつかの実施形態は、パーマネントストレージデバイスとして大容量記憶装置（磁気若しくは光ディスク、又はフラッシュメモリなど）を使用する。他の実施形態は、パーマネントストレージデバイスとして取外し可能なストレージデバイス（例えば、フロッピーディスク、フラッシュディスク）を使用する。システムメモリは、ダイナミックランダムアクセスメモリなどの読み出し書き込みメモリ装置又は揮発性読み出し書き込みメモリであり得る。システムメモリは、プロセッサが実行時に必要とする命令及びデータの一部を記憶し得る。
【００３１】
ストレージサブシステム１１０は、様々なタイプの半導体メモリチップ（ＤＲＡＭ、ＳＲＡＭ、ＳＤＲＡＭ、フラッシュメモリ、プログラマブルＲＯＭ）等を含むコンピュータ可読媒体の任意の組み合わせを含み得る。磁気ディスク及び／又は光ディスクも使用し得る。いくつかの実施形態において、ストレージサブシステム１１０は、読み出し可能及び／又は書き込み可能であり得る取外し可能な記憶媒体を含み得る。かかる媒体の例としては、コンパクトディスク（ＣＤ）、読み出し専用デジタル多目的ディスク（例えば、ＤＶＤ−ＲＯＭ、２層式ＤＶＤ−ＲＯＭ）、読み出し専用記録可能Ｂｌｕｅ−Ｒａｙ（登録商標）ディスク、超高密度光ディスク、フラッシュメモリカード（例えば、ＳＤカード、ミニＳＤカード、マイクロＳＤカード等）、磁気「フロッピー」ディスクなどが挙げられる。コンピュータ可読記憶媒体には、搬送波、及び無線で又は有線接続を介して通過する一時的電気信号を含まない。
【００３２】
いくつかの実施形態において、ストレージサブシステム１１０は、通信アプリケーション１４５（「統合メッセージ処理アプリ」１４５とも呼ぶ）などの、処理ユニット１０５によって実行される１つ以上のソフトウェアプログラムを記憶し得る。「ソフトウェア」は、一般的に、処理ユニット１０５によって実行された時、コンピュータシステム１００に様々な動作を実行させて、ソフトウェアプログラムの動作を実行する１つ以上の特定のマシン実装を定義する命令のシーケンスを意味する。命令は、読み出し専用メモリ内に存在するファームウェアとして、及び／又はプロセッサによって処理するためにメモリに読み込むとができる、磁気記憶装置に記憶されたアプリケーションとして記憶され得る。ソフトウェアは、単一のプログラム又は必要に応じて相互作用する個別のプログラム又はプログラムモジュールの集合として実装し得る。プログラム及び／又はデータは、不揮発性ストレージに記憶でき、その全体又は部分をプログラム実行時に揮発性ワーキングメモリにコピーし得る。処理ユニット１０５は、本明細書で説明されている様々な動作を実行するために、実行するプログラム命令及び処理するデータをストレージサブシステム１１０から取得し得る。いくつかの実施形態において、ストレージサブシステム１１０は、ユーザ連絡先１５０のデータベース及び／又は通信履歴セッションファイル１５５などのその他のデータも記憶し得る。
【００３３】
ユーザインターフェースは、１つ以上のユーザ入力装置１２０及び１つ以上のユーザ出力装置１２５によって提供され得る。入力装置１２０は、ユーザが信号をコンピュータシステム１００に提供する時に介する任意の装置を含み得る。コンピュータシステム１００は、信号を特定のユーザ要求又は情報を指示するものとして解釈し得る。入力装置１２０は、キーボード、タッチパッド、タッチスクリーン、マウス又はその他のポインティング装置、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、マイク等のうちのいずれか又はすべてを含み得る。
【００３４】
出力装置１２５は、コンピュータシステム１００によって生成される画像を表示する。出力装置１２５は、様々な画像生成技術（例えば、ブラウン管（ＣＲＴ）、液晶表示（ＬＣＤ）、有機発光ダイオード（ＯＬＥＤ）を含む発光ダイオード（ＬＥＤ）、投射系など）、並びに、補助電子装置（例えば、デジタル・アナログ変換器又はアナログ・デジタル変換器、信号プロセッサなど）、表示灯、スピーカ、ヘッドホンジャック、プリンタなどを含み得る。いくつかの実施形態は、入力装置と出力装置の両方として機能するタッチスクリーンなどの装置を含み得る。
【００３５】
いくつかの実施形態において、出力装置１２５は、出力装置１２５の特定の領域における可視画像要素が、ユーザがユーザ入力装置１２０を使って選択する能動素子又は制御要素として定義されるグラフィカル・ユーザ・インターフェースを提供する。例えば、ユーザは、ユーザ入力装置を操作し、オンスクリーンカーソル又はポインターを制御要素に当て、ボタンをクリックして選択を指示できる。あるいは、ユーザは、タッチスクリーン装置上の制御要素を（例えば、指又はスタイラスで）触れることができる。いくつかの実施形態において、ユーザは、制御要素に関連付けられた１つ以上の言葉（この言葉は、例えば、要素のラベル又は要素に関連付けられた機能であってもよい）を話すことができる。いくつかの実施形態において、タッチセンサー式装置上のユーザのジェスチャは、入力コマンドとして認識及び解釈される。これらのコマンドは、出力装置１２５の特定のアレイに関連付け得るが、必ずしも関連付けられる必要がない。他のユーザインターフェースも実装し得る。
【００３６】
カメラ１３０は画像を（例えば、ＲＡＷ画像データ又は圧縮画像データとして）キャプチャする。カメラ１３０は、処理ユニット１０５等を有するデバイスに組込むか、又は、処理ユニット１０５を有するデバイスに通信可能に連結された別のデバイスであり得る。カメラ１３０は、コンピュータシステム１００が、映像及び静止画像を周辺環境からキャプチャし、記録することを可能にする。カメラ１３０は、光学要素（レンズ、フィルター等）と、光センサ（例えば、数百万個の独立した画素を有するＣＭＯＳセンサ）と、センサによって生成される信号をデジタル画像データに変換するための関連する電子装置とを含む、従来式の設計であってもよい。
【００３７】
ネットワークインターフェース１３５は、コンピュータシステム１００に音声及び／又はデータ通信機能を提供する。いくつかの実施形態において、ネットワークインターフェース１３５は、（例えば、セルラー電話技術、高度データネットワーク技術（３Ｇ、４Ｇ、又はＥＤＧＥなどのような）、ＷｉＦｉ（ＩＥＥＥ  ８０２．１１ファミリー基準、又はその他の移動通信技術、又はこれらの任意の組み合わせを利用して）無線音声及び／又はデータネットワークにアクセスするための無線周波（ＲＦ）送受信機構成要素と、ＧＰＳ受信機構成要素と、及び／又はその他の構成要素とを含み得る。いくつかの実施形態において、ネットワークインターフェース１３５は、無線インターフェースに加えて、又は無線通信インターフェースに代わって、有線ネットワーク接続性（例えば、イーサネット）を提供し得る。ネットワークインターフェース１３５は、ハードウェア（例えば、アンテナ、変調器／復調器、符号器／復号器、及びその他のアナログ及び／又はデジタル信号処理回路）とソフトウェア構成要素との組み合わせを使って実装し得る。
【００３８】
バス１４０は、コンピュータシステム１００の数多くの内部装置を通信可能に接続する、様々なシステムバスと、周辺バスと、チップセットバスとを含み得る。例えば、バス１４０は、処理ユニット１０５をストレージサブシステム１１０に通信可能に連結し得る。また、バス１４０は、入力装置１２０及び出力装置１２５に接続し得る。また、バス１４０は、コンピュータシステム１００をネットワークインターフェース１３５を介してネットワークに連結し得る。このようにして、コンピュータシステム１００は、複数のコンピュータシステムのネットワーク（ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、イントラネット、又は（インターネットなどの）ネットワークの中のネットワーク）の一部であり得る。コンピュータシステム１００の構成要素の一部又はすべては、本発明と協働して使用し得る。
【００３９】
いくつかの実施形態は、マイクロプロセッサ、コンピュータプログラム命令をコンピュータ可読記憶媒体に記憶するストレージ及びメモリなどの電子構成要素を含む。本明細書で説明されている機能の多くは、コンピュータ可読記憶媒体に符号化されたプログラム命令セットとして指定されているプロセスとして実施し得る。これらのプログラム命令が１つ以上の処理ユニットによって実行される時、処理ユニットに、プログラム命令で指示されている様々な動作を実行させる。プログラム命令又はコンピュータコードの例には、コンパイラによって作成されるようなマシンコード、及びインタープリタを使用してコンピュータ、電子構成要素又はマイクロプロセッサによって実行される高レベルコードを含むファイルが挙げられる。
【００４０】
好適なプログラミングを通じて、処理ユニット１０５は、コンピュータシステム１００に様々な機能を提供し得る。例えば、処理ユニット１０５は、通信アプリケーション１４５（即ち、「統合メッセージ処理アプリ」１４５）を実行し得る。統合メッセージ処理アプリ１４５は、インスタントメッセージング機能、映像及び音声通信機能、電子メール機能等などの様々な機能を提供し得る。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、送信者から指定受信者の部分的識別子の受け取りに応じて、複数の通信サービスに関連付けられる一組のアカウントアドレスを識別し得る。また、統合メッセージ処理アプリ１４５は、ユーザによる一組のアカウントアドレスからの指定受信者の識別子の選択を受け取ると、メッセージを指定受信者に送信する送信者アカウントを決定し得る。
【００４１】
更に、いくつかの実施形態において、統合メッセージ処理アプリ１４５は、ユーザが、ユーザと別のユーザとの間の通信履歴を見ることを可能にし得る。ユーザがユーザと別のユーザとの間の通信履歴を見たいというユーザ指示を受け取ると、統合メッセージ処理アプリ１４５は、複数の電子通信サービスを横断してユーザと他のユーザのすべてのユーザ識別子を識別し、これらのユーザ識別子に関連付けられる通信履歴ファイルにアクセスし、通信履歴ファイル内のコンテンツをソートし、ソートしたコンテンツを単一のページに集約してユーザに表示し得る。いくつかの実施形態において、ユーザは、ページを横断してスクロールし、複数の通信サービスからの２名のユーザ間の通信を含む通信履歴を見ることができる。更に、いくつかの実施形態のメッセージング１４５は、ユーザ入力のタイプとして、ハンドジェスチャ、若しくは、視線、又は顔面動作をキャプチャ及び分析するために、ユーザがカメラ１３０を操作することを支援するプログラム命令を含み得る。
【００４２】
図１のコンピュータシステム１００は、説明上のものであって、変更や修正が可能であることが認識されよう。コンピュータシステム１００は、本明細書で特定して説明されていない他の機能（例えば、モバイル電話、全地球測位システム（ＧＰＳ）、電力管理、アクセサリ接続性）も有する。更に、コンピュータシステム１００は、本明細書において特定のブロックを参照して説明されているが、これらのブロックは説明の都合上定義されたものであって、構成部品の特定の物理的構成を意味することを意図していないことが理解されよう。更に、ブロックは、物理的に異なる構成要素に対応する必要はない。ブロックは、例えば、プロセッサをプログラムすることによって、又は適正な制御回路を設けることによって様々な動作を実行するように構成でき、様々なブロックは、初期の構成を取得する方法によって再構成が可能であるか又は不可能であり得る。本発明の実施形態は、回路とソフトウェアとの任意の組み合わせを使って実装される電子デバイスを含む様々なデバイスにおいて実現し得る。
【００４３】
コンピュータシステム１００は、以下ではユーザ装置１００とも呼ぶが、上記のように、ユーザが、複数の通信サービスを横断して連絡先と通信することを可能にする単一の統合メッセージ処理アプリ１４５を提供し得る。指定受信者のユーザ指示の受け取りに応じて、いくつかの実施形態におけるユーザ装置１００は、複数の通信サービスに関連付けられるユーザ識別子を含み得るアカウントアドレス候補のリストに追加し得る。ユーザ（この場合、送信者）は、追加されたリストから受信者のユーザ識別子を選択し、受信者と通信セッションを開始することができる。使用されるサービスは、ユーザの選択に基づいて、自動的に決定され得る。このようなプロセスの実施例をここで説明する。
【００４４】
図２は、本発明の一実施形態に係る通信セッションを円滑化するプロセス２００を説明するためのフローチャートである。プロセス２００は、例えば、統合メッセージ処理アプリ１４５を実行する図１のユーザ装置１００において、実施し得る。図３を参照してプロセス２００について説明する。図３は、本発明の一実施形態に係る統合メッセージ処理アプリ１４５を使って指定受信者との通信セッションを設定する際のユーザ装置１００のスクリーン画像の例示的シーケンスを示す。
【００４５】
図２のブロック２０２において、統合メッセージ処理アプリ１４５は、送信者によって送信されるメッセージの指定受信者の部分的識別子を含むユーザ入力を受け取り得る。いくつかの実施形態において、部分的識別子は、連絡先のファーストネームの一部、連絡先のラストネームの一部、連絡先のユーザ名又はエリアスのいずれかの一部等であり得る。いくつかの実施形態は、送信者が、キーボード入力、ジェスチャ入力、カーソルコントローラ入力、視線入力、音声コマンド等を通じてユーザ入力を実行することを可能にする。
【００４６】
図３を参照すると、初期画面３０５は、通信アプリケーション（例えば、統合メッセージ処理アプリ１４５）に関連付けられ得る。初期画面３０５は、説明部３２５と、検索ボックス３３０と、交信表示領域３３５と、メッセージ入力ボックス３４０とを含む。説明部３２５は、ユーザが、通信セッションのために指定受信者に送信する新しいメッセージを作成するプロセスにあることを示す。検索ボックス３３０は、送信者が、文字列（例えば、ファーストネーム、ラストネーム、ニックネーム等の一部）を入力して指定受信者を特定することを可能にする。交信表示領域３３５は、送信者と受信者との間の交信を表示する。表示する交信には、様々なテキストデータ、ハイパーリンク、画像データ、死蔵データ、オーディオデータ等を含み得る。テキスト入力ボックス３４０は、送信者が、受信者に知らせたいメッセージを入力することを可能にする。
【００４７】
再び図２を参照すると、ブロック２０４において、統合メッセージ処理アプリ１４５は、ユーザ連絡先のデータベースを検索してユーザ入力との一致が存在するかを判定し得る。いくつかの実施形態において、ユーザ連絡先のデータベースは、ユーザ装置１００上でローカルに記憶される電子アドレス帳を含み得る。いくつかの実施形態において、ユーザ連絡先のデータベースは、ユーザ装置１００がアクセスできるリモートサーバに記憶される電子アドレス帳を含み得る。電子アドレス帳は、多くの連絡先とその情報（例えば、ファーストネーム、ラストネーム、電子メールアドレス、電話番号、住所、性別、インスタントメッセージングユーザ識別子等）を記憶し得る。いくつかの実施形態におけるユーザ装置１００は、部分的識別子を電子アドレス帳内の連絡先のファーストネームと、電子アドレス帳内の連絡先のラストネームと、電子アドレス帳内の連絡先の電子メールアドレスと、インスタントメッセージングアカウント識別子等と比較してユーザ入力との一致が存在するかを判定する。これによって、ユーザ装置１００が部分的識別子と一致する連絡先の数を特定できる。
【００４８】
いくつかの実施形態において、統合メッセージ処理アプリ１４５は、部分的識別子をサービス固有の連絡先リスト内の１つ以上のインスタントメッセージングユーザ識別子と比較してユーザ入力との一致が存在するかを判定し得る。いくつかの実施形態において、ユーザは、ユーザが登録されている電子通信サービスのうちの一部又はすべてについてサービス固有の連絡先リストを有し得る。各サービス固有の連絡先リスト（例えば、いくつかのＩＭサービス上の「バディリスト」）は、ユーザが通信する通信サービスと同じサービス上の他のユーザの多くのユーザ識別子（例えば、いくつかのメッセージングサービス上の「バディリスト」）を含み得る。いくつかの実施形態において、サービス固有の連絡先リストは、ユーザ装置１００上でローカルに記憶し得るが、一部の実施形態におけるサービス固有の連絡先リストは、関連する通信サービスのプロバイダによって管理されるリモートサーバに記憶し得る。いくつかの実施形態においては、インスタントメッセージング識別子に対するこの比較が実行されるのは、部分的識別子をユーザの電子アドレス帳における連絡先のファーストネーム及び／又はラストネームと比較した時に、一致が特定されなかった時のみである。いくつかの実施形態は、アドレス帳での一致の有無に関係なくこの比較を実行する。
【００４９】
ブロック２０６において、統合メッセージ処理アプリ１４５は、一組の受信者候補について一組のアカウントアドレス候補を特定し得る。各アカウントアドレス候補は、ユーザ識別子と、ユーザ識別子が有効である電子通信サービスの識別子とを含み得る。ブロック２０８において、統合メッセージ処理アプリ１４５は、アカウントアドレス候補のリストを送信者に提示し得る。いくつかの実施形態において、このリストは、ユーザ装置１００のディスプレイスクリーン上に表示されるスクリーン画像に表示され得る。いくつかの実施形態は、このリストを送信者に配信するオーディオ信号を生成することによって、このリストを送信者に提示し得る。
【００５０】
図３のスクリーン画像３１０において、送信者は文字「Ｍａ」を検索ボックス３３０に入力している。このユーザ入力に応じて、統合メッセージ処理アプリ１４５は受信者候補を特定し、リスト３５０をユーザに提示している。リスト３５０は、任意の電子通信サービス上のアカウントを含み得る。
【００５１】
この実施例において、統合メッセージ処理アプリ１４５は、連絡先のファーストネームに基づいて、連絡先Ｍａｎｎ  Ｊｏｈｎｓを受信者アカウント候補の一人として特定している。統合メッセージ処理アプリ１４５は、更に、Ｍａｎｎ  Ｊｏｈｎの電話番号（３１０−５５５−１２１２）を示し、彼にはＳＭＳを介して連絡可能であることを指示する。統合メッセージ処理アプリ１４５は、連絡先のラストネームに基づいて、連絡先Ｐａｕｌ  Ｍａｒｋｓを受信者アカウント候補のもう一人として特定している。統合メッセージ処理アプリ１４５は、Ｐａｕｌ  Ｍａｒｋｓの電子メールアドレス（ｇｏｏｓｅ＠ｓｅｒｖｅｒ７．ｃｏｍ）を示し、彼には電子メールを介して連絡可能であることを指示する。統合メッセージ処理アプリ１４５は、連絡先のユーザ識別子「ｍａｒｔｉａｎ１２３」に基づいて、連絡先Ｊｏｈｎｎｙ  Ａｐｐｌｅｓｅｅｄを受信者アカウント候補のもう一人として特定している。統合メッセージ処理アプリ１４５は、Ｊｏｈｎｎｙ  Ａｐｐｌｅｓｅｅｄのメッセージングユーザ識別子「ｍａｒｔｉａｎ１２３」を示し、彼にはインスタントメッセージングサービス１（「ＩＭ＃１」）を介して連絡可能であることを指示する。また、統合メッセージ処理アプリ１４５は、連絡先の電子メールアドレスに基づいて、連絡先Ｍａｒｔｉｎ  Ｇｏを受信者候補として特定している。また、統合メッセージ処理アプリ１４５は、連絡先のメッセージングユーザ識別子に基づいて、連絡先Ｔｅｄ  Ｃｈｅｎを受信者アカウント候補の一人として特定している。統合メッセージ処理アプリ１４５は、更に、連絡先のメッセージングユーザ識別子に基づいて、連絡先Ｍａｘ  Ｃａｒｓｏｎを受信者アカウント候補の一人として特定している。
【００５２】
リスト３５０は、一組のアカウントアドレス候補を含み、また、送信者が指定受信者を特定する上で役立つ関連する情報（例えば、アカウントアドレスに関連する名前、関連する電子通信サービス等）を含み得る。
【００５３】
いくつかの場合、単一の受信者（例えば、ＩＭ＃１、ＩＭ＃２、ＳＭＳ、ＶｏＩＰ等）と通信するためのいくつかのオプションを利用し得る。例えば、ユーザ入力は、ユーザのアドレス帳に電話番号、電子メールアドレス、及び同じ受信者又は異なる受信者のものであり得る２つの異なるインスタントメッセージングアカウントアドレスが記憶されている連絡先のファーストネームと一致し得る。単一の受信者に対して複数のサービスが利用できるいくつかの実施形態において、統合メッセージ処理アプリ１４５は、受信者候補との通信に利用できる最優先通信サービスを選択し、表示し得る。通信サービスの優先度は、製造者によって予め設定し得、又は、統合メッセージ処理アプリ１４５上の優先度設定でユーザによって設定し得る。いくつかの実施形態において、優先サービスは、例えば、送信者の過去の通信動作に基づいて、動的に決定し得る。
【００５４】
いくつかの実施形態において、受信者候補と通信するために利用可能な最優先通信サービスのみを表示する代わりに、統合メッセージ処理アプリ１４５は、受信者候補のすべてのアカウントを表示し得る。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、受信者の異なるアカウントをユーザの好みに基づいた順序で表示し得る。例えば、ユーザが、典型的には、ＳＭＳの利用を望み、ＳＭＳがユーザと受信候補者との間の通信手段として利用できる場合、このオプションが、ユーザの利便性のために、リストの上部に表示される。別の実施例として、表示の順序は、送信者がアカウントそれぞれを使用する頻度に基づき得る。
【００５５】
図２に戻ると、ブロック２１０において、統合メッセージ処理アプリ１４５は、指定受信者についてのアカウントアドレス候補のうちの１つのユーザ選択を受け取り得る。あるいは、送信者は、追加の情報を入力（例えば、続けて追加の文字を入力）して受信者アカウント候補のリストを更にフィルターにかけることができる。図３のスクリーン画像において、送信者は、指定受信者についてのアカウントアドレス候補のうちの１つを選択しており、選択されたアカウントアドレス候補３５５が強調表示されている。いくつかの実施形態において、送信者は、同じリストから１つより多いアカウントアドレス候補を選択し得る。
【００５６】
図２に戻ると、ブロック２１２において、統合メッセージ処理アプリ１４５は、送信するメッセージを指定するユーザ入力を受け取り得る。いくつかの実施形態において、ユーザは、メッセージを図３のテキスト入力ボックス３４０にタイプできる。また、統合メッセージ処理アプリ１４５は、ユーザが、メッセージのコンテンツ（例えば、写真）が入っているファイルを特定し、（選択したサービスがこれをサポートしている場合）映像又はオーディオチャットを開始し、及びマイク及び／又はカメラ等を介してユーザ入力を提供することによって、メッセージコンテンツを作成することを可能にし得る。
【００５７】
ブロック２１４において、統合メッセージ処理アプリ１４５は、指定したメッセージを選択したアカウントアドレスに送信し得る。いくつかの実施形態において、メッセージを送信することは、使用する適切な送信者アカウントを選択することを含み得る。送信者は、それぞれが、ユーザ識別子と、ユーザ識別子が有効である電子通信サービスの識別子を含む複数の送信者アカウントを有し得る。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、送信者がメッセージを送信する前に使用したい送信者アカウントを指定することを可能にする。いくつかの実施形態の統合メッセージ処理アプリ１４５は、多くの決定基準に基づいて、送信者アカウントアドレスを人間の介在なしに自動的に決定し得る。その実施例を以下で説明する。送信者アカウントアドレスを決定すると、送信者と指定受信者との間で通信セッションが確立される。
【００５８】
図３のスクリーン画像３２０に示すように、通信セッション、この場合、チャットセッションが確立され、送信者はインスタントメッセージを受信者に送信できる。メッセージ３６０が送信され、返事３６２が受信され、送信者は現在メッセージ３６５をタイプしている。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、メッセージがスクリーン画像に表示される方法をアニメ化する。例えば、送信者が統合メッセージ処理アプリ１４５に対して（例えば、「送信」ボタンを選択することによって）メッセージを受信者に送信するように命令すると、メッセージは、あたかもテキストが上に向かって移動する泡の中にあるようにアニメ化された泡の動きで、メッセージ入力ボックス３４０から交信表示領域３３５に移動し得る。様々なアニメーション方式及びスタイルを送信者及び受信者のメッセージの表示に組み込み得る。この場合、送信者はインスタントメッセージを使用して受信者と通信しているが、送信者は、テキストメッセージ、オーディオメッセージ、映像メッセージ、電子メールメッセージ等を含む他のタイプのメッセージを受信者に送信し得る。他のすべての入力と同様に、メッセージは、キーボード入力、音声コマンド入力、ジェスチャ入力等を使って作成し得る。
【００５９】
上記のように、統合メッセージ処理アプリ１４５は、様々なソースを検索し、アカウントアドレス候補及び受信者候補を特定し得る。図４は、本発明の一実施例に係る、一組の受信者候補についての一組のアカウントアドレス候補を特定するプロセス４００を説明するためのフローチャートである。プロセス４００は、例えば、図１の統合メッセージ処理アプリ１４５を実行するユーザ装置１００において実施し得る。図５を参照してプロセス４００を説明する。図５は、本発明のいくつかの実施形態に係るユーザ連絡先のデータベース（例えば、図１のユーザ連絡先データベース１５０）への連絡先エントリ５００の実施例を示す。
【００６０】
ブロック４０２において、統合メッセージ処理アプリ１４５は、部分的識別子を含むユーザ入力を受け取り得る。部分的識別子は、統合メッセージ処理アプリ１４５がユーザ連絡先のデータベースで連絡先を絞り込み、一組のアカウントアドレス候補を特定することを可能にする任意の情報であってもよい。いくつかの実施形態において、部分的識別子は、名前、電子メールアドレス、インスタントメッセージングユーザ識別子等の一部を特定し得る文字列であり得る。
【００６１】
ブロック４０４において、統合メッセージ処理アプリ１４５は、ユーザ連絡先データベース１５０における連絡先のファーストネームと１つ以上の一致を特定し得る。例えば、統合メッセージ処理アプリ１４５は、部分的識別子をユーザ連絡先データベース１５０のファーストネームと突き合わせ、一致するファーストネームを特定し得る。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、ファーストネームの任意の一部が部分的識別子と同じである場合、そのファーストネームを部分的識別子と一致として特定し得る。例えば、統合メッセージ処理アプリ１４５は、「Ｍａｄｏｎｎａ」を部分的識別子「Ｄｏｎ」と一致であると判定し得る。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、ファーストネームの初めの文字が部分的識別子と一致した時のみ、ファーストネームが部分的識別子と一致すると特定し得る。例えば、統合メッセージ処理アプリ１４５は、「Ｌａｒｒｙ」は、部分的識別子「Ｌａ」と一致と判断するが、「Ｍａｎｄｅｌａ」は一致とは判断しない。一致を判定する方法は予め設定し得るが、あるいは、通信アプリケーションの管理者又はユーザによって設定し得る。
【００６２】
図５は、ユーザ連絡先及びその関連情報のデータベースへの連絡先エントリ５００の実施例を示す。図示の様に、連絡先エントリ５００は、連絡先の名前（５０２において）及び連絡先に連絡できる住所の一覧を含み得る。住所は、物理的な住所（例えば、自宅の住所５０４）、並びに、様々な電子通信サービス上のアカウントアドレスを含み得る。この例においては、Ｊｏｈｎｎｙ  Ａｐｐｌｅｓｅｅｄのアカウントアドレスは、２つの電子メールアドレス５０６及び５０８と、ＳＭＳアドレス５１０（ＳＭＳの場合、電話番号がアカウント識別子として機能し得る）と、３つのインスタントサービスのアドレス５１２、５１４、５１６と、ＶｏＩＰアドレス５０８とを含む。また、連絡先エントリ５００は、連絡先の１つ以上のユーザ割当帰属グループなどの連絡先についてのその他の情報（領域５２０に示される）も含み得る。ユーザ入力の受け取りに応じて、統合メッセージ処理アプリ１４５は、部分的識別子をユーザ連絡先データベース１５０内の連絡先のファーストネームと比較し得る。ユーザ入力が「Ｊｏｈｎ」である場合、いくつかの実施形態の統合メッセージ処理アプリ１４５は、一致が見つかったと判定し、連絡先エントリ５００にフラグを立て得る。
【００６３】
図４に戻ると、ブロック４０６において、統合メッセージ処理アプリ１４５は、ユーザ連絡先データベース１５０における連絡先のラストネームと１つ以上の一致を特定し得る。例えば、統合メッセージ処理アプリ１４５は、部分的識別子をユーザ連絡先データベース１５０内の一組のラストネームと突き合わせ、ラストネームを特定する。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、ラストネームの任意の一部が部分的識別子と同じである場合、そのラストネームを部分的識別子と一致として特定し得る。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、ラストネームの最初の部分が部分的識別子と一致する時にのみ一致を発見し得る。
【００６４】
ブロック４０８において、統合メッセージ処理アプリ１４５は、ユーザ連絡先データベース１５０における連絡先のアカウントアドレスと１つ以上の一致を特定し得る。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、部分的識別子を連絡先のアカウントアドレスのいずれかと突き合わせ得る。
【００６５】
図５において、統合メッセージ処理アプリ１４５は（電子メールアドレス「ｊ２ａ＠ｃｏｍｐａｎｙ．ｃｏｍ」及び「ｊｏｈｎｎｙａ＠ｈｏｍｅ．ｃｏｍ」、ＳＭＳアドレス「４０８−５５５−１２３４」、及びインスタントメッセージングアドレス「ｊａｐｐｌｅｓｅｅｄ０１」、「ｊａ１９９０」、「ｊｏｈｎｎｙ＠ｃｏ．ｃｏｍ」及び「ｊ−ａｐｐｌｅｓｅｅｄ」を含む）アカウントアドレスを部分的識別子と比較し、一致が見つかるか判定し得る。一致を特定すると、統合メッセージ処理アプリ１４５は、アカウントアドレスにフラグを立て得る。いくつかの実施形態において、連絡先の電話番号のうちの一部又はすべては、ＳＭＳアドレスとして扱い得、ユーザは、連絡先の電話番号を入力することによって連絡先を見つけることができる。
【００６６】
図４に戻ると、ブロック４１０において、統合メッセージ処理アプリ１４５は、一致が見つかったか判定し得る。統合メッセージ処理アプリ１４５は、部分的識別子と、ユーザ連絡先データベース１５０内のファーストネーム、ラストネーム、若しくはアカウントアドレスとの間に少なくとも１つの一致があるか判定する。少なくとも１つの一致が存在する場合、一致するファーストネーム、ラストネーム、電子メールアドレス及び／又はメッセージング識別子を含むアカウントアドレス候補のリストが送信者に対して提示され得る。次に、送信者はリストからアカウントアドレスの１つを選択し、選択されたアカウントアドレスに関連付けられた電子通信サービスを介して、メッセージを選択した受信者に送信し得る。
【００６７】
統合メッセージ処理アプリ１４５が一致が発見されなかったと判定すると、ブロック４１２で、いくつかの実施形態の統合メッセージ処理アプリ１４５は、送信者が現在ログインしている一組の電子通信サービスを決定し得る。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、また、（例えば、送信者のユーザ名およびパスワードがユーザ装置１００に既に記憶されており、統合メッセージ処理アプリ１４５にアクセスできる状態である時）統合メッセージ処理アプリ１４５が送信者をログインさせることができる電子通信サービスを決定し得る。
【００６８】
ブロック４１４において、統合メッセージ処理アプリ１４５は、ブロック４１２で特定された電子通信サービスそれぞれのサービス固有の連絡先リストにおけるアカウントアドレス（又はアカウント識別子）との１つ以上の一致を特定し得る。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、電子通信サービスそれぞれの送信者のサービス固有の連絡先リストを取得し、サービス固有の連絡先リスト上のアカウント識別子のいずれかがユーザによって入力された部分的識別子と一致していないかを判定することによって、部分的識別子を連絡先のアカウントアドレスと突き合わせ得る。各電子通信サービスの送信者のサービス固有の連絡先リストは、ユーザ装置１００にローカルで又は（例えば、通信サービスのプロバイダによって管理される）リモートサーバに記憶し得る。特定された一致は、この後、送信者に提示される一組のアカウントアドレス候補に含まれ得る。
【００６９】
受け取ったユーザ入力を使用して一組の受信者候補について一組のアカウントアドレス候補を特定した後、統合メッセージ処理アプリ１４５は一組のアカウントアドレス候補を含むリストを送信者に提示する。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、一組の優先度に基づく特定の順序で（例えば、ユーザがより頻繁に通信する相手の特定の通信サービスのユーザの優先度）アカウントアドレス候補をリストに提示し得る。リストのソートに使用できるその他の基準には、送信者が現在特定の電子通信サービスに接続されてるか、受信者アカウント候補の現在の状態（例えば、アカウントが現在オンライン又はオフラインであることが知られているか）、送信者が、全般的に又は特定の受信者について、最も頻繁に利用している電子通信サービス、送信者が直近で通信した受信者アカウント候補、送信者が最も頻繁に通信した受信者アカウント候補などが挙げられる。いくつかの実施形態において、これらの決定基準は、例えば、送信者が接続されていないサービス上の受信者アカウント候補を除外するか、又は、現在オフラインであることが知られている受信者アカウント候補を除外することによって、リストにフィルターをかける時にも使用し得る。
【００７０】
いくつかの実施形態において、統合メッセージ処理アプリ１４５は、一組のアカウントアドレス候補それぞれについて、関連する連絡先氏名（既知の場合）、アカウント識別子（ユーザ名、電話番号など）及びアカウントの電子通信サービスを表示することによって一組のアカウントアドレス候補を送信者に提示し得る。図３におけるリスト３５０は、情報の一つの配列を示す。他の実施形態は、一組のアカウントアドレス候補それぞれに関連付けられる情報を異なる形で表示し得る。一組のアカウントアドレス候補から、送信者は、指定受信者を表すアカウントアドレスを選択し得る。
【００７１】
いくつかの実施形態において、送信者アカウント（つまり、メッセージの送信元アカウント）は、人間の介在なしに、統合メッセージ処理アプリ１４５によって自動的に選択される。上記のように、送信者は、異なる電子通信サービスに関連付けられ得るいくつかのアカウントを有することができ、送信者は、単一の電子通信サービス上に複数のアカウントを有することができる。選択された受信者アカウント識別子の電子通信サービスに基づいて、統合メッセージ処理アプリ１４５は、メッセージの送信元である適切な送信者アカウントを決定し得る。図６は、本発明の一実施例に係る、特定のアカウントアドレス候補がユーザによる選択に応じて、メッセージを送信する送信者アカウントを決定するプロセス６００を説明するためのフローチャートである。プロセス６００は、例えば、統合メッセージ処理アプリ１４５を実行する図１のユーザ装置１００において実施し得る。
【００７２】
ブロック６０２において、統合メッセージ処理アプリ１４５は選択された受信者アカウントアドレスに関連付けられる電子通信サービスを決定し得る。統合メッセージ処理アプリ１４５は、使用する送信者アカウントを決定するために、受信者アカウントアドレスに関連付けられる電子通信サービスを決定し得る。
【００７３】
ブロック６０４において、統合メッセージ処理アプリ１４５は、ブロック６０２で決定された受信者の電子通信サービスに関連付けられる一組の送信者アカウントアドレスを特定し得る。送信者は、単一の電子通信サービスに複数のユーザ識別子又はアカウントを有し得る。例えば、特定のインスタントメッセージングサービス上で、送信者は、同僚との通信に１つのユーザ識別子を使用し、家族及び友達との通信に別のユーザ識別子を使用し得る。すべてのこのようなアカウントは、ブロック６０４で特定し得る。
【００７４】
ブロック６０６において、統合メッセージ処理アプリ１４５は、特定された送信者アカウントアドレスの数が１より大きいかどうかを判定し得る。特定された送信者アカウントアドレスの数が１より大きくない場合（つまり、唯一の送信者アカウントアドレスが受信者の電子通信サービスに関連付けられていると特定された場合）、ブロック６１６において、統合メッセージ処理アプリ１４５は、このアカウントアドレスを送信者アカウントとして選択し、このアカウントアドレスを使ってメッセージを送信し得る。
【００７５】
ブロック６０６において、特定された送信者アカウントアドレスの数が１より大きい場合、統合メッセージ処理アプリ１４５は、ブロック６０８において、送信者アカウントアドレスを選択し得る。様々な選択基準を使用し得る。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、過去にアカウントアドレス候補との通信に最も頻繁に使用された送信者アカウントアドレスを特定する履歴情報を取得し得る。いくつかの場合、送信者は、受信者アカウントアドレスと通信するために、他の送信者アカウントアドレスよりも頻繁に通信する特定の送信者アカウントアドレスを使用し得る（例えば、送信者が、同僚又は業務の連絡先と通信する特定の送信者アカウントアドレスを使用し、受信者が業務の連絡先である場合）。次に、統合メッセージ処理アプリ１４５は、アカウントアドレス候補との通信に最も頻繁に使用されている送信者アカウントアドレスを、メッセージを送信する際に使用するアカウントアドレスとして決定し得る。
【００７６】
いくつかの実施形態においては、選択された受信者アカウントアドレスとの通信に最も頻繁に使用されている送信者アカウントアドレスが選択されるが、いくつかの実施形態においては、異なる基準を用いて送信者アカウントアドレスを選択し得る。例えば、いくつかの実施形態においては、受信者の電子通信サービス上での通信に直近で使用された送信者アカウントアドレス、選択された受信者アカウントアドレスとの通信に最も直近に使用されている送信者アカウントアドレス、又は、受信者の電子通信サービス上での通信の送信に最も頻繁に使用されている送信者アカウントアドレスを決定することによって一組の送信者アカウントアドレスから送信者アカウントアドレスを選択し得る。
【００７７】
ブロック６１０において、統合メッセージ処理アプリ１４５は、選択された送信者アカウントアドレスを送信者に提示し、送信者に対して、メッセージを送信する時に使用する異なる送信者アカウントアドレスを選択する機会を提供し得る。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、送信者アカウントアドレスをスクリーン画像の「送信元」欄に表示することによって送信者アカウントアドレスを提示し得る。メッセージを送信する前に、統合メッセージ処理アプリ１４５は、ユーザが、決定された電子通信サービスに関連付けられる一組の送信者アカウントアドレスから異なるアカウントアドレスを選択することを可能にし得る。
【００７８】
ブロック６１２において、統合メッセージ処理アプリ１４５は、送信者が異なるアカウントアドレスを選択したかどうかを判定し得る。送信者が異なるアカウントアドレスを選択している場合、ブロック６１４において、統合メッセージ処理アプリ１４５は、送信者によって選択された送信者アカウントアドレスを使ってメッセージを送信し得る。送信者が異なるアカウントアドレスを選択していない場合、ブロック６１６において、統合メッセージ処理アプリ１４５は、決定された送信者アカウントアドレスを使ってメッセージを送信する。
【００７９】
上記の通り、送信者は、指定受信者の部分的識別子を入力し、部分的識別子と一致する受信者アカウント候補のリストから選択することによってメッセージの受信者をアカウントを選択し得る。上記の実施形態において、部分的識別子は、文字列であり得る。いくつかの実施形態において、部分的識別子は、指定受信者の特性であり得る。例えば、部分的識別子は、指定受信者が、家族の一員、仕事の連絡先、医師、特定の年齢グループの人、同僚、テニス仲間、研究グループの一員、特定の地域内に住所を有する人等であることを指示しうる。このような特性は、ユーザが記憶した連絡先に関する任意の情報に基づいて、定義し得る。例えば、図５の連絡先エントリ５００において、実アドレス５０４から、Ｊｏｈｎｎｙ  Ａｐｐｌｅｓｅｅｄはカリフォルニア州クパチーノに住んでいると決定し得る。領域５２０におけるグループ情報からＪｏｈｎｎｙ  Ａｐｐｌｅｓｅｅｄは同僚であると判断し得る。指定受信者の特性（例えば、図３の検索ボックス３３０内）の受け取りに応じて、統合メッセージ処理アプリ１４５は、受信した特性を使って連絡先にフィルターをかけ、一組のアカウントアドレス候補を特定し得る。
【００８０】
いくつかの実施形態において、統合メッセージ処理アプリ１４５のユーザは、複数の参加者を通信セッションに加わるように招待し得る。場合によっては、ユーザは、連絡先のグループを選択し、その連絡先グループと通信を開始するように要求し得る。このような場合、統合メッセージ処理アプリ１４５は、通信セッションに使用する電子通信サービスとしてグループの連絡先すべて（例えば、グループの全員が電子通信サービスにログインされるかアカウントを有する）にアクセスできる電子通信サービスを決定し得る。すべての選択された連絡先を横断して利用可能な電子通信サービスが１つより多くある場合、統合メッセージ処理アプリ１４５は、選択された連絡先の中で通信に最も頻繁に使用されるチャネルを決定し、それを通信セッションで使用する電子通信サービスとして選択し得る。いくつかの実施形態において、すべての選択された連絡先を横断してアクセスできる電子通信サービスが決定されない場合、通信セッションは確立され得ない。しかし、いくつかの実施形態においては、選択された連絡先の大多数のみが同じ電子通信サービスにログインされている場合でも通信セッションは確立し得る。
【００８１】
他の例では、ユーザはメッセージの受信者を引き続き選択できるか、又は、進行中の通信セッションに別のパーティを追加することを決定し得る。送信者が特定のメッセージの第１の受信者又は通信セッションの第１の参加者を選択すると、更なる追加は、第１の受信者について選択された電子通信サービスと同じサービスに登録及び／又はログインされている受信者に限定される。図７は、本発明の一実施形態に係る統合メッセージ処理アプリ１４５を使用してメッセージを複数の受信者に送信する際の、ユーザ装置１００の一連のスクリーン画像の実施例を示す。
【００８２】
図７は、図３の一連のスクリーン画像３０５〜３２０に続く一連のスクリーン画像として説明し得る。図７の初期画面７０５は、スクリーン画像３２０に類似しており、ここでは、送信者が、サービスＩＭ＃１上でＪｏｈｎｎｙ  Ａｐｐｌｅｓｅｅｄを新しいメッセージの受信者として選択している。このスクリーン画像７０５では、送信者は受信者追加ボタン７２５を選択してＪｏｈｎｎｙ  Ａｐｐｌｅｓｅｅｄ宛のメッセージに別の受信者を追加し得る。
【００８３】
ユーザによる受信者追加ボタン７２５の選択に応じて、別の「宛先：」行がスクリーン画像７１０に現れ、ユーザは別の受信者を特定できる。スクリーン画像７１０には、送信者が追加の受信者の部分的識別子として検索ボックス７３０に文字「Ａｎ」を入力している。部分的識別子のユーザ入力を受け取ると、いくつかの実施形態の統合メッセージ処理アプリ１４５は、ユーザ入力に一致する一組のアカウントアドレス（「受信者アカウント候補」とも呼ぶ）を特定し得る。
【００８４】
上記の実施形態と同様に、統合メッセージ処理アプリ１４５は、受信した部分的識別子をユーザ連絡先のデータベース内の連絡先のファーストネーム、ラストネーム、電子メールアドレス、及びメッセージングユーザ識別子と突き合わせることによって一組のアカウントアドレスを特定し得る。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、部分的識別子が、送信者のサービス固有の連絡先リスト内のメッセージングユーザ識別子と一致するかをも判定し得る。しかし、送信者は、Ｊｏｈｎｎｙ  Ａｐｐｌｅｓｅｅｄ宛に使用する特定の電子通信サービス（サービスＩＭ＃１）を既に選択しているので、統合、メッセージ処理アプリ１４５は、一致したものにフィルターをかけ、電子通信サービスＩＭ＃１のアカウントアドレスのみを含めることができる。スクリーン７１０に示すように、アカウントアドレス候補のリスト７５０は特定され、送信者に対して表示されている。上記のリストは、電子通信サービスＩＭ＃１を利用するアカウントアドレスのみを表示する。
【００８５】
スクリーン画像７１５において、送信者は、指定受信者の一組のアカウントアドレス候補のうちの１つをすでに選択している。図示の通り、選択されたアカウントアドレス候補７５５は強調表示され、送信者が選択済みであることを示している。スクリーン画像７２０において、第２の受信者が「宛先：」行に追加される。送信者は受信者追加ボタン７２５を再び選択し、別の受信者を追加するか、例えば、ボックス７６５で入力し、送信するメッセージを作成し得る。電子通信サービスが２名より多く参加できる通信セッションをサポートしていることを条件として、同様のプロセスを使って、確立済みの通信セッションに参加者を追加し得る。
【００８６】
いくつかの実施形態において、統合メッセージ処理アプリ１４５などの通信アプリケーションは、２名以上の参加者間の通信セッションを円滑にする機能を提供し得る。統合メッセージ処理アプリ１４５は、送信者が複数の電子通信サービスを横断して指定受信者のアカウントアドレスを適宜に特定してメッセージを送信することを可能にし得る。いくつかの実施形態の統合メッセージ処理アプリ１４５は、選択された受信者アカウントアドレスに関連付けられる電子通信サービスに基づいて、メッセージを送信する送信者アカウントを決定し得る。更に、統合メッセージ処理アプリ１４５は、３名以上の参加者のグループの通信セッションを円滑にし、通信セッションに適切な電子通信サービスを決定し得る。ユーザは、アプリケーションを切り替え、又は異なるユーザインターフェースに適合させる必要なくして、たまたま接続された任意の電子通信サービス上の連絡先のいずれかともシームレスな通信体験を楽しむことができる。
【００８７】
いくつかの実施形態の通信アプリケーションは、第１のユーザと第２のユーザとの間の通信履歴を第１のユーザに表示できる他の機能を提供し得る。ユーザと別のユーザとの間の通信履歴に対するユーザ要求の受け取りに応じて、いくつかの実施形態の統合メッセージ処理アプリ１４５は、複数の電子通信サービスに横断して発生した通信を含む、２名のユーザ間の通信履歴を集約して提示し得る。
【００８８】
電子通信サービスは、異なるプロバイダによって及び／又は異なるサーバ上でホスティングされ得、一部の電子通信サービスは、例えば、電子メールアーカイブ又はチャット履歴ファイルなどの、過去の通信の記録を保持し得る。図８は、ユーザ間の通信履歴を生成するように配置及び集約され得る電子通信セッションファイルのローカル及びリモートストレージを示す系統図８００である。いくつかの実施形態において、ユーザ装置１００は、広域ネットワーク８０５（例えば、インターネット）を介して様々なサーバと通信し得る。図示の様に、サーバは、インスタントメッセージングサービス＃１サーバ８１０と、ＳＭＳサービスサーバ８１５と、インスタントメッセージングサービス＃２サーバ８２０とを含み得る。電子通信サービスの他のプロバイダからホスティングされるその他のサーバ（図示せず）もネットワーク８０５に接続し得る。この実施形態において、サーバ８１０、８１５、及び８２０それぞれは、通信履歴ファイルを関連するデータリポジトリ８２５、８３０、８３５に記憶する。
【００８９】
代表的な通信ファイルをチャットセッションファイル８４０として示す。ファイル８４０は、２名（又はそれ以上の）のユーザ間のチャットセッションの複写であり得、データリポジトリ８２５から、日付、時間、及び／又は参加者のユーザ名（又は、その他のアカウント識別子）などの様々なパラメータの参照によって取得し得る。いくつかの実施形態において、ファイルに関連付けられる日付および時間は、通信が発生した時間の範囲（例えば、同じ日のすべての通信を１つのファイルに記憶し得、通信サービスがセッションを規定する場合、時間の範囲は、セッションの期間に相当し得る）を含み得る。ファイル８４０は、関係する時間範囲中にいずれかのパーティによって送信された各メッセージの記録を記憶し得、各メッセージは、実際に送信された時を示すタイムスタンプを有し得る。いくつかの実施形態において、ファイル８４０は、テキストデータ、オーディオデータ、映像データ、画像データ、又は発生した通信を表すその他のデータを含み得る。通信ファイルは任意の数のメッセージを含み得、場合によっては、各メッセージは、個別のファイルにあるか、単一のファイルが多くのメッセージを含有することがある。
【００９０】
第１のユーザと第２のユーザとの間の通信履歴に対するユーザ要求を受け取ると、統合メッセージ処理アプリ１４５は、これら２名のユーザに関連付けられる通信セッションファイルを特定しアクセスするために、サーバ８１０、８１５、８２０と通信し得る。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、２名のユーザが所有するアカウントに関連付けられるすべてのセッション履歴を要求し得る。
【００９１】
図８のシステムは、説明上のものであって、変更や修正が可能であることが認識されよう。いくつかの実施形態において、通信ファイルは、リモートサーバでの記憶に加えて又はその代わりにローカルで（例えば、図８のローカル情報ストア８５５に）記憶し得る。
【００９２】
図９は、本発明の一実施形態に係る、複数の通信セッションファイルを集約することによって通信履歴ページ９００を作成する実施例を示す。この実施例において、ユーザは、別のユーザ（Ｊｏｈｎｎｙ  Ａｐｐｌｅｓｅｅｄ）との通信履歴を要求している。ユーザの要求の受け取りに応じて、ユーザ装置１００は、ユーザと別のユーザとの間の通信セッションファイルを取得し得る。ファイルは、要求しているユーザが他のユーザとの通信に使用した任意の電子通信サービスのファイルであり得る。異なるファイルが異なるサービスについて取得でき、１つ以上のファイルを同じサービスから取得し得る。図９の実施例において、通信履歴は、３つの通信セッションファイル、つまり、インスタントメッセージサービスからのチャットセッションファイル９１０、インスタントメッセージ／ＶＯＩＰサービス９１５、テキストメッセージ（ＳＭＳ）サービス９２０を含む。この特定の実施例については３つの通信セッションファイルしか取得されていないが、様々な電子通信サービスを横断する２名のユーザの通信履歴には更に多くの通信履歴が含まれ得る。セッションファイルは、ローカルでユーザ装置１００に及び／又はリモートで（例えば、図８に示すサーバ８１０、８１５、８２０に）記憶し得る。リモートで記憶されたファイルはユーザの要求に応じて取得し得る。
【００９３】
いくつかの実施形態において、統合メッセージ処理アプリ１４５は、生成されたページが２名のユーザ間の通信が発生した順序で通信履歴を表示するように、通信セッションファイルの個々の通信を順序で（例えば、古い順に）配列し得る。図９に示すように、通信セッションファイルの（メッセージに対応する）各通信行は、そのメッセージが送信された時を示すタイムスタンプを有し得る。タイムスタンプに基づいて、統合メッセージ処理アプリ１４５は、異なる通信サービスを横断するすべての通信セッションファイルから通信行をソートし、全体の通信履歴を古い順に配列した単一のページを提示し得る。（いくつかの実施形態において、通信行は、必要に応じて、新しい順又は他の任意の順序にソートし得る）。
【００９４】
図９の９００ページは、インスタントメッセージサービス９１０、ＶＯＩＰサービス９１５、テキストメッセージサービス９２０から通信セッションファイルを集約して生成したものであるが、ユーザとＪｏｈｎｎｙ  Ａｐｐｌｅｓｅｅｄとの間の集約された通信履歴を示す。集約された通信履歴は、使用したサービスに関係なく、タイムスタンプを基準にソートしたユーザとＪｏｈｎｎｙ  Ａｐｐｌｅｓｅｅｄとの間のすべてのチャット行とテキストの交換を示す。ＶＯＩＰサービス９１５からの「Ｈｅｙ  Ｍａｎｄｙ」は、１０：５６：３３というタイムスタンプを有し、ユーザとＪｏｈｎｎｙ  Ａｐｐｌｅｓｅｅｄとの間の最初の通信であるので、集約された通信履歴で最初のチャット行として表示される。次の通信は、Ｊｏｈｎｎｙ  Ａｐｐｌｅｓｅｅｄが、１３：２０：０５にインスタントメッセージサービス９１０を介してユーザに「Ｈｅｌｌｏ」を送信した時に発生した。したがって、この通信は、集約された通信履歴で２番目のチャット行として表示される。このようにして、インスタントメッセージサービス９１０及びＶＯＩＰサービス９１５からのすべてのチャット行は関連するタイムスタンプそれぞれを基準にしてソートされる。異なる通信セッションファイルからの通信行は、それぞれの通信行のタイムスタンプによって、交互に配置し得る。更に、９００ページは、ＳＭＳサービス９２０からのユーザとＪｏｈｎｎｙ  Ａｐｐｌｅｓｅｅｄとの間の通信履歴も含み得る。関連するタイムスタンプで示されるように、テキストメッセージがその日の後に交換されている。この結果、テキストメッセージの交換は、インスタントメッセージサービス９１０とＶＯＩＰサービス９１５の下で、９００ページの下部に表示される。
【００９５】
９００ページは、説明上のものであって、変更や修正が可能であることが理解されよう。いくつかの実施形態において、異なるサービスを利用して送信されたメッセージは、視覚的に（例えば、フォント、背景色、（図９に示すような）サービス特定注釈によって、互いに区別し得る。いくつかの実施形態において、通信履歴には、テキストに加えて又はその代わりに他のメッセージフォーマットを含み得る。例えば、オーディオ会話の記録がある場合、その記録を通信履歴ページの適切な箇所に（例えば、記録の開始又は終了に関連付けられるタイムスタンプに基づいて）挿入し得る。これは、例えば、ページの適当な位置にビジュアルキー及び／又は再生制御要素を設けてユーザがオーディオを再生できるように表示し得る。映像は同様に扱うことができ、映像のフレームは映像が利用できることを示すインジケータとして含め得る。
【００９６】
上記のように、いくつかの実施形態においては、通信履歴は、各ファイルのタイムスタンプ又はサービスによって定義される様々な通信単位に関連付けられるタイムスタンプに基づいた順序でソートし得る。「通信単位」は、例えば、単一のメッセージ、メッセージのグループ、特定の時間インターバル内のすべてのメッセージ、２０秒以上の休止がない会話のブロック等を含み得る。これによって、通信履歴を要求したユーザは、各通信が発生した時にいずれかのパーティが使用しているアカウントアドレス又は通信サービスに関係なく、単一ページの２名のユーザ間の通信履歴を全体を容易に見ることができる。更に、ユーザは、ページ内を検索してユーザが探している対話を特定することができ、各通信セッションファイルを開いて各ファイルのコンテンツを個別に検索する必要がない。場合によっては、通信履歴は、非常に長くて、利用できる表示空間に適合しない場合があり得る。９００ページはスクロールが可能であり、ユーザは履歴の異なる部分を見ることができる。
【００９７】
図１０は、本発明の一実施形態に係る、２人のユーザ間の通信を記憶した通信履歴を集約するプロセス１０００を説明するためのフローチャートである。プロセス１０００は、例えば、統合メッセージ処理アプリ１４５を実行する図１のユーザ装置１００において実施し得る。
【００９８】
ブロック１００２において、統合メッセージ処理アプリ１４５は、ユーザと相手との間の通信履歴に対する要求を受け取り得る。ユーザは、ユーザと相手との間の通信履歴の見ることを要求するユーザ装置１００のユーザであり得る。いくつかの実施形態において、ユーザは、統合メッセージ処理アプリ１４５のボタンを選択し、プルダウンメニューから選択して通信履歴の見ることを要求し得る。ユーザは、過去に通信した１人以上の人を指定し、その人たちとの通信履歴（例えば、映像チャットデータ、インスタントメッセージ交換、音声チャット録音等）を要求し得る。
【００９９】
ブロック１００４において、統合メッセージ処理アプリ１４５は、相手のユーザ識別子を受け取り得る。いくつかの実施形態において、相手のユーザ識別子は、通信履歴に対する受け取った要求の一部として受け取り得る。上記の受信者特定技術のいずれかを用いて相手のユーザ識別子を入力する際にユーザを支援し得る。
【０１００】
ブロック１００６において、統合メッセージ処理アプリ１４５は、要求しているユーザの一組のアカウントアドレスを特定し得る。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、統合メッセージ処理アプリ１４５のこの情報を記憶しているユーザ装置１００上のプログラムファイルにアクセスすることによってユーザの一組のアカウントアドレスを特定し得る。いくつかの実施形態において、ユーザのアカウントアドレス情報は、ユーザは電子通信サービスの任意の１つを利用して新しいアカウントを作成し、登録した時に、プログラムファイルに記憶される。いくつかの実施形態においては、ユーザは、この情報を統合メッセージ処理アプリ１４５に入力でき、統合メッセージ処理アプリ１４５は、この情報を他のユーザ固有の設定とともに記憶し得る。更に、いくつかの実施形態においては、リモートサーバ内のユーザのアカウントアドレス情報を追跡でき、このサーバは、統合メッセージ処理アプリ１４５が情報を要求する時にアクセスし得る。
【０１０１】
ブロック１００８において、統合メッセージ処理アプリ１４５は、第１の組のアカウントアドレスに関連付けられる一組の通信サービスを決定し得る。この一組の通信サービスには、要求しているユーザのアカウントアドレスの少なくとも１つに関連付けられる任意の通信サービスを含み得る。いくつかの実施形態において、例えば、サービスが通信セッション記録を保持していない場合、又はユーザが特定のサービス（例えば電子メール）は除外すべきであると指示した場合、一部のサービスはこの一組の通信サービスから除外され得る。
【０１０２】
ブロック１０１０において、統合メッセージ処理アプリ１４５は、相手の第２の組のアカウントアドレスを特定し得る。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、ユーザ連絡先データベース１５０（アドレス帳とも呼ぶ）を検索して相手の第２の組のアカウントアドレスを決定し得る。例えば、ユーザは、名前又はアカウントアドレスを入力するか、又はユーザのアドレス帳から記録を選択することによって相手を特定でき、統合メッセージ処理アプリ１４５は、アドレス帳から連絡先のアカウントアドレスすべてを取得し得る。図５を参照すると、ブロック１００４における受け取ったユーザ識別子が「Ｊｏｈｎｎｙ  Ａｐｐｌｅｓｅｅｄ」（実名）又は彼のアカウントの１つ、例えば、ｊｏｈｎｎｙ＠ｃｏ．ｃｏｍである場合、統合メッセージ処理アプリ１４５は、アドレス帳を検索し、一致するエントリ５００を見つけ、アカウントアドレス５１０、５０６、５０８、５１２、５１８、５１４、及び５１６を含むアカウントアドレスすべてを抽出し得る。いくつかの実施形態においては、抽出されたアカウントアドレスにフィルターをかけて、ブロック１００６で定義されている１組のアカウントアドレスにあるアカウント又はサービスのみを含めることができる。
【０１０３】
ブロック１０１２において、統合メッセージ処理アプリ１４５は、サーバ又はローカルストレージから、第１及び第２の組のアカウントアドレスに関連付けられる一組の通信セッションファイルを取得し得る。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、ユーザと相手両方が同じ電子通信サービスにアカウントを有するすべての場合を特定し得る。このような対のアカウントそれぞれについては、統合メッセージ処理アプリ１４５は、その電子通信サービスのサーバから、対のアカウント識別子のすべてのセッションファイルを要求し、これら２つのアカウント間の通信を含むすべてのセッションを取得し得る。ユーザ又は相手（又は、両方）が単一のサービス上で複数のアカウントを有する場合、複数の対のアカウント識別子を用いてそのサービスのセッションファイルを取得し得る。セッションファイルがローカルで記憶されている場合、統合メッセージ処理アプリ１４５は、セッションファイルをサーバから要求せず、ローカルストレージから取得し得る。
【０１０４】
ブロック１０１４において、統合メッセージ処理アプリ１４５は、取得した通信セッションファイルすべてから会話単位又は内容を、関連するタイムスタンプに基づく順序で配列し得る。図９を参照して上述しているように、統合メッセージ処理アプリ１４５は、すべての通信セッションファイル内の会話内容すべてが単一のページに表示され、それぞれのタイムスタンプに基づいて順序付けられるように、会話内容を古い順に順序付け得る。これによって、ユーザは、相手との通信履歴をすべての通信サービスを横断して古い順に見ることができる。
【０１０５】
ブロック１０１６において、統合メッセージ処理アプリ１４５は、配列した会話内容の少なくとも一部をユーザに提示し得る。配列した会話内容は、単一のページ又はウインドウに提示し得、ユーザは、単にページをスクロールすることによって第１のユーザと第２のユーザとの間の通信履歴全体を見ることができる。
【０１０６】
様々な実施形態に係るシステム及び方法は、通信履歴に対するユーザ要求の受け取りに応じて、２名以上のユーザ間の通信履歴をウインドウのページを使って提示し得る。いくつかの実施形態において、統合メッセージ処理アプリ１４５は、様々なサーバ（例えば、サーバ８１０、８１５、及び８２０）から取得した通信履歴をシステムメモリにロードし、通信履歴をユーザに表示し得る。いくつかの実施形態の統合メッセージ処理アプリケーション１４５は、ユーザがページをスクロールすると、いくつかの隣接する行とともに現在ユーザに可視な通信行が既にシステムメモリにロードされている場合、ユーザにシームレスなスクロール体験を提供し得る。但し、いくつかの実施形態において、メモリの制約によって、統合メッセージ処理アプリケーション１４５が通信履歴全体をシステムメモリにロードできない場合がある。いくつかの実施形態においては、少なくとも部分的にユーザが所与の時間に見ているページ内の一部に基づいて、通信履歴ページの一部分をシステムメモリに動的にロード及びアンロードすることによってインテリジェントメモリなキャッシングが実行される。
【０１０７】
通信履歴ページの一部分の動的なロード及びアンロードの実施例を図１１Ａ及び１１Ｂに示す。これらは、２つの異なる時点における通信履歴ページ１１０５の代表例である。図１１Ａ及び１１Ｂにおいて、ページ１１０５は、２人のユーザ間の通信履歴全体を表す。いくつかの実施形態において、ページ１１０５は、上記の方法を用いて生成し得る。説明のための便宜上、ページ１１０５は、セル１１０２の数に分割されているとして示されていて、各セルは、通信履歴の一部に相当する。セル１１０２は、例えば、一定数の会話内容（例えば、１００行）、又は一定量のデータ（例えばシステムメモリのページ）であり得る。
【０１０８】
図１１Ａ及び１１Ｂにおいて、空のセル（例えば、図１１Ａのセル１１０２（１））は、ページ１１０５の対応する部分が現在メモリにロードされていないことを示す。行を含むセル（例えば、図１１Ａのセル１１０２（１５））は、対応する部分が現在メモリにロードされていることを示す。「ロード中．．．」と表記されたセル（例えば、図１１Ａのセル１１０２（８））は、対応する部分がメモリにロードするための処理中であることを示す。「アンロード中．．．」と表記されたセル（例えば、図１１Ｂのセル１１０２（１０））は、対応する部分がメモリからアンロードするための処理中であることを示す。ウインドウ１１１５及び１１２０は、ページ１１０５のどの部分が図１１Ａ及び１１Ｂに現在それぞれ表示されているかを示す。
【０１０９】
いくつかの実施形態において、所与の時間にメモリ内にあるセル１１０２の数は、ユーザが通信履歴ページ１１０５を見ている時、（ローディングとアンローディングのために起こり得る過渡的な変動を除き）一定であり得る。この数は、履歴が提示される表示領域を埋めるだけの十分な情報を提供し得るだけの大きさ（図１１の実施例における５個のセル１１０２）、いくつかの実施形態において、この数は、例えば、ユーザがページをスクロールする前に、ページ１１０５の追加の部分を予めロードし得る程に大きくなり得る。ユーザがページ１１０５をスクロールすると、新しいセル１１０２がメモリにロードされ、他のセル１１０２がメモリからアンロードされて、全体的なメモリ使用量を実質的に一定に維持する。
【０１１０】
例えば、図１１Ａは、ユーザの要求に応じてページ１１０５が最初に表示された時間に対応し得る。この実施形態において、ページ１１０５は、古い順に配列された会話内容を含み得、初期の表示は、（ページ１１０５の下部にある）直近の内容を示す。セル１１０２（１０）〜１１０２（１５）は、表示されているページ１１０５の一部に対応し、メモリ内にある。更に、セル１１０２（９）は、可視部分の直ぐ外にあるページ１１０５の一部分に対応するが、同様にメモリ内にあり、次の２個のセル１１０２（７）と１１０２（８）がロードしている。ユーザが上向きスクロールを開始すると、ページ１１０５の次のいくつかの部分が表示できる（又は、間もなく表示できる）状態になる。
【０１１１】
図１１Ｂは、ユーザが上向きスクロールを開始した後の時間に対応し得る。ここで、ウインドウ１１２０内のページ１１０５の部分は、可視である。対応するセル１１０２（４）〜１１０２（９）がロード済みである。セル１１０２（１０）は、スクロールされて視界から消えているが、ロードされたままの状態である。ユーザが下向きスクロールを開始すると、ページ１１０５のこの部分が表示できる状態になる。セル１１０２（１１）及び１１０２（１２）は、はるかに視界から消えているが、現在アンロード中であり、セル１１０２（１３）〜１１０２（１５）は現在空である。セル１１０２（２）及び１１０２（３）は現在ロード中であり、ユーザが上向きのスクロールを続ければコンテンツを表示できる状態になる。図１１Ａと１１Ｂを比較して分かるように、使用中のメモリの全容量は、実質的にいずれの時も同じである。（この例において、セルのアンロードは高速処理である）。
【０１１２】
動的なローディング及びアンローディング動作は、実装依存的な方法で最適化し得る。例えば、セルのサイズは所望により選択し得、ロードするセルの最大数も、所望により選択し得る。いくつかの実施形態において、セルのサイズは、一定の数のメッセージ、又は一定の量のコンテンツとして定義し得る。セルのサイズ及びロードするセルの最大数の選択は、ローディング速度、レンダリング速度、利用できるメモリの量、及びユーザのスクロールに応じた通信履歴の異なる部分の表示における許容遅延の制限などの考察によって決まり得る。いくつかの実施形態において、フォントサイズ、表示解像度、及びウインドウサイズなどの同時に可視であるコンテンツの量を決定する検討は、セルのサイズおよびロードするセルの最大数を選択する時に検討し得る。
【０１１３】
いくつかの実施形態において、通信履歴の特定の部分（例えば、直近の通信に対応する１つ以上のセル）は、常にメモリ内に保持され得、通信履歴の他の部分は、動的にロード及びアンロードされる。
【０１１４】
更に、メモリ内に記憶された、ロードされたセルについてのデータのタイプは変化し得る。いくつかの実施形態において、ローディングは、単にメッセージデータをシステムメモリに記憶することを含み、メッセージデータから可視画像を生成する描画及びフォーマットプロセスは実時間で実行される。他の実施形態において、ローディングは、セルが、直接に表示可能な画像ブロック又はその他のデータとしてメモリに記憶されるように、描画及びフォーマットプロセスの実行を含み得る。いくつかの実施形態において、ローディングは、（例えば、上記のように）セッションファイルから集約された通信履歴の部分を動的に構築することも含み得る。いくつかの実施形態において、集約された通信履歴は（例えば、キャシュ又はローカルのデータファイルで）一旦構築し記憶し得、ローディングは、より高速にアクセスできるように、この記憶された履歴データの一部をシステムメモリに転送することを含み得る動的ローディングとアンローディングは任意であって、いくつかの実施形態において、通信履歴全体が直ちにシステムメモリにロードされ得る。
【０１１５】
いくつかの実施形態の通信アプリケーションは、２名以上のユーザ間の通信履歴であって、過去に通信で使用したすべての電子通信サービスを横断する２名以上のユーザ間の通信を含む通信履歴を提示し得る。この通信アプリケーションは、通信履歴を表示するウインドウスクロールするユーザに対して、インテリジェントメモリ管理を実行することによってシームレスなユーザエクスペリエンスを提供し得る。メモリの制約のため、通信アプリケーションは、ユーザがウインドウの異なる部分にスクロールする時に、集約された通信履歴を動的にロード及びアンロードする。
【０１１６】
本発明は特定の実施形態を参照して説明されているが、当業者には様々な変更が可能であることを認識されよう。例えば、上記の実施形態は、電子メール、インスタントメッセージング、テキストメッセージング、ＳＭＳ、ＶＯＩＰ等を含む広範な電子通信サービスを横断して統合メッセージ処理（又は、統合通信）を提供し得、通信は、テキスト、オーディオ、映像、画像、又は任意の他の通信形態を組込み得る。すべての電子通信サービスがサポートされる必要はなく、異なる実施形態が、本明細書で説明されているサービス及び／又はその他の電子通信サービスの異なる組み合わせをサポートし得ることが理解されよう。
【０１１７】
ユーザは、任意の数の連絡先を有することができ、任意に組み合わせた利用可能なサービスを介して特定の連絡先と通信し得る。いくつかの場合、統合メッセージ処理アプリケーションを使ってユーザのアドレス帳に記録がないパーティと通信し得る。
【０１１８】
更に、集約された通信履歴の提示は、過去の通信記録を提供するサービスに限定され得、集約された通信履歴の完全性は、利用できる記録の可否によって限定され得る。また、通信履歴は、例えば、日付範囲、又は電子通信サービスのユーザ選択サブセットに基づいて、利用できる記録のサブセットを横断して集約し得る。
【０１１９】
本発明の実施形態は、任意の組み合わせの専用構成要素、及び／又はプログラマブルプロセッサ、及び／又はその他のプログラマブルデバイスを使って実現し得る。本明細書で説明されている様々なプロセスは、同じプロセッサ又はいずれかの組合せの異なるプロセッサ上で実施し得る。構成要素が、特定の動作を実行するように構成されていると説明されている場合、かかる構成は、例えば、動作を実行する電子回路を設計することによって、動作を実行するプログラマブル電子回路（例えば、マイクロプロセッサ）をプログラムすることによって、又は、それらの任意の組み合わせによって、実現し得る。プロセスは、既存のプロセス間通信技術を含むが、それに限定されない様々な技術を使って通信し得、異なるペアのプロセスが異なる技術を利用することがあり、又は、同じペアのプロセスが異なる時に異なる技術を利用することがあり得る。更に、上記の実施形態は、特定のハードウェアおよびソフトウェア構成要素を参照し得るが、当業者には、異なる組み合わせのハードウェア及び／又はソフトウェア構成要素も利用でき、ハードウェアで実行されると説明されている特定の動作がソフトウェアでも実行し得、またその逆も可能であることが理解されよう。
【０１２０】
本発明の様々な特徴を組み込んだコンピュータプログラムは、符号化し、様々なコンピュータ可読記憶媒体に記憶し得、好適な媒体には、磁気ディスク若しくは磁気テープ、コンパクトディスク（ＣＤ）若しくはＤＶＤ（デジタル汎用ディスク）、フラッシュメモリ、及びその他の永続的媒体が挙げられる。プログラムコードで符号化されるコンピュータ可読媒体は、互換性がある電子デバイスでパッケージ化し得、又は、プログラムコードは、電子デバイスとは別に（例えば、インターネットからのダウンロードを介するか、別途パッケージ化されたコンピュータ可読記憶媒体として）提供され得る。
【０１２１】
それゆえ、本発明は、特定の実施形態に関して説明されているが、本発明は、以下の特許請求の範囲内での、すべての修正形態及び等価物を包含することを意図するものであることが理解されるであろう。
【図１】
2016197891.tif 000003
【図２】
2016197891.tif 000004
【図３】
2016197891.tif 000005
【図４】
2016197891.tif 000006
【図５】
2016197891.tif 000007
【図６】
2016197891.tif 000008
【図７】
2016197891.tif 000009
【図８】
2016197891.tif 000010
【図９】
2016197891.tif 000011
【図１０】
2016197891.tif 000012
【図１１Ａ】
2016197891.tif 000013
【図１１Ｂ】
2016197891.tif 000014
【手続補正書】
【提出日】平成28年7月7日(2016.7.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ディスプレイを含むコンピュータによって、第１のユーザと第２のユーザとの間の通信履歴に対する要求を受け取ることであって、前記通信履歴は前記第１のユーザの異なる複数のユーザ識別子に関連付けられた複数の電子通信サービスを介した前記第１のユーザと前記第２のユーザとの間の通信を含むことと、
前記要求を受け取ることに応じて、前記複数の電子通信サービスに係る通信セッション情報の集合を取得することであって、前記通信セッション情報の集合は第１通信履歴と第２通信履歴とを含み、
前記第１通信履歴は前記複数の電子通信サービスのうちの第１通信サービスを介した前記第１のユーザと前記第２のユーザとの間の複数のメッセージを含み、前記第１通信サービスにおいて、前記第１のユーザは前記第１のユーザを前記第１通信サービスで一意に特定する用に供される第１ユーザ識別子で特定されると共に、前記第２のユーザは前記第２のユーザを前記第１通信サービスで一意に特定する用に供される第２ユーザ識別子で特定され、前記第１通信履歴は前記第２通信履歴のメッセージに関係なく取得され、
前記第２通信履歴は前記複数の電子通信サービスのうちの第２通信サービスを介した前記第１のユーザと前記第２のユーザとの間の複数のメッセージを含み、前記第２通信サービスにおいて、前記第１のユーザは前記第１のユーザを前記第２通信サービスで前記第１ユーザ識別子とは独立に一意に特定する用に供される第３ユーザ識別子で特定され、前記第３ユーザ識別子は前記第１ユーザ識別子と異なり、前記第２のユーザは前記第２のユーザを前記第２通信サービスで前記第２ユーザ識別子とは独立に一意に特定する用に供される第４ユーザ識別子で特定され、前記第４ユーザ識別子は前記第２ユーザ識別子と異なり、前記第２通信履歴は前記第１通信履歴のメッセージに関係なく取得されることと、
前記コンピュータによって、メッセージに関連付けられたタイムスタンプに基づいて前記第１通信履歴および前記第２通信履歴から合成通信履歴を生成することであって、前記合成通信履歴を生成することは前記メッセージに関連付けられた前記タイムスタンプに基づいて前記第１通信履歴および前記第２通信履歴から前記メッセージを集めて前記合成通信履歴をなすことを含み、前記第１通信履歴に含まれる前記第１のユーザと前記第２のユーザとの間の前記複数のメッセージと前記第２通信履歴に含まれる前記第１のユーザと前記第２のユーザとの間の前記複数のメッセージとは前記タイムスタンプに基づいて交互に配置されることと、
前記合成通信履歴を生成することに関連して、前記ディスプレイに、
集められ交互に配置された前記メッセージを含む前記合成通信履歴の少なくとも一部と、
前記複数の電子通信サービスのうちのひとつを介して新たな通信を前記第１のユーザから前記第２のユーザへ送るための通信生成アフォーダンスと、
を併せて表示することと、を含む方法。
【請求項２】
前記要求が前記第１のユーザから受け取られ、前記第２のユーザの前記第２ユーザ識別子を含み、
前記方法はさらに、前記コンピュータによって、前記第２のユーザのひとつ以上の追加識別子を決定することを含み、
前記通信セッション情報の集合を取得することは、前記第２のユーザの前記ひとつ以上の追加識別子のうちのひとつに関連付けられた通信セッションファイルを取得することを含む請求項１に記載の方法。
【請求項３】
前記第２のユーザの前記ひとつ以上の追加識別子は、ユーザ連絡先のデータベースを検索し前記第２のユーザの前記第２ユーザ識別子に関連付けられた識別子の集合を特定することにより決定され、前記ひとつ以上の追加識別子は前記複数の電子通信サービスのうちの異なる電子通信サービスに関連付けられる請求項２に記載の方法。
【請求項４】
前記合成通信履歴の前記メッセージは時系列に並べられる請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記複数の電子通信サービスに係る通信セッション情報の集合を取得することは、
前記第１のユーザに関連付けられたユーザ識別子の第１集合を特定することであって、前記第１集合の各ユーザ識別子は前記複数の電子通信サービスのうちのひとつと関連付けられることと、
前記複数の電子通信サービスに対して、前記第２のユーザに関連付けられたユーザ識別子の第２集合を特定することと、を含み、
前記通信セッション情報の集合は前記第１集合の少なくともひとつのユーザ識別子および前記第２集合の少なくともひとつのユーザ識別子に関連付けられた通信セッションファイルを取得することにより取得される請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記合成通信履歴の前記メッセージの全ては単一のファイルで提供され、
前記方法はさらに、前記コンピュータのユーザインターフェースのウインドウに、前記メッセージの一部を表示することを含み、
表示された前記メッセージの前記一部は前記ファイルの一部に対応する請求項１から５のいずれか１項に記載の方法。
【請求項７】
前記合成通信履歴はテキストデータ、オーディオデータ、映像データ、画像データ、又はこれらの組み合わせのうちの少なくともひとつを含む請求項１から６のいずれか１項に記載の方法。
【請求項８】
前記通信セッション情報の集合は、
ローカルで取得された通信セッションファイルの第１部分集合と、
アプリケーションプログラミングインターフェース（ＡＰＩ）を通じてアクセス可能なリモートサーバから取得される通信セッションファイルの第２部分集合と、を含む請求項１から７のいずれか１項に記載の方法。
【請求項９】
前記複数の電子通信サービスは、電子メール、インスタントメッセージング、ショートメッセージサービス（ＳＭＳ）、又ボイスオーバ・インターネットプロトコル（ＶｏＩＰ）のうちの少なくともひとつを含む請求項１から８のいずれか１項に記載の方法。
【請求項１０】
ディスプレイを含む計算デバイスに、
第１のユーザと第２のユーザとの間の通信履歴に対する要求を受け取る機能であって、前記通信履歴は前記第１のユーザの異なる複数のユーザ識別子に関連付けられた複数の電子通信サービスを介した前記第１のユーザと前記第２のユーザとの間の通信を含む機能と、
前記要求を受け取ることに応じて、前記複数の電子通信サービスに係る通信セッション情報の集合を取得する機能であって、前記通信セッション情報の集合は第１通信履歴と第２通信履歴とを含み、
前記第１通信履歴は前記複数の電子通信サービスのうちの第１通信サービスを介した前記第１のユーザと前記第２のユーザとの間の複数のメッセージを含み、前記第１通信サービスにおいて、前記第１のユーザは前記第１のユーザを前記第１通信サービスで一意に特定する用に供される第１ユーザ識別子で特定されると共に、前記第２のユーザは前記第２のユーザを前記第１通信サービスで一意に特定する用に供される第２ユーザ識別子で特定され、前記第１通信履歴は前記第２通信履歴のメッセージに関係なく取得され、
前記第２通信履歴は前記複数の電子通信サービスのうちの第２通信サービスを介した前記第１のユーザと前記第２のユーザとの間の複数のメッセージを含み、前記第２通信サービスにおいて、前記第１のユーザは前記第１のユーザを前記第２通信サービスで前記第１ユーザ識別子とは独立に一意に特定する用に供される第３ユーザ識別子で特定され、前記第３ユーザ識別子は前記第１ユーザ識別子と異なり、前記第２のユーザは前記第２のユーザを前記第２通信サービスで前記第２ユーザ識別子とは独立に一意に特定する用に供される第４ユーザ識別子で特定され、前記第４ユーザ識別子は前記第２ユーザ識別子と異なり、前記第２通信履歴は前記第１通信履歴のメッセージに関係なく取得される機能と、
メッセージに関連付けられたタイムスタンプに基づいて前記第１通信履歴および前記第２通信履歴から合成通信履歴を生成する機能であって、前記合成通信履歴を生成することは前記メッセージに関連付けられた前記タイムスタンプに基づいて前記第１通信履歴および前記第２通信履歴から前記メッセージを集めて前記合成通信履歴をなすことを含み、前記第１通信履歴に含まれる前記第１のユーザと前記第２のユーザとの間の前記複数のメッセージと前記第２通信履歴に含まれる前記第１のユーザと前記第２のユーザとの間の前記複数のメッセージとは前記タイムスタンプに基づいて交互に配置される機能と、
前記合成通信履歴を生成することに関連して、前記ディスプレイに、
集められ交互に配置された前記メッセージを含む前記合成通信履歴の少なくとも一部と、
前記複数の電子通信サービスのうちのひとつを介して新たな通信を前記第１のユーザから前記第２のユーザへ送るための通信生成アフォーダンスと、
を併せて表示する機能と、を実現させるためのコンピュータプログラム。
【請求項１１】
前記要求は、キーボード入力、ジェスチャ入力、又は音声コマンドのうちの少なくともひとつを介して受け取られる請求項１０に記載のコンピュータプログラム。
【請求項１２】
前記複数の電子通信サービスのうちの異なる複数の電子通信サービスは、異なるサービスプロバイダから提供される異なる電子通信サービスを含む請求項１０または１１に記載のコンピュータプログラム。
【請求項１３】
前記第１のユーザと前記第２のユーザとの間の前記通信履歴に対する前記要求を受け取る機能は、前記複数の電子通信サービスのうちの任意のひとつにおける前記第２のユーザのユーザ識別子の選択を受け取る機能を含む請求項１０から１２のいずれか１項に記載のコンピュータプログラム。
【請求項１４】
前記第１のユーザと前記第２のユーザとの間の前記通信履歴に対する前記要求を受け取る機能は、前記第１のユーザに関連付けられたユーザ連絡先のデータベースに保持されるひとつ以上の識別子のなかからの、前記第２のユーザに対するユーザ識別子の選択を受け取る機能を含む請求項１０から１２のいずれか１項に記載のコンピュータプログラム。
【請求項１５】
ディスプレイとプロセッサと前記プロセッサと接続されたメモリデバイスとを備える電子デバイスであって、前記メモリデバイスは通信を容易にするために実行されるべき命令を含み、前記命令は、前記プロセッサにより実行されると、前記プロセッサに、
第１のユーザと第２のユーザとの間の通信履歴に対する要求を受け取ることであって、前記通信履歴は前記第１のユーザの異なる複数のユーザ識別子に関連付けられた複数の電子通信サービスを介した前記第１のユーザと前記第２のユーザとの間の通信を含むことと、
前記要求を受け取ることに応じて、前記複数の電子通信サービスに係る通信セッション情報の集合を取得することであって、前記通信セッション情報の集合は第１通信履歴と第２通信履歴とを含み、
前記第１通信履歴は前記複数の電子通信サービスのうちの第１通信サービスを介した前記第１のユーザと前記第２のユーザとの間の複数のメッセージを含み、前記第１通信サービスにおいて、前記第１のユーザは前記第１のユーザを前記第１通信サービスで一意に特定する用に供される第１ユーザ識別子で特定されると共に、前記第２のユーザは前記第２のユーザを前記第１通信サービスで一意に特定する用に供される第２ユーザ識別子で特定され、前記第１通信履歴は前記第２通信履歴のメッセージに関係なく取得され、
前記第２通信履歴は前記複数の電子通信サービスのうちの第２通信サービスを介した前記第１のユーザと前記第２のユーザとの間の複数のメッセージを含み、前記第２通信サービスにおいて、前記第１のユーザは前記第１のユーザを前記第２通信サービスで前記第１ユーザ識別子とは独立に一意に特定する用に供される第３ユーザ識別子で特定され、前記第３ユーザ識別子は前記第１ユーザ識別子と異なり、前記第２のユーザは前記第２のユーザを前記第２通信サービスで前記第２ユーザ識別子とは独立に一意に特定する用に供される第４ユーザ識別子で特定され、前記第４ユーザ識別子は前記第２ユーザ識別子と異なり、前記第２通信履歴は前記第１通信履歴のメッセージに関係なく取得されることと、
メッセージに関連付けられたタイムスタンプに基づいて前記第１通信履歴および前記第２通信履歴から合成通信履歴を生成することであって、前記合成通信履歴を生成することは前記メッセージに関連付けられた前記タイムスタンプに基づいて前記第１通信履歴および前記第２通信履歴から前記メッセージを集めて前記合成通信履歴をなすことを含み、前記第１通信履歴に含まれる前記第１のユーザと前記第２のユーザとの間の前記複数のメッセージと前記第２通信履歴に含まれる前記第１のユーザと前記第２のユーザとの間の前記複数のメッセージとは前記タイムスタンプに基づいて交互に配置されることと、
前記合成通信履歴を生成することに関連して、前記ディスプレイに、
集められ交互に配置された前記メッセージを含む前記合成通信履歴の少なくとも一部と、
前記複数の電子通信サービスのうちのひとつを介して新たな通信を前記第１のユーザから前記第２のユーザへ送るための通信生成アフォーダンスと、
を併せて表示することと、を行わせる電子デバイス。
【請求項１６】
前記合成通信履歴の前記メッセージは前記電子デバイスのユーザインターフェース内のページに提供され、
前記命令は前記プロセッサにさらに、前記合成通信履歴の前記メッセージの一部に対応する前記ページの一部を表示することを行わせる請求項１５に記載の電子デバイス。
【請求項１７】
前記メッセージの少なくとも前記一部はロードされ、
前記命令は前記プロセッサにさらに、
前記ページの前記一部が前記ページの別の一部に変わったという指示を受け取ることと、
前記指示を受け取ることに応じて、前記ページの前記別の一部に対応する前記メッセージの別の一部をロードすることと、
を行わせる請求項１６に記載の電子デバイス。
【請求項１８】
前記合成通信履歴の前記メッセージは逆時系列に並べられる請求項１５から１７のいずれか１項に記載の電子デバイス。
【請求項１９】
前記通信セッション情報の集合はひとつ以上のアプリケーションプログラミングインターフェース（ＡＰＩ）を通じて取得される請求項１５から１８のいずれか１項に記載の電子デバイス。
【請求項２０】
前記合成通信履歴の前記メッセージの全ては単一のファイルで提供され、
前記コンピュータプログラムは前記計算デバイスにさらに、前記計算デバイスのユーザインターフェースのウインドウに、前記メッセージの一部を表示する機能を実現させ、
表示された前記メッセージの前記一部は前記ファイルの一部に対応する請求項１０から１４のいずれか１項に記載のコンピュータプログラム。
【請求項２１】
前記通信セッション情報の集合を取得する機能は、前記第１のユーザの少なくともひとつのユーザ識別子と前記第２のユーザの少なくともひとつのユーザ識別子とを含む通信履歴を決定する機能を含む請求項１０から１４、２０のいずれか１項に記載のコンピュータプログラム。
【請求項２２】
前記合成通信履歴を提供することは、前記合成通信履歴の前記メッセージのうちの、見られているページの一部に対応する一部をロードすることを含み、
前記方法はさらに、
前記ページがスクロールされる前に前記メッセージの追加的一部を予めロードすることで前記メッセージの前記追加的一部の表示の準備をすることと、
前記ページのスクロールに少なくとも部分的に基づいて、前記メッセージの一部をアンロードすると共に前記メッセージの別の一部をロードすることと、を含む請求項１から９のいずれか１項に記載の方法。
【請求項２３】
前記第１通信履歴は、
前記第１通信サービスを介して前記第１のユーザによって前記第２のユーザへ送信された少なくともひとつのメッセージと、
前記第１通信サービスを介して前記第２のユーザによって前記第１のユーザへ送信された少なくともひとつのメッセージと、を含み、
前記第２通信履歴は、
前記第２通信サービスを介して前記第１のユーザによって前記第２のユーザへ送信された少なくともひとつのメッセージと、
前記第２通信サービスを介して前記第２のユーザによって前記第１のユーザへ送信された少なくともひとつのメッセージと、を含む請求項１から９、２２のいずれか１項に記載の方法。
【請求項２４】
前記第１通信履歴の前記複数のメッセージは、前記合成通信履歴において、前記第２通信履歴の前記複数のメッセージと視覚的に区別される請求項１から９、２２、２３のいずれか１項に記載の方法。
【請求項２５】
前記第１通信履歴は、
前記第１通信サービスを介して前記第１のユーザによって前記第２のユーザへ送信された少なくともひとつのメッセージと、
前記第１通信サービスを介して前記第２のユーザによって前記第１のユーザへ送信された少なくともひとつのメッセージと、を含み、
前記第２通信履歴は、
前記第２通信サービスを介して前記第１のユーザによって前記第２のユーザへ送信された少なくともひとつのメッセージと、
前記第２通信サービスを介して前記第２のユーザによって前記第１のユーザへ送信された少なくともひとつのメッセージと、を含む請求項１０から１４、２０、２１のいずれか１項に記載のコンピュータプログラム。
【請求項２６】
前記第１通信履歴の前記複数のメッセージは、前記合成通信履歴において、前記第２通信履歴の前記複数のメッセージと視覚的に区別される請求項１０から１４、２０、２１、２５のいずれか１項に記載のコンピュータプログラム。
【請求項２７】
前記第１通信履歴は、
前記第１通信サービスを介して前記第１のユーザによって前記第２のユーザへ送信された少なくともひとつのメッセージと、
前記第１通信サービスを介して前記第２のユーザによって前記第１のユーザへ送信された少なくともひとつのメッセージと、を含み、
前記第２通信履歴は、
前記第２通信サービスを介して前記第１のユーザによって前記第２のユーザへ送信された少なくともひとつのメッセージと、
前記第２通信サービスを介して前記第２のユーザによって前記第１のユーザへ送信された少なくともひとつのメッセージと、を含む請求項１５から１９のいずれか１項に記載の電子デバイス。
【請求項２８】
前記第１通信履歴の前記複数のメッセージは、前記合成通信履歴において、前記第２通信履歴の前記複数のメッセージと、少なくともフォントおよび／または色で、視覚的に区別される請求項１５から１９、２７のいずれか１項に記載の電子デバイス。
【請求項２９】
前記通信履歴の少なくとも前記一部を表示することは、前記第１のユーザおよび前記第２のユーザからのメッセージであって通信履歴領域の異なる側に対して並べられているメッセージを併せて表示することを含み、前記併せて表示することは、
前記第１のユーザからの前記メッセージであって前記通信履歴領域の第１の側に対して並べられている前記メッセージを表示することと、
前記第２のユーザからの前記メッセージであって前記通信履歴領域の前記第１の側とは異なる前記通信履歴領域の第２の側に対して並べられている前記メッセージを表示することと、を含み、
前記第１のユーザからの前記メッセージであって前記通信履歴領域の前記第１の側に対して並べられている前記メッセージは、
前記第１通信サービスを介した前記第１のユーザからの通信と、
前記第２通信サービスを介した前記第１のユーザからの通信と、を含み、
前記第２のユーザからの前記メッセージであって前記通信履歴領域の前記第２の側に対して並べられている前記メッセージは、
前記第１通信サービスを介した前記第２のユーザからの通信と、
前記第２通信サービスを介した前記第１のユーザからの通信と、を含む請求項１から９、２２、２３、２４のいずれか１項に記載の方法。
【請求項３０】
前記通信生成アフォーダンスは、テキスト入力領域と、前記テキスト入力領域に入力されたテキストを含む新たな通信を送信するためのメッセージ送信アフォーダンスと、を含む請求項１から９、２２、２３、２４、２９のいずれか１項に記載の方法。
【外国語明細書】
2016197891000001.pdf