JP5596849B2 - オンライン通信セッションのためのクライアントコンピュータデバイスの登録 - Google Patents

オンライン通信セッションのためのクライアントコンピュータデバイスの登録 Download PDF

Info

Publication number
JP5596849B2
JP5596849B2 JP2013503723A JP2013503723A JP5596849B2 JP 5596849 B2 JP5596849 B2 JP 5596849B2 JP 2013503723 A JP2013503723 A JP 2013503723A JP 2013503723 A JP2013503723 A JP 2013503723A JP 5596849 B2 JP5596849 B2 JP 5596849B2
Authority
JP
Japan
Prior art keywords
client device
message
communication session
online communication
sms
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013503723A
Other languages
English (en)
Other versions
JP2013525879A (ja
Inventor
アルン マティアス
ジャスティン サンタマリア
ジャスティン ウッド
ジョー アブアン
ジェレミー ブラウン
パトリック ゲイツ
ナシュー クラーン
アンドリュー エイチ ヴァイロス
ブレイデン トーマス
ドリュー ヤオ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of JP2013525879A publication Critical patent/JP2013525879A/ja
Application granted granted Critical
Publication of JP5596849B2 publication Critical patent/JP5596849B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/234Monitoring or handling of messages for tracking messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/50Circuit switching systems, i.e. systems in which the path is physically permanent during the communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1073Registration or de-registration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • H04L65/1089In-session procedures by adding media; by removing media
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/0024Services and arrangements where telephone services are combined with data services
    • H04M7/0057Services where the data services network provides a telephone service in addition or as an alternative, e.g. for backup purposes, to the telephone service provided by the telephone services network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • H04W4/14Short messaging services, e.g. short message services [SMS] or unstructured supplementary service data [USSD]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/4061Push-to services, e.g. push-to-talk or push-to-video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Description

本発明の実施形態は、コンピュータネットワーキングの分野に関し、より具体的には、オンライン通信セッションのためのクライアントコンピュータデバイスの登録に関する。
〔関連出願への相互参照〕
本出願は、2010年9月20日出願の米国特許出願第12/886,479号に対する優先権を請求するものであり、かつ2010年9月13日出願の米国特許仮出願第61/382,479号、各々が2010年8月31日出願の米国特許仮出願第61/378,924号及び米国特許仮出願第61/378,926号、2010年6月4日出願の米国特許仮出願第61/351,814号、及び各々が2010年4月7日出願の米国特許仮出願第61/321,865号及び米国特許仮出願第61/321,866号の恩典も主張するものであり、これらの特許の各々は、引用により本明細書に組み込まれている。
本出願は、2010年4月7日出願の「ユーザをオンラインセッションに招待するための装置及び方法」という名称の現在特許出願中の本出願と同一の本出願人に譲渡された米国特許仮出願第61/321,832号に関連の主題を含む場合があり、この特許は、引用により本明細書で組み込まれる。
オンライン通信セッション(例えば、インスタントメッセージ、テレビ会議など)を行うための多くの実施は、コンピュータデバイスのユーザがソフトウエアをインストールし及び/又はサービスと登録することを要求する。従って、ユーザが別のユーザとのオンライン通信セッションを確立する前提条件として、両方のユーザが登録済みであり及び/又は同じソフトウエアがインストールされていなければならない。多くの実施はまた、ユーザが他のユーザのステータス(例えば、オンライン、オフライン、アウェーなど)を判断することを可能にするプレゼンス(例えば、フレンドリスト)を維持する。
「インターネット」のような大規模パブリックネットワークは、会社、「インターネット」サービスプロバイダ、又は更に個々の一般家庭によって維持されるもののようなより小規模のプライベートネットワークにとの接続を有することが多い。まさしくその性質により、パブリックネットワークは、ネットワークアドレスの一般的に同意された割り当て、すなわち、パブリックアドレスを有するべきである。様々な理由から、プライベートネットワークの維持管理者は、一般的に同意された割り当ての一部でないプライベートネットワークに対してプライベートネットワークアドレスを使用したいと思うことが多い。従って、プライベートネットワークからのネットワークトラフィックがパブリックネットワークをトラバースすることができるためには、何らかの形態のプライベート/パブリックネットワークアドレス変換(NAT)が必要である。
NAT作動を行うデバイスは、パブリックネットワークのアドレス指定方式に準拠するようにプライベートネットワークから送られているデータパケットを変更する。特に、ネットワークアドレス変換器は、パケットの発信プライベートアドレス及びポート番号をその独自のパブリックアドレス及び割り当てたポート番号で置き換える。ネットワークアドレス変換器はまた、プライベートネットワーク上のコンピュータに対して受信されているデータパケットを変更し、宛先パブリックアドレス及びポート番号を意図する受信者の正しいプライベートアドレス及びポート番号で置き換える。本明細書で使用する時のアドレスという用語は、前後関係において適切に場合に当業者に理解されるようにアドレス及びポート番号を含むと解釈すべきである。
NATは、最新のネットワークコンピュータにおいて益々一般的になっている。NATの1つの利点は、それがパブリックネットワークアドレス空間の枯渇を遅らせるという点である。例えば、「インターネット」上に使用されるTCP/IPアドレス指定は、各3桁の4つのストリングを含み、従って、有限のアドレス空間を提供する。更に、このアドレス空間のある一定の部分は、特定の用途又はユーザに向けて留保され、更に利用可能なアドレスの実際の数が減少する。しかし、NATを使用した場合に、プライベートネットワーク又はサブネットは、任意の数のアドレスを使用し、依然として外側世界に単一の標準化されたパブリックアドレスのみを呈示することができる。それによって利用可能なアドレスの数が実際的には無限になるが、その理由は、各プライベートネットワークは、同一のプライベートアドレスを理論的に使用することができるからである。
NATによって得られる1つの利点は、パブリックネットワーク上のコンピュータがプライベートネットワーク上のコンピュータの実際の(すなわち、プライベートの)ネットワークアドレスを判断することができないことから生じるセキュリティの強化である。これは、パブリックアドレスのみがネットワークアドレス変換器によりパブリックネットワーク上に提供されるからである。更に、このパブリックアドレスは、プライベートネットワーク上のあらゆる数のコンピュータに対応することができる。
NATタイプが異なれば、その使用するセキュリティのレベルも異なる。例えば、「全コーンNAT」を用いて、内部アドレス(iAddr:Port)が外部アドレス(eAddr:ePort)にマップされた状態で、あらゆる外部ホストは、eAddr:ePortにパケットを送ることによりiAddr:iPortにパケットを送ることができる。「制限付きコーンNAT」を用いて、アドレスhAddrを有する外部ホストは、iAddr:iPortが以前にhAddrにパケットを送ったことがある場合に限り、eAddr:ePortにパケットを送ることによってiAddr:iPortにパケットを送ることができる。外部ホストのポートは無関係である。「ポート制限付きコーンNAT」を用いて、iAddr:iPortが以前にhAddr:hPortにパケットを送っていた場合に限り、アドレス/ポートhAddr:hPortを有する外部ホストは、eAddr:ePortにパケットを送ることによってiAddr:iPortにパケットを送ることができる。最後に、対称NATを用いて、同じiAddr:iPortから特定の宛先IPアドレス及びポートへの各要求は、固有のeAddr:ePortにマップされる。同じ内部ホストが異なる宛先にパケットを送った場合に、異なる外部アドレス及びポートマッピングが使用される。内部ホストからパケットを受信する外部ホストのみが、内部ホストにパケットを送り返すことができる。
ピアツーピア(P2P)コンピューティングは、コンピュータノードのリソースの一部を他のネットワーク参加者に直接に利用可能にするコンピュータノードで構成された分散型ネットワークアーキテクチャを指す。P2Pネットワーク内のピアは、サーバがリソースを供給し、クライアントがリソースを消費する従来のクライアント−サーバモデルとは対照的に、相互の直通通信チャンネルを確立してクライアント及びサーバの両方として作用する。
上述のNAT作動では、P2P接続に対して多くの問題がある。例えば、ピアの一方又は両方が上述のNATタイプの1つ又はそれよりも多くの裏側に位置する場合に、2つのピアの間に直接接続を確立することは益々困難になる。この問題は、「Apple iPod Touch(登録商標)」、「Apple iPhone(登録商標)」、「Apple iPad(登録商標)」、及び様々な他のデバイス(例えば、「RIM Blackberry(登録商標)」デバイス、「Palm Pre(登録商標)」デバイスなど)のようなクライアントデバイスが、異なるNAT実施を有するネットワークの間で頻繁に移動することによって悪化する。例えば、「Apple iPhone(登録商標)」は、Wi−Fiネットワーク(例えば、802.11b、g、nネットワーク)、3Gネットワーク(例えば、ユニバーサルモバイルテレコミュニケーションズシステム(UMTS)ネットワーク、高速アップリンクパケットアクセス(HSUPA)ネットワークなど)、及びBluetooth(登録商標)ネットワーク(パーソナルエリアネットワーク(PAN)として公知)上で通信することができる。今後のクライアントデバイスは、少し例を挙げれば、WiMax、インターナショナルモバイルテレコミュニケーション(IMT)アドバンスト、及びロングタームエボリューション(LTE)アドバンストのような付加的な通信チャンネル上に通信することができることになる。
ハンズフリーユニット(例えば、ヘッドホン、自動車キット)は、一般的に、ハンズフリーサービスのためのコンピュータデバイスとピア接続するのに使用される。例えば、携帯電話通信の機能性を含むコンピュータデバイスが、ハンズフリーユニットとコンピュータデバイスの間の音声リレーとして作用するハンズフリーユニットとピア接続する機能を含むことは一般的である。
ヘッドホンプロフィール(HSP)1.2仕様書、2008年12月18日 ハンズフリープロフィール1.5(HFP1.5)仕様書、2005年11月25日
クライアントコンピュータデバイス(クライアントデバイス)(例えば、ワークステーション、ラップトップ、パームトップ、携帯電話、スマートフォン、マルチメディア電話、タブレット、携帯式メディアプレーヤ、GPSユニット、ゲームシステムなど)をオンライン通信セッション(例えば、P2Pテレビ会議、P2Pインスタントメッセージなど)に向けて自動的に登録する方法及び装置を説明する。一実施形態では、コンピュータデバイスでのイベント時に(例えば、電源が投入されるコンピュータデバイス)、クライアントデバイスは、オンライン通信セッションの登録処理を自動的に始める。自動登録処理は、クライアントデバイスが、SMSトランジットデバイス(例えば、SMSゲートウェイ又はSMSアグリゲータ)に識別トークン(例えば、そのプッシュトークン)を有するSMS(ショートメッセージサービス)メッセージを送信することを含む。識別トークンは、クライアントデバイスを一意的に識別し、一実施形態では、プッシュ通知サービスがクライアントデバイスの位置付けることを可能にする情報を含むことができるプッシュトークンである。プッシュ通知サービスの実施形態における識別トークンは、特定の通知が合法的であるという信頼を確立する方法としても使用される。他の実施形態では、独自のトークンにクライアントデバイスのあらゆる登録又はマッピングを用いて、識別トークンをクライアントデバイスに関連付け、かつクライアントデバイスのアイデンティティを一意的に識別されたトークンに関連付ける信頼された方法を提供することができる。
SMSトランジットデバイスは、クライアントデバイスの電話番号を判断して(例えば、SMSメッセージのヘッダを調べることにより)、識別トークン及び電話番号を用いてIP(インターネットプロトコル)メッセージを登録サーバに送信する。登録サーバは、識別トークン及び電話番号に基づいて署名を発生させてクライアントデバイスへの配信に向けてSMSトランジットデバイスにこれらを送信する。SMSトランジットデバイスは、クライアントデバイスに署名と識別トークンと電話番号とを含むSMSメッセージを送信する。クライアントデバイスは、次に、署名、識別トークン、及び電話番号を用いて登録サーバにIPメッセージを送信する。登録サーバは、クライアントデバイスからの情報を検証し、オンライン通信セッション登録データストア内に識別トークンと電話番号の間の関連付けを記憶する。識別トークンと電話番号の関連付けられた対を併せて、オンライン通信セッションネットワーク内でデバイスを一意的に識別する。
クライアントデバイスが登録された後に、クライアントデバイスのユーザは、オンライン通信セッション(例えば、映像チャット/会議セッション、インスタントメッセージセッションなど)を開始し及び/又はその招待を受け入れることができる。一実施形態では、クライアントデバイスの電話番号は、オンライン通信セッションのオンライン通信セッション終点識別子として使用される。一例として、クライアントデバイスのユーザは、電話番号を使用してオンライン通信セッションに参加するように他のクライアントデバイスの他のユーザを招待することができる。一部の実施形態では、クライアントデバイスは、それ自体の電話番号を自然には知らない。
本発明は、本発明の実施形態を示すために使用される以下の説明及び添付図面を参照することによって最も良く理解することができる。
一実施形態によるオンライン通信セッションのためのクライアントデバイスの登録を示すデータ流れ図である。 一実施形態によりより詳細に図1のクライアントデバイスを示すブロック図である。 一実施形態によりより詳細に図1の登録サーバを示すブロック図である。 一実施形態によるオンライン通信セッションのためのクライアントデバイスを登録する例示的な作動を示す流れ図である。 一実施形態による例示的な登録データストアを示す図である。 一実施形態の一般的なネットワークトポロジーを示す図である。 一実施形態によるクライアントデバイス間のオンライン通信セッション確立を示すデータ流れ図である。 一実施形態による例示的なリレーサービスを示すブロック図である。 一実施形態によるAPIアーキテクチャの一実施形態を示す図である。 一実施形態による例示的な登録データストアを示す図である。 一実施形態による例示的なNAT互換性チャートを示す図である。 一部の実施形態による回線交換通話と映像通話の間で遷移するのに使用される例示的なクライアントデバイス及びグラフィカルユーザインタフェースを示す図である。 一実施形態による映像プレビューを示す図12のクライアントデバイスを示す図である。 一実施形態による映像通話招待を受諾又は拒否するのに使用される例示的なクライアントデバイス及びグラフィカルユーザインタフェースを示す図である。 一実施形態による映像通話に遷移した後のクライアントデバイスを示す図である。 一実施形態による映像通話に遷移した後のクライアントデバイスを示す図である。 一実施形態による映像通話と音声専用回線交換通話間で遷移する例示的な作動を示す流れ図である。 一実施形態による映像通話と音声専用回線交換通話間で遷移する例示的な作動を示す流れ図である。 一実施形態による映像通話拒否メッセージを受信したクライアントデバイス上で行われる例示的な作動を示す流れ図である。 一実施形態による映像通話から回線交換通話へ遷移するクライアントデバイス上で行われる例示的な作動を示す流れ図である。 一実施形態によるオンライン通信セッション終点識別子として電子メールアドレスを使用してオンライン通信セッションのためのクライアントデバイスを登録するのに使用される一般的なネットワークトポロジーを示す図である。 一実施形態によるオンライン通信セッション終点識別子として電子メールアドレスを登録する例示的な作動を示す流れ図である。 一実施形態によるオンライン通信セッション終点識別子として電子メールアドレスを登録する例示的な作動を示す流れ図である。 一実施形態によるオンライン通信セッション終点識別子として電子メールアドレスを登録する初期化情報を提供するユーザに関する例示的な作動を示す流れ図である。 一実施形態による電子メールアドレスを検証する例示的な作動を示す図である。 一実施形態による電子メールアドレスが検証された時に登録サービスに行われる例示的な作動を示す流れ図である。 一実施形態によるユーザが同じオンライン通信セッション終点識別子に関連付けられている複数のクライアントデバイスを有する時に招待を管理する例示的な作動を示すデータ流れ図である。 一実施形態による直接的なP2P接続が達成可能である時に行われる例示的な作動を示すデータ流れ図である。 一実施形態による直接的なP2P接続が達成不可能である時に行われる例示的な作動を示すデータ流れ図である。 一実施形態によるオンライン通信セッションが終了する時に行われる例示的な作動を示すデータ流れ図である。 一実施形態による1つのクライアントデバイスから別のクライアントデバイスにオンライン通信セッションを転送するために行われる例示的な作動を示す流れ図である。 一実施形態による複数のユーザとのオンライン通信セッションを開始かつ確立する例示的な作動を示す流れ図である。 一実施形態によるハンズフリーユニットとインタフェースで接続するクライアントコンピュータデバイスを示すブロック図である。 一実施形態による映像通話の招待を受信し、ハンズフリーデバイスに電話させ、ハンズフリーデバイスから応答表示を受信し、映像通話を確立し、ハンズフリーデバイスに音声を経路指定するクライアントコンピュータデバイスを示す図である。 一実施形態による映像通話を開始してハンズフリーデバイスを通じて確立した映像通話に向けて音声を経路指定するクライアントコンピュータデバイスを示す図である。 一実施形態によるハンズフリーデバイスから通話要求を受信することに応答して映像通話を開始するクライアントコンピュータデバイスを示す図である。 一実施形態による確立された映像通話の音声をハンズフリーデバイスに経路指定するクライアントコンピュータデバイスを示す図である。 一実施形態によるハンズフリーデバイスから通話終了要求を受信することに応答して映像通話を終了するクライアントコンピュータデバイスを示す図である。 一部の実施形態に使用することができる例示的なコンピュータシステムを示すブロック図である。 一部の実施形態に使用することができる例示的なデータ処理システムを示すブロック図である。
以下の説明では、多くの特定の詳細に対して説明する。しかし、本発明の実施形態は、これらの特定の詳細がなくても実施することができることが理解される。他の例において、公知の回路、構造、及び技術は、この説明の理解を不明瞭にしないために詳細な図示を割愛した。当業者は、説明した説明により、不相応な実験なしに適切な機能性を実施することができるであろう。
本明細書における「一実施形態」、「実施形態」、「例示的な実施形態」などへの言及は、説明する実施形態は、特定の特徴、構造、又は特性を含むことができるが、全ての実施形態が、特定の特徴、構造、又は特性を必ずしも含むことができるわけではないことを示している。更に、このような語句は、必ずしも同じ実施形態を指すわけではない。更に、特定の特徴、構造、又は特性を実施形態に関連して説明する時に、明示的に説明されているか否かに関わらず、他の実施形態に関連してこのような特徴、構造、又は特性を実施することが当業者の知識の範囲にあるように考えられている。
以下の説明及び特許請求の範囲において「結合された」、「接続された」という用語は、その派生語と共にそれらを使用する場合がある。これらの用語は互いの同意語を意図していないことを理解すべきである。「結合された」は、2つ又はそれよりも多くの要素を示すために使用しており、2つ又はそれよりも多くの要素は、互いに直接的に物理的又は電気的に接触しているか、又は互いと協働又は相互作用する場合もあれば、そうではない場合もある。「接続された」は、互いに結合された2つ又はそれよりも多くの要素間の通信の確立を示すために使用している。
オンライン通信セッションの自動登録
オンライン通信セッション(例えば、P2Pテレビ会議、P2Pインスタントメッセージなど)に向けてクライアントコンピュータデバイス(クライアントデバイス)(例えば、ワークステーション、ラップトップ、パームトップ、携帯電話、スマートフォン、マルチメディア電話、タブレット、携帯式メディアプレーヤ、GPSユニット、ゲームシステムなど)を自動的に登録する方法及び装置に対して説明する。一実施形態では、コンピュータデバイス(例えば、電源が投入されるコンピュータデバイス)でのイベントで、クライアントデバイスは、オンライン通信セッションの登録処理を自動的に始める。自動登録処理は、クライアントデバイスは、SMSトランジットデバイス(例えば、SMSゲートウェイ又はSMSアグリゲータ)に識別トークン(例えば、プッシュトークン)と、クライアントデバイス識別子とを有するSMS(ショートメッセージサービス)メッセージを送信することを含む。識別トークンは、オンライン通信セッションメッセージ(例えば、招待要求メッセージ及び招待受諾メッセージ)のためのクライアントデバイスを一意的に識別するものであり、一実施形態では、プッシュ通知サービスによりクライアントデバイスの位置付けることを可能にする情報を含むことができるプッシュトークンである。プッシュ通知サービスの実施形態における識別トークンは、特定の通知が合法的であるという信頼を確立する方法としても使用される。他の実施形態では、独自のトークンにクライアントデバイスのあらゆる登録又はマッピングを用いて、識別トークンをクライアントデバイスに関連付け、かつクライアントデバイスのアイデンティティを一意的に識別されたトークンに関連付ける信頼された方法を提供することができる。デバイス識別子は、クライアントデバイスを一意的に識別するものであり、かつ一般的に1つ又はそれよりも多くのハードウエア識別子(例えば、デバイスの製造番号、SIM(加入者アイデンティティモジュール)カードのICC−ID(集積回路カードIDなど)に基づくものである。
SMSトランジットデバイスは、クライアントデバイスの電話番号を判断して(例えば、SMSメッセージのヘッダを調べることにより)、識別トークン、デバイス識別子、及び電話番号を用いてIP(インターネットプロトコル)メッセージを登録サーバに送信する。登録サーバは、識別トークン、デバイス識別子、及び電話番号に基づいて署名を発生させてクライアントデバイスへの配信に向けてSMSトランジットデバイスにこれらを送信する。SMSトランジットデバイスは、クライアントデバイスに署名と電話番号とを含むSMSメッセージを送信する。クライアントデバイスは、次に、署名、デバイス識別子、識別トークン及び電話番号を用いて登録サーバにIPメッセージを送信する。
登録サーバは、クライアントデバイスからの情報を検証し、オンライン通信セッション登録データストア内に識別トークンと電話番号の間の関連付けを記憶する。識別トークンと電話番号との関連付けられた対を併せて、オンライン通信セッションネットワーク内でデバイスを一意的に識別する。クライアントデバイスが登録された後に、クライアントデバイスのユーザは、オンライン通信セッション(例えば、映像チャット/会議セッション、インスタントメッセージセッションなど)を開始し及び/又はその招待を受け入れることができる。一実施形態では、クライアントデバイスの電話番号は、オンライン通信セッションのオンライン通信セッション終点識別子として使用される。一例として、クライアントデバイスのユーザは、電話番号を使用してオンライン通信セッションに参加するように他のクライアントデバイスの他のユーザを招待することができる。一部の実施形態では、クライアントデバイスは、それ自体の電話番号を自然には知らない。
図1は、一実施形態によるオンライン通信セッションのためのクライアントデバイスの登録を示すデータ流れ図である。図1は、クライアントデバイス110と、SMSネットワーク120と、登録サーバ140と、IPメッセージングデータストア150とを含む。クライアントデバイス110(例えば、ワークステーション、ラップトップ、パームトップ、コンピュータ電話、スマートフォン、マルチメディア電話、タブレット、携帯式メディアプレーヤ、GPSユニット、ゲームシステムなど)は、識別トークン115(一実施形態ではプッシュトークンとすることができる)を含む。識別トークン115は、本明細書でより詳細に後述する招待要求メッセージ及び招待受諾(又は拒否)メッセージ受信するクライアントデバイス110を一意的に識別するものである。デバイス識別子117は、クライアントデバイスを一意的に識別するものであり、かつ一般的に1つ又はそれよりも多くのハードウエア識別子(例えば、デバイスの製造番号、SIM(加入者アイデンティティモジュール)カードのICC−ID(集積回路カードIDなど))に基づくものである。クライアントデバイス110は、SMSメッセージを送受信する機能、並びにIPメッセージを接続して送信/受信する機能を含む。
オンライン通信セッションに向けて登録した後に、クライアントデバイス110は、オンライン通信セッションを招待し及び/又はオンライン通信セッションの招待を受諾することができる。クライアントデバイス110は、オンライン通信セッション終点識別子を通じて、オンライン通信セッションにおいて識別される。一実施形態では、オンライン通信セッション終点識別子がクライアントデバイス110の電話番号であるが、他の実施形態では、オンライン通信セッション終点識別子は、異なる識別子(例えば、ユーザ名(例えば、アップルID)、電子メールアドレス、郵便先住所、MACアドレス又は他の識別子)である。
SMSネットワーク120は、キャリアSMSC(ショートメッセージサービスセンター)125とSMSトランジットデバイス130(例えば、SMSゲートウェイ又はSMSアグリゲータ)とを含む。キャリアSMSC125は、コンピュータキャリア特定であり、SMSメッセージを受信及び配信する。例えば、キャリアSMSC125は、クライアントデバイス110から送られたSMSメッセージをSMSトランジットデバイス130に配信し、SMSトランジットデバイス130から送られたSMSメッセージをクライアントデバイス110に配信する。SMSトランジットデバイス130は、モバイルネットワーク及びIPネットワークを分離する。
登録サーバ140は、オンライン通信セッションのためのクライアントデバイス110のようなクライアントデバイスを登録する。オンライン通信セッションのためのクライアントデバイスの登録は、デバイスの識別トークンをデバイスの電話番号(又は他のオンライン通信セッション終点識別子)に関連付けることを含む。識別トークンとオンライン通信セッション端部識別子間の関連付けは、オンライン通信セッション登録データストア150に記憶される。
クライアントデバイス110で行われるイベント時に(例えば、電源が投入されるクライアントデバイス、オンライン通信セッションアプリケーション(例えば、P2Pテレビ会議アプリケーション、P2Pインスタントメッセージアプリケーションなど)の起動など)、クライアントデバイス110は、オンライン通信セッションに向けて登録処理を始める。一実施形態では、登録処理は、自動的に始まり(ユーザとの対話処理なしで)、一方、他の実施形態では、登録処理は、ユーザがオンライン通信セッションのためのクライアントデバイスを登録することを選択した後に始まる。
クライアントデバイス110の電話番号がオンライン通信セッション終点識別子として使用され、従って、登録データストア150内のクライアントデバイス110の識別トークン115に関連付けられることになっている実施形態では、クライアントデバイス110の電話番号を判断すべきである。クライアントデバイス110はそれ自体の電話番号を自然には知らないので、一部の実施形態では、クライアントデバイス110の電話番号は、SMSメッセージを送信するクライアントデバイス110を通じて判断される。例えば、作動1で、クライアントデバイス110は、その識別トークン115及びデバイス識別子117を用いてSMSメッセージをキャリアSMSC125を通じてSMSトランジットデバイス130に送信する。一部の実施形態では、SMSメッセージは、電話番号にアドレス指定され、電話番号は、標準的な長さの番号、又はオンライン通信セッション登録に向けて特に確立される短いコード(完全な電話番号より、すなわち、一般的に有意に短い一種の電話番号)とすることができる。SMSメッセージのアドレス指定先である電話番号は、クライアントデバイス(例えば、キャリアバンドルで)に記憶される。
キャリアSMSC125は、SMSメッセージを受信してSMSトランジットデバイス130を配信する。SMSトランジットデバイス130は、作動2でクライアントデバイスの電話番号を判断する。例えば、SMSトランジットデバイス130は、SMSメッセージのヘッダを調べてクライアントデバイス110の電話番号を判断する。電話番号を判断した後に、SMSトランジットデバイス130は、クライアントデバイス110の電話番号、識別トークン115、及びデバイス識別子117を用いて登録サーバ140にIPメッセージを送信する。これは、登録要求メッセージと呼ぶこともある。
登録サーバ140は、クライアントデバイス110の電話番号と、識別トークン115と、デバイス識別子117とを含むIPメッセージをSMSトランジットデバイスから受信して署名を作成する。署名は、クライアントデバイス110の電話番号、識別トークン115及び/又はデバイス識別子117に基づくことができ、検証(本明細書でより詳細に後述)に使用される。一部の実施形態では、複数のクライアントデバイスが同じ電話番号を有する状況に対処するために、署名を発生させる時に乱数も使用される。登録サーバ140は、作動5で、SMSトランジットデバイス130に署名、電話番号、デバイス識別子、及びトークンを送り返す(例えば、IPメッセージで)。これは、登録応答メッセージと呼ぶこともある。
SMSトランジットデバイス130は、登録サーバ140から署名、電話番号、デバイス識別子及びトークンを受信し、署名及びクライアントデバイス110の電話番号を用いてSMSメッセージを生成する。SMSトランジットデバイス130は、作動6で、署名及び電話番号を用いてクライアントデバイス110にSMSメッセージを送信する(キャリアSMSC125を通じて)。
クライアントデバイス110は、SMSメッセージを受信し、電話番号を記憶することを含め処理する。クライアントデバイス110は、作動7で、識別トークン115、デバイス識別子117、電話番号、及び登録サーバによって生成される署名を用いたIPメッセージを登録サーバ140に送信する。これは、登録検証要求メッセージと呼ぶこともある。
署名を使用し、登録サーバ140は、クライアントデバイス110によって送られたデータを検証する。例えば、登録サーバ140は、クライアントデバイス110によって送られた署名を作動4中に発生された署名と比較する。署名が適合した場合に、データは、検証される。データが有効であると仮定し、登録サーバ140は、オンライン通信セッション登録データストア150内の識別トークン115とクライアントデバイス110の電話番号との関連付けを記憶する。
代替実施形態では、SMSメッセージの送信を通じてクライアントデバイス110の電話番号を判断する代わりに、デバイスのユーザは、クライアントデバイス110の電話番号を入力することを促される。これらの実施形態では、クライアントデバイス110は、クライアントデバイス110の電話番号(ユーザによる入力として)及びその識別トークン115を登録サーバ140に直接に送信し、登録サーバ140は、オンライン通信セッション登録データストア150においてそれらを関連付けることができる。
図5は、一実施形態による例示的な登録データストア150を示している。図5に示すように、オンライン通信セッション識別子記録510の各々は、識別トークンフィールド520及び電話番号フィールド525を含む。一部の状況では、単一の電話番号が複数の識別トークンに関連付けられることが可能である。例えば、異なるクライアントデバイスは、同じ電話番号を有することができる。これらの場合には、これらの異なるクライアントデバイスは、異なる識別トークンを有する。従って、オンライン通信セッション招待が複数の識別トークンに関連付けられた電話番号に向けて送られた時に、招待は、識別トークンに関連付けられた各デバイスに送信されることになる。
図2は、一実施形態によるより詳細に図1のクライアントデバイス110を示すブロック図である。図2を図4の例示的な実施形態を参照して説明するが、図4は、オンライン通信セッションのためのクライアントデバイスを登録する例示的な作動を示す流れ図である。しかし、図4の作動は図2を参照して説明したもの以外の実施形態により行うことができ、図2を参照して説明する実施形態は、図4を参照して説明したものと異なる作動を行うことができることを理解すべきである。
図2に示すように、クライアントデバイス110は、クライアントオンライン通信セッション登録モジュール(クライアント登録モジュール)210と、キャリアバンドル215と、プッシュトークン115と、デバイス識別子117と、SMSモジュール220と、クライアントオンライン通信セッション登録データストア(クライアント登録データストア)230とを含む。クライアント登録モジュール210は、オンライン通信セッションのためのクライアントデバイス110の登録を制御する。キャリアバンドル215は、登録に使用されるSMSトランジットデバイスに向ける電話番号を含むキャリア特定の設定(例えば、SMSトランジットデバイス130の番号)と、他の設定(例えば、アクセスポイント名(APN)設定、マルチメディアメッセージングサービス(MMS)設定など)とを含む。SMSモジュール220は、SMSメッセージを送受信する。クライアント登録データストア230は、オンライン通信セッション登録に関連付けられたデータ(例えば、一旦判断されたクライアントデバイス110の電話番号)を記憶する。
図4を参照すると、ブロック410で、クライアント登録モジュール210は、オンライン通信セッション登録をトリガするイベントを検出又は受信する。このようなイベントには、クライアントデバイス110の電源が投入され、ユーザがオンライン通信アプリケーション(例えば、P2Pテレビ会議アプリケーション、P2Pインスタントメッセージアプリケーションなど)を開くなどがある。一部の実施形態では、登録処理は、クライアントデバイス410の電源が投入される度に実行され、一方、他の実施形態では、登録処理は、クライアントデバイス110の電源が初めて投入された時に実行される。フローは、ブロック410からブロック415に移動する。
ブロック415で、クライアント登録モジュール210は、有効な識別トークンがクライアントデバイス110に向けてあるか否かを判断する。識別トークンがないか又は識別トークンが満了していた場合に、フローは、ブロック425に移動して代替アクションが講じられる。例えば、プッシュトークンを使用する実施形態では、クライアントデバイス110は、プッシュ通知サービス(一般的にクライアントデバイス110から遠く離れている)によって生成すべきプッシュトークンを要求することによってトークン生成手順を開始することができる。プッシュ通知サービスにより、クライアントデバイス110に特定のプッシュトークンが生成してクライアントデバイス110に戻される。有効な識別トークンがある場合に、フローは、ブロック420に移動し、クライアント登録モジュール210は、識別トークン115にアクセスする。フローは、ブロック420からブロック428に移動する。
ブロック428で、クライアント登録モジュール210は、デバイス識別子117にアクセスする。フローは、次に、ブロック430に移動し、クライアント登録モジュール210は、登録処理に使用されるSMSトランジットデバイスの電話番号を判断する。例えば、クライアント登録モジュール210は、キャリアバンドル215にアクセスしてSMSトランジットデバイスの電話番号を判断する。電話番号は、短いコードとすることができ、又は標準的な長さの番号とすることができる。この例において、登録処理に使用されるSMSトランジットデバイスは、SMSトランジットデバイス130である。フローは、ブロック430からブロック435に移動する。
ブロック435で、識別トークン115及びデバイス識別子117を有するSMSメッセージは、判断された番号をSMSトランジットデバイス130に送信させる。例えば、クライアント登録モジュール210は、識別トークン115及びデバイス識別子117を用いたSMSメッセージを判断した番号に送信するようにSMSモジュール220を要求する。SMSモジュール220は、識別トークンを用いたSMSメッセージを判断した番号に送信する。フローは、ブロック435からブロック440に移動する。SMSメッセージは、キャリアSMSC125によって受信されることになり、キャリアSMSC125は、SMSトランジットデバイス130にメッセージを配信する。
ブロック440で、SMSトランジットデバイス130は、受信したSMSメッセージに基づいてクライアントデバイス110の電話番号を判断する。例えば、SMSトランジットデバイスは、SMSメッセージのヘッダを調べ、ヘッダは、送信側の電話番号を含むことになり、この場合に、送信側は、クライアントデバイス110である。フローは、次に、ブロック445に移動し、SMSトランジットデバイス130は、クライアントデバイス110の電話番号、識別トークン115及びデバイス識別子117を登録サーバ140(例えば、セキュアなIPメッセージで)に送信する。フローは、ブロック445からブロック450に移動する。
図3は、一実施形態によるより詳細に登録サーバ140を示すブロック図である。図3を図4の例示的な実施形態を参照して説明する。しかし、図4の作動は、図3を参照して説明したもの以外の実施形態により行うことができ、図3を参照して説明する実施形態は、図4を参照して説明したものと異なる作動を行うことができることを理解すべきである。図3に示すように、登録サーバ140は、サーバオンライン通信セッション登録モジュール305を含み、サーバオンライン通信セッション登録モジュール305は、SMSトランジットインタフェース310と、署名発生器315、クライアントデバイスインタフェース325と、検証モジュール330と、検証データストア335と、関連付けモジュール340とを含む。SMSトランジットインタフェース310は、メッセージを受信してSMSトランジットデバイス130に送る。例えば、SMSトランジットインタフェース310は、電話番号、識別トークン及びデバイス識別子タプルをSMSトランジットインタフェース310から受信し、電話番号、識別トークン、デバイス識別子及び署名タプル(「検証タプル」こともある)をSMSトランジットインタフェース310に送信する。クライアントデバイスインタフェース325は受信すると、クライアントデバイスにメッセージを送信することができる。例えば、クライアントデバイスインタフェース325は、検証タプルをクライアントデバイスから受信する。
図4を再び参照すると、ブロック450で、署名発生器310は、電話番号、識別トークン、及びSMSトランジットデバイス130から受信したデバイス識別子タプルに対して署名を発生させる。署名は、登録データストア150内に対を記憶する前に電話番号及び識別トークンのペアリングを検証するのに使用されることになる。一部の実施形態では、署名は、電話番号、識別トークン及び/又はデバイス識別子に基づくものである(例えば、署名を発生させるために、暗号のハッシュが、電話番号、識別トークンやデバイス識別子、又はその一部に適用される)。一部の実施形態では、署名は、複数のクライアントデバイスが同じ電話番号を有する状況に対処する乱数に基づくものである。署名発生器310は、検証データストア325内に署名及び任意的に電話番号、識別トークン及び/又はデバイス識別子を記憶する。フローは、次に、ブロック455に移動し、SMSトランジットインタフェース310は、署名、電話番号、デバイス識別子及び識別トークンをSMSトランジットデバイス130に送信する。フローは、ブロック455からブロック460に移動する。
SMSトランジットデバイス130は、署名、電話番号、及び識別トークンを登録サーバ140から受信する。ブロック460で、SMSトランジットデバイスは、クライアントデバイス110の署名及び電話番号を用いてSMSメッセージを送信する(キャリアSMSC125を通じて)。フローは、次に、ブロック465に移動する。
ブロック465で、SMSモジュール220は、署名及び電話番号を用いたSMSメッセージを受信し、クライアント登録データストア230内に署名及び電話番号を記憶する。フローは、次に、ブロック470に移動し、クライアント登録モジュール210は、電話番号、識別トークン115、デバイス識別子117及び署名を用いて登録サーバにIPメッセージを送信する。フローは、次に、ブロック475に移動する。
クライアントデバイスインタフェース325は、電話番号、識別トークン、デバイス識別子及び署名をクライアントデバイスから受信する。情報は、検証モジュール330に伝えられ、検証モジュール330は、ブロック475で、データが有効か否かを判断する。例えば、署名を発生させる時印加するのと同じハッシュ機能が、クライアントデバイスから受信した電話番号、識別トークン及び/又はデバイス識別子上に使用され、検証モジュール330は、結果を以前は生成された(検証データストア335に記憶済み)署名と比較する。署名が適合した場合に、データは、有効であり、フローは、ブロック480に移動する。
ブロック480で、登録サーバ140の関連付けモジュール340は、クライアントデバイスの電話番号及びクライアントデバイスの識別トークンの関連付けを登録データストア150に記憶する。一部の実施形態では、登録サーバ140は、クライアントデバイス110に登録ステータスメッセージを送信して登録が成功したか否かに関してクライアントデバイス110の注意を喚起することができる。
クライアントデバイスが登録された後に、クライアントデバイスのユーザは、オンライン通信セッション(例えば、映像チャット/会議セッション、インスタントメッセージセッションなど)を開始し及び/又はその招待を受け入れることができる。一例として、クライアントデバイスのユーザは、電話番号を使用してオンライン通信セッションに参加するように他のクライアントデバイスの他のユーザを招待することができる。一部の実施形態では、クライアントデバイスは、それ自体の電話番号を自然には知らない。実施形態を登録中のSMSメッセージの使用を説明したが、他の実施形態では、他のタイプのテキストメッセージング(例えば、MM(マルチメディアのメッセージングサービス))を用いることができる。
オンライン通信セッションのための電子メールアドレスの登録
図1をオンライン通信セッション終点識別子として電話番号を登録することに関して説明したが、他の実施形態では、電子メールアドレスが、オンライン通信セッション終点識別子として使用される。図21は、オンライン通信セッション終点識別子として電子メールアドレスを使用してオンライン通信セッションのためのクライアントデバイスを登録するのに使用される一般的なネットワークトポロジーを示している。クライアントデバイス2110A〜Nは、オンライン通信セッションに向けて登録するために登録サービス2130を使用する。例えば、一実施形態では、クライアントデバイス2110Aのユーザは、オンライン通信セッションクライアント2115を使用し、ネットワーク2180(例えば、「インターネット」)上のオンライン通信用オンライン通信セッション識別子としての使用向けて電子メールアドレスを登録する。
図22A〜図22Bは、一実施形態によるオンライン通信セッション終点識別子として電子メールアドレスを登録する例示的な作動を示す流れ図である。図22A〜図22Bを図21に示す例示的な実施形態を参照して説明する。しかし、図22A〜図22Bの作動は、図21を参照して説明したもの以外の実施形態により行うことができ、図21を参照して説明した実施形態は、図22A〜図22Bを参照して説明するものと異なる作動を行うことができることを理解すべきである。
作動2210で、登録サービス2130は、クライアントデバイス2110Aから認証要求を受信する。例えば、初期化情報を提供するユーザの例示的な作動を説明する図23を参照すると、作動2310で、オンライン通信セッションアプリケーション2115は、クライアントデバイス2110Aの上で開始される。フローは、次に、ブロック2315に移動し、クライアントデバイス2110Aは、オンライン通信セッション終点識別子としての使用に向けて登録するユーザID及びパスワード及び1つ又はそれよりも多くの電子メールアドレスを含む入力をユーザから受信する。フローは、次に、作動2320に移動し、クライアントデバイス2110Aは、ユーザID及びパスワードを登録サービス2130に送信する。
クライアントデバイス2110Aは、オンライン通信セッション終点識別子として電子メールアドレスを登録し、しかし、電話機能性を含まない場合があるが、電子メールアドレスの代わりに電話番号を使用してオンライン通信セッション招待を送ることができる。登録するユーザID、パスワード及び1つ又はそれよりも多くの電子メールアドレスを受信することに加えて、一部の実施形態では、ユーザは、ユーザが国別コード及び/又は地域コードを含まない電話番号にオンライン通信セッションを開始する場合に対応する国別コード及び/又は地域コードを使用することができるようにどの国及び/又は地域に現在位置するかに関する情報を提供することができる。例えば、米国では、市内通話は、7桁(従って、国別コード及び市外局番は不要)を使用して行うことができる。基本的電話方式は、自動的に国及び地域コードを判断して通話を完了する。しかし、クライアントデバイス2110Aが電話機能性を含まない場合に、クライアントデバイス2110Aは、国別コード及び/又は地域コードを含まない電話番号を使用してオンライン通信セッションにユーザを招待した時に国別コードや地域コードを自動的に含むように基本的電話方式に頼ることができない。
作動2320で、クライアントデバイス2110Aは、どの国及び/又は地域に位置するのか(例えば、市外局番、ステータス、行政区、都市など)に関する入力をユーザから受信する。フローは、次に、ブロック2320に移動し、クライアントデバイス2320は、ユーザが地方のコードや地域コードを含まない電話番号へのオンライン通信セッションを開始する場合に、対応する国や地域電話国番号を使用に向けてオンライン通信セッションアプリケーション2115に関連付ける。例えば、ユーザが米国に位置することを示し、そのユーザが国別コードを含まない10桁の電話番号を使用してオンライン通信セッションにユーザを招待した場合に、クライアントデバイス2110Aは、電話番号に米国の国別コードを自動的に追加する。
図22Aを再び参照すると、クライアントデバイス2110Aから認証要求を受信した後に、認証処理は、供給されたユーザ名及びパスワードを使用して実行される。一実施形態では、登録サービス2130が、認証処理を実行し、一方、別の実施形態では、ユーザディレクトリサービス2160が、認証処理を実施する。ユーザディレクトリサービス2160は、ユーザ会計、認証及び他の検査を行う集中サービスである。ユーザディレクトリサービス2160は、ユーザ記録2165を管理する。一実施形態では、各々の認証されたユーザは、様々な情報(例えば、ユーザID、パスワード、郵送先住所、電話番号、名称、誕生日、国、ユーザに関連付けられた電子メールのリスト(電子メールアドレスが検証されたか否かを示すことができる)などの1つ又はそれよりも多く)を含むユーザ記録に関連している。認証が成功した場合に、フローは、作動2216に移動する。認証が失敗した場合に、フローは、作動2214に移動し、代替アクションが講じられる(例えば、登録サービス2130は、ユーザ名及び/又はパスワードが正しくないことを示すエラーメッセージをクライアントデバイス2110Aに送信する)。
作動2216で、登録サービス2130は、ユーザIDに関連付けられたオンライン通信セッションプロフィールを生成又はアクセスする。例えば、登録サービス2130は、オンライン通信セッションプロフィール記録2150を管理するオンライン通信セッション口座サーバ2140を含むことができる。一実施形態では、オンライン通信セッションに向けて登録中であるか又は登録済みである各ユーザは、対応するオンライン通信セッションプロフィール記録を有する。各オンライン通信セッションプロフィール記録は、プロフィールに関連付けられた検証ステータスを含む1組の1つ又はそれよりも多くの電子メールアドレスを含むことができる。各オンライン通信セッションプロフィール記録は、オンライン通信セッションに向けて登録済みである1つ又はそれよりも多くのクライアントデバイスにそれぞれ対応する1つ又はそれよりも多くのプッシュトークンを含むことができる。各プロフィール記録は、クライアントデバイスからの特定の通信を検証するのに使用されるプロフィール信用証明を含むことができる。各プロフィール記録は、どのクライアントデバイス(プッシュトークンにより表示)がどの電子メールアドレスを登録したか、又は登録しようとするかを示すことができる。
フローは、作動2216から作動2218に移動し、登録サービス2130は、プロフィールID(例えば、供給されたユーザIDに関連付けられたプロフィールを識別するストリング)及びプロフィール信用証明を含む認証返答をクライアントデバイス2110Aに送信する。認証返答は、認証が成功したことを示すことができる。フローは、次に、作動2220に移動し、登録サービス2130は、検証すべき1つ又はそれよりも多くの電子メールアドレス、プロフィールID、プロフィール信用証明及びクライアントデバイス2110Aのプッシュトークンを含む電子メール検証要求をクライアントデバイス2110Aから受信する。電子メール検証要求メッセージは、クライアントデバイス2110AのデバイスIDを含むことができる。登録サービス2130は、次に、作動2222で、プロフィール信用証明がプロフィールIDに対して有効か否かを判断する。有効ではなかった場合に、フローは、作動2224に移動し、代替アクションが講じられる(例えば、登録サービス2130は、クライアントデバイス2110Aにエラーメッセージを送信する)。プロフィール信用証明が有効な場合に、フローは、作動2223に移動する。作動2223で、登録サービス2130は、プッシュトークンをプロフィールに関連付ける。例えば、オンライン通信セッションアカウントサーバ2140は、ユーザのプロフィール記録内にプッシュトークンを記憶する。
フローは、次に、ブロック2226に移動し、登録サービス2130は、電子メールアドレスが検証されたか否かを判断する。検証された電子メールアドレスは、オンライン通信セッション終点識別子としての使用に向けて電子メールアドレスを登録するように要求しているユーザのものであると検証された電子メールアドレスである。オンライン通信セッションアカウントサーバ2140は、ユーザのプロフィール記録2150にアクセスし、電子メールアドレスは検証されたか否かを判断する。プロフィール記録が電子メールアドレスは検証されたことを示さなかった場合に、一部の実施形態では、登録サービス2130は、電子メールアドレス検証要求をユーザディレクトリサービス2160に送信してユーザのユーザ記録2165が電子メールアドレスは検証されたことを示すか否かを判断する。電子メールアドレスが適切性は確認されていなかった場合に、フローは、作動2227に移動し、登録サービス2130により、検証電子メールメッセージは、選択された時に(又は「インターネット」ブラウザに入力された時に)電子メールアドレスを検証するリンクを含む電子メールアドレスに送られる。例えば、リンクの選択により、電子メールアドレスを検証するのに使用される電子メールアドレス及び検証トークンを含む電子メールアドレス検証メッセージが送られる。登録サービス2130は、電子メールアドレスは検証されていない(従って、検証する必要がある)ことを示し、かつ検証電子メールメッセージがこのような電子メールアドレスに送られたことを示すことができる電子メール検証要メッセージをクライアントデバイスに送信することができる。フローは、次に、作動2410に移動するが、これは図24を参照して説明する。しかし、電子メールアドレスが検証された場合に、フローは、作動2228に移動する。
作動2228で、登録サービス2130は、電子メールアドレスが検証されたことを示す電子メールアドレス検証成功メッセージをクライアントデバイス2228に送信する。フローは、次に、作動2230に移動し、登録サービス2130は、電子メールアドレスと、プロフィールIDと、プロフィール信用証明とを含むクライアントデバイス2228から活性化電子メール要求を受信する。登録サービス2130は、次に、作動2223で、プロフィール信用証明がプロフィールIDに対して有効か否かを判断する。有効ではなかった場合に、フローは、作動2224に移動し、代替アクションが講じられる(例えば、登録サービス2130は、クライアントデバイス2110Aにエラーメッセージを送信する)。プロフィール信用証明が有効な場合に、フローは、作動2240に移動する。
作動2240で、登録サービス2130は、電子メールアドレスに向けて電子メール信用証明を生成するか又はアクセスする。例えば、一実施形態では、オンライン通信セッションアカウントサーバ2140は、そのユーザのプロフィール記録2150内のユーザの各々が検証された電子メールアドレスに対して電子メール信用証明を記憶する。フローは、次に、ブロック2242に移動し、登録サービス2130は、電子メールアドレス及び電子メール信用証明を含むクライアントデバイス2110Aに作動成功メッセージを送信する。
フローは、作動2242から作動2244に移動し、登録サービス2130は、電子メールアドレスと、電子メール信用証明と、プロフィールIDと、プロフィール信用証明と、クライアントデバイス2110Aのプッシュトークンと、クライアントデバイス2110AのデバイスIDとを含む登録要求メッセージを受信する。一実施形態では、要求メッセージは、オンライン通信セッション登録サーバ2145で受信される。オンライン通信セッション登録サーバは、オンライン通信セッション登録データストア2155を管理する。オンライン通信セッション登録データストア2155は、プッシュトークン(及び任意的にデバイスID)をオンライン通信セッション終点識別子として1組の1つ又はそれよりも多くの電子メールアドレスを有するプロフィールに関連付ける。従って、通信セッション登録データストア2155内の各記録は、特定のプッシュトークンを有する特定のデバイスがそのデバイスでのユーザをオンライン通信セッションに招待するのに使用することができる1つ又はそれよりも多くの電子メールアドレスを有するオンライン通信セッションプロフィールを使用することを表している。フローは、作動2244から作動2246まで移動する。
作動2246で、登録サービス2130(例えば、オンライン通信セッション登録サーバ2145)は、プロフィール信用証明が有効か否かを判断する。有効でなかった場合に、フローは、作動2250に移動し、代替アクションが講じられる(例えば、登録サービス2130は、クライアントデバイス2110Aにエラーメッセージを送信する)。有効であった場合に、フローは、作動2228に移動し、登録サービス2130(例えば、オンライン通信セッション登録サーバ2145)は、電子メールアドレス信用証明が有効か否かを判断する。有効ではなかった場合に、フローは、作動2250に移動する。有効であった場合に、フローは、作動2252に移動する。
作動2252で、登録サービス2130(例えば、オンライン通信セッション登録サーバ2145)は、プッシュトークンを有するクライアントデバイス2110Aを電子メールアドレスを有するプロフィールに関連付けて登録データストア2155内にその関連付けを記憶する。フローは、次に、ブロック2254に移動し、登録サービス2130は、オンライン通信セッションアカウント識別子及びオンライン通信セッション信用証明を生成し、作動2256でクライアントデバイス2110Aに送信する。
実施形態が異なれば、電子メールアドレスを検証する方法も異なる。電子メールアドレスを検証する例示的な作動を示す流れ図である図24を参照すると、作動2410で、クライアントデバイス2110Aは、それが、登録しようとし、かつポジティブな検証電子メールメッセージを受信していない電子メールアドレスのアカウントを含む電子メールクライアントを含むか否かを判断する。このような電子メールクライアントを含んでいなかった場合に、フローは、作動2440に移動するか、又は含んでいた場合に、フローは、作動2415に移動する。
作動2415で、電子メールアカウントは、自動的かつ定期的に検証電子メールメッセージ(例えば、作動2227で送信された検証電子メールメッセージ)がないかを点検される。一実施形態では、オンライン通信セッションアプリケーション2115は、検証電子メールメッセージがないかを検査するように電子メールクライアント2120を定期的に要求する(電子メールクライアント2120は、電子メールサーバ2170をポーリングして検証電子メールメッセージかないかを検査することができる)。検証電子メールメッセージは、電子メールアドレスを検証するのに使用されるFrom:フィールド、To:フィールド、及び検証トークン(検証トークンは、検証された各電子メールアドレスに対して独特のものとすることができる)を含む1組の1つ又はそれよりも多くの基準により識別される。検証トークンは、検証電子メールメッセージのヘッダ又は本文に位置することができる。検証電子メールメッセージを受信した場合に、フローは、作動2420から作動2425まで移動し、受信されなかった場合に、フローは、作動2435に移動する。
作動2425で、検証電子メールメッセージは、オンライン通信セッションアプリケーション2115に戻され、オンライン通信セッションアプリケーション2115は、メッセージを構文解析して検証トークンを位置付ける。検証トークンを位置付けた後に、オンライン通信セッションアプリケーション2115は、検証トークン、電子メールアドレス、プロフィールID、及びプロフィール信用証明を用いて電子メールアドレス検証メッセージを登録サービス2130に送信する。従って、この実施形態では、電子メールアドレスは、自動的に検証され、ユーザは、リンクをクリックし又は他の方法で電子メールアドレスを検証する必要がない。一実施形態では、メッセージを受信し、プロフィール信用証明が有効であると判断した後に、登録サービス2130は、電子メールアドレスの検証が成功したことを示す電子メール検証済みプッシュメッセージをデバイスに送信する(プッシュ通知サービス640を通じて)。従って、フローは、作動2425から作動2430に移動し、クライアントデバイス2110Aは、電子メールアドレス検証済みプッシュメッセージを受信するのを待つ。
検証電子メールメッセージが受信されなかった場合に、フローは、作動2435に移動し、クライアントデバイスは、登録されようとする電子メールアドレスが検証されたことを示す電子メール検証済みプッシュメッセージを受信したか否かを判断する。このようなメッセージを受信した場合に、フローは、作動2445に移動し、受信されなかった場合に、フローは、作動2415に戻る。
作動2440で(クライアントデバイス2110Aは、登録された電子メールアドレスのアカウントを含む電子メールクライアントを含まない)、クライアントデバイス2110Aは、登録されようとする電子メールアドレスが検証されたことを示す電子メール検証済みプッシュメッセージを受信するのを待つ。このようなメッセージを受信した場合に、フローは、作動2445に移動し、受信されなかった場合に、フローは、作動24405に留まる。
作動2445で、クライアントデバイス2110Aは、電子メールアドレスが検証されたことを表示し、ユーザにその電子メールアドレスで登録処理を続けるように求める。クライアントデバイス2110Aが登録処理を続けることを示す入力を受信した場合に、フローは、作動2455に移動し、クライアントデバイス2110Aは、電子メールアドレスと、プロフィールIDと、プロフィール信用証明とを含むアクティブ電子メール要求を登録サーバに送信する。図22の作動2230で始まると説明した作動が、次に、実行される。クライアントデバイス2110Aが、ユーザが登録処理を再開したくないことを示す入力を受信した場合に、フローは、作動2450から作動2460に移動し、処理は、終了する。
図25は、一実施形態による電子メールアドレスが検証された時に登録サービスに行われる例示的な作動を示す流れ図である。作動2510で、登録サービス2130は、オンライン通信セッションプロフィールに関連付けられた電子メールアドレスが検証されたことを示す電子メールアドレス検証済みステータスメッセージを受信する。電子メール検証済みステータスメッセージは、作動2425の結果として受信した場合があるか、又は異なる方法で検証される電子メールアドレスの結果として受信した場合がある(例えば、ユーザが検証メッセージング内の検証リンクをクリックすることによってメッセージアドレスが検証され、電子メールアドレスは、オンライン通信セッションにおける使用に向けて電子メールアドレスを登録しようとするデバイスと異なるデバイス上で送られる場合がある)。
フローは、次に、作動2515に移動し、登録サービス2130は、プロフィール記録2150において電子メールアドレスの検証ステータスを更新する。フローは、次に、作動2515に移動し、登録サービス2130は、電子メールアドレスを検証することを求めた電子メール検証済みメッセージを受信していないオンライン通信セッションプロフィールに関連しているクライアントデバイスがあるか否かを判断する。例えば、登録サービス2130は、オンライン通信セッションプロフィールに向けてプロフィール記録2150にアクセスし、どのクライアントデバイス(例えば、独自のプッシュトークンにより識別された)が電子メールアドレスを検証するように求めてその電子メールアドレスの電子メールアドレス検証メッセージを受信していないかを判断する。各このようなクライアントデバイスに対し、登録サービスは、電子メール検証済みプッシュメッセージをプロフィールIDと、プロフィール信用証明と、作動2525で検証された電子メールアドレスとを含むそのクライアントデバイスに送信する。電子メール検証済みプッシュメッセージは、電子メールアドレスが検証されたことを示すステータス更新を含むことができる。電子メールアドレスを検証するように求めた電子メール検証済みメッセージを受信していないデバイスがない場合に、フローは、作動2530に移動し、処理は、終了する。
オンライン通信セッションの確立
図6に示すように、一実施形態に実施された一般的なネットワークトポロジーは、ネットワーク660上で互いと及び1つ又はそれよりも多くのサービス610、620、630、640、及び650と通信するそれぞれいくつかのクライアントデバイスA〜N、670A〜Nを含むことができる。単一のネットワーククラウドであるように示されたが、ネットワーク660は、少し例を挙げれば、「インターネット」のようなパブリックネットワーク、及びWiMAXネットワーク(例えば、802.nホーム無線ネットワーク又は無線ホットスポット)、ローカルWi−Fiネットワーク、ローカルエリアイーサネット(登録商標)ネットワーク、セルラーデータネットワーク(例えば、3G、4G、Edgeなど)のようなプライベートネットワークを含む様々な異なる構成要素を含むことができる。クライアントデバイス670A〜Nは、異なるネットワークリンク上でネットワーク660に接続することができる。例えば、クライアントデバイス670Aは、ネットワークリンク675Aにより表されるホームWi−Fiネットワークに接続することができ、クライアントデバイス670Nは、ネットワークリンク675N上で3Gネットワーク(例えば、ユニバーサル移動通信システム(UMTS)、高速アップリンクパケットアクセス(HSUPA)など)に接続することができる。クライアントデバイス670A〜Nが接続されるネットワークリンク675A〜Nの各々は、ゲートウェイ及び/又はNAT(ネットワークアドレス変換)デバイス(図6には図示せず)を通じて「インターネット」のようなパブリックネットワークに結合することができ、従って、パブリックネットワーク上の様々なクライアントデバイス670A〜N間の通信が可能である。しかし、2つのクライアントデバイスが同じローカルネットワーク又はプライベートネットワーク(例えば、同じWi−Fiネットワーク)上にある場合に、2つのデバイスは、パブリックネットワークをバイパスし、そのローカルネットワーク/プライベートネットワーク上で直接に通信することができる。勿論、本発明の根本的原理は、あらゆる特定の1組のネットワークタイプ又はネットワークトポロジーに限定されないことに注意すべきである。
クライアントデバイス670A〜Nの各々は、接続データ交換(CDX)サービス610、招待サービス620、登録サービス630、プッシュ通知サービス640、及びリレーサービス650と通信することができる。一実施形態では、サービス610−650は、サーバのような1つ又はそれよりも多くの物理的コンピュータデバイス上で実行されるソフトウエアとして実施することができる。
一実施形態では、CDXサービス610は、2つ又はそれよりも多くのクライアントデバイス間のオンライン通信セッションを確立するのに必要とされる接続データの中心相互接続点として作動する。具体的には、CDXサービス610の一実施形態は、外部サービス及びクライアントが各クライアントデバイスのNATを通じて通信する(すなわち、デバイスに到達するためにNATを通じて「孔を開ける」ために)ことを可能にするクライアントデバイス要求に応答してNATトラバーサルデータ(「ホールパンチ」データと呼ぶこともある)を生成する。例えば、一実施形態では、CDXサービスは、クライアントデバイスと通信するのに必要とされる外部IPアドレス及びポートを検出してクライアントデバイスにこの情報を提供する。一実施形態では、CDXサービスは、招待サービス620によって生成されたクライアントデバイスのリストも受信及び処理し、リスト上に含まれたクライアントデバイスの各々に効率的にかつ確実に接続データを配信する(以下で詳細に説明するように)。
クライアントデバイス670A〜Nのユーザは、招待サービス620を使用し、共同オンライン通信セッション(例えば、P2Pテレビ会議、P2Pインスタントメッセージチャット/会議など)に参加するようにユーザを招待する。例えば、クライアントデバイス670Aのユーザは、他のユーザの各々のオンライン通信セッション終点識別子を含む招待サービス620に招待要求を送信することにより、1つ又はそれよりも多くの異なるクライアントデバイスの1つ又はそれよりも多くのユーザとのオンライン通信セッションを要求する。オンライン通信セッション終点識別子は、異なる実施形態において異なるもの(例えば、電話番号、ユーザ名(例えば、アップルID)、電子メールアドレス、郵送先住所、MACアドレス又は他の識別子)とすることができる。招待サービス620は招待要求からオンライン通信セッション終点識別子を読み取って、登録データストア655において検索を実行してオンライン通信セッション終点識別子に関連付けられたクライアントデバイスを位置付ける。
クライアントデバイス670A〜Nは、オンライン通信セッションに向けて登録するために登録サービス630を使用する。例えば、一実施形態では、クライアントデバイス670A−Nの各々の電源を投入されて、ネットワークの上で作動された時に、識別トークン(例えば、プッシュトークン)をオンライン通信セッション終点識別子に関連付ける。関連付けは、登録データストア655に記憶される。一実施形態では、クライアントデバイス670A〜Nは、図4に関して上述したように、登録サービス630を使用してオンライン通信セッションサービスに関する参加に向けて登録し、一方、他の実施形態では、登録処理は、違った方法で行われる(例えば、プッシュトークン及びオンライン通信セッション終点識別子を供給することにより)。
プッシュ通知サービス640はクライアントデバイス670A−Nのプッシュトークンを使用し、プッシュ通知をクライアントデバイス670A〜Nに送信する。一実施形態では、プッシュ通知は、オンライン通信セッションの招待を送信するのに使用される。リレーサービス650は、クライアントデバイスのNATタイプが適合しないか、又はP2P接続確立がクライアントデバイス間に失敗した時にクライアントデバイス間のオンライン通信セッション接続を確立する。
一実施形態では、ユーザデータグラムプロトコル(UDP)ソケットのような比較的軽量ネットワークプロトコルを使用してクライアントデバイスとCDXサービス610間の通信を確立する。当業者には公知であるように、UDPソケット接続は、パケットに信頼性、順序付け又はデータ保全性を留保するハンドシェイキングダイアログを必要とせず、従って、TCPソケット接続ほど多くのパケット処理オーバヘッドを消費しない。その結果、UDP軽量のステートレスの性質は、非常に多くのクライアントから小さいクエリに応答するサーバに有用である。更に、TCPとは異なり、UDPは、パケットブロードキャスティング(パケットがローカルネットワーク上の全てのデバイスに送られる)及びマルチキャスティング(パケットがローカルネットワーク上のデバイスの部分集合に送られる)に適合する。以下に説明するように、たとえUDPを使用することができるとしても、セッションキーを使用してセキュリティをNATトラバーサルデータを暗号化することによってCDXサービス610上で維持することができる。
CDXサービス610によって使用される低値オーバヘッド軽量ネットワークプロトコルとは対照的に、一実施形態では、クライアントデバイス670A〜Nと招待サービス620、登録サービス630、プッシュ通知サービス640、及び/又はリレーサービス650間の通信は、セキュアソケットレイヤ(SSL)又はトランスポート層セキュリティ(TLS)接続に頼るハイパーテキスト転送プロトコルセキュア(HTTP)のような本質的にセキュアなネットワークプロトコルで確立される。これらのプロトコルに関連の詳細は、当業者に公知である。
図7は、一実施形態によるクライアントデバイス間のオンライン通信セッション確立を示すデータ流れ図である。図7の例において、クライアントデバイスA710のユーザは、クライアントデバイスB720のユーザをオンライン通信セッション(例えば、P2Pテレビ会議、P2Pインスタントメッセージ通信システムなど)に招待する。この実施例では、クライアントデバイスA710は、開始クライアントデバイスこともあり、クライアントデバイスB720のユーザは、意図する受信者こともあり、クライアントデバイスB720は、意図する受信者クライアントデバイスこともある。一部の実施形態では、オンライン通信セッション招待は、プレゼンスのない盲目的な招待である。例えば、クライアントデバイスA710のユーザは、クライアントデバイスB720のユーザが現在オンラインであるか、又はオンライン通信セッションに参加するのに利用可能か否かに関して知っていない。
図6及び図7を参照して説明する実施形態は、プッシュトークン及びプッシュ通知を使用することを専門とするが、他の実施形態は、そのように限定されない。例えば、他の実施形態では、独自のトークンにクライアントデバイスのあらゆる登録又はマッピングを用いて識別トークンをクライアントデバイスに関連付け、かつクライアントデバイスのアイデンティティを一意的に識別されたトークンに関連付ける信頼された方法を提供することができる。
作動1で、クライアントデバイスA710は、接続データを接続データ交換部610に要求する。接続データは、クライアントデバイスが相互に交換してオンライン通信セッション(例えば、P2Pセッション)を確立するための情報を含む。接続データは、クライアントデバイスのIPアドレス(例えば、パブリックIPアドレス)、要求のポート番号及び他の情報(例えば、プリファレンス情報など)を含む。接続データ交換部610は、クライアントデバイスA710の接続データ(例えば、パブリック/プライベートIPアドレス及びポート、クライアントデバイスAのNATデバイスのNATタイプ)を判断する。作動2で、接続データ交換部610は、接続データをクライアントデバイスA710に戻す。
作動3で、クライアントデバイスA710は、オンライン通信セッション招待要求を招待サービス620に送信し、クライアントデバイスB720をオンライン通信セッション(例えば、P2Pテレビ会議、P2Pインスタントメッセージセッションなど)に招待する。一実施形態では、招待は、クライアントデバイスA710の接続データを含み、クライアントデバイスA710の接続データには、クライアントデバイスA710パブリック/プライベートIPアドレス及びポート、クライアントデバイスAのNATデバイスのNATタイプ、クライアントデバイスB720のユーザに関連付けられたオンライン通信セッション終点識別子(例えば、クライアントデバイスB720の電話番号、ユーザのユーザ名(例えば、アップルID)、電子メールアドレス、メーリングアドレス、MACアドレスなど)を含むことができる。オンライン通信セッション招待要求は、HTTP要求の形式を取ることができ、プレ−指定の証明権限者により署名されたクライアント証明書を含むことができる。
作動4で、招待サービス620は、作動3の要求内に含まれたオンライン通信セッション終点識別子に関連付けられたプッシュトークンを判断する。例えば、招待サービス620は、登録データストア655にアクセスしてオンライン通信セッション終点識別子に関連付けられたプッシュトークンを判断する。図7に示すように、プッシュトークン725は、クライアントデバイスB720に割り当てられ、従って、オンライン通信セッション終点識別子に関連付けられる。図10は、一実施形態による例示的な登録データストア655を示している。図10に示すように、オンライン通信セッション識別子記録1010の各々は、プッシュトークンフィールド1015とオンライン通信セッション識別子フィールド1020とを含む。図10に示すように、同じオンライン通信セッション識別子を複数のプッシュトークンに関連付けることができる。このような場合に、複数の招待が送信されることになる(例えば、プッシュトークン当たりに1つ)。
招待サービス620は、プッシュ要求メッセージをプッシュ通知サービス640に送信する。作動5で、プッシュ通知サービス640は、プッシュ通知メッセージの形態でオンライン通信セッション招待要求をクライアントデバイスB720に送信する。要求は、接続データと、オンライン通信セッション終点識別子)と、クライアントデバイスA710のプッシュトークン(プッシュトークン715)とを含む。招待要求は、招待に関する情報(例えば、招待を送る人の名称(例えば、ユーザ名、実際の名称、電話番号又はその何らかの組合せ)、招待の目的(例えば、P2Pテレビ会議、P2Pインスタントメッセージセッションなど))をクライアントデバイスB720のユーザに供給するためのオンライン通信セッション特定の情報を含むことができる。
オンライン通信セッション招待要求は、電源が投入されて正しく作動している場合に、クライアントデバイスB720上で受信及び表示される。招待要求は、ユーザが招待を受諾又は拒否する機構(例えば、受諾ボタン及び拒否ボタン)を含む。クライアントデバイスA710のユーザは、招待要求が拒否された場合に通知を受信することができる。クライアントデバイスB720のユーザが招待要求を受諾すると仮定し、作動6で、クライアントデバイスB720は、接続データを接続データ交換部610に要求する。接続データ交換部610は、クライアントデバイスB720)の接続データ(例えば、パブリック/プライベートIPアドレス及びポート、クライアントデバイスBのNATデバイスのNATタイプ)を判断し、作動7で、接続データをクライアントデバイスB720に戻す。
クライアントデバイスB720は、次に、作動8で、受諾メッセージを招待サービス620に送信する。受諾メッセージは、クライアントデバイスBの720接続データを含み、かつクライアントデバイスA710のプッシュトークンを含む。受諾メッセージは、クライアントデバイスA710とクライアントデバイスB720の間の以前の失敗した直接のP2P接続試行からの再試行であるか否かに関する表示を含む場合もある。受諾メッセージは、HTTPメッセージの形式を取ることができる。
一部の実施形態では、招待サービス620は、クライアントデバイスA710とクライアントデバイスB720の間のP2P接続が達成可能であるか否かを判断する。作動9で、招待サービス620は、クライアントデバイスA及びB間の直接のP2P接続が達成可能であるか否かを判断する。例えば、一実施形態では、クライアントデバイスB620から受信した受諾メッセージが以前の失敗した直接の接続試行からの再試行(又は指定の回数の以前の失敗した直接の接続試行)であることを示す場合に、招待サービス620は、直接のP2P接続が実行不可能であると結論を下す場合がある。達成可能性を判断するために、招待サービス620は、クライアントデバイスA及びBのNATタイプデータを比較し、クライアントデバイスA及びBのNATデバイスが直接のP2P接続をサポートするか否かを判断することができる。一実施形態では、上述の受諾メッセージは、以前の失敗した試行の表示を含まない。むしろ、失敗した直接の接続試行の後に、クライアントデバイス710〜720のいずれかは、リレー接続が必要であることを示す特別「リレー招待」要求(例えば、図7内の作動3での招待要求の代わりに)を送信することができる。これに応答し、招待サービスは、本明細書に説明する(以下に説明するように)リレー作動を自動的に呼び出すことができる。
NATタイプのある一定の組合せは、P2P接続を確立するのに不適合であることは公知である。例えば、全コーンNATは、直接のP2P接続を確立するクローズド/ファイアウォールNATを除きあらゆる他のNATタイプと使用することができる。一方、対称NATは、直接のP2P接続を確立するために全コーンNATとのみ使用することができる。一実施形態において様々なNATタイプを結合する達成可能性は、図11に示すNAT互換性チャート1110に定められ、表中、縦列は、1つのクライアントデバイス(例えば、クライアントデバイスA710)のNATタイプを表し、横列は、他のクライアントデバイス(例えば、クライアントデバイスB720)のNATタイプを表している。セル内のA「1.0」は、関連の横列及び縦列内のNATタイプが適合することを示し、「0.0」は、NATタイプが不適合であることを示している。
招待サービス620が、直接のP2P接続が達成可能であると判断した場合に、招待サービス620は、招待要求の受諾を送信するプッシュ要求をプッシュ通知サービス640に送信する。従って、作動10Bで、プッシュ通知サービス640は、プッシュ通知の形態でオンライン通信セッション受諾メッセージをクライアントデバイスB710に送信する。受諾メッセージは、接続データと、オンライン通信セッション終点識別子と、クライアントデバイスB720プッシュトークンとを含む。受諾メッセージは、クライアントデバイスA710上に表示されることになる。クライアントデバイスA及びBが互いの接続データを有するので、クライアントデバイスA及びBは、直接のP2P接続を確立するのに十分な情報を有する。従って、作動11Aで、クライアントデバイスA及びBは、やり取りされた接続データを使用して直接のP2P接続を確立する。直接のP2P接続は、公知の機構を通じて(例えば、インターネットコネクティビティエスタブリッシュメント(ICE)又は他の公知のP2P接続性機構を使用して)確立することができる。
しかし、招待サービス620が、直接のP2P接続が実行不可能であると判断した場合に、それは、作動10Bでリレー検索要求をリレーサービス650に送信し、クライアントデバイスA及びBが接続に使用すべき1つ又はそれよりも多くのリレーホストを判断する。リレー検索要求は、クライアントデバイスの両方に適切なリレーホストを選択するためにリレーサービス650によって使用されるクライアントデバイスA及びBのネットワーク情報(例えば、NATトラバーサル/接続データ及び/又はNATタイプデータ)を含むことができる。
図8に示すように、一実施形態では、リレーサービス650は、リレー検索モジュール805と、複数のリレーホスト815A〜Bと、リレーホスト815A〜Bの各々に関連付けられたネットワーク情報を含むリレーホストデータベース810とを含む。図8が2つのリレーホストを示すが、一部の実施形態ではリレーホスト数の増加又は低減がある場合があることを理解すべきである。招待サービス620は、リレー検索要求をリレー検索モジュール805に送信し、リレー検索モジュール805は、クライアントデバイスA及びBのネットワーク情報を使用してリレーホストデータベース810に問い合わせる。データベース結果を受信すると、リレー検索モジュール805は、作動11Bで、選択されたリレーホスト815A〜Bを識別する応答を招待サービス620に供給する。
一実施形態では、リレー検索応答は、リレーサービス650と、リレー接続に向けてクライアントデバイスA及びBにより使用すべき選択されたリレーホスト815Aのネットワークアドレス(IPアドレス/ポート)によって生成されたリレートークンとを含む。一実施形態では、リレートークンは、リレーセッションに関連しており、リレーサービス650に接続すると、クライアントデバイスA及びBを認証するためにリレーホスト815Aによって使用される。トークンは、例えば、独自のIDリレーセッションIDコード、デジタル証明書、及び/又はリレーセッションに関連付けられた独自の暗号化キーを含む様々な形を取ることができる。
招待サービス620は、リレー接続が行われることになることを示すリレー応答をクライアントデバイスA及びBに送信する。一実施形態では、クライアントデバイスBへのリレー応答は、リレーホスト815Bのリレートークン及びネットワーク情報を含むことができる。一実施形態では、クライアントデバイスBへの応答は、クライアントデバイスBの招待受諾メッセージに応答して送られているので直接に送ることができる(プッシュ通知サービス640をバイパスして)。招待サービス620は、リレーホストA815Aのリレートークン及びネットワーク情報を含むことができるリレー応答をクライアントデバイスAにも送信する。この例において、応答は、プッシュ通知サービス640を通じてクライアントデバイスAにプッシュされる。
作動12Bで、クライアントデバイスA710は、リレーホスト815Aのネットワーク情報を使用し、リレーサービス650との接続を確立する。同様に、作動13B0で、クライアントデバイスA720は、リレーホスト815Bのネットワーク情報を使用し、リレーサービス650との接続を確立する。これらのトランザクションの各々において、新しいホールが、クライアントデバイスA及びBのあらゆるNATファイアウォールに開けられ、クライアントデバイスA及びBのNATトラバーサル/接続データは、リレーサービス650により判断し、それぞれ、クライアントデバイスA及びBに戻すことができる(例えば、デバイスのパブリックIP/ポートを判断することにより)。一実施形態では、リレーサービス650及びクライアントデバイスA及びBは、トラバーサルユージングリレーNAT(TURN)プロトコルを実施し、それによって当業者により理解されるように、NAT又はファイアウォールの後の要素は、TCP又はUDP接続で着信データを受信することができる。
作動14Bで、クライアントデバイスA710は、招待サービス620にリレー更新を送信し、リレー更新はプッシュ通知サービスに転送され、作動17BでクライアントデバイスB720にプッシュされる。同様に、作動15BでクライアントデバイスB720は、招待サービス620にリレー更新を送信し、リレー更新は、プッシュ通知サービス620に転送されて、作動16BでクライアントデバイスA610にプッシュされる。クライアントデバイスA710によって送信されたリレー更新は、リレーサービス650により判断されたセッショントークンと、各デバイスのオンライン通信セッション終点識別子と、NATトラバーサル/接続データとを含むことができる。
作動18B及び19Bで、クライアントデバイスA及びBは、それぞれ、リレーサービス650を通じてオンライン通信セッション接続を確立する。一実施形態では、リレー接続は、クライアントデバイスA710がリレーサービス650にNATにクライアントデバイスB720のトラバーサル/接続データを送り、クライアントデバイスA720がリレーサービス650にNATにクライアントデバイスB710のトラバーサル/接続データを送った時に確立することができ、従って、リレーサービスは、各ピアのリレーホスト815Aへの正しい経路を判断することができる。
上述の技術を使用し、招待サービス620は、非常に多くのクライアントデバイスを有する大規模システムにおいてさえも、本質的に拡張性がありかつ弾力的なステートレスのサービスとして実施することができる。例えば、プッシュ通知サービス640が本質的に登録されたクライアントデバイスを位置付けてコンテンツを登録されたクライアントデバイスにプッシュすることができるので、招待サービス620は、各デバイスの現在の位置を追跡することを必要としない。更に、デバイスは要求及び応答を用いてNATトラバーサル/接続データを送信することができるので、招待サービス620は、決して接続当たりのステータス情報を維持することは必要とされず、従って、招待サービスの記憶必要量及び処理必要量が低減される。このような実施例は、特に大規模なシステムにおいて有用である。
図7は、クライアントデバイスのユーザがオンライン通信セッションに単一のユーザを招待するのを説明しているが、実施形態は、そのように限定されない。例えば、一部の実施形態では、クライアントデバイスのユーザは、複数のユーザをオンライン通信セッションに招待することができる。例えば、ユーザは、複数のオンライン通信セッション終点識別子を用いて単一の招待要求メッセージを招待サービスに送信し、オンライン通信セッションに参加するように異なるクライアントデバイスの複数のユーザを招待することができる。
一部の状況では、ユーザは同じオンライン通信セッション終点識別子に関連付けられた複数のクライアントデバイスを有することができる。図26は、ユーザが同じオンライン通信セッション終点識別子に関連付けられている複数のクライアントデバイスを有する時に招待を管理する例示的な作動を示すデータ流れ図である。
クライアントデバイスA(ユーザAにより操作)2610は、作動2632で接続データ交換部610への接続データの要求を送信する。接続データ交換部610は、作動2634でクライアントデバイスAの接続データを戻す。クライアントデバイスは、次に、オンライン通信セッション(例えば、P2Pテレビ会議、P2Pインスタントメッセージセッション、映像通話など)にユーザBを招待するために、ユーザID(B)を用いて招待サービス620にオンライン通信セッション招待要求を送信する。招待要求は、Aの接続データを含む。
招待サービスは、作動2638で、招待要求メッセージ内に含まれたBのIDに基づいてディレクトリルックアップを提供する。この例において、ディレクトリルックアップ作動では、クライアントデバイスB1のプッシュトークン及びクライアントデバイスB2のプッシュトークンを戻す。従って、クライアントデバイスBl及びB2は、BのIDに関連付けられる。招待サービス620は、次に、作動2640で、クライアントデバイスB1(2615)及びクライアントデバイスB2(2620)に招待要求メッセージをプッシュするためにプッシュ通知サービス640にプッシュ要求メッセージを送信する。プッシュ通知サービス640は、作動2642でクライアントデバイスB12615に、及び作動2644でクライアントデバイスB2(2620)にプッシュ通知メッセージの形態でオンライン通信セッション招待要求を送信する。各招待要求メッセージは、クライアントデバイスA2610の接続データと、ユーザAによって使用されるオンライン通信セッション終点識別子と、クライアントデバイスA2610のプッシュトークンとを含む。招待要求は、オンライン通信セッション特定の情報(例えば、招待を送る人の名称(例えば、ユーザ名、実際の名称、電話番号又はその何らかの組合せ)、招待の目的(例えば、P2Pテレビ会議、P2Pインスタントメッセージセッションなど))を含むことができる。従って、オンライン通信セッション招待要求は、最初の招待要求内に含まれたオンライン通信セッション終点識別子に関連付けられたデバイスの各々に送られる。
一実施形態では、招待サービス620は、招待がどのクライアントデバイスに送信されたかを示すステータスメッセージを招待側クライアントデバイスに送信する。従って、作動2646で、招待サービス620は、オンライン通信セッション招待要求がクライアントデバイスB1(2615)及びクライアントデバイスB2(2620)に送られたことを示す招待ステータス更新をクライアントデバイスA2610に送信する。一実施形態では、クライアントデバイスA2610は、どのクライアントデバイスが招待を受け入れるかに対して追跡し、他のクライアントデバイスをオンライン通信セッションの状態を既知であるように保つ。
一実施形態では、クライアントデバイスB1(2615)及びクライアントデバイスB2(2620)は、電源が投入されて招待要求を受信することができた場合は招待要求を表示する。図26に示す例において、クライアントデバイスB1(2615)のユーザは、招待を受諾することになる。従って、作動2648で、クライアントデバイスB1(2615)は、接続データを接続データ交換部610に要求する。接続データ交換部610は、クライアントデバイスB1(2615)の接続データを判断し、作動2650で、クライアントデバイスB1(2615)に戻す。
クライアントデバイスB1(2615)は、次に、作動2652で、受諾メッセージを招待サービス620に送信する。受諾メッセージは、クライアントデバイスB1(2615)の接続データと、クライアントデバイスA2610のプッシュトークンとを含む。受諾メッセージは、クライアントデバイスA2610とクライアントデバイスB2615の間の以前の失敗した直接のP2P接続試行からの再試行であるか否かに関する表示を含む場合もある。更に、受諾メッセージは、A及びBのオンライン通信セッション終点識別子と、クライアントデバイスB2615のプッシュトークンとを含むことができる。
一部の実施形態では、オンライン通信セッションに対する受諾メッセージを受信した後に、招待サービス620は、直接のP2P接続が達成可能であるか否かを判断する。従って、作動2654で、招待サービス620は、直接のP2P適合性検査を行って、上述のものと同様の方法で、クライアントデバイスA2610とクライアントデバイスB1(2615)間の直接のP2P接続が達成可能であるか否かを判断する。クライアントデバイスが直接のP2P接続に適合した場合に、図27を参照して説明した作動(作動2710で開始)が実行される。クライアントデバイスが直接のP2P接続に適合しなかった場合に、図28を参照して説明した作動(作動2810で開始)が実行される。
直接のP2P接続が達成可能であった時に実行される作動を示す図27を参照すると、作動2710で、招待サービス620は、クライアントデバイスB1(2615)による招待の受諾を送信するためにプッシュ通知サービス640にプッシュ要求を送信する。作動10Bで、プッシュ通知サービス640は、プッシュ通知の形態でオンライン通信セッション受諾メッセージをクライアントデバイスB2610に送信する。この受諾メッセージは、クライアントデバイスB1(2615)の接続データ及びプッシュトークンと、ユーザBによって使用されるオンライン通信セッション終点識別子とを含む。
一実施形態では、クライアントデバイスB1(2615)が招待を受諾したことを示す受諾メッセージを受信した後に、しばらくしてクライアントデバイスA2610は、クライアントデバイスA2620が招待を受諾したことをクライアントデバイスB2(2620)に知らせる。従って、作動2714で、クライアントデバイスA2610は、ユーザBのオンライン通信セッション終点識別子を含む招待更新要求を招待サービスに送信し、クライアントデバイスB1(2615)が招待を受諾したことを示している。招待更新要求は、ユーザBのオンライン通信セッション終点識別子に関連付けられたどのクライアントデバイスが招待更新メッセージを受信すべきかを招待サービス620に教えるか又は示すことができる(この実施例では、クライアントデバイスB2(2620)は、招待更新メッセージを受信すべきである)。
招待サービス620は、ユーザBのオンライン通信セッション終点識別子に基づいてディレクトリルックアップ2716を行って、クライアントデバイスB2(2620)のプッシュトークンを判断する。プッシュトークンを判断した後に、招待サービスは、作動2718で、クライアントデバイスB2(2620)に招待更新メッセージをプッシュするためにプッシュ通知サービス640に、プッシュ要求を送信する。作動2720で、プッシュ通知サービス640は、プッシュ通知メッセージの形態でオンライン通信セッション招待要求をクライアントデバイスB2(2620)に送信する。招待更新メッセージは、クライアントデバイスB1(2615)がオンライン通信セッション招待を受諾したことを示している。クライアントデバイスB2(2620)は、招待更新メッセージを表示することができ、かつクライアントデバイスA2610とクライアントデバイスB1(2615)間のオンライン通信セッションの状態(例えば、オンライン通信セッションの持続時間など)を維持することができる。図30を参照してより詳細に説明することになるように、一実施形態では、クライアントデバイスB2(2620)は、オンライン通信セッションをクライアントデバイスB1(2615)からクライアントデバイスB2(2620)に転送させる転送分要求を送信することができる。
作動2712において、招待受諾メッセージを受信した後、しばらくしてクライアントデバイスA2610及びクライアントデバイスB1(2615)は、作動2722で、やり取りされた接続データを使用して直接のP2P接続を確立する。直接のP2P接続は、公知の機構を通じて(例えば、インターネットコネクティビティエスタブリッシュメント(ICE)又は他の公知のP2P接続性機構を使用して)確立することができる。作動2722を作動2714〜2720の前又はその作動中に行うことができることを理解すべきである。
図26は単一のクライアントデバイスだけが招待メッセージを受諾する実施例を説明しているが、一部の状況では、複数のクライアントデバイスは、単一のユーザのためのオンライン通信セッションへの招待を受諾することができる。例えば、クライアントデバイスB1(2615)及びクライアントデバイスB2(2620)が、一部の状況において招待を受諾することができる。一実施形態では、クライアントデバイスA2610は、受諾メッセージの受信元である第1のクライアントデバイスとオンライン通信セッションを確立する。クライアントデバイスA2610は、キャンセルメッセージを他のクライアントデバイスへ送らせることができる(例えば、キャンセルメッセージは招待サービスに送信することができ、次に、このような他のクライアントデバイスにプッシュ通知サービスを通じてプッシュすることができる)。図26の作動2654を再び参照すると、直接のP2P接続がクライアントデバイスA2610とクライアントデバイスB1(2615)の間に達成可能でなかった場合に、図28に説明する作動が行われる。図28は、直接的なP2P接続が達成不可能である時に行われる例示的な作動を示すデータ流れ図である。作動2810で、招待サービス620は、リレーサービス650にリレー検索要求2810を送信し、クライアントデバイスA2610及びクライアントデバイスB1(2615)により使用すべきリレーホストを判断する。リレー検索要求は、クライアントデバイスに適切なリレーホストを選択するためにリレーサービス650によって使用されるクライアントデバイスのネットワーク情報(例えば、NATトラバーサル/接続データ及び/又はNATタイプデータ)を含むことができる。図8に示すように、リレーサービス650の一実施形態は、複数のリレーホスト815A〜Bと、リレーホストの各々に関連付けられたネットワーク情報を含むリレーホストデータベース810とを含む。例えば、招待サービス620は、リレー検索要求をリレーサービス650に送信し、リレーサービス650は、クライアントデバイスのネットワーク情報を使用してリレーホストデータベース810に問い合わせる。データベース検索結果を受信すると、瞬時に、リレーサービス650は、作動1201で、選択されたリレーホスト815Aを識別するリレー検索応答を供給する。一実施形態では、リレー検索応答は、リレーサービス650によって生成されるリレートークンと、リレー接続に向けてクライアントデバイスにより使用すべきリレーホスト815Aのネットワークアドレス(IPアドレス/ポート)とを含む。一実施形態では、リレートークンは、リレーセッションに関連しており、リレーサービス650に接続すると、クライアントデバイスA2610及びクライアントデバイスB1(2615)を認証するためにリレーホスト815Aによって使用される。トークンは、例えば、独自のIDリレーセッションIDコード、デジタル証明書及び/又はリレーセッションに関連付けられた独自の暗号化キーを含む様々な形を取ることができる。
招待サービス620は、次に、作動2814で、リレー接続が行われるという表示を含むリレー応答をクライアントデバイスB1(2615)に送信する。一実施形態では、リレー応答は、リレートークンと、クライアントデバイスB1(2615に向けて選択されたリレーホストのネットワーク情報とを含むことができる。一実施形態では、リレー応答は、クライアントデバイスB1(2615)に直接に送ることができる(プッシュ通知サービス640をバイパスして)。招待サービス620は、作動2816で、リレートークンとクライアントデバイスA2610に向けて選択されたリレーホストのネットワーク情報とを含むリレー応答もクライアントデバイスA2610に送信する。一部の実施形態では、リレー応答は、プッシュ通知サービス640を通じてモバイルデバイスAにプッシュされる。
作動2818で、クライアントデバイスA2610は、次に、ユーザBのオンライン通信セッション終点識別子を含むと共にクライアントデバイスB1(2615)が招待を受諾したことを示す招待更新要求を招待サービス620に送信する。招待更新要求は、ユーザBのオンライン通信セッション終点識別子に関連付けられたどのクライアントデバイスが招待更新メッセージを受信すべきかを招待サービス620に教えるか又は示すことができる(この実施例では、クライアントデバイスB2(2620)は、招待更新メッセージを受信すべきである)。
招待サービス620は、ユーザBのオンライン通信セッション終点識別子に基づいてディレクトリルックアップ2820を行って、クライアントデバイスB2(2620)のプッシュトークンを判断する。プッシュトークンを判断した後に、招待サービスは、作動2822で、クライアントデバイスB2(2620)に招待更新メッセージをプッシュするプッシュ要求をプッシュ通知サービス640に送信する。作動2824で、プッシュ通知サービス640は、プッシュ通知メッセージの形態で、招待更新メッセージをクライアントデバイスB2(2620)に送信する。招待更新メッセージは、クライアントデバイスB1(2615)がオンライン通信セッション招待を受諾したことを示している。クライアントデバイスB2(2620)は、招待更新メッセージを表示することができ、かつクライアントデバイスA2610とクライアントデバイスB1(2615)間のオンライン通信セッションの状態(例えば、オンライン通信セッションの持続時間など)を維持することができる。一実施形態では、クライアントデバイスB2(2620)は、オンライン通信セッションをクライアントデバイスB1(2615)からクライアントデバイスB2(2620)に転送させる転送分要求を送信することができる。
作動2826で、クライアントデバイスA2610は、選択されたリレーホストのネットワーク情報を使用し、リレーサービス650との接続を確立する。同様に、作動2828で、クライアントデバイスB1(2620)は、選択されたリレーホストのネットワーク情報を使用し、リレーサービス650との接続を確立する。これらの作動の各々において、新しいホールをクライアントデバイスのあらゆるNATファイアウォールに開けることができ、クライアントデバイスのNATトラバーサル/接続データは、リレーサービス650により判断してクライアントデバイスに戻すことができる(例えば、クライアントデバイスのパブリックIP/ポートを判断することにより)。一実施形態では、リレーサービス650及びクライアントデバイスA2610は、トラバーサルユージングリレーNAT(TURN)プロトコルを実行し、それによって当業者により理解されるように、NAT又はファイアウォールの後の要素は、TCP又はUDP接続で着信データを受信することができる。
作動2830で、クライアントデバイスA2610は、招待サービス620にリレー更新を送信し、リレー更新は、作動2832でプッシュ通知サービスに転送され、作動2834でクライアントデバイスB1(2615)にプッシュされる。同様に、作動2836で、クライアントデバイスB1(2615)は、招待サービス620にリレー更新を送信し、リレー更新は、作動2838でプッシュ通知サービス640に転送され、作動2840でクライアントデバイスA2610にプッシュされる。クライアントデバイスA2610によって送信されたリレー更新メッセージは、作動2826及び2828でリレーサービス650により判断されたセッショントークンと、各デバイスのオンライン通信セッション終点識別子と、NATトラバーサル/接続データとを含むことができる。一実施形態では、クライアントデバイスのNAT情報の1つ又はそれよりも多くが変わった可能性があるのでリレー更新作動が行われる。最後に、作動2842及び2844で、クライアントデバイスA2610及びクライアントデバイスB1(2620)は、リレーサービス650を通じてそれぞれP2P接続を確立する。一実施形態では、リレー接続は、クライアントデバイスA2610がリレーサービス650にクライアントデバイスB1(2615)のNATトラバーサル/接続データを送信し、クライアントデバイスB1(2615)がリレーサービス650にクライアントデバイスA2610のNATトラバーサル/接続データを送信することに応答して確立することができ、従って、リレーサービス650は、各ピアのリレーホストへの正しい経路を判断することができる。
図29は、一実施形態によるオンライン通信セッションが終了する時に行われる例示的な作動を示すデータ流れ図である。作動2910で、クライアントデバイスA2610とクライアントデバイスB1(2615)間のオンライン通信セッションは終了している。例えば、クライアントデバイスA2610又はクライアントデバイスB1(2615)は、オンライン通信セッションを終了している(代替的に、オンライン通信セッションは、その他の方法で終了されている)。オンライン通信セッションは、直接のP2P接続を通じて又はリレーを通じたものであった可能性がある。
作動2912で、オンライン通信セッションが終了した後、しばらくしてクライアントデバイスA2610は、オンライン通信セッション更新要求を招待サービス620に送信する。オンライン通信セッション更新は、オンライン通信セッションの一部ではないクライアントデバイスB2(2620)にオンライン通信セッションの終了を通知するために送られる。オンライン通信セッション更新要求は、ユーザBのオンライン通信セッション識別子を含むことができ、かつ招待サービス620に対して、ユーザBに関連付けられたいずれのクライアントデバイス(例えば、クライアントデバイスB2(2620))が更新を受信することになっているかを教えるか又は示すことができる。
招待サービス620は、ユーザBのオンライン通信セッション終点識別子に基づいてディレクトリルックアップ作動2914を行って、クライアントデバイスB2(2620)のプッシュトークンを判断する。プッシュトークンを判断した後に、招待サービスは、作動640で、クライアントデバイスB2(2620)に更新メッセージをプッシュするためにプッシュ通知サービス640にプッシュ要求を送信する。作動2720で、プッシュ通知サービス640は、プッシュ通知メッセージの形態でオンライン通信更新メッセージをクライアントデバイスB2(2620)に送信する。オンライン通信セッション更新メッセージは、クライアントデバイスA2910とクライアントデバイスB1(2615)間のオンライン通信セッションは終了していることを示している。
図30は、一実施形態による1つのクライアントデバイスから別のクライアントデバイスにオンライン通信セッションを転送するために行われる例示的な作動を示す流れ図である。図30に示す例において、クライアントデバイスB1(2615)及びB2(2620)の各々がクライアントデバイスA2610により起こされるオンライン通信セッションへの招待を受信し(各々、招待に使用されたオンライン通信セッション終点識別子を共有する)、クライアントデバイスB1(2615)が受諾してクライアントデバイスA2610とのオンライン通信セッションを確立したと仮定している(図26及び27又は28で上述したように)。更に、クライアントデバイスB2(2620)は、クライアントデバイスB1(2615)が招待を受諾したことを示す招待更新を受信している。図30に示す実施例では、オンライン通信セッションは、クライアントデバイスB1(2615)からクライアントデバイスB2(2620)に転送されることになる。例えば、クライアントデバイスB2(2620)でのユーザは、クライアントデバイスA2610とクライアントデバイスB1(2620)間のオンライン通信セッションを引き継ぎたいことを示している。一実施形態では、オンライン通信セッションアプリケーション2115は、クライアントデバイスA2610とクライアントデバイスB1(2615)間のオンライン通信セッションの状態を表示し、この状態により、クライアントデバイスB2(2620)のユーザは、転送オンライン通信セッション要求を出すことができる(例えば、クライアントデバイスB1(2615)のオンライン通信セッションアプリケーション2115上で利用可能なリンク又は仮想ボタンをクリック又は押して)。
作動3010で、クライアントデバイスB2(2620)は、接続データを接続データ交換部610に要求し、作動3012で、要求の接続データを受信する(それが、接続データをまだ知らない場合)。クライアントデバイスB2(2620)は、次に、作動3014で、クライアントデバイスA2610のプッシュトークンとクライアントデバイスB2(2620)の接続データとを含む転送要求メッセージを招待サービス620に送信する。転送メッセージはまた、A及び/又はBのオンライン通信セッション終点識別子及び/又はクライアントデバイスA2610のプッシュトークンを含むことができる。
招待サービス620は、次に、作動3016で、プッシュ要求をプッシュ通知サービス640に送信し、プッシュ通知サービス640にクライアントデバイスA2610にプッシュ通知の形態で転送メッセージを送信させる。招待サービス620は、作動3018で、直接のP2P適合性検査を行って、クライアントデバイスA2610とクライアントデバイスB2(2620間の直接のP2P接続が達成可能であるか否かを判断する。この例の目的上、直接の接続は達成可能であるが、オンライン通信セッション転送はリレー状況においても行うことができることを理解すべきである。
作動3020で、プッシュ通知サービスは、転送分要求メッセージをクライアントデバイスA2610に送信する。転送分要求メッセージは、Bのオンライン通信セッション終点識別子とクライアントデバイスB2(2620)の接続データとを含むことができる。転送分要求メッセージはまた、オンライン通信セッション転送を要求しているのがどのデバイスであるか(すなわち、クライアントデバイスB2(2620)を示す(例えば、クライアントデバイスB2(2620)のデバイスID及び/又はプッシュトークンを通じて)。転送要求メッセージは、クライアントデバイスA2610のオンライン通信セッションアプリケーション2115に転送要求を表示させることができ、かつユーザが転送要求を受諾又は拒否することを可能にすることができる。転送要求が受諾されたと仮定し、クライアントデバイスA2610は、作動3022で、やり取りされた接続データを使用してクライアントデバイスB2620との直接のP2P接続を確立する。この時点で、クライアントデバイスA2610とクライアントデバイスB1(2615)間のオンライン通信セッションがアクティブであることを理解すべきである。クライアントデバイスA2610は、次に、オンライン通信セッションがクライアントデバイスB2(2620)に移行されることになることを示すオンライン通信セッション更新をクライアントデバイスB1(2615)に送信する。一実施形態では、この更新メッセージは、クライアントデバイス間の既存のオンライン通信セッション上で送信される。クライアントデバイスA2610は、次に、作動3026で、クライアントデバイスB2(2620)とのオンライン通信セッションに切り換わると、作動3028で、クライアントデバイスB1(2615)とのオンライン通信セッションを解消する。
実施形態をオンライン通信セッション(複数のクライアントデバイスに関連付けられる場合もあれば、関連付けられない場合もある)に単一のユーザを招待することを参照して説明しているが、一部の実施形態では、複数のユーザをオンライン通信セッションに招待することができる。図31は、複数のユーザとのオンライン通信セッションを開始かつ確立する例示的な作動を示す流れ図である。
クライアントデバイス3110は、作動3132で接続データを接続データ交換部610に要求し、要求の接続データは、作動3134で戻される。作動3136で、クライアントデバイスA3110は、クライアントデバイスA3110の接続データと、ユーザBに関連付けられたオンライン通信セッション終点識別子と、ユーザCに関連付けられたオンライン通信セッション終点識別子とを含む招待要求を招待サービス620に送信する。従って、クライアントデバイスA3110のユーザは、複数のユーザをオンライン通信セッションに招待している。
招待サービス620は、ディレクトリルックアップ作動3138を行って、ユーザBのオンライン通信セッション終点識別子及びユーザCのオンライン通信セッション終点識別子に関連付けられたプッシュトークンを判断する。この例において、及び簡潔さの目的として、ディレクトリルックアップは、ユーザBのオンライン通信セッション終点識別子に関連付けられるクライアントデバイスB3115及びユーザCのオンライン通信セッション終点識別子に関連付けられるクライアントデバイスC3120の結果を戻す。招待サービス620は、プッシュ要求メッセージ3140をプッシュ通知サービス640に送信して。プッシュ通知サービス640がクライアントデバイスB及びCにプッシュメッセージの形態で招待を送信することを要求する。プッシュ通知サービス640は、次に、作動3142で招待要求をクライアントデバイスB3115に送信し、作動3144で招待要求をクライアントデバイスC3120に送信する。各招待要求メッセージは、クライアントデバイスA3110の接続データと、ユーザAによって使用されるオンライン通信セッション終点識別子と、クライアントデバイスA3110のプッシュトークンとを含む。
一実施形態では、招待サービス620は、招待がどのクライアントデバイスに送信されたかを示すステータスメッセージを招待側クライアントデバイスに送信する。従って、作動3146で、招待サービス620は、オンライン通信セッション招待要求がクライアントデバイスB3115及びクライアントデバイスC3120に送られたことを示す招待ステータス更新をクライアントデバイスA3110に送信する。一実施形態では、クライアントデバイスB3115及びクライアントデバイスC3120は、電源が投入されて招待要求を受信することができた場合は招待要求を表示する。
図31に示す実施例では、招待の各々が受諾されることになる。従って、作動3148で、クライアントデバイスB3115は、接続データを接続データ交換部610に要求する。接続データ交換部610は、クライアントデバイスB3115の接続データを判断し、作動3150で、クライアントデバイスB3115に戻す。同様に、クライアントデバイスB3210は、作動2648で、接続データを接続データ交換部610に要求する。接続データ交換部610は、クライアントデバイスC3120の接続データを判断し、作動3154で、クライアントデバイスB3120に戻す。クライアントデバイスB3115は、次に、作動3156で、受諾メッセージを招待サービス620に送信し、クライアントデバイスC3120は、作動3158で、受諾メッセージを招待サービス620に送信する。招待サービス620は、次に、直接のP2P適合性検査3160を行って、直接のP2P接続がクライアントデバイスA3110とクライアントデバイスB3115間に、及びクライアントデバイスA3110とクライアントデバイスC3120間に達成可能であるか否かを判断する。この例の目的上、直接のP2P接続は、クライアントデバイス間に達成可能である。従って、やり取りされた接続データを使用し、クライアントデバイスA3110及びクライアントデバイスB3115は、作動3162で、オンライン通信セッションに向けて直接のP2P接続を確立し、クライアントデバイスA3110及びクライアントデバイスB3120は、作動3164で、オンライン通信セッションに向けて直接のP2P接続を確立する。この例において、クライアントデバイスA3110は、本質的にオンライン通信セッションのホストとして作用する。従って、クライアントデバイスB3115とクライアントデバイスC3120間に送信されるデータは、クライアントデバイスA3110によりリレーされる。他の実施形態では、接続のフルメッシュが、当事者間に確立される。このような実施形態では、別のP2P接続が、クライアントデバイスB3115とクライアントデバイスC3120の間に確立されることになると考えられる。
本明細書に説明する実施形態は、オンライン通信セッションに向けてクライアントデバイスを登録する機構を説明しているが、一部の実施形態では、登録140は、APIを実行し、異なるアプリケーションがオンライン通信セッション終点識別子及びプッシュトークンを登録することを可能にすることができる。一実施形態内で実行されたAPIは、異なるソフトウエア構成要素(以下「API発呼ソフトウエア構成要素」)がAPI実施ソフトウエア構成要素によって供給された1つ又はそれよりも多くの機能、方法、手順、データ構造、及び/又は他のサービスにアクセスして利用することを可能にするソフトウエア構成要素(以下「API実施ソフトウエア構成要素」)によって実行されるインタフェースである。例えば、APIにより、API発呼ソフトウエア構成要素の開発者(第三者開発者とすることができる)がAPI実施ソフトウエア構成要素によって供給された指定の特徴を利用することができる。1つのAPI発呼ソフトウエア構成要素がある場合があり、又は1つよりも多いこのようなソフトウエア構成要素がある場合がある。APIは、ソフトウエアアプリケーションへのサービスの要求をサポートするためにコンピュータシステム又はプログラムライブラリが供給するソースコードインタフェースとすることができる。APIは、どのようにしてデータがメモリ内に説明されたかという明示的な低レベル説明ではなく、アプリケーションが構成された時に解説的であるか又はコンパイルすることができるプログラミング言語に関して指定することができる。
APIは、API実施ソフトウエア構成要素の指定の特徴にアクセスして使用する時に、API発呼ソフトウエア構成要素を使用する言語及びパラメータを定義する。例えば、API発呼ソフトウエア構成要素は、APIにより顕在化される1つ又はそれよりも多くのAPI発呼(機能又は方法通話であることもある)を通じてAPI実施ソフトウエア構成要素の指定の特徴にアクセスする。API実施ソフトウエア構成要素は、API発呼ソフトウエア構成要素からのAPI発呼に応答してAPIを通じて値を戻すことができる。APIはAPI発呼の構文及び結果を定義するが(例えば、API発呼を起動する方法及びAPI発呼が行うこと)、APIは、一般的に、API発呼がAPI発呼により指定される機能をもたらす方法を示さない。様々な機能通話又はメッセージは、通話ソフトウエア(API発呼ソフトウエア構成要素)とAPI実施ソフトウエア構成要素の間の1つ又はそれよりも多くのアプリケーションプログラミングインタフェースを通じて転送される。機能通話又はメッセージの転送は、機能通話又はメッセージの発信、開始、起動、通話、受信、返答、又は応答を含むことができる。従って、API発呼ソフトウエア構成要素は通話を転送することができ、かつAPI実施ソフトウエア構成要素は、通話を転送することができる。
一例として、API実施ソフトウエア構成要素及びAPI発呼ソフトウエア構成要素は、オペレーティングシステム、ライブラリ、デバイスドライバ、API、アプリケーションプログラム、又は他のソフトウエアモジュールとすることができる(API実施ソフトウエア構成要素及びAPI発呼ソフトウエア構成要素は、同じか又は互いと異なるタイプのソフトウエアモジュールとすることができることを理解されたい)。API発呼ソフトウエア構成要素は、ネットワークでAPIを通じてAPI実施ソフトウエア構成要素と通信するローカルソフトウエア構成要素(すなわち、API実施ソフトウエア構成要素と同じデータ処理システム上の)、又はリモートソフトウエア構成要素(すなわち、API実施ソフトウエア構成要素として異なるデータ処理システム上の)とすることができる。API実施ソフトウエア構成要素は、API発呼ソフトウエア構成要素として作用することができ(すなわち、異なるAPI実施ソフトウエア構成要素により顕在化されたAPIにAPI発呼を行うことができ)、API発呼ソフトウエア構成要素は、異なるAPI発呼ソフトウエア構成要素に顕在化されたAPIを実施することによってソフトウエア構成要素を実施するAPIとして作用することができることを理解すべきである。
APIは、異なるプログラミング言語で書き込まれた複数のAPI発呼ソフトウエア構成要素がAPI実施ソフトウエア構成要素と通信することを可能にすることができる(従って、APIは、API実施ソフトウエア構成要素とAPI発呼ソフトウエア構成要素間の発呼及び返答を中継する特徴を含むことができる)が、APIは、特定のプログラミング言語に関して実施することができる。
図9は、API920を実施するソフトウエア構成要素910(例えば、オペレーティングシステム、ライブラリ、デバイスドライバ、API、アプリケーションプログラム、又は他のソフトウエアモジュール)を実施するAPIを含むAPIアーキテクチャの一実施形態を示している。API920は、API発呼ソフトウエア構成要素930により使用することができるAPI実施ソフトウエア構成要素の1つ又はそれよりも多くの機能、方法、クラス、オブジェクト、プロトコル、データ構造、フォーマット及び/又は他の特徴を指定する。API920は、API実施ソフトウエア構成要素内の機能がAPI発呼ソフトウエア構成要素からパラメータを受信する方法及び機能がAPI発呼ソフトウエア構成要素に結果を戻す方法を指定する少なくとも1つの通話規約を指定することができる。API発呼ソフトウエア構成要素930(例えば、オペレーティングシステム、ライブラリ、デバイスドライバ、API、アプリケーションプログラム、又は他のソフトウエアモジュール)は、API920により指定されるAPI実施ソフトウエア構成要素910の特徴にアクセスして使用するためにAPI920を通じてAPI発呼を提供する。API実施ソフトウエア構成要素910は、API発呼に応答してAPI発呼ソフトウエア構成要素930にAPI920を通じて値を戻すことができる。
API実施ソフトウエア構成要素910は、API920を通じて指定されず、かつAPI発呼ソフトウエア構成要素930が利用可能でない付加的な機能、方法、クラス、データ構造、及び/又は他の特徴を含むことができることが認められるであろう。API発呼ソフトウエア構成要素930は、ソフトウエア構成要素910を実施するAPIとして同じシステム上にあることができ、又はリモートに位置することができてネットワークでAPI920を使用してソフトウエア構成要素910を実施するAPIをアクセスすることを理解すべきである。図9は、API920と相互作用する単一のAPI発呼ソフトウエア構成要素930を示すが、API発呼ソフトウエア構成要素930と異なる言語(又は同じ言語)で書き込むことができる他のAPI発呼ソフトウエア構成要素もAPI920を使用することができることを理解すべきである。
API実施ソフトウエア構成要素910、API920、及びAPI発呼ソフトウエア構成要素930は、機械(例えば、コンピュータ又は他のデータ処理システム)により可読形式で情報を記憶するあらゆる機構を含む機械可読媒体に記憶することができる。例えば、機械可読媒体には、磁気ディスク、光ディスク、ランダムアクセスメモリ、読取専用メモリ、フラッシュメモリデバイスなどがある。
回線交換式通話と映像通話の間の遷移
一部の実施形態では、クライアントデバイスは、当事者の間の通信を有意に中断することなく、確立された音声専用回線交換通話から映像通話に遷移することができる。例えば、確立されたた音声専用回線交換通話の1つの当事者は、映像通話(映像フレーム及び音声を含む)に遷移することに選択し、それによって映像通話開始メッセージ(オンライン通信セッション招待メッセージの1つの形)が通話の他の参加者に送られる。他の参加者が映像通話招待を受諾した場合に、P2P接続が、参加者のクライアントデバイス間に確立される。P2P接続が交渉される間、参加者は、音声専用回線交換通話を通じて通信することができる。P2P接続が確立されて映像が当事者の間に通信された後に、クライアントデバイスは、映像通話に遷移する。音声専用回線交換通話が次に中断されると、参加者は、映像通話を通じて通信することができる。
図12は、一部の実施形態により回線交換通話と映像通話間で遷移するのに使用される例示的なクライアントデバイス1210及びグラフィカルユーザインタフェースを示している。クライアントデバイス1210は、スピーカ1255(スピーカフォンモードで使用)と、前向きカメラ1260(映像通話に使用された映像を捕捉)と、マイク1265(音を捕捉)と、受信機/スピーカ1270(一般的にユーザが通話中に耳にクライアントデバイス1210を保持する時に使用)と、表示画面1275(一部の実施形態ではタッチスクリーン)とを含む。クライアントデバイス1210は、ヘッドホン/ヘッドホンジャックと、近接センサと、周囲光センサと、加速度計と、他の構成要素とを含むことができる。クライアントデバイス1210のアーキテクチャは例示的であり、より多くの又はより少ない構成要素を含む異なるアーキテクチャを実施形態に使用することができることを理解すべきである。
図12に示すように、グラフィカルユーザインタフェース1205が、現在表示画面1275上に表示されている。クライアントデバイス1210のユーザは、現在、音声専用電話(電話番号(408)555−1234で)で参加している。グラフィカルユーザインタフェース1205は、通話中のユーザのいくつかの異なる選択肢を含む。例えば、クライアントデバイス1210は、ユーザ入力(例えば、適切なアイコン上のタッピング又は他の予め定義された動作)を受信することに応答して以下を行い、すなわち、入力が終了通話アイコン1250に適用された時に通話を終了し、入力がミュートアイコン1220に適用されることに応答して音声通話の音を消し、入力がキーパッドアイコン1225に適用されることに応答し、数値キーパッドを表示し(例えば、通話に付加的な電話番号を追加するために)、入力がスピーカアイコン1230に適用されることに応答して通話をスピーカフォンに設け(音声出力をスピーカ1255に変更する)、入力が追加通話アイコン1235に適用されることに応答し、通話を追加し、入力がホールドアイコン1240に適用されることに応答して通話をホールドし、入力が連絡先アイコン1245に適用されることに応答してユーザ連絡先リストを表示し、かつ入力が映像通話アイコン1215に適用されることに応答して映像通話に遷移する。
図17及び図18は、一実施形態による映像通話と音声専用回線交換通話間で遷移する例示的な作動を示す流れ図である。図17及び図18を図12、図13、及び図14の例示的な実施形態を参照して説明する。しかし、図17〜図18の作動は、図12、図13、及び図14を参照して説明したもの以外の本発明の実施形態により行うことができ、図12、図13、及び図14を参照して説明した実施形態は、図17〜図18を参照して説明したものと異なる作動を行うことができることを理解すべきである。
図17に示すように、クライアントデバイス1210及び1410は、音声専用回線交換通話1710を通じて接続される(クライアントデバイス1210のユーザ又はクライアントデバイス1410のユーザは、通話を開始している)。従って、クライアントデバイス1210及び1410のユーザは、確立された回線交換音声通話で通信することができる。ブロック1712で、クライアントデバイス1210は映像通話に遷移する入力を受信する。例えば、ユーザは、タッピングを又は映像通話アイコン1215上で別の定義された動作を行うことによって映像通話に遷移することを選択している。
フローは、次に、ブロック1714に移動し、クライアントデバイス1210は、映像通話招待メッセージ(それは、オンライン通信セッション招待要求メッセージの形態である)をクライアントデバイス1410に送らせる(クライアントデバイス1410の電話番号により識別されたように)。一部の実施形態では、オンライン通信セッション招待要求メッセージは、図6及び図7に説明したアーキテクチャで送られる。フローは、次に、ブロック1716に移動する。
ブロック1716で、クライアントデバイス1210は、音声が現在スピーカフォン(例えば、スピーカ1255)を通じて、又はヘッドホン/ヘッドホンジャックを通じて経路指定されたか否かを判断する。経路指定された場合に、フローは、ブロック1720に移動する。経路指定されていない場合に、フローはブロック1718に移動し、クライアントデバイス1210は、クライアントデバイス1210(例えば、スピーカ1255)のスピーカフォンを通じて音声を経路指定し、フローは、ブロック1720に移動する。
ブロック1720で、クライアントデバイス1210は、前向きカメラ1260が現在捕捉しているものの映像プレビューを表示し、クライアントデバイス1210のユーザが映像通話を準備をすること(例えば、映像通話に向けてクライアントデバイス1210を適切に位置決めすること)を可能にする。図13は、前向きカメラ1260が現在捕捉しているものの映像を表示する映像プレビュー1310を示すクライアントデバイス1210を示している。図13には図示していないが、一部の実施形態では、ユーザが映像通話招待を取り消すことを可能にするキャンセルボタンも、GUI1305上に表示されている。フローは、ブロック1720からブロック1722に移動する。
ブロック1726で、クライアントデバイス1410は、クライアントデバイス1410のユーザを映像通話に招待する映像通話招待メッセージを受信する。フローは、ブロック1726からブロック1728に移動する。一部の実施形態では、クライアントデバイス1410は、クライアントデバイス1210と類似のアーキテクチャを有する。例えば、図14に示すように、クライアントデバイス1410は、スピーカ1455(スピーカフォンモードで使用)と、前向きカメラ1460(映像通話に使用された映像を捕捉)と、マイク1465(音を捕捉)と、受信機/スピーカ1470(一般的にユーザが通話中に耳にクライアントデバイス1410を保持する時に使用)と、表示画面1475(一部の実施形態ではタッチスクリーン)とを含む。クライアントデバイス1410は、ヘッドホン/ヘッドホンジャックと、近接センサと、周囲光センサと、加速度計と、他の構成要素とを含むことができる。クライアントデバイス1410のアーキテクチャは例示的であり、より多くの又はより少ない構成要素を含む異なるアーキテクチャを実施形態に使用することができることを理解すべきである。
ブロック1728で、クライアントデバイス1410は、メッセージの受信を示す1つ又はそれよりも多くの音声トーンを再生し、ユーザにメッセージに対して注意を喚起する。音声トーンは、異なる実施形態において異なることができる(例えば、音声トーンは、クライアントデバイス1410上に使用された通話待機音と類似とすることができ(それらは、クライアントデバイス1410に関連付けられたキャリアから出ていないが)、音声トーンは、独自のものでありかつ映像通話特定などとすることができる)。一部の実施形態では、クライアントデバイス1410は、クライアントデバイス1410がユーザの耳の近くではない場合に、及び/又は通話が現在スピーカフォンモードではない場合に、映像通話招待メッセージの受信を示す音声トーンを再生しない(例えば、クライアントデバイス1410の近接センサによって示すように)。フローは、ブロック1728からブロック1730に移動する。
ブロック1730で、クライアントデバイス1410は、映像通話招待メッセージを表示し、前向きカメラ1460が現在捕捉しているものの映像プレビューを任意的に表示し、クライアントデバイス1410のユーザが映像通話の準備をすることを可能にし、フローは、ブロック1732に移動する。図14は、映像通話招待1440を表示するGUI1405を示している。図14に示すように、映像通話招待1440は、受諾ボタン1432と、拒否ボタン1434と、映像プレビュー1430(前向きカメラ1460が現在捕捉しているものを示す)とを含む。図1410は、映像プレビュー1430(映像プレビュー1430が映像通話招待1440内に含まれている)を含む映像通話招待1440を示すが、他の実施形態では、映像プレビュー1430は、映像通話招待1440の外側に位置し及び/又は映像通話招待1440に重なっている。クライアントデバイス1410のユーザは、受諾ボタン1432を選択し、映像通話招待を受諾することができ(例えば、タッピング又は受諾ボタン1432上での入力に向けて別の予め定義された動作を行うことにより)、拒否ボタン1434を選択して映像通話招待を拒否することができる(例えば、タッピング又は拒否ボタン1434上での入力に向けて別の予め定義された動作を行うことにより)。
ブロック1732で、クライアントデバイス1410は、映像通話を受諾するために入力を受信したか否か(例えば、ユーザが受諾ボタン1432を選択することによって映像通話招待を受諾したか否か)を判断する。クライアントデバイス1410が映像通話を受諾する入力を受信した場合に、フローは、ブロック1734に移動し、そうでなければ、フローは、ブロック1736に移動する。ブロック1734で、クライアントデバイス1410は、映像通話受諾メッセージをクライアントデバイス1210に送信させる。一部の実施形態では、受諾メッセージは、図6及び図7に説明したアーキテクチャでクライアントデバイス1210に送信される。フローは、次に、ブロック1810に移動する。
ブロック1736で、映像通話要求を拒否するために入力を受信したか否かを判断する(例えば、拒否ボタン1434を選択することによってユーザが映像通話招待を拒否したか否か)。クライアントデバイス1410が映像通話を拒否する入力を受信した場合に、フローは、ブロック1738に移動し、そうでなければ、フローは、ブロック1732に移動する。ブロック1738で、クライアントデバイス1410は、映像通話拒否メッセージをクライアントデバイス1210に送信させる。クライアントデバイス1410は、映像通話招待1440を消去して映像プレビュー1430を表示することを停止することができる。一部の実施形態では、映像通話拒否メッセージは、図6及び図7に説明したアーキテクチャでクライアントデバイス1210に送信される。
ブロック1722で、クライアントデバイス1210は、クライアントデバイス1410から映像通話受諾メッセージを受信したか否かを判断する。受信していた場合に、フローは、ブロック1816に移動し、受信していなかった場合に、フローは、ブロック1724に移動し、クライアントデバイス1210は、クライアントデバイス1410から映像通話拒否メッセージを受信したか否かを判断する。受信していた場合に、フローは、ブロック1910に移動し、受信していなかった場合に、フローは、ブロック1722に移動する。
図18を参照すると、ブロック1810で(クライアントデバイス1410のユーザは、映像通話招待を受諾した)、クライアントデバイス1410は、音声が現在スピーカフォン(例えば、スピーカ1470)又はクライアントデバイス1410のヘッドホンを通じて経路指定されたか否かを判断する。経路指定されていない場合に、フローはブロック1812に移動し、音声ルートは、スピーカ1455からスピーカフォン(例えば、スピーカ1470)に変更され、フローは、ブロック1814に移動する。音声がスピーカフォン又はヘッドホンを通じて経路指定された場合に、フローは、ブロック1814に移動する。
ブロック1814で、クライアントデバイス1410は、前向きカメラ1260が現在を捕捉しているものビデオプレビューを表示する。ブロック1814の作動は、映像プレビューがブロック1730で作動の結果として現在表示されていない場合に限り、行われる。フローは、ブロック1814からブロック1820に移動する。
ブロック1818及び1820で、クライアントデバイス1210及び1410は、互いとのP2P接続を確立する。直接のP2P接続は、公知の機構を通じて(例えば、インターネットコネクティビティエスタブリッシュメント(ICE)又は他の公知のP2P接続性機構を使用して)確立することができる。P2P接続の確立が成功したと仮定し、フローは、それぞれ、ブロック1818及び1820からブロック1822及び1824に移動し、クライアントデバイス1210及び1410は、P2P接続で互いに映像(フロントビデオカメラ1260及び1460からの映像)を送信し始める。一部の実施形態では、映像は、映像フレームと対応する音声(それぞれクライアントデバイス1210及び1410のマイク1265及び1465により捕捉)とを含み、一方、他の実施形態では、映像及び音声は、P2P接続にわたって通信される別々のストリームである。
フローは、それぞれ、ブロック1822及び1824からブロック1826及び1828に移動する。ブロック1826及び1828で、クライアントデバイス1210及び1410は、それぞれ、ピアから1つ又はそれよりも多くの映像フレームを受信したか否かを判断する。受信していた場合に、フローは、それぞれブロック1826及び1828からブロック1830及び1832に移動する。受信していなかった場合に、フローは、1つ又はそれよりも多くの映像フレームが受信されるまで、ブロック1826及び1828のままである。
一部の実施形態では、クライアントデバイス1210及び1410は、何らかの時間にわたって互いから映像フレームを受信するのを待ち、その時間に映像フレームをやり取りしなかった場合に、代替アクションが講じられる。例えば、一部の実施形態では、映像通話が取り消され、映像通話を確立することができなかったというメッセージが、クライアントデバイス1210及び1410の画面上に表示されている。映像通話は、帯域幅が映像通話に不十分である、映像フレームを送信又は受信に失敗したなどを含むいくつかの理由で確立し損なう場合がある。一部の実施形態では、クライアントデバイスが先に進む前に映像の単一のフレームを待つが、他の実施形態では、クライアントデバイスは、先に進む前に特定の期間(例えば、映像フレームのフロー)にわたっていくつかのフレームを受信するのを待つ。
ブロック1830及び1832で、クライアントデバイス1210及び1410は、それぞれ、映像通話に遷移する。映像通話への遷移は、受信された映像を表示して回線交換音声通話から映像通話に音声ルートを変更することを含む。一部の実施形態では、映像プレビュー(例えば、映像プレビュー1310)が、画面のコーナに移動し(かつ縮小し)、ピアから受信された映像が示されている。従って、音声ルートが回線交換音声通話から映像通話に変更されるまで、参加者は、回線交換音声通話を通じて通信することができる(映像通話が交渉された間、回線交換音声通話は確立されたままである)ことを理解すべきである。映像通話に遷移した後に、回線交換音声通話を中断することができる。従って、フローは、それぞれ、ブロック1830及び1832からブロック1834及び1836に移動し、回線交換音声通話が中断される。
図15及び図16は、それぞれ、映像通話に遷移した後のクライアントデバイス1210及び1410を示している。図15に示すように、クライアントデバイス1210は、クライアントデバイス1410の前向きカメラ1460により捕捉されたもの映像である映像1510を表示する。クライアントデバイス1210は、前向きカメラ1260により捕捉されたもの映像である映像1515も表示する。GUI1505は、映像終了ボタン1520と映像通話終了ボタンとも含む。映像終了ボタン1520により、ユーザは映像通話を終了して音声通話だけに戻ることができる。映像終了及び通話ボタン1525により、ユーザは、完全に映像通話を終了する(例えば、クライアントデバイス1410のユーザとの会話を終了する)ことができる。図16に示すように、クライアントデバイス1410は、クライアントデバイス1210の前向きカメラ1260により捕捉されたもの映像である映像1610を表示する。クライアントデバイス1410は、前向きカメラ1460により捕捉されたもの映像である映像1615を表示する。GUI1605はまた、映像終了ボタン1620と映像通話終了ボタンとを含む。
図19は、一実施形態による映像通話拒否メッセージを受信したクライアントデバイス上で行われる例示的な作動を示す流れ図である。ブロック1910で、クライアントデバイス1210は、映像通話拒否メッセージを受信する(クライアントデバイス1410のユーザは、映像通話招待を拒否したのである)。フローは、ブロック1910からブロック1912に移動し、クライアントデバイス1210は、映像通話拒否されたメッセージを表示し、かつ映像通話拒否メッセージの受信を示す1つ又はそれよりも多くの音声トーンを任意的に再生する。フローは、次に、ブロック1914に移動し、クライアントデバイス1210は、独自の映像プレビューを表示することを停止する。クライアントデバイス1210は、ブロック1718で音声出力が以前にスピーカフォンに変更されていた場合に、ユーザに初期の音声出力に戻るように促すことができる(例えば、スピーカ1270を通じて)。
図20は、一実施形態による映像通話から回線交換通話へ遷移するクライアントデバイス上で行われる例示的な作動を示す流れ図である。映像通話2010は、クライアントデバイス1210及び1410の間に確立される(映像通話は、図17及び図18を参照して説明した機構により確立することができ、又は回線交換音声通話から遷移せずに確立することができる)。ブロック1712で、クライアントデバイス1210は、音声専用回線交換通話に遷移する入力を受信する。例えば、図15を参照すると、クライアントデバイス1210のユーザは、映像終了ボタン1520を選択している(例えば、タッピング又は映像終了ボタン1520で別の予め定義された動作を行うことにより)。クライアントデバイス1210は、次に、音声専用回線交換通話2014への遷移を示すメッセージをクライアントデバイス1410に送信する。
クライアントデバイス1210は、次に、クライアントデバイス1410に回線交換音声通話要求を開始する(例えば、クライアントデバイス1210は、クライアントデバイス1410の番号に自動的に通話する)。一部の実施形態では、これは、背景で行われるので、ユーザとの対話処理は不要である。通話は、キャリアネットワークインフラストラクチャーのいくつかのネットワーク要素(例えば、基地局、モバイル交換局など)を通じて経路指定される。
クライアントデバイス1410は、回線交換通話2020受信して応える。一実施形態では、クライアントデバイス1410は着信要求を表示し、着信要求を示す音声トーン(例えば、通話待機音又は他のトーン)を再生することができ、かつ通話に出るためにユーザ介入が必要である。別の実施形態では、クライアントデバイス1410は、ユーザの介入がなくても自動的に通話に出る(かつ着信要求を示す音声トーンを再生する場合もあれば、再生しない場合もある)。通話に出た後に、音声専用回線交換通話が、クライアントデバイス1210及び1410間に確立される(2030)。
音声専用回線交換通話の確立が成功した後に、クライアントデバイス1210及び1410は、それぞれ音声専用通話2032及び2034に遷移する。例えば、音声専用通話への遷移は、映像通話から回線交換通話に音声ルートを変更して受信中の映像を表示することを停止して映像を送信することを停止することを含む。クライアントデバイスは、映像プレビューを表示することを停止することができる。従って、回線交換音声専用通話が交渉中である間、クライアントデバイス1210及び1410のユーザは、映像通話を通じて通信することができる(音声専用回線交換通話が交渉中である間、映像通話は、確立されたままである)ことを理解すべきである。音声専用回線交換通話に問題なく遷移した後に、クライアントデバイス1210及び1410は、P2P接続2040を終了する。クライアントデバイス1210及び1410のユーザは、次に、音声専用回線交換通話を通じて通信することができる。
本発明の実施形態を2人の参加者を有する映像通話に関して説明したが、実施形態は、映像通話においてより多くの参加者がいる場合があるのでそのように限定されない。このような実施形態では、クライアントデバイスは、映像チャットの各々の異なる参加者から複数の映像ストリームを表示することができる。
本発明の実施形態を2人の参加者を有する映像通話に関して説明したが、各参加者が映像を送信する場合に、実施形態は、そのように限定されない。例えば、一部の実施形態では、単一の当事者のみが他の参加者に映像を送信している場合があり、それらの他の参加者はオーディオを送信しているのみである場合がある。一部の実施形態では、各参加者は、映像通話中にあらゆる時点で映像を送信することを中止すべきか否かを判断することができる。
一部の実施形態では、通話中に送信される映像の品質は、ネットワーク条件に基づいて動的に調節される。例えば、ネットワークが混雑している期間中、映像のビットレートを遅くすることができる。同様に、ネットワークが比較的混雑のない期間中は、映像のビットレートを速めることができる。一部の実施形態では、ネットワーク条件により映像を送信することができない場合に、参加者クライアントデバイスは、音声専用回線交換通話に自動的に遷移する。従って、帯域幅が特定のレベルより下回った場合に、参加者クライアントデバイスは、音声専用回線交換通話に自動的に遷移することができる(又は音声専用回線交換通話に遷移するようにユーザに促すことができる)。
IP映像通話のためのハンズフリーデバイスを通じたハンズフリーサービスサポート
一実施形態では、クライアントデバイスはハンズフリーユニットとのIP映像通話を管理するサポートを含むWPAN(無線パーソナルエリアネットワーク)(例えば、Bluetooth(登録商標)、ジクビー(ZigBee)など)上のハンズフリーデバイス(例えば、ヘッドホン、カートキット)との対話をサポートする機能性を含む。図32は、一実施形態によるハンズフリーユニットとインタフェースで接続してIP映像通話を管理クライアントコンピュータデバイスを示すブロック図である。クライアントデバイス3210は、映像通話を開始する(例えば、映像通話であるオンライン通信セッションに1人又はそれよりも多くの受信者を招待する)機能と映像通話を受諾する機能とを含む。一部の実施形態では、クライアントデバイス3210は、携帯電話通話を行って、セルラー接続を通じて携帯電話通信を受信し、及び/又は「インターネット」又は他のネットワークにアクセスする携帯電話通信構成要素も含む。
図32に示すように、クライアントデバイス3210は、IP映像通話マネージャ3250と、電話通信マネージャ3260と、音声マネージャ3275及びハンズフリーマネージャ3270とを含む。一部の実施形態では、クライアントデバイス3210は、セルラー通話マネージャ3255も含む。IP映像通話マネージャ3250は、本明細書で上述したように、IP映像通話サービス3230を通じてIPネットワーク3235上で「IP P2P」映像通話を確立することを含むP2P映像通話アプリケーションを管理する。一実施形態では、IP映像通話サービス3230は、招待サービス620、プッシュ通知サービス640、登録サービス630や登録サービス2130、及びリレーサービス650のうちの1つ又はそれよりも多くを含む。携帯電話通話マネージャ3255は、携帯電話音声通話サービス3240を使用して携帯電話ネットワーク3245上で音声専用携帯電話通話を行ないかつ受信する携帯電話構成要素を管理する。
IP映像通話マネージャ3250及び携帯電話通話マネージャ3255は、電話通信マネージャ3260と結合される。電話通信マネージャ3260は、通話に関連付けられた通話履歴(映像通話及び音声専用携帯電話通話に向けて)及び他の情報を追跡することを含むIP映像通話マネージャ3250及び携帯電話通話マネージャ3255の両方の電話通信作動を管理する。電話通信マネージャ3260は、ハンズフリーマネージャ3270とインタフェースで接続し、IP映像通話マネージャ3250及び携帯電話通話マネージャ3255のためにIP映像通話及び携帯電話通話のための外部ハンズフリーデバイスを通じてハンズフリーサービスも提供する。一実施形態では、共通のメッセージタイプが、異なるプロトコル及び通話タイプ(IP映像通話及び音声専用携帯電話通話)に向けてハンズフリーサービスのサポートを行うためにIP映像通話マネージャ3250、携帯電話通話マネージャ3255、及び電話通信マネージャ3260の間に使用される。従って、電話通信マネージャ3260は、ハンズフリーサービスがIP映像通話又は音声専用携帯電話通話を対象とするのか否かに関わらず、ハンズフリーサービスに対して類似のサポートを提供する。それによってハンズフリーデバイスにより理解することができる標準的な指令をIP映像通話に向けて、並びに音声専用携帯電話通話に向けてハンズフリーサービスを提供するのに使用することができるように、ハンズフリーマネージャ3270は、ハンズフリーサービスがIP映像通話又は音声専用携帯電話通話を対象とするのか否かを理解せずに済む。
一実施形態では、電話通信マネージャ3260は、IP映像通話マネージャ3250と携帯電話通話マネージャ3255の間で仲裁もする。例えば、電話通信マネージャ3260は、IP映像通話をホールドさせて確立した音声専用携帯電話通話に切り換えることができ、及び/又は音声専用携帯電話通話をホールドさせてIP映像通話に切り換えることができる。
ハンズフリーマネージャ3270は、ハンズフリー処理のサポートを提供する。一実施形態では、ハンズフリーマネージャ3270は、Bluetooth(登録商標)ヘッドホン及びBluetooth(登録商標)カートキットのようなBluetooth(登録商標)準拠ハンズフリーデバイスへの接続に向けてBluetooth(登録商標)プロトコルスタックを実施する。1つの特定的な実施形態では、ハンズフリーマネージャ3270は、Bluetooth(登録商標)ヘッドセットプロフィール(例えば、2008年12月18日付けのヘッドホンプロフィール(HSP)1.2仕様書に定義)及び/又はBluetooth(登録商標)ハンズフリープロフィール(例えば、2005年11月25日付けのハンズフリープロフィール1.5(HFP1.5)仕様書に定義)を実施する。ハンズフリーマネージャ3270は、ハンズフリーユニット3220がIP映像通話に向けて及びWPAN3225上の音声専用携帯電話通話に向けて音声リレーとして作用し、並びに他のハンズフリー検査を行うことを可能にする。例えば、IP映像通話の場合に、通話の音声部分は、クライアントデバイス3210のスピーカの代わりに、ハンズフリーユニット3220を通じて経路指定することができ、一方、通話の映像部分は、クライアントデバイス3210(代替的に、付属のディスプレイにより)により表示中のままである。ハンズフリーユニット3220は、クライアントコンピュータデバイス3210にその後送信される音声情報を捕捉するマイクも含む。従って、ユーザは、ハンズフリーユニット3220を使用して話したり、又はIP映像通話中に及び/又は音声専用携帯電話通話中に音声を聴くことができる。
ハンズフリーマネージャ3270は、IP映像通話及び/又は音声専用携帯電話通話に向けて以下のもの、すなわち、ユーザが通話に応答することを可能にする、通話を終了する、通話をホールドにする、通話の音を消す、通話のボリュームを上げ/下げる、音声をクライアントデバイスに転送する、音声をハンズフリーユニットに転送する、通話を掛ける、及び最終の通話をリダイヤルすることのうちの1つ又はそれよりも多くを行うことを含めハンズフリーユニット3220からの入力を受信することに応答し、他のハンズフリーサービスもサポートする。従って、ユーザは、ハンズフリーユニット3220を使用し、IPに映像通話に応答し、IP映像通話を終了し、IP映像通話をホールド及び/又はミュートにし、IP映像通話のボリュームを上げ/下げ、出力すべきIP映像通話の音声をクライアントデバイス3210のスピーカに転送し、クライアントデバイス3210からハンズフリーユニット3220に音声を転送し、IP映像通話を掛け、及び最終IP映像通話をリダイヤルすることができる。
IP映像通話マネージャ3250、携帯電話通話マネージャ3255、及びハンズフリーマネージャ3270は、音声マネージャ3275とも結合される。音声マネージャ3275は、異なるソースを通じてIP映像通話及び音声専用携帯電話通話の音声を経路指定する。例えば、音声マネージャ3275は、スピーカフォンモードに適するクライアントデバイス3210のスピーカを通じて、ユーザが通話中に耳にクライアントデバイス3210を保持した時に使用されるクライアントデバイス3210のスピーカを通じて、クライアントデバイス3210にプラグで入力されているヘッドホン又はヘッドホンのヘッドホン/ヘッドフォンジャックを通じて、かつピア接続されたハンズフリーユニット(ハンズフリーユニット3220など)を通じて音声を出力させることができる。
図33は、一実施形態による映像通話の招待を受信し、ハンズフリーデバイスに電話させ、ハンズフリーデバイスから応答表示を受信し、映像通話を確立し、ハンズフリーデバイスに音声を経路指定するクライアントコンピュータデバイス3210を示している。図33を図32の例示的な実施形態を参照して説明する。しかし、図33の作動は図32を参照して説明したもの以外の実施形態により行うことができ、図32を参照して説明する実施形態は、図33を参照して説明したものと異なる作動を行うことができることを理解すべきである。
作動3310で、IP映像通話マネージャ3250は、IP映像通話に参加するようにクライアントデバイス3210のユーザを招待する別のクライアントデバイスからIP映像通話招待を受信する。IP映像通話招待は、本明細書で上述したように招待の形式を取ることができる。IP映像通話マネージャ3250は、招待を作動3315で表示させることを含む招待要求を処理する。例えば、招待要求は、図14に示す例示的な映像通話招待1410と同様に表示することができる。
更に、IP映像通話マネージャ3250は、通話オブジェクト3320を生成して電話通信マネージャ3260に送信する。通話オブジェクト3320は、通話に関する1組のパラメータを含む。例えば、通話オブジェクトパラメータは、通話のステータス(例えば、接続中)及び通話参加者識別子(例えば、電話番号、電子メールアドレス、又は他のオンライン通信セッション終点識別子)、開始時間、配信又は着信であるか否かの表示、及び通話を識別するために内部的に使用される通話識別子のうちの1つ又はそれよりも多くを含む。
一実施形態では、通話オブジェクト3320は、パラメータはIP映像通話招待からの情報に基づくが、IP映像通話招待要求及び引込み音声専用携帯電話通話に向けて共通であるフォーマットである一般的な通話オブジェクトである。従って、着信音声専用携帯電話通話を受信した時に、携帯電話通話マネージャ3255は、同じフォーマットの着信オブジェクトを生成する。従って、電話通信マネージャ3260の観点からすれば、IP映像通話招待要求又は引込み音声専用携帯電話通話は、同じであるように見える。
電話通信マネージャ3260は、通話履歴構造の一部として通話オブジェクト3320内に情報を記憶する。電話通信マネージャ3260、着信メッセージ3322を生成してハンズフリーマネージャ3270に送る。一実施形態では、電話通信マネージャ3260は、クライアントデバイス3210に匹敵するハンズフリーデバイス3220のようなハンズフリーデバイスがある場合に、着信メッセージ3322を送るだけである(例えば、電話通信マネージャ3260は、最初に、クライアントデバイス3210に匹敵するハンズフリーデバイスがあるか否かを調べる)。他の実施形態では、電話通信マネージャ3260は、ピア接続されたハンズフリーデバイスがあるか否かに関わらず、ハンズフリーマネージャ3270に着信メッセージ33220を送り、ハンズフリーマネージャ3270は、ピア接続されたハンズフリーデバイスがあるか否かにより、メッセージを断念/無視すべきであるか、又は処理すべきか否かを判断する。図33及びその後の図の目的上、ハンズフリーデバイス3220はクライアントコンピュータデバイス3210に匹敵すると仮定する。一実施形態では、着信メッセージ3322は、通話識別子を含む。
着信メッセージ3320を受信することに応答し、ハンズフリーマネージャ3270は、一連のメッセージをハンズフリーデバイス3220に送信させて、着信があるとハンズフリーデバイス3220及びユーザの注意を喚起する。図33に示すように、ハンズフリーマネージャは、確立した音声接続3325上で呼出し音にメッセージ3330を送る前にハンズフリーデバイス3220との音声接続3325(例えば、シンクロノス・コネクション・オリエンテッド(SCO)リンク)を確立する。この呼出し音メッセージは、クライアントデバイス3210により選択されるものであり、クライアントデバイス3210のユーザによりカスタマイズ可能にすることができる。一実施形態では、IP映像通話の呼出し音メッセージは、音声専用携帯電話通話の呼出し音と異なっている。別の実施形態では、通話に応答するまで音声接続は確立されない。このような実施形態では、着信音メッセージが、ハンズフリーデバイス3220に送られ、ハンズフリーデバイス3220は、次に、着信メロディを再生して着信に対してユーザの注意を喚起すべきか否かをローカルに判断する(着信音メッセージは、着信メロディメッセージ3330を送る前に送ることができる)。このような実施形態では、着信音メッセージは、通話が応えられるか又は終了されるまでハンズフリーデバイス3220に複数回を送ることができる。
着信音メッセージ及び/又はリングメッセージ3330を受信した後、しばらくしてハンズフリーデバイス3220は、ユーザが通話に応えたことを示す応答済みメッセージ3335を送信する。例えば、ユーザは、ハンズフリーデバイス3220上で応答ボタンを押したか、又は通話に応えるためにハンズフリーデバイス3220上で他の方法でアクションを講じている。ハンズフリーマネージャ3270は、応答済みメッセージ3335を受信すると、応答済みメッセージ3340を電話通信マネージャ3260に送信する。一実施形態では、応答済みメッセージ3340は、通話識別子を含む。図33には図示していないが、ハンズフリーマネージャ3270は、応答済みメッセージ3335を受信することに応答し、確認応答メッセージをハンズフリーデバイス3220に送信することができる。
電話通信マネージャ3260は、応答済み通話メッセージ3340が通話オブジェクト3320に示す通話のものであると判断し(例えば、メッセージ3340内に含まれた通話識別子を通話オブジェクト3320から記憶された情報と比較することにより)、通話が応答されたことを示すメッセージ3345をIP映像通話マネージャ3250に送信する。このメッセージを受信することに応答し、IP映像通話マネージャ3250は、作動3350で、IP映像通話を確立する。例えば、IP映像通話マネージャ3250は、本明細書で上述したようにIP映像通話受諾メッセージを招待サービスに送らせ、P2P接続が、招待を送信したコンピュータデバイスと確立される(直接に又はリレーを通じて)。
IP映像通話が確立された後、しばらくしてIP映像通話マネージャ3250は、通話オブジェクト3355を電話通信マネージャ3260に送信する。通話オブジェクト3355は、ステータスが接続中から接続済みに変わった点を除いて、通話オブジェクト3320と類似の1組のパラメータを含む。一実施形態では、通話オブジェクト3355は、確立されたIP映像通話及び接続済みた音声専用携帯電話通話に対して共通であるフォーマットである一般的な通話オブジェクトである。
更に、IP映像通話が確立された後、しばらくして音声マネージャ3275は、ハンズフリーデバイス3220を通じて確立されたIP映像通話の音声部分を経路指定する。一実施形態では、IP映像通話マネージャ3250又は電話通信マネージャ3260は、ハンズフリーデバイスを通じて音声を経路指定するように音声マネージャ3275を要求する。音声マネージャ3275は、音声ルートがハンズフリーデバイス3220を通過するように変更されることになることを示すメッセージ3360をハンズフリーマネージャ3270に送信することができる。音声接続がまだ確立されていない場合に、ハンズフリーマネージャ3270は、ハンズフリーデバイス3220との音声接続を確立する。確立された音声接続があると仮定し、映像通話の音声部分3365は、ハンズフリーデバイス3220に経路指定される。従って、映像通話の音声部分は、ハンズフリーデバイス3220を通じて処理され、一方、映像通話の映像部分は、クライアントデバイス3210上に表示されている。
図34は、一実施形態による映像通話を開始してハンズフリーデバイスを通じて確立された映像通話に向けて音声を経路指定するクライアンデバイス3210を示している。図34を図32の例示的な実施形態を参照して説明する。しかし、図34の作動は図32を参照して説明したもの以外の実施形態により行うことができ、図32を参照して説明する実施形態は、図34を参照して説明したものと異なる作動を行うことができることを理解すべきである。
作動3410で、IP映像通話マネージャ3250は、IP映像通話にユーザを招待するために1つ又はそれよりも多くのIP映像通話招待メッセージを他のクライアントデバイスに送らせる。IP映像通話招待メッセージは、本明細書で上述したように招待の形式を取ることができる。IP映像通話マネージャ3250は、通話オブジェクト3415を生成して電話通信マネージャ3260に送信する。通話オブジェクト3320と同様に、通話オブジェクト3415は、通話に関する1組のパラメータを含み、かつ一般的なフォーマットである。電話通信マネージャ3260は、通話履歴構造の一部として通話オブジェクト3415内に情報を記憶する。
一実施形態では、電話通信マネージャ3260は、発信があることを示す発信メッセージ3420も生成してハンズフリーマネージャ3270に送る。このメッセージに応答し、ハンズフリーマネージャ3270は、ハンズフリーデバイス3220との音声接続3425を確立し(カスタムメイドの帯域内の着信メロディが送られることになっている場合)、次に、着信メロディメッセージ3430をハンズフリーデバイス3220に送信する。他の実施形態では、ハンズフリーマネージャ3270は、音声接続を確立して帯域内の着信メロディを送信するのではなく、着信メロディ警報メッセージのみをハンズフリーデバイス3220に送信する。
IPに映像通話招待を送った後、しばらくしてIP映像通話マネージャ3250は、本明細書で上述したように映像通話受諾メッセージの形式を取ることができるIP映像通話受諾メッセージ3435を受信する。このメッセージを受信した後に、「P2P IP」映像通話が、作動3440で受諾側クライアントデバイスと確立される(例えば、P2P接続(直接に又はリレーを通じた)が、招待を受諾したコンピュータデバイスと確立される)。
IP映像通話が確立された後、しばらくしてIP映像通話マネージャ3250は、通話オブジェクト3445を電話通信マネージャ3260に送信する。通話オブジェクト3445は、ステータスが接続中から接続済みに変わった点を除いて、通話オブジェクト3415と類似の1組のパラメータを含む。通話オブジェクト3445も、一般的なフォーマットである。更に、IP映像通話が確立された後、しばらくして音声マネージャ3275は、ハンズフリーデバイス3220を通じて確立されたIP映像通話の音声部分を経路指定する。一実施形態では、IP映像通話マネージャ3250又は電話通信マネージャ3260は、ハンズフリーデバイスを通じて音声を経路指定するように音声マネージャ3275を要求する。音声マネージャ3275は、音声ルートがハンズフリーデバイス3220を通過するように変更されることになることを示すメッセージ3455をハンズフリーマネージャ3270に送信することができる。音声接続がまだ確立されていない場合に、ハンズフリーマネージャ3270は、ハンズフリーデバイス3220との音声接続を確立する。確立された音声接続があると仮定し、映像通話の音声部分3460は、ハンズフリーデバイス3220に経路指定される。従って、映像通話の音声部分は、ハンズフリーデバイス3220を通じて処理され、一方、映像通話の映像部分は、クライアントデバイス3210上に表示される。
図35は、一実施形態によるハンズフリーデバイス3220から通話要求を受信することに応答して映像通話を開始するクライアントデバイス3210を示している。図35を図32の例示的な実施形態を参照して説明する。しかし、図35の作動は図32を参照して説明したもの以外の実施形態により行うことができ、図32を参照して説明する実施形態は、図35を参照して説明したものと異なる作動を行うことができることを理解すべきである。
ハンズフリーマネージャ3270は、ハンズフリーデバイス3220から通話要求3510を受信する。通話要求3510は、ユーザが呼び出される電話番号又は他のオンライン通信セッション終点識別子を選択することに応答して生成することができる。例えば、ユーザは、最終の通話をリダイヤルするように要求するリダイヤルボタンをハンズフリーデバイス3220上で選択することができる。ハンズフリーマネージャ3270は、通話要求メッセージ3520を電話通信マネージャ3260に送信する。電話通信マネージャ3260は、通話要求メッセージ3520が映像通話に関連付けられたのか(従って、通話要求メッセージは、IP映像通話マネージャ3250に送られるべきである)、又は音声専用携帯電話通話の電話番号に関連付けられた識別子への通話を要求しているのか(従って、携帯電話通話マネージャ3255に送られるべきである)を判断する。例えば、通話要求3520がリダイヤル要求である場合に、電話通信マネージャ3260は、IP映像通話又は音声専用携帯電話通話である可能性がある最終ダイヤルされた通話にアクセスし、どこに通話要求を送るべきかを判断する。図35に示すように、電話通信マネージャは、通話要求にメッセージ3525をIP映像通話マネージャ3250に送る。通話要求メッセージ3525は、映像通話の要求された参加者の識別子(例えば、電話番号、電子メールアドレス、又は他のオンライン通信セッション終点識別子)を含む。通話要求メッセージ3525を受信することに応答し、IP映像通話マネージャ3250は、図34で上述したように作動3410で、IP映像通話招待メッセージを表示された参加者に送らせる。図35に示す残りの作動は、図34を参照して上述したように行われる。従って、クライアントデバイス3210は、ピア接続されたハンズフリーデバイスでユーザアクションの結果としてIP映像通話を確立することをサポートする。
図36は、一実施形態による確立された映像通話の音声をハンズフリーデバイス3220に経路指定するクライアントコンピュータデバイス3210を示している。確立されたIP映像通話3610が、クライアントデバイス3210と1つ又はそれよりも多くの他のクライアントデバイスの間に存在する。この通話の音声部分は、現在、クライアントデバイス3210のスピーカにより、又はクライアントデバイス321にプラグ入力されているヘッドホンを通じて出力される。作動3615で、IP映像通話マネージャ3250は、音声をハンズフリーデバイス3220に転送する入力を受信する。例えば、クライアントデバイス3210のユーザは、ピア接続されたハンズフリーデバイスに音声を転送する入力をIP映像通話アプリケーションに供給している。このような入力を受信することに応答し、IP映像通話マネージャ3250は、ハンズフリーデバイス3220を通じて映像通話の音声部分を経路指定する音声ルート要求3620を音声マネージャ3275に送る。音声マネージャ3275は、音声ルートがハンズフリーデバイス3220を通過するように変更されることになることを示すメッセージ3625をハンズフリーマネージャ3270に送信することができる。音声接続がまだ確立されていない場合に、ハンズフリーマネージャ3270は、ハンズフリーデバイス3220との音声接続を確立する。確立された音声接続があると仮定し、映像通話の音声部分3635は、ハンズフリーデバイス3220に経路指定される。従って、IP映像通話が確立された後と、クライアントデバイス3210は、ユーザが音声をハンズフリーデバイスに転送することを可能にする。
図36は、クライアントデバイスで直接に入力を受信することに応答して音声をハンズフリーデバイスに転送することを示すが、他の実施形態では、ユーザは、ハンズフリーデバイス3220での入力を通じてハンズフリーデバイス3220に音声を転送することができる。このような実施形態では、ハンズフリーマネージャ3270は、ハンズフリーデバイス3220から音声を転送する指令を受信する。ハンズフリーマネージャ3270は、次に、音声マネージャ3275に要求を送り、音声マネージャ3275は、次に、音声をルート変更する。
更に、図36は、音声をハンズフリーデバイスに転送することを示すが、一部の実施形態では、音声は、ハンズフリーデバイスへクライアントデバイス3210のスピーカ(又はヘッドホン)に転送することができる。これは、クライアントデバイス3210及び/又はハンズフリーデバイス3220で開始することができる。このような実施形態では、音声マネージャ3275は、クライアントデバイス3210に音声を経路指定する音声経路指定要求を受信して(IP映像通話マネージャ3250又はハンズフリーマネージャ3270から)、かつ相応に作用する。
図37は、一実施形態によるハンズフリーデバイス3220から通話終了要求を受信することに応答して映像通話を終了するクライアントデバイス3210を示している。ハンズフリーマネージャ3270は、ユーザがハンズフリーデバイス3220で通話を終了することを選択すること(例えば、終了ボタンがハンズフリーデバイス3220上で選択されたこと)に応答してハンズフリーデバイス3220から通話終了メッセージ3710を受信する。ハンズフリーマネージャ3270は、通話終了メッセージ3715を電話通信マネージャ3260に送信する。一実施形態では、通話終了要求3715は、どの通話を終了すべきか(複数の通話がある場合を示す通話識別子を含む。電話通信マネージャ3260は、終了すべき通話がIP映像通話マネージャ3250に関連していると判断して通話終了メッセージ3720をIP映像通話マネージャ3250に送る。通話終了メッセージ3720を受信することに応答し、IP映像通話マネージャ3250は、IP映像通話を終了させてクライアントデバイス3210をP2P接続から切り離させる。従って、クライアントデバイス3210は、ユーザがピア接続されたハンズフリーデバイスを使用してIP映像通話を終了することを可能にすることをサポートする。
図38は、一部の実施形態に使用することができる例示的なコンピュータシステムを示すブロック図である。例えば、コンピュータシステム3800の例示的なアーキテクチャは、クライアントデバイス110、1210、1410、2110、2610、3210、又は本明細書に説明する他のコンピュータデバイス内に含めることができる。図38は、コンピュータシステムの様々な構成要素を示すが、このような詳細は本発明とは密接な関係がないので、これは、構成要素を相互接続する特定のアーキテクチャ又は方法を表すように意図しているものではないことを理解すべきである。より少ない構成要素又はより多くの構成要素を有する他のコンピュータシステムを使用することができることが認められるであろう。
図38に示すように、コンピュータシステム3800(データ処理システムの形態である)は、処理システム3820、電源3825、メモリ3830及び不揮発性メモリ3840(例えば、ハードドライブ、フラッシュメモリ、相変化メモリ(PCM)など)と結合されたバス3850を含む。バス3850は、当業技術で公知のように、様々な架橋部、コントローラ、及び/又はアダプタを通じて互いに接続することができる。処理システム3820は、メモリ30及び/又は不揮発性メモリ3840から命令を検索し、命令を実行し、上述のような作動を行うことができる。バス3850は、上述の構成要素を互いに相互接続し、任意的なドック3860、ディスプレイコントローラ及びディスプレイデバイス3870、入力/出力デバイス3880(例えば、NIC(ネットワークインタフェースカード)、カーソル制御部(例えば、マウス、タッチスクリーン、タッチパッドなど)、キーボードなど)、及び任意的な無線送受信機3890(例えば、Bluetooth(登録商標)、WiFi、赤外線など)にもそれらの構成要素を相互接続する。
図39は、一部の実施形態に使用することができる例示的なデータ処理システムを示すブロック図である。例えば、データ処理システム3900は、手持ち式コンピュータ、携帯情報端末(PDA)、モバイル電話、携帯式ゲームシステム、携帯式メディアプレーヤ、タブレット、又はモバイル電話、メディアプレーヤ、及び/又はゲームシステムを含むことができる手持ち式コンピュータデバイスとすることができる。別の例として、データ処理システム3900は、ネットワークコンピュータ又は別のデバイス内の内蔵型処理デバイスとすることができる。
一実施形態により、データ処理システム3900の例示的なアーキテクチャは、クライアントデバイス110、1210、1410、2110、2610、3210、又は本明細書に説明する他のコンピュータデバイス内に含めることができる。データ処理システム3900は、処理システム3920を含み、処理システム3920は、集積回路上の1つ又はそれよりも多くのマイクロプロセッサ及び/又はシステムを含むことができる。処理システム3920は、メモリ3910、電源3925(1つ又はそれよりも多くのバッテリを含む)、音声入力/出力部3940、ディスプレイコントローラ及びディスプレイデバイス3960、任意的な入力/出力部3950、入力デバイス3970、及び無線送受信機3930と結合される。図39に示していない付加的な構成要素をある一定の実施形態においてデータ処理システム3900の一部とすることができ、ある一定の実施形態では、図39に示すよりも少ない構成要素を使用することができることが認められるであろう。更に、図39に示していない1つ又はそれよりも多くのバスを用いて、当業技術で公知のような様々な構成要素を相互接続することができることが認められるであろう。
メモリ3910は、データ処理システム3900による実行に向けてデータ及び/又はプログラムを記憶することができる。音声入力/出力部3940は、例えば、スピーカ及びマイクを通じて音楽を再生し及び/又は電話通信機能性をもたらすマイクやスピーカを含むことができる。ディスプレイコントローラ及びディスプレイデバイス3960は、グラフィカルユーザインタフェース(GUI)を含むことができる。無線(例えば、RF)送受信機3930(例えば、WiFi送受信機、赤外線送受信機、Bluetooth(登録商標)送受信機、無線携帯電話通信送受信機など)を使用して他のデータ処理システムと通信することができる。1つ又はそれよりも多くの入力デバイス3970は、ユーザがシステムに入力を供給することを可能にする。これらの入力デバイスは、キーパッド、キーボード、タッチパネル、マルチタッチパネルなどとすることができる。任意的な他の入力/出力部3950は、ドックのためのコネクタとすることができる。
図に示す技術は、1つ又はそれよりも多くのコンピュータデバイス(例えば、クライアントデバイス、サーバなど)上に記憶及び実行されるコード及びデータを使用して実施することができる。このようなコンピュータデバイスは、持続性有形機械可読媒体(例えば、磁気ディスク、光ディスク、読取専用メモリ、フラッシュメモリデバイスのような機械可読ストレージ媒体)のような機械可読媒体、及び一時的な伝播性信号(例えば、電気的、光学的、音響的、又は搬送波、赤外線信号、デジタル信号などの他の形態の伝播信号)を使用して、コード(ソフトウエア命令で構成)及びデータを記憶及び送信する(内部的に及び/又は他のコンピュータデバイスネットワークを用いて)。更に、このようなコンピュータデバイスには、一般的に、1つ又はそれよりも多くの持続性有形機械可読媒体(コード及び/又はデータを記憶する)、ユーザ入力/出力デバイス(例えば、キーボード、タッチスクリーン、及び/又はディスプレイ)、及びネットワーク接続(一時的な伝播信号を使用してコード及び/又はデータを送信する)のような1つ又はそれよりも多くの他の構成要素に結合された1組の1つ又はそれよりも多くのプロセッサがある。1組のプロセッサ及び他の構成要素の結合は、一般的に1つ又はそれよりも多くのバス及び架橋部(バスコントローラとも呼ばれる)によるものである。従って、所定のコンピュータデバイスの持続性機械可読媒体は、一般的に、そのコンピュータデバイスの1組の1つ又はそれよりも多くのプロセッサ上の実行に向けて命令を記憶する。実施形態の1つ又はそれよりも多くの部分は、ソフトウエア、ファームウエア、及び/又はハードウエアの異なる組合せを使用して実施することができる。
オンライン通信セッション終点識別子として使用される電子メールアドレスを検証することに関して検証電子メールメッセージ内に含まれたリンクをクリックすることをユーザに求めることなく自動的に電子メールアドレスを検証することを参照して本明細書で作動を説明したが、実施形態は、そのように限定されない。例えば、一部の実施形態では、自動的に電子メールアドレスを検証することを参照して説明した作動は、他の理由で電子メールアドレスを検証する必要がある時に行われる。例えば、ユーザは、登録処理の一部として電子メールアドレスがそのユーザのものであるとしてそれを検証する必要があるサービスに向けて登録することになると考えられる。ユーザは、サービスに電子メールアドレスを供給し、電子メールアドレスを検証する必要があり、かつ電子メール検証メッセージが供給された電子メールアドレスに送られるか又は送られたことを示すメッセージを受信する(例えば、サービスのウェブページの表示を通じて)(電子メール検証メッセージは、検証リンクを含む場合もあれば、含まない場合もある)。クライアントデバイス上のアプリケーションは、検証メッセージの電子メールアドレスに対応する電子メールアカウントを自動的に検査することができ、電子メールの位置が識別された時に、自動的にメッセージを構文解析し、検証トークンを位置付け、電子メールアドレスを検証するために、電子メールアドレス及び検証トークンを含む電子メールアドレス検証メッセージをサービスに関連付けられた電子メール検証サーバに送信する。図中の流れ図はある一定の実施形態により行われる作動の特定の順番を示すが、このような順番は、例示的であることを理解すべきである(例えば、代替的な実施形態は、異なる順番で作動を提供し、ある一定の作動を結合し、ある一定の作動と重なることができるなど)。
本発明をいくつかの実施形態に関して説明したが、当業者は、本発明が説明された実施形態に限定されず、すなわち、特許請求の範囲の精神及び範囲内で修正及び変更を行って実施することができることを認識するであろう。説明は、従って、制限的なものではなく例示的なものであると見なすものとする。
110 クライアントデバイス
115 識別トークン
120 SMSネットワーク
125 キャリアSMSC
150 オンライン通信セッション登録データストア

Claims (16)

  1. オンライン通信セッションのためにクライアントコンピュータデバイスを登録する方法であって、
    クライアントコンピュータデバイスに固有である識別トークンとそのクライアントコンピュータデバイスの電話番号とを有するメッセージをSMS(ショートメッセージサービス)トランジットデバイスから受信する段階であって、前記SMSトランジットデバイスは前記クライアントコンピュータデバイスから前記識別トークンを有するSMSメッセージを受信するものであり、前記SMSトランジットデバイスは前記識別トークンを用いて前記クライアントコンピュータデバイスの前記電話番号を判断したものである、段階と、
    前記識別トークンと前記電話番号とを関連付ける段階であって、この関連付けはオンライン通信セッションネットワークにおける前記デバイスを一意に識別するためのものである、段階と、
    オンライン通信セッション登録データストア内に前記関連付けを記憶する段階と、
    を含むことを特徴とする方法。
  2. 前記SMSトランジットデバイスからの前記メッセージは、前記クライアントコンピュータデバイスの電源が投入されて前記識別トークンを有する前記SMSメッセージを該クライアントコンピュータデバイスに自動的に送信することに応答して送信されたものであることを特徴とする請求項1に記載の方法。
  3. 前記識別トークンは、プッシュ通知サービスが該クライアントコンピュータデバイスを位置付けてそこにプッシュ通知メッセージを送信することを可能にする情報を含むことを特徴とする請求項1に記載の方法。
  4. 前記クライアントコンピュータデバイスにオンライン通信セッション招待を送信する時に使用されるオンライン通信セッション招待サービスに前記識別トークンと前記電話番号の間の前記関連付けを提供する段階を更に含むことを特徴とする請求項1に記載の方法。
  5. 前記識別トークン及び前記電話番号を関連付ける段階の前に、
    前記識別トークン及び前記電話番号に基づいて署名を発生させる段階と、
    前記クライアントコンピュータデバイスへの配信に向けて前記SMSトランジットデバイスに前記署名と、前記識別トークンと、前記電話番号とを含むメッセージを送信する段階と、
    前記クライアントコンピュータデバイスから前記署名と、識別トークンと、前記電話番号とを有するメッセージを受信する段階と、
    前記クライアントコンピュータデバイスから受信した前記識別トークン及び電話番号を検証する段階と、
    を実行する段階、
    を更に含むことを特徴とする請求項1に記載の方法。
  6. 前記SMSトランジットデバイスは、SMSゲートウェイ又はSMSアグリゲータであることを特徴とする請求項1に記載の方法。
  7. オンライン通信セッションのためにクライアントコンピュータデバイスを登録する登録サーバであって、
    SMSトランジットデバイスから登録要求メッセージを受信するSMS(ショートメッセージサービス)トランジットインタフェースであって、前記SMSトランジットデバイスは複数のクライアントコンピュータデバイスからSMSメッセージを受信し、各登録要求メッセージが、前記複数のクライアントコンピュータデバイスのうちの1つのクライアントコンピュータデバイスに固有である識別トークンを含み、そのクライアントコンピュータデバイスの電話番号は前記SMSトランジットデバイスによって決定されるものである、SMSトランジットインタフェースと、
    オンライン通信セッションネットワークにおける前記クライアントコンピュータデバイスを一意に識別するために前記識別トークンと決定された電話番号を関連付け、そして、その関連付けをオンライン通信セッションネットワーク登録データストアに記憶する関連付けモジュールと、
    を含むことを特徴とする登録サーバ。
  8. 識別トークンが、クライアントコンピュータデバイスを一意的に識別し、かつプッシュ通知サービスがそのクライアントコンピュータデバイスを位置付けてそこにプッシュ通知メッセージを送信することを可能にする情報を含むことを特徴とする請求項7に記載の登録サーバ。
  9. 前記SMSトランジットデバイスから受信した各識別トークン及び決定された電話番号の対に対して署名を発生させる署名発生モジュールであって、前記SMSトランジットデバイスは前記登録サーバのSMSトランジットインタフェースから登録応答メッセージを受信したものである、署名発生モジュールと、
    前記SMSトランジットデバイスから受信された各データの対のための署名を含む登録検証要求メッセージをクライアントデバイスから受信するクライアントデバイスインタフェースと、
    前記データの対の間の関連付けの発生の前に前記署名を用いてクライアントコンピュータデバイスのためのデータの対を検証する検証モジュールと、
    を更に含むことを特徴とする請求項7に記載の登録サーバ。
  10. 前記SMSトランジットデバイスは、SMSゲートウェイ又はSMSアグリゲータであることを特徴とする請求項7に記載の登録サーバ。
  11. プロセッサによって実行された時に該プロセッサをして請求項1から請求項6のいずれか1項に記載のオンライン通信セッションのためにクライアントコンピュータデバイスを登録する方法を実行させることになる命令を提供する持続性機械可読ストレージ媒体。
  12. クライアントコンピュータデバイスに固有の識別トークンと前記クライアントコンピュータデバイスに関連付けられた決定された電話番号を含むデータの対を関連付ける登録サーバであって、オンライン通信セッション登録データストア内に前記データの対を記憶する登録サーバと、
    複数のクライアントコンピュータデバイスからSMSメッセージを受信するSMS(ショートメッセージサービス)トランジットデバイスであって、前記メッセージは前記クライアントコンピュータデバイスの識別トークンを含み、前記SMSトランジットデバイスは前記SMSメッセージから前記クライアントコンピュータデバイスの電話番号を決定し、前記SMSトランジットデバイスはさらに識別トークン及び決定された電話番号の対を前記登録サーバに送信する、SMSトランジットデバイスと
    を含ことを特徴とするオンライン通信セッション登録システム。
  13. 識別トークンが、クライアントコンピュータデバイスを一意的に識別し、かつプッシュ通知サービスがこのクライアントコンピュータデバイスを位置付けてそこにプッシュ通知メッセージを送信することを可能にする情報を含むことを特徴とする請求項12に記載のシステム。
  14. 前記登録サーバは、更に、前記SMSトランジットデバイスから受信した各識別トークン及び決定された電話番号の対に対して署名を発生させ、かつクライアントコンピュータデバイスに対する署名と、識別トークンと、電話番号とを有するメッセージを該SMSトランジットデバイスに送信することを特徴とする請求項12に記載のシステム。
  15. 前記SMSトランジットデバイスは、更に、前記クライアントコンピュータデバイスに前記登録サーバよって発生された署名とそのクライアントコンピュータデバイスに対する電話番号とを各々が有するSMSメッセージを送信することを特徴とする請求項14に記載のシステム。
  16. 前記登録サーバは、更に、署名と電話番号と識別トークンとを各々が含むメッセージをクライアントコンピュータデバイスから受信し、
    前記登録サーバは、更に、前記クライアントコンピュータデバイスから受信した前記署名と該登録サーバによって発生された前記署名とに基づいて、該クライアントコンピュータデバイスから受信した前記識別トークン及び電話番号の対を検証する、
    ことを特徴とする請求項15に記載のシステム。
JP2013503723A 2010-04-07 2010-09-23 オンライン通信セッションのためのクライアントコンピュータデバイスの登録 Active JP5596849B2 (ja)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US32186610P 2010-04-07 2010-04-07
US32186510P 2010-04-07 2010-04-07
US61/321,865 2010-04-07
US61/321,866 2010-04-07
US35181410P 2010-06-04 2010-06-04
US61/351,814 2010-06-04
US37892410P 2010-08-31 2010-08-31
US37892610P 2010-08-31 2010-08-31
US61/378,926 2010-08-31
US61/378,924 2010-08-31
US38247910P 2010-09-13 2010-09-13
US61/382,479 2010-09-13
US12/886,479 US8423058B2 (en) 2010-04-07 2010-09-20 Registering client computing devices for online communication sessions
US12/886,479 2010-09-21
PCT/US2010/050064 WO2011126503A1 (en) 2010-04-07 2010-09-23 Method and device for registering client computing devices for online communication sessions

Publications (2)

Publication Number Publication Date
JP2013525879A JP2013525879A (ja) 2013-06-20
JP5596849B2 true JP5596849B2 (ja) 2014-09-24

Family

ID=44760641

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2013503725A Active JP5791056B2 (ja) 2010-04-07 2010-09-23 クライアントコンピュータデバイス間のオンライン通信セッションの確立
JP2013503723A Active JP5596849B2 (ja) 2010-04-07 2010-09-23 オンライン通信セッションのためのクライアントコンピュータデバイスの登録
JP2013503726A Active JP5833098B2 (ja) 2010-04-07 2010-09-23 回線交換通話と映像通話間の遷移

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013503725A Active JP5791056B2 (ja) 2010-04-07 2010-09-23 クライアントコンピュータデバイス間のオンライン通信セッションの確立

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013503726A Active JP5833098B2 (ja) 2010-04-07 2010-09-23 回線交換通話と映像通話間の遷移

Country Status (13)

Country Link
US (5) US8704863B2 (ja)
EP (3) EP2556639B1 (ja)
JP (3) JP5791056B2 (ja)
KR (3) KR101436225B1 (ja)
CN (2) CN102893572B (ja)
AU (3) AU2010350744B2 (ja)
BR (3) BR112012025379A2 (ja)
DE (1) DE112010005457B4 (ja)
ES (1) ES2469852T3 (ja)
GB (1) GB2495814B (ja)
MX (3) MX2012011620A (ja)
TW (1) TWI551112B (ja)
WO (3) WO2011126506A1 (ja)

Families Citing this family (227)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003058879A1 (en) 2002-01-08 2003-07-17 Seven Networks, Inc. Secure transport for mobile communication network
US7548158B2 (en) 2005-08-08 2009-06-16 Telecommunication Systems, Inc. First responder wireless emergency alerting with automatic callback and location triggering
US10875182B2 (en) 2008-03-20 2020-12-29 Teladoc Health, Inc. Remote presence system mounted to operating room hardware
US9301191B2 (en) 2013-09-20 2016-03-29 Telecommunication Systems, Inc. Quality of service to over the top applications used with VPN
JP2011171809A (ja) * 2010-02-16 2011-09-01 Sharp Corp 通信端末、通信方法、および通信プログラム
US8670017B2 (en) 2010-03-04 2014-03-11 Intouch Technologies, Inc. Remote presence system including a cart that supports a robot face and an overhead camera
US8583149B2 (en) * 2010-04-07 2013-11-12 Apple Inc. Registering email addresses for online communication sessions
US8606306B2 (en) 2010-04-07 2013-12-10 Apple Inc. Multiple client computing device invitations for online communication sessions
US8769278B2 (en) 2010-04-07 2014-07-01 Apple Inc. Apparatus and method for efficiently and securely exchanging connection data
US8751667B2 (en) 2010-04-07 2014-06-10 Apple Inc. Supporting hands-free services via a hands-free device for IP video calls
US8917632B2 (en) * 2010-04-07 2014-12-23 Apple Inc. Different rate controller configurations for different cameras of a mobile device
US8704863B2 (en) 2010-04-07 2014-04-22 Apple Inc. Transitioning between circuit switched calls and video calls
EP2559277B1 (en) * 2010-04-15 2019-12-04 BlackBerry Limited Mobile wireless communications device having validation feature and related methods
US8934892B2 (en) * 2010-06-22 2015-01-13 Telefonaktiebolaget L M Ericsson (Publ) Methods and arrangements for direct mode communication
US8576271B2 (en) * 2010-06-25 2013-11-05 Microsoft Corporation Combining direct and routed communication in a video conference
US9622278B2 (en) 2010-10-26 2017-04-11 Kingston Digital Inc. Dual-mode wireless networked device interface and automatic configuration thereof
US8488575B2 (en) * 2010-11-18 2013-07-16 At&T Intellectual Property, I, L.P. Methods, devices, and computer program products for providing a plurality of application services via a customized private network connection
US8838709B2 (en) * 2010-12-17 2014-09-16 Silverpop Systems, Inc. Anti-phishing electronic message verification
US9323250B2 (en) 2011-01-28 2016-04-26 Intouch Technologies, Inc. Time-dependent navigation of telepresence robots
CN103459099B (zh) 2011-01-28 2015-08-26 英塔茨科技公司 与一个可移动的远程机器人相互交流
US8407776B2 (en) 2011-02-11 2013-03-26 Good Technology Corporation Method, apparatus and system for provisioning a push notification session
US8896652B2 (en) * 2011-02-28 2014-11-25 Soryn Technologies Llc System and method for real-time video communications
US20130061289A1 (en) * 2011-03-01 2013-03-07 Keith McFarland Secure Messaging
US9137191B2 (en) * 2011-03-17 2015-09-15 Microsoft Technology Licensing, Llc Messaging for notification-based clients
US20120239782A1 (en) * 2011-03-18 2012-09-20 Research In Motion Limited Method and Apparatus Pertaining to Pushing Content Via A Push Proxy Gateway
US8942384B2 (en) * 2011-03-23 2015-01-27 Plantronics, Inc. Dual-mode headset
US9210557B2 (en) * 2011-04-12 2015-12-08 Yahoo! Inc. SMS-initiated mobile registration
US9367224B2 (en) * 2011-04-29 2016-06-14 Avaya Inc. Method and apparatus for allowing drag-and-drop operations across the shared borders of adjacent touch screen-equipped devices
US9098611B2 (en) 2012-11-26 2015-08-04 Intouch Technologies, Inc. Enhanced video interaction for a user interface of a telepresence network
US10715380B2 (en) 2011-05-23 2020-07-14 Apple Inc. Setting a reminder that is triggered by a target user device
US8971924B2 (en) 2011-05-23 2015-03-03 Apple Inc. Identifying and locating users on a mobile network
US9247377B2 (en) 2011-05-23 2016-01-26 Apple Inc. Setting a reminder that is triggered by a target user device
US8731523B1 (en) 2011-06-14 2014-05-20 Urban Airship, Inc. Push notification delivery system with feedback analysis
US9531827B1 (en) 2011-06-14 2016-12-27 Urban Airship, Inc. Push notification delivery system with feedback analysis
US8554855B1 (en) 2011-06-14 2013-10-08 Urban Airship, Inc. Push notification delivery system
US9325378B2 (en) * 2011-06-14 2016-04-26 Broadcom Corporation Computing device multiple display topology detection over radio
US9935930B2 (en) 2011-09-09 2018-04-03 Kingston Digital, Inc. Private and secure communication architecture without utilizing a public cloud based routing server
US10601810B2 (en) 2011-09-09 2020-03-24 Kingston Digital, Inc. Private cloud routing server connection mechanism for use in a private communication architecture
US11683292B2 (en) 2011-09-09 2023-06-20 Kingston Digital, Inc. Private cloud routing server connection mechanism for use in a private communication architecture
US10237253B2 (en) * 2011-09-09 2019-03-19 Kingston Digital, Inc. Private cloud routing server, private network service and smart device client architecture without utilizing a public cloud based routing server
US9781087B2 (en) * 2011-09-09 2017-10-03 Kingston Digital, Inc. Private and secure communication architecture without utilizing a public cloud based routing server
US11863529B2 (en) 2011-09-09 2024-01-02 Kingston Digital, Inc. Private cloud routing server connection mechanism for use in a private communication architecture
US9203807B2 (en) * 2011-09-09 2015-12-01 Kingston Digital, Inc. Private cloud server and client architecture without utilizing a routing server
US9479344B2 (en) 2011-09-16 2016-10-25 Telecommunication Systems, Inc. Anonymous voice conversation
KR101240552B1 (ko) * 2011-09-26 2013-03-11 삼성에스디에스 주식회사 미디어 키 관리 및 상기 미디어 키를 이용한 피어-투-피어 메시지 송수신 시스템 및 방법
KR20130033869A (ko) * 2011-09-27 2013-04-04 삼성전기주식회사 홈네트워크 내에서 컨트롤러와 디바이스의 연동 방법 및 시스템
US20130111047A1 (en) * 2011-10-31 2013-05-02 Ncr Corporation Session transfer
US9998919B1 (en) * 2011-11-18 2018-06-12 Google Llc SMS spoofing protection
JP5887507B2 (ja) * 2011-11-28 2016-03-16 パナソニックIpマネジメント株式会社 通信機器間の接続確立方法、通信機器、及びサーバ装置
US8984591B2 (en) 2011-12-16 2015-03-17 Telecommunications Systems, Inc. Authentication via motion of wireless device movement
CN104221467B (zh) * 2011-12-20 2018-10-02 英特尔公司 无线通信设备及在设备间形成对等(p2p)无线连接的方法
JP5741854B2 (ja) * 2011-12-28 2015-07-01 ブラザー工業株式会社 通信制御装置、通信装置、通信制御方法、および通信制御プログラム
US9384339B2 (en) 2012-01-13 2016-07-05 Telecommunication Systems, Inc. Authenticating cloud computing enabling secure services
US9589541B2 (en) 2012-02-28 2017-03-07 Ebay Inc. Location-based display of pixel history
US8805941B2 (en) * 2012-03-06 2014-08-12 Liveperson, Inc. Occasionally-connected computing interface
US9256457B1 (en) * 2012-03-28 2016-02-09 Google Inc. Interactive response system for hosted services
US9654946B2 (en) * 2012-04-10 2017-05-16 Nokia Technologies Oy Short message service mobile originated/mobile terminated without mobile station international subscriber directory number (MSISDN) in internet protocol multimedia subsystem (IMS)
US9338153B2 (en) 2012-04-11 2016-05-10 Telecommunication Systems, Inc. Secure distribution of non-privileged authentication credentials
CN103379044A (zh) * 2012-04-26 2013-10-30 鸿富锦精密工业(深圳)有限公司 网络装置及其动态调整带宽的方法
US9459781B2 (en) 2012-05-09 2016-10-04 Apple Inc. Context-specific user interfaces for displaying animated sequences
WO2013176758A1 (en) 2012-05-22 2013-11-28 Intouch Technologies, Inc. Clinical workflows utilizing autonomous and semi-autonomous telemedicine devices
US9361021B2 (en) 2012-05-22 2016-06-07 Irobot Corporation Graphical user interfaces including touchpad driving interfaces for telemedicine devices
US8830295B2 (en) 2012-05-23 2014-09-09 Google Inc. Multimedia conference endpoint transfer system
US9071564B2 (en) * 2012-06-07 2015-06-30 Apple Inc. Data synchronization using mail and push notification services
GB2504461B (en) 2012-06-14 2014-12-03 Microsoft Corp Notification of communication events
GB201210600D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Call invites
CN103401890B (zh) * 2012-06-14 2017-03-01 微软技术许可有限责任公司 用于通信事件的通知的装置和方法
GB201210598D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Notification of communication events
GB201210596D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Notification of communication events
US20150304491A1 (en) * 2012-06-19 2015-10-22 Tribeca Mobile Innovations Inc. Method providing a graphical user interface readout of the identification of a ringback tone on the incoming and outgoing call handsets
US8830296B1 (en) 2012-06-26 2014-09-09 Google Inc. Endpoint device-specific stream control for multimedia conferencing
US20140032344A1 (en) * 2012-07-27 2014-01-30 Wal-Mart Stores, Inc. Push notification carrying receipt data
CN103748943A (zh) * 2012-08-17 2014-04-23 华为技术有限公司 用户设备配对处理方法、网络侧设备和用户设备
KR101901919B1 (ko) 2012-08-27 2018-09-27 삼성전자주식회사 휴대 단말기 및 메신저 영상 서비스 운용 방법
US20140059237A1 (en) * 2012-08-27 2014-02-27 Apple Inc. Scheduling and conducting a communication session with a remote agent
US9276917B2 (en) * 2012-09-11 2016-03-01 Blackberry Limited Systems, devices and methods for authorizing endpoints of a push pathway
US9261989B2 (en) 2012-09-13 2016-02-16 Google Inc. Interacting with radial menus for touchscreens
US9772668B1 (en) 2012-09-27 2017-09-26 Cadence Design Systems, Inc. Power shutdown with isolation logic in I/O power domain
US9020434B2 (en) * 2012-10-25 2015-04-28 Intel Corporation Wifi direct setup using out of band signaling
KR101918760B1 (ko) * 2012-10-30 2018-11-15 삼성전자주식회사 촬상 장치 및 제어 방법
US9203838B2 (en) * 2012-10-31 2015-12-01 Google Inc. Providing network access to a device associated with a user account
US9094431B2 (en) 2012-11-01 2015-07-28 Miiicasa Taiwan Inc. Verification of network device position
TWI483604B (zh) * 2012-11-01 2015-05-01 Miiicasa Taiwan Inc 終端裝置網路位置的驗證方法與系統及驗證終端裝置網路位置的連網裝置
US9634726B2 (en) 2012-11-02 2017-04-25 Google Inc. Seamless tethering setup between phone and laptop using peer-to-peer mechanisms
US9374351B1 (en) * 2012-11-02 2016-06-21 Wyse Technology L.L.C. Virtual desktop accelerator support for network gateway
US9992185B1 (en) 2012-11-02 2018-06-05 Wyse Technology L.L.C. Virtual desktop accelerator support for network gateway
US9485233B1 (en) 2012-11-02 2016-11-01 Wyse Technology L.L.C. Virtual desktop accelerator support for network gateway
US20140143434A1 (en) * 2012-11-12 2014-05-22 Calgary Scientific Inc. Framework to notify and invite users to join a collaborative session
US9277176B2 (en) * 2012-12-21 2016-03-01 Apple Inc. Offloading a video portion of a video call
EP3920514A1 (en) 2013-01-02 2021-12-08 E^NAT Technologies, LLC Systems and methods for providing a renat communications environment
US9276847B2 (en) 2013-01-02 2016-03-01 Acceleration Systems, LLC Systems and methods for providing a ReNAT virtual private network
GB2522372B (en) * 2013-01-09 2020-11-25 Qatar Foundation Storage system and method of storing and managing data
US9825932B2 (en) 2013-01-09 2017-11-21 Qatar Foundation Storage system and method of storing and managing data
US8989773B2 (en) 2013-01-29 2015-03-24 Apple Inc. Sharing location information among devices
US20140256366A1 (en) * 2013-03-06 2014-09-11 Barracuda Networks, Inc. Network Traffic Control via SMS Text Messaging
US9992021B1 (en) 2013-03-14 2018-06-05 GoTenna, Inc. System and method for private and point-to-point communication between computing devices
US9536232B2 (en) 2013-03-15 2017-01-03 Square, Inc. Transferring money using email
US9449321B2 (en) 2013-03-15 2016-09-20 Square, Inc. Transferring money using email
KR101497630B1 (ko) * 2013-04-05 2015-03-03 삼성에스디에스 주식회사 모바일 환경에서의 p2p 접속 시스템 및 단말과 이를 이용한 p2p 접속 방법
GB2505267B (en) * 2013-04-10 2015-12-23 Realvnc Ltd Methods and apparatus for remote connection
KR20140137616A (ko) * 2013-05-23 2014-12-03 삼성전자주식회사 다자간 대화를 제어하는 휴대 단말 및 방법
US10021180B2 (en) 2013-06-04 2018-07-10 Kingston Digital, Inc. Universal environment extender
US10237732B2 (en) 2013-06-12 2019-03-19 Telecom Italia S.P.A. Mobile device authentication in heterogeneous communication networks scenario
US9525991B2 (en) 2013-06-25 2016-12-20 Actiontec Electronics, Inc. Systems and methods for sharing digital information between mobile devices of friends and family using embedded devices
US8838836B1 (en) 2013-06-25 2014-09-16 Actiontec Electronics, Inc. Systems and methods for sharing digital information between mobile devices of friends and family using multiple LAN-based embedded devices
US9113036B2 (en) * 2013-07-17 2015-08-18 Ebay Inc. Methods, systems, and apparatus for providing video communications
US10547651B2 (en) * 2013-07-26 2020-01-28 Apple Inc. System and method for providing telephony services over WiFi for non-cellular devices
US9615222B2 (en) * 2013-08-05 2017-04-04 GTA Wireless Direct Ltd. System and method for simplifying mobile device account creation and verification
CN103414565B (zh) * 2013-08-08 2016-12-28 天地融科技股份有限公司 输出方法及安全设备、响应方法及系统、执行方法及系统
KR20150019113A (ko) * 2013-08-12 2015-02-25 삼성전자주식회사 디스플레이 장치, 통신 단말기 및 이를 이용한 음성 통화 방법
US9888210B2 (en) 2013-08-19 2018-02-06 Microsoft Technology Licensing, Llc Seamless call transitions with pinpoint call escalation
US9961608B2 (en) * 2013-08-19 2018-05-01 Microsoft Technology Licensing, Llc Seamless call transitions
US9681095B2 (en) 2013-08-19 2017-06-13 Microsoft Technology Licensing, Llc Seamless call transitions with pre-escalation participation confirmation
CN104427287B (zh) * 2013-08-20 2018-01-02 联想(北京)有限公司 数据处理方法及设备
CN104469243A (zh) * 2013-09-13 2015-03-25 联想(北京)有限公司 通信方法和电子设备
KR20150032011A (ko) * 2013-09-17 2015-03-25 엘지전자 주식회사 전자 기기 및 그 제어 방법
CN104518949A (zh) * 2013-09-27 2015-04-15 北京新媒传信科技有限公司 消息提醒方法和系统
US10097694B1 (en) 2013-09-27 2018-10-09 Google Llc Method and system for moving phone call participation between carrier and data networks
US9378491B1 (en) 2013-10-15 2016-06-28 Square, Inc. Payment transfer by sending E-mail
EP3080994A4 (en) * 2013-12-09 2017-07-26 LG Electronics Inc. A receiver and a method for processing a broadcast signal including a broadcast content and an application related to the broadcast content
US9740777B2 (en) 2013-12-20 2017-08-22 Ebay Inc. Systems and methods for saving and presenting a state of a communication session
KR101455365B1 (ko) * 2013-12-24 2014-10-27 주식회사 케이티 영상 통화 데이터를 전송하는 장치 및 방법
USD753145S1 (en) * 2013-12-30 2016-04-05 Samsung Electronics Co., Ltd. Display screen or portion thereof with icon
US9210129B2 (en) 2014-02-06 2015-12-08 Acceleration Systems, LLC Systems and methods for providing a multiple secure link architecture
US9549028B2 (en) 2014-02-18 2017-01-17 Ebay Inc. Systems and methods for automatically saving a state of a communication session
US9955323B2 (en) * 2014-03-10 2018-04-24 Tracfone Wireless, Inc. System and method for modifying settings on wireless devices
US9265079B2 (en) * 2014-03-13 2016-02-16 Microsoft Technology Licensing, Llc Authentication and pairing of devices using a machine readable code
US10284813B2 (en) 2014-03-17 2019-05-07 Microsoft Technology Licensing, Llc Automatic camera selection
US10178346B2 (en) 2014-03-17 2019-01-08 Microsoft Technology Licensing, Llc Highlighting unread messages
US9749585B2 (en) 2014-03-17 2017-08-29 Microsoft Technology Licensing, Llc Highlighting unread messages
US9888207B2 (en) * 2014-03-17 2018-02-06 Microsoft Technology Licensing, Llc Automatic camera selection
JP6287401B2 (ja) * 2014-03-18 2018-03-07 富士ゼロックス株式会社 中継装置、システム及びプログラム
US20150281461A1 (en) * 2014-03-28 2015-10-01 International Business Machines Corporation Dynamic notification during a teleconference
US8917311B1 (en) * 2014-03-31 2014-12-23 Apple Inc. Establishing a connection for a video call
USD769274S1 (en) * 2014-04-21 2016-10-18 Square, Inc. Display screen with a graphical user interface
USD763882S1 (en) * 2014-04-25 2016-08-16 Tencent Technology (Shenzhen) Company Limited Portion of a display screen with animated graphical user interface
USD770488S1 (en) * 2014-04-30 2016-11-01 Tencent Technology (Shenzhen) Company Limited Portion of a display screen with graphical user interface
USD770487S1 (en) * 2014-04-30 2016-11-01 Tencent Technology (Shenzhen) Company Limited Display screen or portion thereof with graphical user interface
JP6372156B2 (ja) * 2014-05-13 2018-08-15 株式会社リコー 接続制御システム、通信端末、通信システム、プログラム、及び接続制御方法
US11017384B2 (en) * 2014-05-29 2021-05-25 Apple Inc. Apparatuses and methods for using a primary user device to provision credentials onto a secondary user device
US20150350339A1 (en) * 2014-05-30 2015-12-03 Apple Inc. System and Method for Transferring a Call
US9712623B2 (en) 2014-05-30 2017-07-18 Apple Inc. Answering a call with client through a host
US10382378B2 (en) 2014-05-31 2019-08-13 Apple Inc. Live location sharing
CN104090537A (zh) * 2014-06-10 2014-10-08 东莞市麦蒂科技有限公司 一种用于工业生产线的无线基站装置
WO2015200889A1 (en) 2014-06-27 2015-12-30 Apple Inc. Electronic device with rotatable input mechanism for navigating calendar application
US9473737B1 (en) * 2014-07-03 2016-10-18 Securus Technologies, Inc. On-demand video communication for controlled-environment facility residents
TWI647608B (zh) 2014-07-21 2019-01-11 美商蘋果公司 遠端使用者介面
WO2016036541A2 (en) 2014-09-02 2016-03-10 Apple Inc. Phone user interface
US9967345B2 (en) * 2014-10-03 2018-05-08 Mobitv, Inc. Split screen teleconferencing
US10348951B2 (en) 2014-10-15 2019-07-09 Mobitv, Inc. Camera capture for connected devices
US20160255127A1 (en) * 2015-02-26 2016-09-01 Microsoft Technology Licensing, Llc Directing Meeting Entrants Based On Meeting Role
US9197745B1 (en) 2015-03-25 2015-11-24 Captioncall, Llc Communication device and related methods for automatically connecting to a captioning communication service to receive text captions following an interruption during a call
US9980304B2 (en) 2015-04-03 2018-05-22 Google Llc Adaptive on-demand tethering
WO2016171277A1 (ja) * 2015-04-22 2016-10-27 浩 稲毛 情報処理システム
US10237236B2 (en) * 2015-06-25 2019-03-19 Microsoft Technology Licensing, Llc Media Session
CN110855807A (zh) * 2015-06-30 2020-02-28 华为终端有限公司 一种添加联系人的方法及设备
CN106470215B (zh) * 2015-08-14 2020-10-09 腾讯科技(深圳)有限公司 用户终端、服务器、未关注场景的消息推送系统及方法
US10127532B1 (en) 2015-08-19 2018-11-13 Square, Inc. Customized transaction flow
US10410194B1 (en) 2015-08-19 2019-09-10 Square, Inc. Customized tipping flow
CN106470149B (zh) * 2015-08-20 2020-04-21 腾讯科技(深圳)有限公司 消息发送方法及装置
GB2541661B (en) * 2015-08-24 2021-10-27 Metaswitch Networks Ltd Data communications
CN105208014B (zh) * 2015-08-31 2018-09-25 腾讯科技(深圳)有限公司 一种语音通信处理方法、电子设备及系统
US10075482B2 (en) * 2015-09-25 2018-09-11 International Business Machines Corporation Multiplexed, multimodal conferencing
KR101654479B1 (ko) * 2015-09-25 2016-09-05 라인 가부시키가이샤 효율적인 호 처리를 위한 시스템 및 방법
KR102440061B1 (ko) 2015-10-29 2022-09-05 삼성전자주식회사 전자 장치 및 전자 장치에서 소프트웨어를 설정하는 방법
CN105430654B (zh) * 2015-10-30 2018-12-11 小米科技有限责任公司 号码的归属信息的识别方法及装置
JP6636313B2 (ja) * 2015-12-18 2020-01-29 エヌ・ティ・ティ・コミュニケーションズ株式会社 管理サーバ、コミュニケーションシステム、制御方法、通話制御情報提供方法及びコンピュータプログラム
US10156842B2 (en) 2015-12-31 2018-12-18 General Electric Company Device enrollment in a cloud service using an authenticated application
US10044705B2 (en) * 2016-01-20 2018-08-07 Facebook, Inc. Session management for internet of things devices
US10404758B2 (en) * 2016-02-26 2019-09-03 Time Warner Cable Enterprises Llc Apparatus and methods for centralized message exchange in a user premises device
US10218701B2 (en) * 2016-03-09 2019-02-26 Avaya Inc. System and method for securing account access by verifying account with email provider
US10530731B1 (en) * 2016-03-28 2020-01-07 Snap Inc. Systems and methods for chat with audio and video elements
US10148759B2 (en) 2016-04-04 2018-12-04 Gogo Llc Presence-based network authentication
CN106027494A (zh) * 2016-04-29 2016-10-12 深圳市永兴元科技有限公司 权限管理方法、服务器及系统
DK201770423A1 (en) 2016-06-11 2018-01-15 Apple Inc Activity and workout updates
US10511569B2 (en) * 2016-08-15 2019-12-17 Facebook, Inc. Techniques for providing multi-modal multi-party calling
US10581936B2 (en) * 2016-09-15 2020-03-03 Ricoh Company, Ltd. Information processing terminal, management system, communication system, information processing method, and recording medium
US10860199B2 (en) 2016-09-23 2020-12-08 Apple Inc. Dynamically adjusting touch hysteresis based on contextual data
US10686886B2 (en) * 2016-10-19 2020-06-16 Mirosoft Technology Licensing, LLC Establishing secure sessions for stateful cloud services
US10873511B2 (en) * 2016-11-22 2020-12-22 Airwatch Llc Management service migration for managed devices
US10630682B1 (en) * 2016-11-23 2020-04-21 Amazon Technologies, Inc. Lightweight authentication protocol using device tokens
US10129223B1 (en) 2016-11-23 2018-11-13 Amazon Technologies, Inc. Lightweight encrypted communication protocol
EP3349410B1 (en) * 2017-01-11 2021-03-10 Tata Consultancy Services Limited Method and system for executing a transaction request using a communication channel
CN108512876B (zh) * 2017-02-27 2020-11-10 腾讯科技(深圳)有限公司 数据的推送方法及装置
US11038870B2 (en) 2017-03-09 2021-06-15 Microsoft Technology Licensing, Llc Quick response (QR) code for secure provisioning
US11862302B2 (en) 2017-04-24 2024-01-02 Teladoc Health, Inc. Automated transcription and documentation of tele-health encounters
CN112261166A (zh) * 2017-07-17 2021-01-22 华为技术有限公司 一种别名管理方法及设备
US10483007B2 (en) 2017-07-25 2019-11-19 Intouch Technologies, Inc. Modular telehealth cart with thermal imaging and touch screen user interface
CN107277422B (zh) * 2017-07-27 2020-07-03 北京小米移动软件有限公司 视频通话方法、装置及系统
US11636944B2 (en) 2017-08-25 2023-04-25 Teladoc Health, Inc. Connectivity infrastructure for a telehealth platform
US10372298B2 (en) 2017-09-29 2019-08-06 Apple Inc. User interface for multi-user communication session
KR101965307B1 (ko) * 2017-10-31 2019-04-03 삼성에스디에스 주식회사 메시지 처리 장치
US10693921B2 (en) * 2017-11-03 2020-06-23 Futurewei Technologies, Inc. System and method for distributed mobile network
AU2017443348B2 (en) * 2017-12-22 2022-01-27 Motorola Solutions, Inc. System and method for crowd-oriented application synchronization
CN108255971A (zh) * 2017-12-26 2018-07-06 北京百度网讯科技有限公司 数据中心的数据处理方法及装置、计算机设备及可读介质
CN108600037B (zh) * 2018-01-22 2021-12-03 来邦科技股份公司 一种设备在线识别方法、电子设备、系统和存储介质
CN110278401A (zh) * 2018-03-16 2019-09-24 优酷网络技术(北京)有限公司 视频通话方法及装置
US10617299B2 (en) 2018-04-27 2020-04-14 Intouch Technologies, Inc. Telehealth cart that supports a removable tablet with seamless audio/video switching
CN111367603A (zh) * 2018-05-07 2020-07-03 苹果公司 多参与者实时通信用户界面
DK180130B1 (da) 2018-05-07 2020-06-02 Apple Inc. Multi-participant live communication user interface
US11431767B2 (en) 2018-05-29 2022-08-30 Sorenson Ip Holdings, Llc Changing a communication session
US10944562B2 (en) 2018-06-03 2021-03-09 Apple Inc. Authenticating a messaging program session
US11128792B2 (en) 2018-09-28 2021-09-21 Apple Inc. Capturing and displaying images with multiple focal planes
US11805158B2 (en) * 2019-03-20 2023-10-31 Zoom Video Communications, Inc. Method and system for elevating a phone call into a video conferencing session
US11233784B2 (en) * 2019-05-06 2022-01-25 Blackberry Limited Systems and methods for managing access to shared network resources
WO2020243646A1 (en) * 2019-05-31 2020-12-03 Apple Inc. Registering and associating multiple user identifiers for a service on a device
WO2021030040A1 (en) * 2019-08-09 2021-02-18 Critical Ideas, Inc. Dba Chipper Authentication via ussd
US11158028B1 (en) * 2019-10-28 2021-10-26 Snap Inc. Mirrored selfie
US10757574B1 (en) * 2019-12-26 2020-08-25 Capital One Services, Llc Multi-factor authentication providing a credential via a contactless card for secure messaging
US11079913B1 (en) 2020-05-11 2021-08-03 Apple Inc. User interface for status indicators
KR20220022364A (ko) 2020-08-18 2022-02-25 (주)다드림아이앤에스 전화번호방식 음성호와 웹방식 영상호를 한 개의 영상통화호로 통합하는 시스템 및 방법
CN112101590A (zh) * 2020-09-07 2020-12-18 中国人民解放军海军工程大学 一种基于混合对等网的船舶远程维修信息管理系统
US11172003B1 (en) * 2020-09-17 2021-11-09 Accenture Global Solutions Limited System and method to control a media client using a message service
CN112751837A (zh) * 2020-12-25 2021-05-04 苏州星舟知识产权代理有限公司 一种开放式同步在线会议系统
USD965004S1 (en) 2021-01-11 2022-09-27 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
KR20220102068A (ko) * 2021-01-12 2022-07-19 삼성전자주식회사 에지 컴퓨팅을 지원하는 무선 통신 시스템에서 통신 방법 및 장치
US11477325B2 (en) 2021-01-28 2022-10-18 Zoom Video Communications, Inc. Elevating a telephone call to a virtual meeting
US11431891B2 (en) 2021-01-31 2022-08-30 Apple Inc. User interfaces for wide angle video conference
US20220337581A1 (en) * 2021-04-15 2022-10-20 Capital One Services, Llc Authenticated messaging session with contactless card authentication
US11907605B2 (en) 2021-05-15 2024-02-20 Apple Inc. Shared-content session user interfaces
US11893214B2 (en) 2021-05-15 2024-02-06 Apple Inc. Real-time communication user interface
US11449188B1 (en) 2021-05-15 2022-09-20 Apple Inc. Shared-content session user interfaces
KR20230027398A (ko) 2021-08-19 2023-02-28 (주)다드림아이앤에스 영상통화서버 시스템, 영상통화 시스템 및 방법
US11812135B2 (en) 2021-09-24 2023-11-07 Apple Inc. Wide angle video conference
KR102493972B1 (ko) 2022-01-13 2023-02-07 (주)다드림아이앤에스 음성 및 영상통화 관리서버 시스템
EP4231617A1 (en) * 2022-02-22 2023-08-23 Deutsche Telekom AG Method for managing and/or signaling at least one voip call and a communication system
JP7232366B1 (ja) 2022-03-29 2023-03-02 Kddi株式会社 情報処理装置、情報処理システム及び情報処理方法

Family Cites Families (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US378926A (en) 1888-03-06 Car-truck
US321865A (en) 1885-07-07 teg-gart
US321866A (en) 1885-07-07 John v
US351814A (en) 1886-11-02 Safety water-gage
US321832A (en) 1885-07-07 Wheel-felly
US382479A (en) 1888-05-08 lecouteux
US378924A (ja) 1887-11-03 1888-03-06
JPH0260363A (ja) * 1988-08-26 1990-02-28 Fujitsu Ltd 通信端末への通話モード設定方式
US5371534A (en) * 1992-07-23 1994-12-06 At&T Corp. ISDN-based system for making a video call
US5410543A (en) 1993-01-04 1995-04-25 Apple Computer, Inc. Method for connecting a mobile computer to a computer network by using an address server
US7185054B1 (en) * 1993-10-01 2007-02-27 Collaboration Properties, Inc. Participant display and selection in video conference calls
JP3605263B2 (ja) 1997-06-27 2004-12-22 株式会社日立製作所 電子会議システム
US6760746B1 (en) * 1999-09-01 2004-07-06 Eric Schneider Method, product, and apparatus for processing a data request
US20010025273A1 (en) * 1997-12-22 2001-09-27 Jay Walker Parallel data network billing and collection system
GB2338371A (en) 1998-06-09 1999-12-15 Ibm Voice processing system
US7188180B2 (en) 1998-10-30 2007-03-06 Vimetx, Inc. Method for establishing secure communication link between computers of virtual private network
US7418504B2 (en) 1998-10-30 2008-08-26 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
US6502135B1 (en) 1998-10-30 2002-12-31 Science Applications International Corporation Agile network protocol for secure communications with assured system availability
US6684248B1 (en) 1999-05-03 2004-01-27 Certifiedmail.Com, Inc. Method of transferring data from a sender to a recipient during which a unique account for the recipient is automatically created if the account does not previously exist
AU6610300A (en) 1999-07-28 2001-02-19 Terrance A. Tomkow System and method for verifying delivery and integrity of electronic messages
MXPA02007850A (es) * 2000-02-14 2004-09-10 Motorola Inc Aparato para comunicacion de mensajes de conversacion y metodo para el mismo.
US8868769B2 (en) 2000-03-14 2014-10-21 Noah Prywes System and method for obtaining responses to tasks
US8081969B2 (en) 2000-10-11 2011-12-20 Gogo Llc System for creating an aircraft-based internet protocol subnet in an airborne wireless cellular network
GB2370188A (en) 2000-11-01 2002-06-19 Orange Personal Comm Serv Ltd Mixed-media telecommunication call set-up
US7711002B2 (en) * 2001-06-26 2010-05-04 Link Us All, Llc Transcoding SMS-based streamed messages to SIP-based IP signals in wireless and wireline networks
US8195940B2 (en) 2002-04-05 2012-06-05 Qualcomm Incorporated Key updates in a mobile wireless system
US6879828B2 (en) 2002-09-09 2005-04-12 Nokia Corporation Unbroken primary connection switching between communications services
WO2004063843A2 (en) 2003-01-15 2004-07-29 Matsushita Electric Industrial Co., Ltd. PEER-TO-PEER (P2P) CONNECTION DESPITE NETWORK ADDRESS TRANSLATOR (NATs) AT BOTH ENDS
JP3990297B2 (ja) * 2003-01-29 2007-10-10 株式会社日立製作所 応答処理制御方法
US7933263B1 (en) 2003-02-25 2011-04-26 Jds Uniphase Corporation Analysis of VoIP data using incomplete call information
US20040240650A1 (en) 2003-05-05 2004-12-02 Microsoft Corporation Real-time communications architecture and methods for use with a personal computer system
WO2004107135A2 (en) * 2003-05-28 2004-12-09 Softek Software International, Inc. Systems and methods for validating electronic communications
DE60312332T2 (de) 2003-09-30 2008-01-10 Siemens Ag Anrufsprungsystem, verfahren und vorrichtung
CN100502551C (zh) * 2003-10-03 2009-06-17 比特福恩公司 用于注册移动设备和管理移动设备的网络和方法
US7603594B2 (en) 2003-11-19 2009-10-13 National Institute Of Information And Communications Technology, Incorporated Administrative Agency Wireless communications system
US7620690B1 (en) * 2003-11-20 2009-11-17 Lashback, LLC Privacy control system for electronic communication
JP4191016B2 (ja) * 2003-11-21 2008-12-03 日本電気株式会社 電話端末の通話モード切替方式
US8989737B2 (en) * 2004-03-10 2015-03-24 Nokia Corporation System and method for establishing a session initiation protocol communication session with a mobile terminal
US7656870B2 (en) * 2004-06-29 2010-02-02 Damaka, Inc. System and method for peer-to-peer hybrid communications
TWM264774U (en) 2004-07-08 2005-05-11 Celltrend Internat Co Ltd Combination of bluetooth earphone and bluetooth vehicle carrier
CN100438688C (zh) * 2004-08-27 2008-11-26 华为技术有限公司 会话初始化协议用户接入移动通信网络的系统及其方法
US20060068758A1 (en) * 2004-09-30 2006-03-30 Abhay Dharmadhikari Securing local and intra-platform links
WO2006064170A1 (en) 2004-12-14 2006-06-22 Nokia Corporation Improvements in or relating to electronic headset devices and associated electronic devices
FR2880449B1 (fr) * 2004-12-31 2007-04-20 Charles Tuil Procede de transaction electronique par messagerie mobile
US8639629B1 (en) * 2005-02-02 2014-01-28 Nexus Payments, LLC System and method for accessing an online user account registry via a thin-client unique user code
US20070002829A1 (en) 2005-06-17 2007-01-04 Su-Yuan Chang Internet protocol voice logger
US8065424B2 (en) * 2005-07-15 2011-11-22 University Of Utah Research Foundation System and method for data transport
JP4156615B2 (ja) * 2005-08-22 2008-09-24 ソニー・エリクソン・モバイルコミュニケーションズ株式会社 携帯電話機、通信端末、通話方法及び通話プログラム
CN100388685C (zh) 2005-08-30 2008-05-14 华为技术有限公司 Ip多媒体子系统中ims注册触发实现方法
US8300636B2 (en) * 2005-09-16 2012-10-30 Acme Products, Inc. Method and system of routing media packets in a network device
US7684797B2 (en) 2005-10-25 2010-03-23 Qualcomm Incorporated Accessing telecommunication devices using mobile telephone numbers
JP2007124486A (ja) * 2005-10-31 2007-05-17 Toshiba Corp 通信制御方法
US8170189B2 (en) * 2005-11-02 2012-05-01 Qwest Communications International Inc. Cross-platform message notification
US8532095B2 (en) 2005-11-18 2013-09-10 Cisco Technology, Inc. Techniques configuring customer equipment for network operations from provider edge
TWI301025B (en) 2005-12-28 2008-09-11 Ind Tech Res Inst Method for transmitting real-time streaming data and apparatus using the same
EP1819124A1 (en) 2006-02-08 2007-08-15 BRITISH TELECOMMUNICATIONS public limited company Automated user registration
WO2007125530A2 (en) * 2006-04-27 2007-11-08 D.S.P. Group Ltd. Routing path optimization between si p endpoints according to nat topology
EP2041913A4 (en) * 2006-06-16 2011-03-23 Fmt Worldwide Pty Ltd AUTHENTICATION SYSTEM AND PROCESS
CN101094171B (zh) 2006-06-22 2011-02-16 华为技术有限公司 实现媒体流交互方法和系统及媒体网关控制器和媒体网关
US8437757B2 (en) 2006-06-30 2013-05-07 Nokia Corporation Systems for providing peer-to-peer communications
JP2008060734A (ja) * 2006-08-29 2008-03-13 Toshiba Corp 携帯端末
US7831522B1 (en) * 2006-09-28 2010-11-09 Symantec Corporation Evaluating relying parties
JP2008097263A (ja) * 2006-10-11 2008-04-24 Nec Corp 認証システム、認証方法およびサービス提供サーバ
US20080137642A1 (en) * 2006-12-08 2008-06-12 Microsoft Corporation Mobile device call to computing device
JP4894532B2 (ja) * 2007-01-22 2012-03-14 ソニー株式会社 通信装置、通信システム、通信方法及び通信プログラム
CN101242634B (zh) 2007-02-07 2012-05-23 华为技术有限公司 一种业务提供系统、装置和方法
GB2447059B (en) 2007-02-28 2009-09-30 Secoren Ltd Authorisation system
JP2008219245A (ja) * 2007-03-01 2008-09-18 Mitsubishi Electric Corp 通信端末装置
US7620413B2 (en) 2007-03-22 2009-11-17 Unication Co., Ltd. Method for implementing push-to-talk over SIP and multicast RTP related system
US20080254835A1 (en) 2007-04-10 2008-10-16 Sony Ericsson Mobile Communications Ab System and method for a portable communication device to ...
US20080301055A1 (en) * 2007-05-31 2008-12-04 Microsoft Corporation unified platform for reputation and secure transactions
JP4886612B2 (ja) * 2007-06-12 2012-02-29 パナソニック株式会社 Ip通信装置およびip通信方法ならびに呼制御サーバ
KR101418357B1 (ko) 2007-07-09 2014-07-14 삼성전자주식회사 이동통신 시스템에서 단말간 피어투피어 접속방법 및 장치
EP2071809A1 (en) 2007-12-13 2009-06-17 Alcatel Lucent Method of establishing a connection in a peer-to-peer network with network address translation (NAT)
US20090193507A1 (en) 2008-01-28 2009-07-30 Wael Ibrahim Authentication messaging service
EP2244547A4 (en) 2008-02-13 2018-08-29 Picker Technologies LLC Mobile system for improving the picking and preliminary processing of apples, citrus, stone fruit and like objects
US8200819B2 (en) 2008-03-14 2012-06-12 Industrial Technology Research Institute Method and apparatuses for network society associating
US8776176B2 (en) * 2008-05-16 2014-07-08 Oracle America, Inc. Multi-factor password-authenticated key exchange
JP2010009407A (ja) * 2008-06-27 2010-01-14 Sony Corp 情報処理装置、およびデータ処理方法、並びにプログラム
DE102008033849A1 (de) 2008-07-19 2010-01-21 Oerlikon Textile Gmbh & Co. Kg Verfahren zum Betreiben einer Spindel einer Doppeldrahtzwirn- oder Kabliermaschine
US8675833B2 (en) 2008-10-22 2014-03-18 CentruryLink Intellectual Property LLC System and method for managing messages
WO2010090664A1 (en) 2009-02-05 2010-08-12 Wwpass Corporation Centralized authentication system with safe private data storage and method
US8214630B2 (en) 2009-02-24 2012-07-03 General Instrument Corporation Method and apparatus for controlling enablement of JTAG interface
EP2401865B1 (en) 2009-02-27 2020-07-15 Foundation Productions, Llc Headset-based telecommunications platform
US8555069B2 (en) 2009-03-06 2013-10-08 Microsoft Corporation Fast-reconnection of negotiable authentication network clients
JP5407482B2 (ja) * 2009-03-27 2014-02-05 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
US8261329B2 (en) * 2009-05-27 2012-09-04 International Business Machines Corporation Trust and identity in secure calendar sharing collaboration
US8495151B2 (en) * 2009-06-05 2013-07-23 Chandra Bodapati Methods and systems for determining email addresses
US8621203B2 (en) 2009-06-22 2013-12-31 Nokia Corporation Method and apparatus for authenticating a mobile device
US8285317B2 (en) 2009-10-16 2012-10-09 Sony Mobile Communications Ab Proactive application communications
CA2722060A1 (en) 2009-11-20 2011-05-20 Corey E. Thurlow Sickle assembly
US8917632B2 (en) * 2010-04-07 2014-12-23 Apple Inc. Different rate controller configurations for different cameras of a mobile device
US8704863B2 (en) 2010-04-07 2014-04-22 Apple Inc. Transitioning between circuit switched calls and video calls
US8730294B2 (en) * 2010-10-05 2014-05-20 At&T Intellectual Property I, Lp Internet protocol television audio and video calling
US8880107B2 (en) 2011-01-28 2014-11-04 Protext Mobility, Inc. Systems and methods for monitoring communications
US9148397B2 (en) 2011-12-19 2015-09-29 Facebook, Inc. Messaging object generation for synchronous conversation threads

Also Published As

Publication number Publication date
MX2012011620A (es) 2012-11-30
US20110252146A1 (en) 2011-10-13
MX2012011624A (es) 2012-11-30
JP2013525879A (ja) 2013-06-20
TWI551112B (zh) 2016-09-21
US8725880B2 (en) 2014-05-13
KR101436225B1 (ko) 2014-09-01
US20110250909A1 (en) 2011-10-13
US8948797B2 (en) 2015-02-03
EP2556640B1 (en) 2015-10-21
WO2011126505A1 (en) 2011-10-13
JP2013529410A (ja) 2013-07-18
US9577976B2 (en) 2017-02-21
AU2010350741B2 (en) 2014-10-09
US8423058B2 (en) 2013-04-16
BR112012025358B1 (pt) 2022-11-29
KR101453640B1 (ko) 2014-10-22
BR112012025379A2 (pt) 2016-06-28
EP2540052B1 (en) 2014-03-05
JP5791056B2 (ja) 2015-10-07
GB2495814A (en) 2013-04-24
BR112012025382B1 (pt) 2021-04-27
AU2010350743B2 (en) 2014-10-30
AU2010350744B2 (en) 2014-12-04
KR101435309B1 (ko) 2014-08-27
DE112010005457T5 (de) 2013-01-17
AU2010350741A1 (en) 2012-10-18
TW201141190A (en) 2011-11-16
US20150180822A1 (en) 2015-06-25
BR112012025382A2 (pt) 2016-06-28
JP5833098B2 (ja) 2015-12-16
KR20130020786A (ko) 2013-02-28
ES2469852T3 (es) 2014-06-20
GB2495814B (en) 2018-09-12
MX2012011622A (es) 2012-11-30
EP2556639A1 (en) 2013-02-13
GB201217440D0 (en) 2012-11-14
DE112010005457B4 (de) 2018-10-04
AU2010350743A1 (en) 2012-11-01
WO2011126503A1 (en) 2011-10-13
US20110249079A1 (en) 2011-10-13
KR20130018288A (ko) 2013-02-20
CN102893572A (zh) 2013-01-23
KR20130020785A (ko) 2013-02-28
CN102859962B (zh) 2016-05-25
CN102859962A (zh) 2013-01-02
US8704863B2 (en) 2014-04-22
EP2556640A1 (en) 2013-02-13
EP2556639B1 (en) 2021-03-03
AU2010350744A1 (en) 2012-11-01
WO2011126506A1 (en) 2011-10-13
CN102893572B (zh) 2015-09-16
EP2540052A1 (en) 2013-01-02
US20130231146A1 (en) 2013-09-05
JP2013524683A (ja) 2013-06-17
BR112012025358A2 (pt) 2021-08-17

Similar Documents

Publication Publication Date Title
JP5596849B2 (ja) オンライン通信セッションのためのクライアントコンピュータデバイスの登録
US8751667B2 (en) Supporting hands-free services via a hands-free device for IP video calls
US8606306B2 (en) Multiple client computing device invitations for online communication sessions
US8583149B2 (en) Registering email addresses for online communication sessions

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140728

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140807

R150 Certificate of patent or registration of utility model

Ref document number: 5596849

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250