CN113132344B - 广播和管理呼叫参与 - Google Patents
广播和管理呼叫参与 Download PDFInfo
- Publication number
- CN113132344B CN113132344B CN202011633210.6A CN202011633210A CN113132344B CN 113132344 B CN113132344 B CN 113132344B CN 202011633210 A CN202011633210 A CN 202011633210A CN 113132344 B CN113132344 B CN 113132344B
- Authority
- CN
- China
- Prior art keywords
- user
- video call
- call
- indication
- data
- 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
Links
- 238000004891 communication Methods 0.000 claims abstract description 211
- 238000000034 method Methods 0.000 claims description 40
- 230000000977 initiatory effect Effects 0.000 claims description 37
- 238000003860 storage Methods 0.000 claims description 26
- 230000015654 memory Effects 0.000 description 51
- 238000012545 processing Methods 0.000 description 45
- 230000004044 response Effects 0.000 description 41
- 230000006855 networking Effects 0.000 description 40
- 230000000875 corresponding effect Effects 0.000 description 35
- 230000000694 effects Effects 0.000 description 23
- 238000007726 management method Methods 0.000 description 19
- 101150054987 ChAT gene Proteins 0.000 description 17
- 101100203187 Mus musculus Sh2d3c gene Proteins 0.000 description 17
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 8
- 230000003138 coordinated effect Effects 0.000 description 7
- 238000003491 array Methods 0.000 description 5
- 238000013475 authorization Methods 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000005304 joining Methods 0.000 description 5
- 230000005291 magnetic effect Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 229920000642 polymer Polymers 0.000 description 4
- 230000008685 targeting Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 238000013480 data collection Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- TVYLLZQTGLZFBW-ZBFHGGJFSA-N (R,R)-tramadol Chemical compound COC1=CC=CC([C@]2(O)[C@H](CCCC2)CN(C)C)=C1 TVYLLZQTGLZFBW-ZBFHGGJFSA-N 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 235000021443 coca cola Nutrition 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000003340 mental effect Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000012015 optical character recognition Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 210000001525 retina Anatomy 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/141—Systems for two-way working between two video terminals, e.g. videophone
- H04N7/147—Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04817—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/10—Multimedia information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/52—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1083—In-session procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/401—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4788—Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/632—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/141—Systems for two-way working between two video terminals, e.g. videophone
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
- H04N7/152—Multipoint control units therefor
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Telephonic Communication Services (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及广播和管理呼叫参与。本申请描述了一种新的协议,该协议用于通过诸如社交媒体平台的数字通信服务来广播和管理虚拟呼叫的参与。该协议允许向其他用户账户广播用户账户之间虚拟对话的指示。在一些实施例中,指示可以包括加入虚拟对话的邀请。该协议允许通过实时通信(RTC)信道在多个设备之间广播和管理虚拟对话。该协议包括交换消息以合作地建立对话、向至少一个非参与用户广播对话的指示和/或管理对话的一组参与者。
Description
背景
随着技术变得越来越容易获得,用户可以选择在数字平台上彼此交互,以及记录记忆。一些平台允许用户参与视频呼叫(call)和/或共享记忆记录,如状态帖子、图片或视频。一些平台使用户能够在发布的记忆中标记其他用户,这表明了其他用户在帖子中的存在或可能对其他用户感兴趣。帖子的评论线程(comment thread)可以让用户看到平台用户之间的虚拟类型的对话(conversation)。
附图简述
图1A描绘了包括群组呼叫的广播指示(broadcast indication)的第一示例性用户界面。
图1B描绘了示例性视频呼叫界面。
图1C描绘了用于接收群组呼叫的广播指示的示例性用户界面。
图1D描绘了包括群组呼叫的广播指示的第二示例性用户界面。
图2A是描述适用于各种实施例的示例性客户端设备/服务器环境的框图。
图2B描绘了交换消息的示例性数据结构。
图3A-图3B是描述客户端设备/服务器环境中示例性信息交换的数据流图。
图4A-图4B描绘了示出用于协调和广播群组呼叫的示例性方法的流程图。
图5A是提供包括示例性集中式通信服务的系统的概览的框图。
图5B是提供包括示例性分布式通信服务的系统的概览的框图。
图5C更详细地描绘了图5A-图5B的社交网络图。
图6是描绘用于消息传递服务的系统示例的框图。
图7是示出适用于示例性实施例的示例性计算设备的框图。
图8描绘了示例性通信架构。
图9是描绘示例性多载波通信设备的框图。
详细描述
本申请描述了一种用于通过数字通信服务(例如社交媒体平台)广播和管理虚拟呼叫参与的新协议。数字通信服务的用户通常希望与其他用户分享事件。例如,社交媒体平台的用户可以通过发布到“动态(Story)”页面来分享记忆。用户可以通过查看、评论和通过诸如“赞(like)”之类的指示表示赞同来与他人的帖子进行交互。来自一个用户账户的帖子可以包括另一个用户的标签,以对其他用户可见的方式通过数字服务促进两个用户的交互。然而,这些交互通常仅限于键入的评论和/或静态图像。目前的平台缺乏用户与其他人分享虚拟对话的方式。
例如,一组用户可能希望向数字通信服务的至少一个其他用户广播(可能正在进行的)视频聊天或虚拟呼叫的证据(evidence)。这样做的唯一方法可能是捕获呼叫的静态图像(如截屏),将图像作为共享记忆发布,并手动标记其他相关用户。这个过程既低效又耗时,而且会中断正在进行的呼叫。
此外,观看者可能会看到帖子并希望加入呼叫,但如果不付出巨大努力,他们可能无法加入呼叫。例如,观看者可能需要呼叫中的参与者通过单独的通信平台手动发出邀请,例如呼叫的转发链接。在许多情况下,在其他参与者都离开呼叫之前,观看者可能无法加入群组呼叫。在这个例子中,观看者可能必须从单独的平台手动开始新的呼叫,包括输入原始呼叫的每个参与者的联系信息。
本文描述的协议允许数字通信服务的用户向其他(例如,未参与的)用户账户广播虚拟对话(例如,群组视频呼叫)的指示。在一些实施例中,指示可以包括加入虚拟对话的邀请。该协议允许用户通过实时通信(RTC)信道发起虚拟对话的广播,并在多个设备上协调对话。该协议包括交换消息以合作地建立对话、向至少一个非参与用户广播对话的指示和/或管理对话的一组参与者。
因此,当用户在现实世界事件(例如聚会)中时,RTC视频信道用作一种环聊(hangout)空间。用户可以在参与视频聊天的同时捕获现实世界事件的图片,并且该图片被保存为动态中的构件(artifact)(其他实施例允许用户使用动画GIF、视频剪辑和其他元素作为构件)。用户可以向图像添加可交互元素(例如,通过图形内容选择抽屉(drawer))。如果另一个用户与该元素交互,则该用户可以被带入视频聊天。如果视频聊天已经结束,则可以开始与相同的原始参与者的新的视频呼叫。这也可以鼓励人们参加现实世界事件。
其他方面提供了受众(audience)管理特征(例如,选择性地邀请参与者的技术、邀请人们作为游客(guest)以便他们不需要登录通信服务、跨平台或跨服务邀请)、图形构件定制、当多个用户请求加入呼叫时的冲突检测以及捕获技术。
协议可以通过应用编程接口(API)调用来协调消息交换。该系统是与数据类型和平台二者无关的。因此,对话可以由多种数据类型组成。为了简单起见,虚拟对话在本文可以被称为呼叫,但是它们将被理解为包括例如视频数据、音频数据、文本数据或其任意组合。广播指示可以包括图像、图形交换格式文件(GIF)、短视频、实况对话(liveconversation)数据、贴纸(sticker)或其任意组合。因此,用户或用户群组可以定制对话共享。
该简要概述旨在作为对以下更详细讨论的概念的非限制性介绍。然而,在讨论进一步的示例性实施例之前,首先提供关于数据隐私的简要说明。关于隐私设置和认证的更详细描述将结合以下附图进行阐述。
关于数据隐私的说明
本文描述的一些实施例利用了训练数据或度量,该训练数据或度量可以包括由一个或更多个用户自愿提供的信息。在这样的实施例中,可以以多种方式保护数据隐私。
例如,在收集或使用用户数据之前,可能需要用户选择允许任何数据收集。也可以向用户提供选择不允许任何数据收集的机会。在选择允许数据收集之前,可以向用户提供关于数据将被使用的方式、数据将被保留多长时间以及为保护数据不被泄露而采取的安全措施的描述。
标识从其收集数据的用户的任何信息可以被清除或与数据解除关联(disassociated)。在需要保留任何标识信息的情况下(例如,为了满足监管要求),可以向用户通知标识信息的收集、将会对标识信息进行的使用以及标识信息将被保留的时间量。可以移除专门标识用户的信息,并且该信息可以用例如通用标识号或其他非特定形式的标识来替换。
一旦被收集,数据可以被存储在安全的数据存储位置,该位置包括防止对数据的未授权访问的安全措施。数据可以以加密格式存储。标识信息和/或非标识信息可以在预定时间段后从数据存储装置中清除。
尽管在本文出于说明的目的描述了特定的隐私保护技术,但是本领域的普通技术人员将认识到隐私也以其他方式受到保护。关于数据隐私的进一步细节将在下面描述网络实施例的部分中讨论。
假设满足用户的隐私条件,示例性实施例可以被部署在各种各样的消息传递系统中,包括社交网络中或移动设备上的消息传递(例如,通过消息传递客户端应用或经由短消息服务)、以及其他可能性。接下来提供用于在消息传递系统中参与同步视频对话的示例性逻辑和过程的概览。
为了帮助理解,在描述基础实现的详细描述之前,将首先呈现一系列示例。注意,这些示例仅旨在是说明性,并且本发明不限于所示的实施例。
对话的RTC广播
现在参考附图,其中相同的附图标记始终用于指代相同的元件。在以下描述中,出于解释的目的阐述了许多具体细节,以便提供其透彻理解。然而,可以在没有这些具体细节的情况下实施新颖的实施例。在其他情况下,以框图形式示出了众所周知的结构和设备以便促进其描述。意图是涵盖与所主张的主题一致的所有修改、等同物、和备选方案。
在附图和所附描述中,标号“a”和“b”以及“c”(以及类似的指示符)旨在作为表示任何正整数的变量。因此,例如,如果实现方式将值设置为a=5,则被示为组件122-1至122-a的组件122的完整集合可以包括组件122-1、122-2、122-3、122-4和122-5。实施例不限于此上下文(context)。
图1A描绘了包括群组呼叫的广播指示的数字通信服务的第一示例性用户界面。实施例不限于此上下文。
系统可以包括与数字通信服务的用户账户相关联的用户界面。用户界面可以包括图形用户界面(GUI)。例如,数字通信服务可以接收用户名、密码和/或其他安全凭证来识别用户账户。特定于账户的用户界面,例如用户界面102-1,可以显示在例如计算机、膝上型电脑或移动电话的客户端设备上。诸如通用唯一标识符(UUID)的标识符可以与用户账户相关联。如本文所述,与用户的关联将被理解为包括与用户的用户账户的关联。
用户界面可以包括来自相关用户账户的一个或更多个帖子。例如,用户界面102-1可以包括帖子104-1。帖子可以包括图像、截屏、视频、GIF或与用户账户相关联的其他类型的数据文件。此外,帖子可以包括状态、消息、动态和/或至少一个用户的活动的另一指示符。用户界面可以接收输入以更新、编辑、定制或添加与用户账户相关联的帖子。例如,用户界面102-1可以经由第一客户端用户帖子按钮108-1接收输入以更新相关联客户端的帖子,包括选择特定图像、截屏、视频、GIF或其他类型的数据文件以在帖子中显示。
附加地或替代地,用户界面可以显示与数字通信服务的至少一个附加用户相关联的帖子。在许多实施例中,可以根据相关联的用户与用户界面的用户账户的关系(例如基于社交网络图),在用户界面上显示信息。例如,如下所述,可以如参照图5C描述的那样实现社交网络图。在示例性用户界面102-1中,帖子104-2可以与第二用户账户相关联,帖子104-3可以与第三用户账户相关联,并且帖子104-4可以与社交媒体服务的第四用户账户相关联。
在一些实施例中,用户账户可以包括关联用户的表示和/或标识符,其中该表示可由数字通信服务的一个或更多个其他用户查看。用户指示符106-1可以包括与第一客户端用户界面102-1相关联的用户的表示,例如Maria的姓名和/或照片。类似地,与帖子104-2相关联的用户账户可以与用户指示符106-2相关联,帖子104-3的用户账户可以与用户指示符106-3相关联,并且帖子104-4的用户账户可以与用户指示符106-4相关联。仅作为示例,列出了四个图示账户的信息。实施例可以包括任意数量的账户。
诸如用户界面102-1的用户界面可以包括与来自一个或更多个其他用户账户的用户账户通信相关联的通知。例如,消息通知110-1可以指示一条未读的接收消息和/或经由数字通信服务参与文本消息对话的邀请。类似地,视频通知111-1可以指示未应答的视频呼叫和/或经由数字通信服务参与视频呼叫的邀请,以及呼叫通知112-1可以指示两个未应答的音频呼叫和/或经由数字通信服务参与音频呼叫的邀请。用户账户可以从个人用户账户或从其他用户账户群组接收消息和/或呼叫。
在各种实施例中,用户界面102-1可以包括用户参与虚拟对话的一个或更多个广播指示。虚拟对话可以包括文本数据、视频数据、音频数据或其组合。来自正在和/或已经参与虚拟对话的用户的帖子可以包括相关联的广播指示。例如,广播指示114-3可以与帖子104-3相关联,并且指示与Janet相关联的第三用户账户参与例如视频呼叫。广播指示114-4可以与帖子104-4相关联,并且指示与Jose相关联的第四用户账户参与视频呼叫。在各种实施例中,广播指示可以包括显示在相关帖子上的贴纸,或者广播指示可以显示为相关用户账户的帖子。广播指示可以指示用户账户之间正在进行的、过去的或计划的虚拟对话。
广播指示可以包括虚拟对话中至少一个附加参与者的指示。参与者可以根据他们在虚拟对话中的参与或者根据经由他们自己或至少一个附加用户账户的手动标记来自动地被表示。例如,广播指示114-3包含来自用户指示符106-4的信息,而广播指示114-4包含来自用户指示符106-3的信息。图示的示例可以指示与Janet和Jose相关联的用户账户之间的虚拟对话。隐私设置可以限制或允许对参与者进行标记。
附加地或者替代地,广播指示可以包括用户之间进行的虚拟对话的类型的指示,例如图形构件。例如,在广播指示114-3和广播指示114-4中,摄像机的图像可以指示虚拟对话是视频呼叫。
广播指示114-3和广播指示114-4用图像来说明,以传达参与和对话类型。然而,实施例可以附加地或替代地包括文本、视频剪辑、GIF、贴纸、表情、实时或接近实时的数据馈送(feed)、来自虚拟对话的捕获或其任意组合。用户界面102-1可以接收定制包括在广播指示中的图形构件的指令。例如,用户界面102-1可以接收指令以包括特定的GIF作为图形构件。
在一些实施例中,广播指示可以包括用于至少一个用户加入虚拟对话的邀请。邀请可以对应于通知,例如消息通知110-1、视频通知111-1或呼叫通知112-1。在一些实施例中,用户界面102-1可以根据用户界面102-1的用户账户加入虚拟对话的邀请来显示广播指示。例如,用户界面102-1上的广播指示114-3和/或广播指示114-4的显示可以指示用户界面102-1的用户账户加入视频呼叫的邀请。
用户界面102-1可以经由诸如视频通知111-1的通知接收对于加入虚拟对话邀请的接受。如果在虚拟对话结束后接受了邀请,则系统可以自动在相关联的参与者之间发起新的呼叫,或者在从一个或更多个相关联的参与者接收到确认之后在相关联的参与者之间发起新的呼叫。例如,通知的选择可以使得用户界面102-1能够导向虚拟对话。然而,在一些实施例中,广播指示可以直接导航到虚拟对话。例如,用户界面可以接收对广播指示114-3和/或广播指示114-4的选择,并随后加入相关联的呼叫。
用户界面可以基于相关联的虚拟对话的加入来显示呼叫界面。图1B描绘了与本文描述的一个或更多个实施例相关联的示例性视频呼叫界面。实施例不限于此上下文。
呼叫界面可以包括来自另一个用户账户的至少一个数据馈送。数据馈送可以是实时的或接近实时的。数据馈送可以包括视频数据、音频数据或其组合。一些实施例可以包括附加的数据类型,例如贴纸、应用的效果、动画、文本、消息线程(message thread)或对进行虚拟对话有用的其他媒体类型。如图所示,呼叫界面116-1包括数据馈送118-3和数据馈送118-4,各自至少包括视频数据。
数据馈送118-3和数据馈送118-4包括从分别与帖子104-3和帖子104-4相关联的用户账户(如图1A所示)接收的数据。虚拟对话可以包括来自用户例如通过用户界面选择的一组参与者和/或预定群组的参与者。呼叫标识符可以指示一组参与者之间的虚拟对话。在一些实施例中,信道标识符可以指示用于虚拟对话的数据信道。参与者可以只通过使用与呼叫标识符和/或信道标识符相关联的密钥(例如,碰撞密钥(collision key))来加入虚拟对话。
可以基于接收到的对邀请(诸如包括在图1A中的广播指示114-3或广播指示114-4中的邀请)的选择来加入虚拟对话。在各种实施例中,广播指示可以包括唯一地标识虚拟对话的呼叫标识符。呼叫标识符可以包括用于发起和/或加入特定对话的信道标识符、链接和/或碰撞密钥。
加入对话可以包括捕获和发送与用于访问呼叫界面116-1的用户账户相关联的数据馈送。在一些实施例中,呼叫界面116-1可以包括捕获的视觉数据的预览。例如,数据馈送118-1可以是由通过特定用户账户访问呼叫界面116-1的用户设备捕获的视频数据的预览。
加入对话可能会导致更新一组关联用户和/或参与者列表,以包括加入的用户账户。
除了至少一个数据馈送,呼叫界面116-1还可以包括一个或更多个选项来接收与虚拟对话相关的指令。例如,视频馈送按钮120-1可用于通过呼叫界面116-1切换虚拟对话的视频数据的捕获和/或共享。音频馈送按钮122-1可以接收切换虚拟对话的音频数据的捕获和/或共享的指令。相机选择按钮124-1可以接收指令以选择用于访问呼叫界面116-1的客户端设备上的相机。例如,可以切换前置相机和后置相机。可以包括在实施例中的附加控制包括呼叫设置、基于文本的对话或与虚拟对话相关联的媒体效果的应用。
呼叫界面116-1可以包括接收离开和/或结束虚拟对话的指令的选项。例如,呼叫界面116-1可以包括结束呼叫按钮126-1。当接收到离开虚拟对话的指令时,系统可以将用户从呼叫界面116-1重定向到另一个界面,例如用户界面102-1。
在许多实施例中,呼叫界面116-1可以包括广播呼叫记录(例如关于图1A描述的广播指示)的选项。可以基于加入虚拟对话的用户账户来自动对广播指示进行广播。具体地,系统可以获悉对加入虚拟对话的邀请的接受,以指示用户同意共享广播指示。附加地或替代地,可以根据经由呼叫界面116-1接收的输入或数字通信服务的用户设置来限制和/或管理广播指示的共享。在一些实施例中,呼叫界面116-1可以经由添加参与者按钮128-1接收用于管理广播指示的指令。
图1C描绘了用于接收群组呼叫的广播指示的示例性用户界面。添加参与者按钮128-1可以使系统能够接收一个或更多个指令,以与一个或更多个附加用户账户共享与虚拟对话相关联的广播指示。例如,诸如添加参与者按钮的选项可以使系统能够通过菜单提供对话管理选项。附加地或替代地,系统可以在对话发起时,经由广播设置或经由另一选项接收虚拟对话的广播指示。实施例不限于此上下文。
对话管理菜单130-1可以包括用于管理虚拟对话的广播或共享的一个或更多个选项。对话管理菜单130-1可以包括参与者列表132-1,其可以提供与虚拟对话相关联的至少一个用户账户的指示。具体地,参与者列表132-1可以包括参与和/或被邀请参与虚拟对话的一些或所有账户的指示。
附加地或替代地,对话管理菜单130-1可以包括一个或更多个选项,以将其他用户包括在虚拟对话中。可以选择单个用户账户(例如附加参与者134-2)或多个用户账户来进行对话共享。对要被邀请参加群组对话的用户的选择可以基于电话号码、电子邮件地址、用户名、互联网协议地址、设备标识符、账户标识符和/或另一用户标识符。一些实施例可以使虚拟对话能够与用户群组(例如附加的参与者群组136-2)共享。用户群组可以例如由用户经由用户界面手动确定,或者例如基于在社交网络图中与用户账户的接近度和/或关系来自动确定。
对话共享可以跨平台扩展。例如,虚拟对话中的参与者可以向不是数字通信服务的用户和/或没有登录到数字通信服务的附加参与者发出邀请。在一些实施例中,至少一个参与者可以是受支持服务(例如,经批准的替代虚拟对话服务)的用户。
系统可以接收根据一个或更多个选择的共享选项138-1和/或邀请选项140-1向一个或更多个附加用户广播虚拟对话的指示的指令。可以为潜在的附加参与者和/或附加参与者的群组单独确定共享选项138-1和/或邀请选项140-1。
根据共享选项138-1和/或邀请选项140-1,广播指示可以包括或不包括对虚拟对话的邀请。在图1C中,对用于Brittany的共享选项的选择可以导致向与Brittany相关联的社交媒体用户界面发送广播指示。然而,没有对邀请选项的选择可能导致广播指示不包括虚拟对话的邀请和/或标识符。以这种方式,可以与参与者的朋友共享对话的存在,而无需向不想要的用户发出公开邀请。
如果由用户经由诸如用户界面102-1的用户界面进行选择,则不包括对虚拟对话的邀请的广播指示可能不会指向该对话。在一些实施例中,基于用户账户对广播指示的选择,可以将用户账户加入虚拟对话的请求发送到对话的一个或更多个参与账户,而无需对呼叫的邀请。
广播设置142-1可以确定与用户账户相关联的群组定义、隐私设置、默认和/或自定义共享选项138-1和邀请选项140-1。
在一些实施例中,只有虚拟对话的发起用户账户(initiating user account)可以管理参与者。在一些实施例中,对话的至少一个附加参与者可以管理参与者。例如,用于访问用户界面102-1的用户账户可以管理视频对话的参与者,包括在经由广播指示加入对话之后的其他参与者。默认设置可以为参与者建立管理特权。替代地或附加地,由用户账户或对有效确定特权有用的另一种方法建立的设置可以建立管理特权。
各种实施例可以跨多个用户账户协调参与者的管理。例如,邀请另一个用户账户加入虚拟对话可能需要对话的一些或所有当前参与者的批准。
由一个或更多个用户账户确定应该共享广播指示可以导致广播指示随一个或更多个用户账户被显示。例如,由Janet的用户账户确定与Jose的用户账户的视频呼叫的指示可导致广播指示随Janet的账户的帖子104-3或随帖子104-3和与Jose的账户相关联的帖子104-4两者被显示。将邀请包括在广播指示中可类似地应用于随一个或更多个用户账户显示的广播指示。
可以根据至少一个参与者的预配置和/或一个或更多个隐私设置来确定哪些账户可以显示广播通知。在许多实施例中,一个用户的更保守的隐私设置将优先于另一个用户的不太保守的隐私设置。例如,如果Jose的用户账户的隐私设置指示该信息的分发的限制,则广播指示可能不与Janet的帖子104-3一起显示,或者广播指示114-3可能不包括Jose的参与的指示。
在许多实施例中,广播通知144-1可以将参与者对虚拟对话的指示的广播传送给该对话的至少一个其他参与者。例如,参与用户Jose对该呼叫的公开邀请的广播可以通过广播通知传达给其他参与用户Maria和Janet。因此,虚拟对话的参与者可以被告知哪些其他用户账户可以访问该对话。
由参与虚拟对话的用户账户共享的广播指示可以由至少一个附加用户账户查看。在许多实施例中,广播指示的至少一个观看者可能不是相关联的虚拟对话的参与者。例如,通过共享选项138-1与Brittany共享广播指示可以导致至少一个广播指示被显示在用户界面上,该用户界面由数字通信平台上的Brittany的用户账户访问。
图1D描绘了包括群组呼叫的广播指示的第二示例性用户界面。图1D可以对应于图1C所示的示例性用例(use case)。实施例不限于此上下文。
接收虚拟对话的广播指示的用户账户可以访问诸如用户界面102-2的用户界面。用户界面可以具有与用户界面102-1相同或相似的各种组件。例如,用户界面102-2可以包括类似于用户指示符106-1但与不同的相应用户相关联的用户指示符106-2。用户帖子按钮108-2可以接收输入以用于编辑、添加和/或更新与用户界面102-2相关联的用户账户的用户帖子。通知的功能可以类似于关于图1A描述的那些,但是特定于账户,包括消息通知110-2、视频通知111-2和呼叫通知112-2。
用户界面102-2可以显示与共享选项138-1相关联的、与呼叫界面116-1相关联的一个或更多个广播指示。当Maria的用户账户已经加入Janet和Jose的用户账户之间的呼叫时,随后在用户界面102-2上显示的广播指示可以反映更新的参与者列表。例如,与Maria的用户账户相关联的广播指示148-1可以指示Maria的用户账户参与与Janet和Jose的用户账户的虚拟对话。与Janet的用户账户相关联的广播指示148-3可以指示参与与Maria和Jose的相应用户账户的视频呼叫,而与Jose的用户账户相关联的广播指示148-4可以指示参与与Maria和Janet的视频呼叫。
在一些实施例中,广播指示可以包括与用户账户相关联的帖子。例如,在用户账户加入视频呼叫时,可以用与Maria的用户账户相关联的帖子146-1来替换和/或更新帖子104-1。帖子146-1可以包括图像、从虚拟对话中捕获的帧、图形交换格式文件(GIF)、短视频、实况对话数据、贴纸或其在定制图形构件中的任意组合。在各种实施例中,帖子146-1中的图形构件的内容可以(例如经由截屏)从虚拟对话中捕获。
与广播通知一样,帖子146-1的内容可以根据经由用户界面接收的输入来预先确定或确定。参与对话的用户可以在帖子中被自动标记,或者根据经由用户界面接收的输入被标记。
可以选择包括广播指示的帖子146-1来根据参与者的隐私设置查看关于相关对话的更多信息,例如参与者列表。帖子146-1可以包括加入对话的邀请。例如,帖子146-1可以包括基于从参与者接收的输入对特定用户或用户群组的邀请。选择包括对虚拟对话的邀请的帖子可以使系统能够直接导航到该对话。选择不包括对虚拟对话的邀请的帖子可以使系统能够向至少一个参与用户账户发送加入对话的一个或更多个请求。请求的批准,例如通过用户界面接收的批准,可以导致请求用户被添加到虚拟对话。因此,可以更新相关联的参与者列表和/或广播指示。
各种实施例可以广播参与历史虚拟对话的至少一个指示。例如,在所有活动参与者都离开对话之前,邀请的接收者可能无法加入对话。参与者列表可以与呼叫标识符和/或广播指示相关联。因此,在没有剩余参与者的情况下选择对虚拟对话的邀请可以导致对话的自动重新发起。例如,参与者列表中的所有参与者都可能被召回。因此,参与者可以返回到历史对话,而不需要识别和输入各个其他参与者的联系信息,从而提高了数字通信服务的便利性。
示例性系统配置和数据结构
图2A描绘了用于广播和管理参与群组虚拟对话的示例性系统。实施例不限于此上下文。
系统可以启用虚拟对话,其可以是(例如)一对一、一对多或群组通信。在许多实施例中,虚拟对话可以包括视频通信。替代地或附加地,系统可以促进虚拟对话的至少一个指示的广播。实施例还可以包括基于接收到的与广播指示相关的输入来管理对虚拟对话的参与。下面将参考广播视频呼叫的指示并管理视频呼叫的参与来描述一个示例;然而,应当理解,本申请不限于该示例。
发起客户端设备(initiating client device)202-1可以是与通信中的第一参与者相关联的设备。发起客户端设备202-1可以是例如移动设备(尽管本发明不限于移动设备的应用),其执行通信应用204-1以用于与一个或更多个其他参与者参与协调活动,例如基于视频的会议呼叫的视频通信。发起客户端设备202-1可以是发起协调效果的设备,该协调效果被用在一个或更多个非发起客户端设备(non-initiating client device)202-2、202-3、202-4等处或由该一个或更多个非发起客户端设备202-2、202-3、202-4等应用。
通信应用204-1可以使得与视频通信相关联的信息被传输到促进通信的一个或更多个服务器。例如,该信息可以包括包含与通信相关联的视频帧的视频数据208、包含要与图形帧同步的声音信息的音频数据212以及控制数据216。控制数据216可以包括各种指令、标识符、元数据等,用于应用与视频数据208和音频数据212相关联(例如,与之同步)的协调效果。
在一些实施例中,视频数据208和音频数据212可以由诸如发起客户端设备202-1或非发起客户端设备202-2、202-3、202-4等的一个或更多个客户端设备的组件捕获。在一些实施例中,通信应用204-1可以包括用于诸如社交媒体平台的数字通信服务的用户界面。在各种实施例中,通信应用204-1可以显示与视频通信相关联的至少一个广播指示。
可以在相关联的信道中传输每种类型的数据。例如,通信应用204-1或发起客户端设备202-1的另一组件可以打开涉及通信服务器218的视频信道206、音频信道210和控制信道214。视频信道206可以仅承载视频格式的视频数据208。因此,通信服务器218可以将在视频信道206上接收的任何数据视为视频格式的数据,并且可以适当地处理该数据。类似地,音频信道210可以仅承载音频格式的音频数据212。
应当理解,本发明不限于分别在视频信道206和音频信道210上传输视频数据208和音频数据212。例如,在虚拟对话是消息线程的情况下,图形数据可以在数据信道中共享。在涉及多人游戏的示例中,游戏数据可以在专用于传送关于游戏状态的信息的数据信道中共享。对于群组音频呼叫,信道可以包括音频信道210,但是没有视频信道206。在每种情况下,控制信道214可以是与数据信道分离和不同的实时或接近实时的信道。
控制信道214可以传输不一定是预定格式的通用数据,或者可以传输特定控制格式的控制指令。例如,控制信道214可以承载调整对视频数据208和/或音频数据212的访问的指令,或者可以承载向至少一个其他客户端设备发送广播指示的指令。控制信道214可以是例如Web实时通信(WebRTC)信道。
视频信道206、音频信道210和控制信道可以在两个方向上传送信息。因此,例如,视频信道206和音频信道210可以承载用于在发起客户端设备202-1上显示/回放的数据(例如,与一个或更多个非发起客户端设备202-2、202-3、202-4的视频流相关的数据)。控制信道214可以承载来自通信服务器218的用于管理对虚拟对话的访问的指令和/或其他指令。
通信服务器218可以被配置为通过应用广播管理逻辑220来协调一个或更多个发起客户端设备202-1和一个或更多个非发起客户端设备202-2、202-3、202-4等之间的虚拟对话的广播指示的共享。附加地或替代地,通信服务器218可以被配置成通过应用呼叫管理逻辑222来管理一个或更多个发起客户端设备202-1和一个或更多个非发起客户端设备202-2、202-3、202-4等之间的虚拟对话的参与。通信服务器218还可以存储媒体效果库224,其包括与多个广播指示相关的数据。例如,广播指示媒体可以包括图形构件,例如图像、GIF等。广播指示媒体可以由标识符来标识,并且媒体效果库可以可选地镜像(mirror)本地存储在客户端设备202处的媒体效果库。替代地或附加地,存储在通信服务器218处(或在多个通信服务器218之间分割)的库可以部分地缓存在本地客户端设备202处。在一些情况下,本地客户端设备可以包括协调效果的简略(thumbnail)版本,允许在通信应用204中选择效果,但是通过不包括协调效果的实现细节来节省客户端设备202上的存储。在应用协调效果时,相应的客户端设备202可以向通信服务器218请求实现细节。
通信服务器218还可以包括视听编辑逻辑(audiovisual compilation logic)226,该视听编辑逻辑226用于组合视频数据208、音频数据212和任何广播指示。视听编辑逻辑226可以包括用于将音频数据212与视频数据208同步并且进一步用于将广播指示应用于组合的音频/视频数据(或者单独应用于音频数据212或视频数据208)的逻辑。例如,视听编辑逻辑226可以协调包括来自虚拟对话的视频数据的广播指示的组合和应用。
一旦被组合,合成的视听数据232可以可选地从通信服务器218传输到广播服务器228。广播服务器228可以包括广播逻辑230,其识别与视频通信相关联的一个或更多个接收者,例如非发起客户端设备202-2、202-3、202-4。广播服务器228可以向每个接收者发送包括音频数据212、视频数据208和/或至少一个广播指示的视听数据232。
在一些情况下,视听数据232可以广播给所有接收者,但是与广播指示和/或呼叫参与管理相关的消息可以在相应的控制信道214上传输给非发起客户端202-i。在一些实施例中,控制数据216也可以被提供给一些或所有非发起客户端202-i。
例如,在图1A所示的示例中,视频呼叫可以由Janet的设备发起,并且可能需要与Jose的设备协调,以便将包括邀请的广播指示扩展到Maria的设备。例如,广播指示可以仅在Janet和Jose两者批准之后发送,和/或广播指示可以包括来自Jose的设备的数据捕获。尽管当协调广播指示时,视频数据可以继续由广播服务器228广播,但是提供给和来自每个设备的控制数据可以变化。例如,Janet的设备可以在控制信道214上发送启动指令,该指令可以被中继到Jack的设备。Jack的设备可以在其相应的控制信道214(未示出)上向通信服务器218发送确认、数据等。随后,可以将广播指示从通信服务器218发送到Maria的设备。
每个设备可以向/从通信服务器218发送/接收控制数据216,以允许在它们各自的用户界面上显示广播指示的一个或更多个通知,例如广播通知144-1。在实施例中,广播通知可以应用于相应的音频数据212和/或视频数据208。或者,通知可以由相应的客户端设备本地地应用。用广播通知修改的视听数据232可以由广播服务器228发送给虚拟对话中的每个参与者。
尽管图2A描绘了涉及客户端和服务器之间的协调的特定示例,但是应当注意,本发明不限于这样的实施例。在其他示例中,可以使用多个服务器,或者可以不使用服务器。例如,在对等实现中,发起客户端设备202-1可以直接与非发起客户端设备202-2、202-3、202-4通信,而无需中间通信服务器218和/或广播服务器228的帮助。在这样的实施例中,各个客户端可以实现广播管理逻辑220、呼叫管理逻辑222、媒体效果库224和/或视听编辑逻辑226。在一些实施例中,客户端202-i可以以对等方式通信,但是可以由一个或更多个服务器(例如,存储媒体效果库224的服务器)支持。
图2B描绘了交换消息的示例性数据结构。实施例不限于此上下文。
交换消息250可以由客户端设备发送到通信服务器和/或另一客户端设备,以广播虚拟对话的指示和/或协调虚拟对话。通信服务器可以通过RTC信道接收交换消息250。
交换消息250可以包括标志(flag)252或其他标识符,以允许将交换消息250识别为与虚拟对话的广播和/或管理有关。标志252可以将交换消息250标识为包括广播指示、呼叫发起请求、呼叫标识消息、邀请消息、邀请接受、广播请求、加入请求、加入批准、广播通知和/或其他消息。图3A-图3B更详细地解释了各种示例性消息。在许多实施例中,交换消息250可以在报头数据中包括标志252。标志252可以使接收交换消息250的通信服务器218、广播服务器228和/或客户端设备能够容易地识别和处理该消息。
交换消息250可以包含呼叫标识符254。呼叫标识符254可以唯一地标识一组参与者之间的虚拟对话。在一些实施例中,呼叫标识符254可以包括用于发起和/或加入特定对话的信道标识符、链接和/或碰撞密钥。信道标识符可以标识用于虚拟对话的数据信道。
在一些实施例中,呼叫标识符可以包括仅当满足某些安全措施时才可访问的信道标识符和/或链接。例如,参与者只有在登录时或登录到数字通信服务后才可以访问和/或使用交换消息250的数据信道和/或链接。在一些实施例中,呼叫标识符可以包括对未登录到特定数字通信服务的参与者开放的信道标识符和/或链接。例如,参与者拥有呼叫标识符和/或链接可以指示该参与者作为参与者列表258的一部分被邀请加入呼叫。
参与者可以只通过使用与呼叫标识符和/或信道标识符相关联的密钥(例如,碰撞密钥)来加入虚拟对话。呼叫标识符254因此可以使参与者能够加入正确的虚拟对话。
交换消息250可以包括参与者数据256。参与者数据256可以包括将交换消息250与一个或更多个用户账户相关联的数据。在许多实施例中,参与者数据256可以包括参与者列表258和/或消息数据260。
参与者列表258可以包括与至少一个用户参与虚拟对话相关的信息。参与者列表258可以包括至少一个或更多个用户标识符,例如,用户账户UUID、电话号码、电子邮件地址或互联网协议地址。参与者列表258可以包括交换消息的预期接收者用户账户和/或用户设备,例如带有加入虚拟对话的邀请。在一些实施例中,参与者列表258可以包括发送用户账户和/或用户设备的标识符。附加地或替代地,参与者列表258可以包括与虚拟对话相关联的用户账户,例如参与虚拟对话的用户账户。例如,如果交换消息250包括广播指示,则指示发送邀请的用户账户的参与者列表258可以使得通知能够相应地显示在接收者的用户界面上。在涉及广播指示的另一示例中,指示视频呼叫的参与者的参与者列表258可以使系统能够随参与者的用户帖子显示广播指示。例如,广播指示148-1、148-3和148-4可以分别与来自用户Maria、Janet和Jose P的帖子一起显示在Brittany的用户界面102-2上。
参与者列表258可以包含包括不同用户标识符类型的条目。例如,参与者列表258可以包括第一附加参与者的用户账户UUID和第二附加参与者的电话号码。因此,实施例可以支持跨多个平台和/或服务包含用户。
附加地或替代地,参与者数据256可以包括消息数据260。消息数据260可以包括与至少一个用户账户相关的数据,该数据可用于处理交换消息。在许多实施例中,消息数据260可以包括与参与者列表258中的一系列参与者中的每个参与者相关联的数据。消息数据260可以包括随参与者显示的一个或更多个用户指示符或消息内容。例如,如果交换消息250在图1D的示例的上下文中包括广播指示,则消息数据260可以包括与参与者Maria、Janet和Jose的相应标识符相关联的用户指示符106-1、106-3和106-4。附加地或替代地,消息数据260可以包括作为广播指示或与广播指示相关联地显示在用户界面上的贴纸和/或帖子的上下文。例如,消息数据260可以包括在帖子146-1中使用的视频呼叫的截屏。
在一些实施例中,消息数据260可以附加地或替代地包括关于交换消息250的上下文的数据,例如时间戳和/或地理位置标签(geotag)。消息数据260可以包括与至少一个用户账户相关联的隐私和/或其他用户设置。在一些实施例中,消息数据260可以包括与至少一个用户账户相关联的所请求的对话共享的至少一个指示。例如,包括发起视频呼叫的请求的交换消息250可以包括消息数据260,该消息数据260包含要在呼叫发起成功时与参与者列表258中的一个或更多个指定用户共享的广播指示。用户账户可以被指定对于参与者列表258中或与参与者列表258相关联的虚拟对话的各种参与级别。例如,用户账户可以是呼叫发起者、呼叫参与者、广播指示接收者、邀请接收者或其他指定。
在一些实施例中,参与者数据256可以包括将被直接发送到一个或更多个服务器和/或客户端设备的数据,如本文所述。替代地或附加地,参与者数据256可以包括指向存储数据的位置的一个或更多个指针。接收设备然后可以在接收到交换消息250之后访问数据。
数据流和示例性方法
图3A-图3B描绘了描述客户端设备/服务器环境中的示例性信息交换的数据流图。各种实施例,例如图2A所示的那些,可以实现这种信息交换。实施例可以包括一个以上的非发起客户端设备202-i,在这种情况下,通信服务器218和非发起客户端设备202-2之间的信息交换可以在通信服务器218和每个非发起客户端设备202-i之间执行。然而,为了简单起见,关于图3A-图3B仅示出了两个涉及的客户端设备。实施例不限于此上下文。
图3A示出了对管理虚拟对话的发起有用的信息流。诸如图2A所示的发起客户端设备202-1可以发送请求302来开始与非发起客户端设备202-2的虚拟对话。请求302可以是交换消息250的形式(如图2B所示)。例如,交换消息250可以包括指示视频呼叫的发起请求的标志252,以及参与者数据256。在该示例中,参与者数据256可以包括参与者列表258和消息数据260,参与者列表258包含作为请求的发送者的发起客户端设备202-1的标识符和作为请求的接收者的非发起客户端设备202-2的标识符,消息数据260包含用于发起客户端设备202-1和非发起客户端设备202-2的用户指示符。发起客户端设备202-1和非发起客户端设备202-2可以与相同或不同的数字通信平台和/或服务相关联。
在一些实施例中,呼叫标识符可以由通信服务器218确定和/或提供,因此用于此目的的交换消息250的呼叫标识符254字段可以是空的或者不存在。在其他实施例中,呼叫标识符可以由发起客户端设备202-1在发送请求302之前确定。在这个示例中,呼叫标识符254可以包括呼叫标识符。
请求302可以由发起客户端设备202-1的应用响应于确定期望虚拟对话(例如响应于通过设备的用户界面接收的输入)而生成。
在接收到请求302后,在实施例中,通信服务器218可以向发起客户端设备返回呼叫信息304。在一些实施例中,通信服务器可以在呼叫信息交换消息250中填充呼叫标识符254字段,从而使得发起客户端设备202-1能够连接到虚拟对话。例如,通信服务器218可以为请求302生成碰撞密钥。在其他示例中,发起客户端设备202-1可以生成将包含在初始请求302中的碰撞密钥。碰撞密钥可以基于呼叫信道、与呼叫相关联的时间戳、参与者列表、呼叫标识符254的其他方面或其任意组合,以便唯一地应用于特定呼叫。
附加地或替代地,通信服务器218可以识别请求302所指向的一个或更多个非发起用户设备(例如,基于交换消息250中的参与者列表258),并且可以向所识别的设备发送邀请306。通信服务器218可以响应于接收到请求302而识别请求302的接收者和/或发送邀请306。邀请306可以包括请求302的一个或更多个方面。例如,邀请306可以是转发的请求302。然而,邀请306中可以包括附加的和/或不同的信息,例如呼叫标识符254。在一些实施例中,呼叫标识符254可以不包括在到客户端设备的邀请306或任何其他交换消息250中,直到该客户端设备接受邀请。
在一些实施例中,邀请306可以包括登录、加入、下载或以其他方式参与数字通信服务的邀请。在其他实施例中,邀请306可以另外包括被邀请的参与者加入虚拟对话而不明确下载或加入数字通信服务的选项。例如,邀请306可以包括到数字通信服务外部可访问的信道(诸如呼叫线路、视频会议信道或其他平台)的链接。呼叫线路、视频会议信道或其他平台可以经由数字通信服务外部的网络连接来访问,使得参与者能够与邀请306的虚拟对话进行交互,而不必加入和/或下载他们以前没有的数字通信服务。
在一些实施例中,邀请306可以包括对虚拟对话的邀请,该虚拟对话仅可从经批准的平台访问。例如,如果从数字通信服务的经批准的合伙方平台(partner platform)访问信道,则可以直接访问该信道的虚拟对话。在同一示例中,如果没有从数字通信服务的经批准的合伙方平台访问信道,则邀请加入、下载或以其他方式参与数字通信服务。当对数字通信服务的合伙方平台具有经认证的访问权的参与者从合伙方平台访问邀请306时,用户可能不需要为了访问数字通信服务的呼叫而认证他们的身份。可以基于合伙方平台和数字通信服务之间的公共用户标识符、对应于邀请306的响应308上的指示符、对应于邀请306的响应308的接收或其他方法来识别经认证的访问。
通信服务器可以从非发起客户端设备202-2接收响应308。响应308可以是包括接受或拒绝邀请306的交换消息250。在一些实施例中,在确定接受邀请306的所有方面时,通信服务器218可以仅接收指示接受的响应308。例如,确定可以基于与非发起客户端设备的设置相对应的邀请306的广播信息。替代地或附加地,可以基于经由非发起客户端设备的用户界面接收的输入来确定用户已经批准了与邀请306相关联的广播信息。在一些实施例中,通信服务器218可以接收包括参与者的验证(例如,数字通信服务的用户登录信息)的响应308。
在一些实施例中,响应308可以包括拒绝邀请306。拒绝可以基于经由非发起客户端设备202-2从用户接收的输入。在一些实施例中,可以基于邀请306的广播信息,经由输入或自动逻辑来接收拒绝。在一些实施例中,响应308可以例如在消息数据260中包括提议的替代广播信息。
例如,响应308可以包括基于非发起用户拒绝向社交网络图中的所有发起用户的朋友广播虚拟对话而拒绝邀请306。在该示例中,响应308可以包括提议的备选信息,该备选信息包括向两个用户的共同朋友的子集广播对话指示的指令。
响应于接收到具有提议的备选广播信息的响应308,通信服务器218可以将响应308转发给发起客户端设备202-1。在这种情况下,发起客户端设备202-1可以向通信服务器218发送具有与响应308中包括的相同或不同广播信息的新请求302。第二请求(secondaryrequest)302可以包括与关联于原始请求302的和/或由通信服务器218提供的呼叫标识符相同或不同的呼叫标识符254。
在一些实施例中,信息交换可以继续进行,直到通信服务器218接收到指示接受邀请306的响应308,或者例如由于通信服务器218没有从客户端设备接收到附加请求302或响应308而中断了流程。以这种方式,系统可以基于来自两个或更多个设备的协调的广播指示来管理虚拟对话的发起。
基于接收到包括接受邀请306的响应308,通信服务器218可以向一个或更多个客户端设备发送呼叫信息310。呼叫信息310可以至少包括呼叫标识符254和更新的参与者列表258,包括作为对话参与者的非发起客户端设备202-2。
在一些实施例中,响应308可以包括呼叫标识符254,例如碰撞密钥。响应308的呼叫标识符254可以相同或者基于在邀请306中从通信服务器218接收的呼叫标识符。通信服务器218可以将在响应308中接收的呼叫标识符254与在对应的请求302中接收的或响应于对应的请求302生成的呼叫标识符进行比较。通信服务器218可以仅基于响应308的呼叫标识符254和在相应请求302中接收的或响应于相应请求302生成的呼叫标识符之间的匹配,向非发起客户端设备202-2发送呼叫信息310。因此,通信服务器218可以仅允许非发起客户端设备202-2基于非发起客户端设备202-2对呼叫的请求302中的直接邀请来加入虚拟对话。因此,通信服务器218可以通过降低非发起客户端设备202-2不正确地连接到虚拟对话(例如,在通信服务器218处接收的不相关请求302的虚拟对话)的可能性来提高呼叫安全性和/或改善呼叫体验。
图3B描绘了用于在对话发起之后管理虚拟对话的广播和/或参与的信息流。第一客户端设备312、第二客户端设备314或者两者都不是发起客户端设备202-1或非发起客户端设备202-2。实施例不限于此上下文。
第一客户端设备312可以开始图3B的信息交换,以向客户端设备314发送广播指示。具体地,第一客户端设备312可以发送广播请求316。广播请求316可以包括交换消息250,其至少包含指示广播指示和/或邀请的标志252、包括第二客户端设备314的标识符的参与者列表258、以及包括用于在广播指示上显示的数据的消息数据260。在一些实施例中,广播请求316可以包括呼叫标识符254。
一旦接收到广播请求316,通信服务器218可以基于广播请求316的参与者列表258将第二客户端设备314识别为接收者。因此,通信服务器218可以向第二客户端设备314发送广播包318。在一些实施例中,广播包318可以包括广播请求316的至少一些方面。在一些实施例中,广播包318可以包括由通信服务器218格式化的数据。例如,广播请求316可以在消息数据260中包括用于包括来自虚拟对话的视频数据的广播指示的指令。在该示例中,通信服务器218可以使用视听编辑逻辑226为广播指示编辑数据。广播包318然后可以在消息数据260中包括编辑的视听数据。
在一些实施例中,图3B的信息流可以在第二客户端设备314接收广播包318之后结束。然而,在第二客户端设备处,例如经由用户界面选择广播指示,可以导致加入请求320从第二客户端设备314被发送到通信服务器218。如果广播包318包括加入虚拟对话的邀请,则加入请求320可以包括来自第二客户端设备314的对邀请的接受或拒绝的指示。
如果加入请求320包含对邀请的接受,则呼叫信息310可以被发送到第一客户端设备312和第二客户端设备314。呼叫信息310可以包括参与者列表258,其被更新以包含第二客户端设备314的标识符。
如果加入请求320包含对邀请的拒绝,则加入请求320可以由通信服务器218转发到第一客户端设备312,并且信息流停止。因此,可以向第一客户端设备通知另一用户拒绝邀请。
在一些实施例中,广播包318可以不包括加入呼叫的邀请。然后,在第二客户端设备314处对得到的广播指示的选择可能不会指示系统从第二客户端设备314发送交换消息250,并且用户可能无法加入虚拟对话。
然而,一些实施例可以使得第二客户端设备314的用户能够请求参与虚拟对话,即使没有接收到包含邀请的广播指示。具体地,在第二客户端设备处选择广播指示可以导致向通信服务器218发送加入请求320。加入请求320可以由通信服务器218中继到第一客户端设备312。在一些实施例中,包括第二客户端设备的标识符的加入请求320的通知可以经由客户端设备312的用户界面呈现给用户。
基于在第一客户端设备312处对加入请求320的接受,加入批准322可以被发送到通信服务器218。因此,呼叫信息310的各方面可以被发送到第一客户端设备312和/或第二客户端设备314。例如,包括更新的参与者列表258的呼叫信息310可以被发送到两个客户端设备。在另一示例中,发送到第二客户端设备314的呼叫信息310可以包括呼叫标识符254,允许第二客户端设备314加入呼叫。
因此,根据呼叫中的参与者的批准,系统可以为用户提供加入虚拟对话的灵活性,即使用户被排除在被邀请的参与者的列表之外。结果,如果例如参与者忘记邀请特定用户加入虚拟对话,则不需要发起新的呼叫。
接下来,结合图4A-图4B描述用于广播虚拟对话中的指示和/或管理参与的示例性逻辑400A-400B。图4A-图4B将所描绘的逻辑块组织成各种逻辑组(例如,请求接收逻辑402、请求转发逻辑406等)。在一些实施例中,可以在通信服务器218上提供这些逻辑模块,如图2A所示,尽管可以理解,这种配置不是必需的。所有模块可以在同一设备中实现,或者可以分布在任意数量的设备中。模块的各种组合可以在给定的设备上使用,或者单个模块的逻辑可以由不同的设备来执行。
处理开始于请求接收逻辑402,其可以使用网络接口来接收指令。网络接口可以在RTC信道上监听指令。该指令可以是从发起客户端设备202-1接收的开始虚拟对话的请求,如结合图3A所述。
在框404,系统可以接收例如经由请求302发起虚拟对话的请求。虚拟对话可以包括视频呼叫、专用文本消息线程、音频呼叫、其他呼叫类型或其组合。系统可以识别与呼叫相关联的一个或更多个客户端设备,例如发起客户端设备202-1和至少一个非发起客户端设备202-i。在一些实施例中,可以基于来自发起客户端设备的选择来确定至少一个非发起客户端设备202-i。广播请求316的参与者列表258可以标识至少一个非发起客户端设备202-i
处理然后可以被移交给请求转发逻辑406。在框408,请求转发逻辑406可以利用网络接口经由RTC信道,例如经由参考图3A描述的逻辑,将指令转发到指令中标识的非发起客户端设备。
处理然后可以被移交给协定接收逻辑(agreement reception logic)410。可选地,协定接收逻辑410可以通过例如向相应的客户端重传指令直到客户端确认接收到指令或发送响应消息来保证将指令传递给非发起客户端(框412-框414)。
响应于该指令,非发起客户端可以在其RTC信道上用几种不同类型的消息之一进行响应,例如响应308。在框416,系统可以确定该响应是否是对已经或将要与非发起客户端开始虚拟对话的确认。如果框416处的确定为“是”,则处理可以切换到响应转发逻辑426。
另一方面,如果框416处的确定为“否”,则处理可以前进到框418,并且系统可以确定该消息是否是对协调效果的拒绝。如果是,处理进行到框420,在框420,系统可以将拒绝转发回发起客户端。
在框422,系统可以确定拒绝是否包括如上所述的备选提议的广播信息。如果不包括,系统可以取消虚拟对话的发起,或者可以发起与非发起客户端的子集的虚拟对话。处理然后可以结束。然而,如果包括,处理可以返回到请求接收逻辑402,在该点,实施例可以接收附加的请求数据,如上所述。
框420和框422可以一起组成广播许可协调逻辑424。在各种实施例中,可以以任一顺序执行步骤。
在框428,响应转发逻辑426可以使用网络接口经由RTC信道将响应(例如响应308)转发给参与者列表258中标识的一个或更多个设备。
处理然后可以移交给呼叫信息转发逻辑430。在框432,呼叫信息转发逻辑430可以经由RTC信道将呼叫信息转发给一个或更多个设备。如上所述,呼叫信息可以包括更新的参与者列表,并被发送到发起客户端设备和一个或更多个非发起客户端设备。
转到图4B,处理可以前进到数据传输逻辑444,其中系统可以接收关于虚拟对话的数据。例如,数据可以包括视频数据、音频数据、文本数据、对进行虚拟对话有用的其他媒体数据或其任意组合。
具体地,处理可以从框432前进到数据接收逻辑436。在框438,数据接收逻辑可以使用网络接口在RTC信道上接收与虚拟对话相关的数据,例如视频数据。
处理可以前进到数据转发逻辑440。在框442,逻辑可以使网络接口将与虚拟对话相关的数据转发给参与虚拟对话的一个或更多个客户端设备。在一些实施例中,数据转发可以基于呼叫标识符,例如呼叫标识符254。在许多实施例中,数据接收逻辑436和数据转发逻辑440的各方面可以同时或相继动作。例如,并发逻辑操作可以实现实时或接近实时的数据的流式传输。数据接收逻辑436和数据转发逻辑440一起可以构成数据传输逻辑444。
从框442,处理可以移交给广播数据接收逻辑446。在框448,广播数据接收逻辑446可以使用网络接口在RTC信道上接收广播数据,例如广播请求316。从框448,处理可以被移交给通知逻辑450。
在框452,通知逻辑450可以向参与者通知接收到的广播请求。通知可以包括从广播服务器228向参与虚拟对话的一个或更多个设备发送交换消息250。交换消息250可以包括指示通知的标志252,并且参与者列表258可以包括与广播请求相关联的一个或更多个用户标识符。逻辑可以基于参与者列表258来识别通知的接收者。在一些实施例中,通知逻辑450可以确定两个或更多个用户之间的广播数据的协调的协定。在这些情况下,通知逻辑450可以包括广播许可协调逻辑424的以及与广播许可协调逻辑424紧密联系(surround)的逻辑、组件和/或功能相类似的逻辑、组件和/或功能。
处理可以移交给指示生成逻辑454。在框456,逻辑可以基于由广播数据接收逻辑446接收的数据生成广播指示。例如,广播指示可以包括虚拟对话类型、参与虚拟对话的一个或更多个用户账户和/或诸如图像、视频剪辑、GIF、贴纸、从虚拟对话捕获的帧或其他视频数据的媒体的指示。
处理可以移交给广播指示转发逻辑458。在框460,该逻辑可以在RTC信道上向一个或更多个客户端设备转发广播信息,例如广播指示。在一些实施例中,可以根据广播请求316的参与者列表258发送广播信息。如广播请求316中所指示的,根据参与用户账户的用户设置和/或根据从参与用户账户接收的输入,可以将广播信息发送到不参与虚拟对话的至少一个附加用户账户。
广播数据接收逻辑446、通知逻辑450和广播指示转发逻辑458一起可以组成广播管理逻辑462。在一些实施例中,广播管理逻辑462可以包括广播管理逻辑220的一个或更多个方面。
在一些实施例中,处理可以在框460之后结束。然而,在框464,系统可替代地(例如经由非发起客户端设备处的用户界面)接收接受指示。接受可以包括对广播指示的选择,例如关于图3B所描述的。在一些实施例中,接受的指示可以是加入请求320。如结合图3B所讨论的,可以基于包括邀请或不包括邀请的广播指示来接收加入请求。
在框466,呼叫管理逻辑434可以确定是否有任何参与者参与虚拟对话。例如,在一些情况下,最初在虚拟对话中的一个、一些或每个参与者可能已经离开了虚拟对话,例如通过使用呼叫界面116-1上的结束呼叫按钮126-1离开了虚拟对话。
如果虚拟对话被确定为包括参与者,则呼叫管理逻辑可以继续连接在框464从其收到接受的客户端设备。具体而言,如果在框464处接收的接受指示不是基于包括邀请的广播指示,则框468处的逻辑可以将在框464处接收的接受转发给虚拟对话中的一个或更多个参与者。接受的转发可以包括加入虚拟对话的请求,例如加入请求320。
在框470,如果逻辑从参与虚拟对话的一个或更多个设备接收到批准,例如加入批准322,则逻辑可以将例如具有更新的参与者列表的呼叫信息转发到对话中的一个或更多个参与设备。附加地或替代地,呼叫逻辑可以被转发到在框464从其接收到接受的设备,使得该设备能够成为虚拟对话中的新参与者。
逻辑然后可以通过数据传输逻辑444将新参与者连接到虚拟对话。诸如视频数据的数据可以在数据接收逻辑436处从新的参与者设备接收,并由数据转发逻辑440转发给其他参与者设备。
如果在框470没有接收到对加入请求的批准,则处理可以结束。
在一些实施例中,如果在框464接收到基于包括邀请的广播指示的接受,则逻辑可以直接前进到框472,并将呼叫信息转发给一个或更多个客户端设备。框472可以包括与框432相似的逻辑和/或功能。因此,可以简化处理,降低处理要求。
在一些实施例中,如果在框464接收到接受,但是逻辑在框466识别出在虚拟对话中没有活动参与者,则逻辑可以尝试重新发起与虚拟对话中的一个或更多个参与者的虚拟对话。例如,系统可以向在框464接受的客户端设备呈现回叫(call back)一个或更多个虚拟对话参与者的选项。经由客户端设备的用户界面的确认可以作为请求302由请求接收逻辑402来处理。因此,如结合图3A所述,可以用新的发起客户端设备202-1来重新发起处理。重新发起的虚拟对话可以与和原始虚拟对话相同的或新的呼叫标识符254相关联。
可以关于多个设备同时执行关于图4A-图4B描述的处理。例如,可以从与请求接收逻辑402处处理的初始请求302的客户端设备不同的客户端设备接收由广播数据接收逻辑446处理的广播请求。在一些实施例中,可以同时执行诸如数据传输逻辑444和广播管理逻辑462的功能块,使得可以跨一组设备管理虚拟对话和对话广播。
单个或多个设备可以执行图4A-图4B的处理的各方面。例如,协定接收逻辑410和/或呼叫管理逻辑434的各方面可以存在于通信服务器218、广播服务器228和/或诸如发起客户端设备202-1和/或非发起客户端设备202-3的客户端设备上。
通信系统概览
这些示例可以由本地、客户端设备或远程(例如,远程服务器)提供的通信系统来实现。图5A-图5C描绘了通信系统的各种示例,并在下面更详细地讨论。
图5A描绘了示例性集中式通信系统500,其中诸如上述的功能被集成到通信服务器中。集中式通信系统500可以在单个计算实体中(例如完全在单个集中式通信服务器526中)实现通信服务的一些或全部结构和/或操作。实施例不限于此上下文。
集中式通信系统500可以包括计算机实现的系统,该系统具有包括一个或更多个组件的软件应用。尽管图5A所示的集中式通信系统500在某个拓扑中具有有限数量的元件,但集中式通信系统500可以在替代拓扑中包括更多或更少的元件。
集中式通信系统500通常可以被布置成接收、存储和传递消息。集中式通信系统500可以在诸如可以在客户端设备510上执行的通信客户端520离线时存储消息或视频通信,并且一旦客户端可用就传送消息/通信。可替代地或附加地,客户端520可以包括社交网络功能。
客户端设备510可以传输寻址到接收者用户、用户账户或涉及接收客户端设备510的其他标识符的消息。在示例性实施例中,每个客户端设备510及其相应的通信客户端520与集中式通信系统500的一个或更多个特定用户相关联。在一些实施例中,客户端设备510可以是诸如智能手机的蜂窝设备,并且可以基于与每个客户端设备510相关联的电话号码被集中式通信系统500识别。在一些实施例中,每个通信客户端可以与向集中式通信系统500注册的用户账户相关联。一般来说,每个通信客户端可以通过用于接收消息的各种技术来寻址。例如,如上所述,客户端设备510可以是客户端设备202。虽然在一些实施例中,客户端设备510可以是蜂窝设备,但是在其他实施例中,一个或更多个客户端设备510可以是个人计算机、平板设备、任何其他形式的计算设备。
客户端设备510可以包括一个或更多个输入设备512和一个或更多个输出设备518。输入设备512可以包括例如麦克风、键盘、照相机、电子笔、触摸屏和用于接收包括消息数据、请求、命令、用户界面交互、选择和其他类型输入的输入的其他设备。输出设备518可以包括扬声器、显示设备(例如监视器或触摸屏)以及用于向集中式通信系统500显现界面的其他设备。
客户端设备510可以包括存储器519,存储器519可以是非暂时性计算机可读存储介质,如硬盘驱动器、固态驱动器、闪存、只读存储器或随机存取存储器中的一种或其组合。存储器519可以存储输入514的表示和/或输出516的表示、以及一个或更多个应用。例如,存储器519可以存储允许用户与社交网络服务交互的通信客户端520和/或社交网络客户端。
输入514可以是文本的,如在输入设备包括键盘的情况下,例如通过用户界面102-1。可替代地,输入514可以是音频记录,如在输入设备512是麦克风的情况下。因此,输入514可以经受自动语音识别(ASR)逻辑,以便将音频记录转换成可由集中式通信系统500处理的文本。ASR逻辑可以位于客户端设备510处(使得音频记录由客户端设备510本地处理,并且对应的文本被传输到通信服务器526),或者可以远程地位于通信服务器526处(在这种情况下,音频记录可以被传输到通信服务器526,并且通信服务器526可以将音频处理成文本)。其他组合也是可能的,例如,如果输入设备512是触摸板或电子笔,输入514可以是手写形式,其可以经受手写或光学字符识别分析逻辑,以便将输入514转换成可处理的文本。
客户端设备510可以被提供有用于与网络524(如互联网)通信的网络接口522。网络接口522可以以与网络524兼容的格式和/或使用与网络524兼容的协议来传输输入514,并且可以从网络524接收对应的输出516。
网络接口522可以通过网络524与通信服务器526通信。通信服务器526可操作来接收、存储和转发客户端之间的通信。在一些实施例中,通信服务器526可以是通信服务器218和/或广播服务器228。
通信服务器526可以包括网络接口522、通信偏好528和通信逻辑530。通信偏好528可以包括关于一个或更多个用户和/或消息线程的一个或更多个隐私设置或其他偏好。此外,通信偏好528可以包括本文描述的逻辑的一个或更多个设置,包括默认设置。
通信逻辑530可以包括用于实现本发明的任何或全部上述特征的逻辑。可替代地或附加地,一些或全部特征可以在客户端设备510-i处实现,如通过被结合到诸如通信客户端520的应用中。
客户端设备510和/或通信服务器526的网络接口522也可以用于通过网络524与app服务器540通信。app服务器可以将软件或应用存储在app库544中,该软件或应用表示可由客户端设备510-i和/或通信服务器526(以及其他实体)下载的软件。app库544中的app可以完全或部分地实现本文描述的实施例。在接收到下载结合示例性实施例的软件的请求时,app逻辑542可以识别app库544中的对应app,并且可以(例如,经由网络接口)将该app提供给请求该软件的实体。
客户端设备510和/或通信服务器526的网络接口522也可以用于通过网络524与社交网络服务器536通信。社交网络服务器536可以包括定义社交网络中的关连(connection)的社交网络图538或者可以与该社交网络图538交互。此外,通信服务器526可以出于各种目的(如从社交网络检索关连信息、通信历史、事件细节等)而连接到社交网络服务器536。
客户端设备510的用户可以是与社交网络服务器536交互或通信或者通过社交网络服务器536交互或通信的个人(人类用户)、实体(例如,企业、公司或第三方应用)或(例如,个人或实体的)群组。社交网络服务器536可以是托管在线社交网络的网络可寻址计算系统。社交网络服务器536可以生成、存储、接收并发送社交网络数据(例如,用户简档数据、概念简档数据、社交图信息或与在线社交网络相关的其他合适的数据)。社交网络服务器536可以由网络环境的其他组件直接地或经由网络524访问。在一些实施例中,通信服务器526可以包括社交网络服务器536。
社交网络服务器536可以包括授权服务器(或其他合适的组件),授权服务器例如通过设置适当的隐私设置来使得用户选择允许或选择不允许使他们的动作由社交网络服务器536记录或者与其他系统(例如,诸如通信服务器526的第三方系统)共享。用户的隐私设置可以确定可以记录与用户相关联的什么信息、可以如何记录与用户相关联的信息、何时可以记录与用户相关联的信息、谁可以记录与用户相关联的信息、可以与谁共享与用户相关联的信息以及可以记录或共享与用户相关联的信息的目的。授权服务器可用于在适当时通过阻止、数据散列、匿名化或其他合适的技术来实施社交网络服务器536的用户的一个或更多个隐私设置。
更具体地,在线社交网络的一个或更多个内容对象可以与隐私设置相关联。例如,对象的隐私设置(或“访问设置”)可以以任何合适的方式(诸如与对象相关联地、在授权服务器上用索引、以另一种合适的方式、或其任何组合)被存储。对象的隐私设置可以指定可以如何使用在线社交网络来访问(例如,查看或分享)对象(或与对象相关联的特定信息)。在对象的隐私设置允许特定用户访问该对象的场合,该对象可以被描述为相对于该用户是“可见的”。作为示例而不是作为限制,在线社交网络的用户可以指定用于用户简档页面的隐私设置,其识别可以访问用户简档页面上的工作经历信息的用户集合,因而排除其他用户访问该信息。在特定实施例中,隐私设置可以指定不应当被允许访问与对象相关联的某些信息的用户的“黑名单”。换句话说,黑名单可以指定一个或更多个用户或实体,对象对这些用户或实体是不可见的。作为示例而不是作为限制,用户可以指定不可以访问与用户相关联的相册的用户集合,因而排除那些用户访问相册(同时也可能允许不在该用户集合内的某些用户访问相册)。
在特定实施例中,隐私设置可以与社交网络图538的特定元素相关联。社交图元素(例如节点或边)的隐私设置可以指定可以如何使用在线社交网络来访问社交图元素、与社交图元素相关联的信息、或与社交图元素相关联的内容对象。作为示例而不是作为限制,对应于特定照片的特定概念节点可以具有指定照片只能由在照片中标记的用户及他们的朋友访问的隐私设置。在特定实施例中,隐私设置可以使得用户选择允许或选择不允许使他们的动作由社交网络服务器536记录或者与其他系统共享。在特定实施例中,与对象相关联的隐私设置可以指定允许访问或拒绝访问的任何合适的粒度。作为示例而不是作为限制,可以为特定用户(例如,只有我、我的室友和我的老板)、在特定分离度内的用户(例如,朋友或朋友的朋友)、用户团体(例如,游戏俱乐部、我的家人)、用户网络(例如,特定雇主的雇员、特定大学的学生或校友)、所有用户(“公众”)、无用户(“私人的”)、第三方系统的用户、特定应用(例如,第三方应用、外部网站)、其他适当的用户或实体、或其任何组合来指定访问或访问的拒绝。尽管本公开描述了以特定方式使用特定隐私设置,但是本公开设想了以任何合适的方式使用任何合适的隐私设置。
响应于来自用户(或其他实体)的对存储在数据储存器中的特定对象的请求,社交网络服务器536可以向数据储存器发送对该对象的请求。该请求可以识别与该请求相关联的用户。所请求的数据对象只有在授权服务器基于与该对象相关联的隐私设置确定该用户被授权访问该对象时才可以被发送给该用户(或者该用户的客户端设备510)。如果请求用户未被授权访问该对象,则授权服务器可以阻止所请求的对象从数据储存器中被检索,或者可以阻止所请求的对象被发送给用户。在搜索查询上下文中,只有在查询用户被授权访问对象时才可以将该对象生成为搜索结果。换句话说,对象必须具有对查询用户可见的可见性。如果对象具有对用户不可见的可见性,则可以从搜索结果中排除该对象。
在一些实施例中,可以出于各种目的使用定位标准(targeting criteria)来识别社交网络的用户。用于识别并定位用户的定位标准可以包括社交网络服务器536上的明确的、陈述的用户兴趣或者用户与社交网络服务器536上的节点、对象、实体、品牌或页面的明确关连。另外或作为替代方案,这种定位标准可以包括隐含的或推断的用户兴趣或关连(其可以包括分析用户的历史、人口统计、社交或其他活动、朋友的社交或其他活动、订阅或(例如,基于共享的兴趣、关连或事件)与用户相似的其他用户的任何前述内容)。特定实施例可以利用平台定位,这可以涉及平台和“赞”印象数据;上下文的信号(例如,“谁现在在观看或最近已经观看了可口可乐的页面?”);轻量级关连(例如,“签到”);类似关连(connectionlookalike);粉丝;提取的关键词;EMU广告;推理广告;系数、亲和力或其他社交图信息;朋友的朋友关连;牵制(pinning)或提升(boosting);交易;民意调查(poll);家庭收入、社交集群或群组;在图像或其他媒体中检测到的产品;社交图或开放图(open-graph)边类型;地理预测;简档或页面的视图;状态更新或其他用户帖子(对其的分析可能涉及自然语言处理或关键词提取);事件信息;或者协同过滤。识别并定位用户也可以在适当的情况下涉及隐私设置(诸如用户选择不允许)、数据散列或数据匿名化。
图5A中所描绘的集中式实施例可非常适合作为新系统或作为现有系统的升级来部署,因为用于实现示例性实施例的逻辑被结合到通信服务器526中。相比之下,图5B描绘了示例性分布式通信系统550,其中用于实现示例性实施例的功能是分布式的并且可从通信服务器远程访问。分布式通信系统550的示例包括客户端-服务器架构、3层架构、N层架构、紧密耦合或集群架构、对等架构、主从架构、共享数据库架构以及其他类型的分布式系统。
图5B中描绘的许多组件与图5A中的组件相同,并且为了简洁起见,这里不再重复对这些元件的描述(为了便于讨论,从图中省略了app服务器540,尽管应当理解,该实施例也可以采用app服务器540)。集中式实施例和分布式实施例之间的主要区别在于增加了单独的处理服务器552,该处理服务器552托管用于实现示例性实施例的逻辑530。处理服务器552可以不同于通信服务器526,但是可以直接或通过网络524与通信服务器526通信,以向通信服务器526提供逻辑530的功能。
图5B所描绘的实施例可能特别适合于允许示例性实施例与现有的通信系统一起部署,例如当替换现有的通信服务器很困难或不合乎需要时。另外,在一些情况下,通信服务器526可能具有有限的资源(例如,处理资源或存储器资源),这限制或排除了附加枢轴(pivot)功能的添加。在这种情形中,本文描述的能力仍然可以通过单独的处理服务器552来提供。
在另外其他的实施例中,逻辑530可以在客户端设备510-i本地提供,例如作为通信客户端520的一部分。在这些实施例中,每个客户端设备510-i自己做出关于哪些消息属于哪个线程、以及如何更新显示和发出通知的确定。因此,根据本地设置,不同的客户端设备510-i可以不同地显示相同的对话(例如,相同的消息可以被分配给不同的线程,或者相似的线程可以具有不同的父级或突出显示)。
图5C示出了社交网络图538的示例。在示例性实施例中,社交网络服务可以将一个或更多个社交网络图538存储在一个或更多个数据储存器中作为经由社交网络服务的社交网络图数据结构。
社交网络图538可以包括多个节点,如用户节点554和概念节点556。社交网络图538还可以包括关连节点的边558。社交网络图538的节点和边可以作为数据对象被存储在例如数据储存器(如社交图数据库)中。这种数据储存器可以包括社交网络图538的节点或边的一个或更多个可搜索或可查询的索引。
社交网络图538可由通信服务器218、广播服务器228、环境200的设备、第三方系统或任何其他经批准的适合应用的系统或设备来访问。
用户节点554可以对应于社交网络系统的用户。用户可以是与社交网络系统交互或通信或者通过社交网络系统交互或通信的个人(人类用户)、实体(例如,企业、公司或第三方应用)或(例如,个人或实体的)群组。在示例性实施例中,当用户向社交网络系统注册账户时,社交网络系统可以创建对应于用户的用户节点554,并将用户节点554存储在一个或更多个数据储存器中。本文描述的用户和用户节点554在适当的情况下可以指注册的用户和与注册的用户相关联的用户节点554。另外或作为替代方案,在适当的情况下,本文描述的用户和用户节点554可以指没有向社交网络系统注册的用户。在特定实施例中,用户节点554可以与由用户提供的信息或由各种系统(包括社交网络系统)收集的信息相关联。作为示例而不是作为限制,用户可以提供他们的姓名、简档图片、联系信息、出生日期、性别、婚姻状况、家庭状况、职业、教育背景、偏好、兴趣或其他人口统计信息。在特定实施例中,用户节点554可以与对应于与用户相关联的信息的一个或更多个数据对象相关联。在特定实施例中,用户节点554可以对应于一个或更多个网页。用户节点554可以与社交网络系统中用户的唯一用户标识符相关联。
在特定实施例中,概念节点556可以对应于概念。作为示例而不是作为限制,概念可以对应于地点(诸如例如,电影院、餐馆、地标或城市);网站(诸如例如,与社交网络服务相关联的网站或与web应用服务器相关联的第三方网站);实体(诸如例如,个人、企业、群组、运动队或名人);资源(诸如例如,音频文件、视频文件、数字照片、文本文件、结构化文档或应用),其可以位于社交网络系统内或外部服务器(例如web应用服务器)上;不动产或知识产权(诸如例如,雕塑、绘画、电影、游戏、歌曲、想法、照片或书面作品);游戏;活动;想法或理论;另一个合适的概念;或者两个或更多个这样的概念。概念节点556可以与由用户提供的概念的信息或由各种系统(包括社交网络系统)收集的信息相关联。作为示例而不是作为限制,概念的信息可以包括名称或标题;一个或更多个图像(例如,书籍的封面的图像);位置(例如,地址或地理位置);网站(其可以与URL相关联);联系信息(例如,电话号码或电子邮件地址);其他合适的概念信息;或者这样的信息的任何合适的组合。在特定实施例中,概念节点556可以与一个或更多个数据对象相关联,该一个或更多个数据对象对应于与概念节点556相关联的信息。在特定实施例中,概念节点556可以对应于一个或更多个网页。
在特定实施例中,社交网络图538中的节点可以表示网页或由网页表示(其可以被称为“简档页面”)。简档页面可以由社交网络系统托管或是社交网络系统可访问的。简档页面也可以在与第三方服务器相关联的第三方网站上被托管。作为示例而不是作为限制,对应于特定外部网页的简档页面可以是特定外部网页,并且简档页面可以对应于特定概念节点556。简档页面可以由其他用户的全部或选定子集可查看。作为示例而不是作为限制,用户节点554可以具有相应的用户简档页面,其中相应的用户可以添加内容、作出声明或以其他方式表达他或她自己。作为另一示例而不是作为限制,概念节点556可以具有对应的概念简档页面,其中一个或更多个用户可以添加内容、作出声明或表达他们自己,特别是关于对应于概念节点556的概念。
在特定实施例中,概念节点556可以表示由第三方系统托管的第三方网页或资源。第三方网页或资源可以包括表示动作或活动的内容、可选择的图标或其他图标或其他可交互对象(其可以例如用JavaScript、AJAX或PHP代码实现)、以及其他元素。作为示例而不是作为限制,第三方网页可以包括可选择的图标(例如“赞”、“签到”、“吃”、“推荐”)或其他合适的动作或活动。查看第三方网页的用户可以通过选择图标之一(例如,“吃”)来执行动作,使客户端系统向社交网络系统发送指示用户的动作的消息。响应于该消息,社交网络系统可以在对应于用户的用户节点554和对应于第三方网页或资源的概念节点556之间创建边(例如,“吃”边),并将边558存储在一个或更多个数据储存器中。
在特定实施例中,社交网络图538中的一对节点可以通过一条或更多条边558关连到彼此。关连一对节点的边558可以表示在该对节点之间的关系。在特定实施例中,边558可以包括或表示对应于在一对节点之间的关系的一个或更多个数据对象或属性。作为示例而不是作为限制,第一用户可以指示第二用户是第一用户的“朋友”。响应于该指示,社交网络系统可以向第二用户发送“朋友请求”。如果第二用户确认“朋友请求”,则社交网络系统可以在社交网络图538中创建将第一用户的用户节点554关连到第二用户的用户节点554的边558,并将边558作为社交图信息存储在一个或更多个数据储存器中。在图5C的示例中,社交网络图538包括指示用户“Amanda”和用户“Dorothy”的用户节点554之间的朋友关系的边558。尽管本公开描述或示出了关连特定用户节点554的具有特定属性的特定边558,但是本公开设想了关连用户节点554的具有任何合适属性的任何合适的边558。作为示例而不是作为限制,边558可以表示友谊、家庭关系、企业或雇佣关系、粉丝关系、关注者(follower)关系、访问者关系、订购者关系、上级/下级关系、互惠关系、非互惠关系、另一种合适类型的关系、或两种或更多种这样的关系。此外,尽管本公开一般将节点描述为被关连,但是本公开也将用户或概念描述为被关连。在本文,对被关连的用户或概念的引用在适当的情况下可以指在社交网络图538中由一条或更多条边558关连的对应于那些用户或概念的节点。
在特定实施例中,在用户节点554和概念节点556之间的边558可以表示由与用户节点554相关联的用户对与概念节点556相关联的概念执行的特定动作或活动。作为示例而不是作为限制,如图5C所示,用户可以“喜欢”、“参加”、“播放”、“收听”、“烹饪”、“工作于”或“观看”概念,其中每个可以对应于边类型或子类型。对应于概念节点556的概念简档页面可以包括例如可选择的“签到”图标(例如,可点击的“签到”图标)或可选择的“添加到收藏夹”图标。类似地,在用户点击这些图标之后,社交网络系统可以响应于对应于相应动作的用户动作来创建“收藏夹”边或“签到”边。作为另一个示例而不是作为限制,用户(用户“Carla”)可以使用特定的应用(音乐服务(Music Service),其为在线音乐应用)来收听特定的歌曲(“飘洋过海(Across the Sea)”)。在这种情况下,社交网络系统可以在对应于用户的用户节点554和对应于歌曲和应用的概念节点556之间创建“收听”边558和“使用”边(如图5C所示),以指示用户收听了歌曲并使用了应用。此外,社交网络系统可以在对应于歌曲和应用的概念节点556之间创建“播放”边558(如图5C所示),以指示特定的歌曲由特定的应用播放。在这种情况下,“播放”边558对应于由外部应用(音乐服务(Music Service))对外部音频文件(歌曲“飘洋过海”)执行的动作。尽管本公开描述了关连用户节点554和概念节点556的具有特定属性的特定边558,但是本公开设想了关连用户节点554和概念节点556的具有任何适当属性的任何适当边558。此外,尽管本公开描述了表示单一关系的在用户节点554和概念节点556之间的边,但是本公开设想了表示一个或更多个关系的在用户节点554和概念节点556之间的边。作为示例而不是作为限制,边558可以表示用户喜欢并使用了特定概念。可替代地,另一条边558可以表示用户节点554和概念节点556之间(如图5C所示,用户“Edwin”的用户节点554和“音乐服务(Music Service)”的概念节点556之间)每种类型的关系(或多个单一关系)。
在特定实施例中,社交网络系统可以在社交网络图538中的用户节点554和概念节点556之间创建边558。作为示例而不是作为限制,(诸如例如,通过使用由用户的客户端系统托管的web浏览器或专用应用)查看概念简档页面的用户可以通过点击或选择“赞”图标来指示他或她喜欢由概念节点556表示的概念,这可以使用户的客户端系统向社交网络系统发送指示用户喜欢与概念简档页面相关联的概念的消息。响应于该消息,社交网络系统可以在与用户相关联的用户节点554和概念节点556之间创建边558,如由在用户节点和概念节点556之间的“赞”边558所示的。在特定实施例中,社交网络系统可以将边558存储在一个或更多个数据储存器中。在特定实施例中,边558可以由社交网络系统响应于特定用户动作而自动形成。作为示例而不是作为限制,如果第一用户上传图片、观看电影或收听歌曲,则可以在对应于第一用户的用户节点554和对应于那些概念的概念节点556之间形成边558。尽管本公开描述了以特定方式形成特定边558,但是本公开设想了以任何合适的方式形成任何合适的边558。
社交网络图538还可以包括多个产品节点。产品节点可以表示可能与特定企业相关联的特定产品。企业可以向消费者对企业服务提供产品目录,并且消费者对企业服务因此可以在社交网络图538中的产品节点内表示每个产品,其中每个产品在不同的产品节点中。产品节点可以包括与产品相关的信息,如定价信息、描述性信息、制造商信息、可用性信息和其他相关信息。例如,餐馆菜单上的每个项目可以在社交网络图538内用描述每个项目的产品节点来表示。产品节点可以通过边链接到提供产品的企业。当多个企业提供一个产品时,每个企业可以有一个与其对该产品的提供相关联的不同的产品节点,或者每个企业都链接到同一个产品节点。产品节点可以通过边链接到已经购买、评级、拥有、推荐或查看了该产品的每个用户,其中边描述关系的性质(例如,购买、评级、拥有、推荐、查看或其他关系)。凭借所链接的商家企业,每个产品节点可以与图形id和相关联的商家id相关联。因此,可以通过在社交网络图538内检索链接到企业的用户节点的可用产品节点,将可从企业获得的产品传送给用户。产品节点的信息可以由社交网络系统操纵作为产品对象,该产品对象封装了关于被引用产品的信息。
这样,社交网络图538可用于推断社交网络系统的两个或更多个用户的共享的兴趣、共享的体验或其他共享或共同的属性。例如,各自具有到社交网络图538中所表示的共同企业、产品、媒体项目、机构或其他实体的边的两个或更多个用户可以指示与该实体的共享关系,该共享关系可以用于建议为一个或更多个用户定制社交网络系统(包括消息传递系统)的使用。
上面描述的实施例可以由消息传递架构来执行,其示例接下来将参考图6来描述。
消息传递架构
图6示出了实现消息传递服务600的各种功能的多个服务器的实施例。将认识到,在消息传递服务600的各种实施例中可以使用不同的工作和功能分布。虽然为了简单起见,将针对基于文本的对话来描述消息传递服务600,但是将理解,一个或更多个元素可以应用于其他类型的虚拟对话,例如视频呼叫。例如,消息传递服务600可以使用如参考图1A-图1D所述的用户界面来实现,可以用于支持如参考图2A-图2B所述的环境,并且容纳图3A-图3B的信息流的一个或更多个组件。
消息传递服务600可以包括域名前端602。域名前端602可以被分配域名系统(DNS)中与消息传递服务600相关联的一个或更多个域名。域名前端602可以接收传入连接,并将连接分配给提供各种消息传递服务的服务器。
消息传递服务600可以包括一个或更多个聊天服务器604。聊天服务器604可以包括前端服务器,用于接收和传输用户到用户的消息传递更新,如聊天消息。基于工作负载平衡,域名前端602可以将传入连接分配给聊天服务器604。
消息传递服务600可以包括后端服务器608。后端服务器608可以执行支持前端聊天服务器604的聊天操作的专门任务。可以使用多个不同类型的后端服务器608。将认识到,多种类型的任务到不同后端服务器608的分配在不同的实施例中可以有所变化。在一些实施例中,由专用服务器提供的一些后端服务可以被组合到单个服务器或服务器集合上,每个服务器在本文描述的实施例中执行不同服务器之间划分的多个任务。类似地,在一些实施例中,本文描述的一些专用后端服务器的任务可以在不同服务器组的不同服务器之间划分。
消息传递服务600可以包括网络总线606,用于实现域名前端602、聊天服务器604和/或后端服务器608的组件之间的合作。
消息传递服务600可以包括一个或更多个离线存储服务器610。一个或更多个离线存储服务器610可以存储当前离线消息传递客户端的消息传递内容,以备消息传递客户端重新连接时使用。
消息传递服务600可以包括一个或更多个会话服务器612。一个或更多个会话服务器612可以维护连接的消息传递客户端的会话状态。
消息传递服务600可以包括一个或更多个存在服务器(presence server)614。一个或更多个存在服务器614可以维护消息传递服务600的存在信息。存在信息可以对应于特定于用户的信息,该信息指示给定用户是否具有在线消息传递客户端并可用于聊天、是否具有在线消息传递客户端但是当前远离它、是否没有在线消息传递客户端、以及任何其他存在状态。
消息传递服务600可以包括一个或更多个推送存储服务器616。一个或更多个推送存储服务器616可以缓存推送请求,并将推送请求传输给消息传递客户端。推送请求可用于唤醒消息传递客户端,通知消息传递客户端消息传递更新可用,以及以其他方式执行服务器侧驱动的与消息传递客户端的交互。
消息传递服务600可以包括一个或更多个群组服务器618。一个或更多个群组服务器618可以维护群组列表,将用户添加到群组,从群组中移除用户,以及执行群组聊天消息的接收、缓存和转发。一些实施例可以使用来自群组服务器618的群组数据来管理(curate)参与者列表258,如上面更详细描述的。参与者列表258的管理可以基于用户输入,例如存储在群组服务器618中的群组的选择,或者根据用户设置。例如,群组服务器618的群组可以与一个或更多个隐私设置相关联。
消息传递服务600可以包括一个或更多个阻止列表服务器620。一个或更多个阻止列表服务器620可以维护特定于用户的阻止列表,特定于用户的传入阻止列表为每个用户指示禁止向该用户传输消息的一个或更多个其他用户。可替代地或附加地,一个或更多个阻止列表服务器620可以维护特定于用户的传出阻止列表,该列表为每个用户指示该用户被禁止向其传输消息的一个或更多个其他用户。将认识到,传入阻止列表和传出阻止列表可以组合存储在例如数据库中,其中传入阻止列表和传出阻止列表代表同一阻止信息储存库的不同视角。消息传递服务600可以包括一个或更多个最后看到的信息服务器622。一个或更多个最后看到的信息服务器622可以接收、存储和维护指示最后看到的位置、状态、消息传递客户端、以及最后看到的用户到消息传递服务600的连接的其他元素的信息。
消息传递服务600可以包括一个或更多个密钥服务器624。一个或更多个密钥服务器可以托管用于公钥/私钥加密通信的公钥。
消息传递服务600可以包括一个或更多个简档照片服务器626。一个或更多个简档照片服务器626可以存储消息传递服务600的多个用户的简档照片并可用于这些简档照片的检索。一些实施例可以在广播指示中包括来自简档照片服务器626的简档照片,例如,如上文参考图1A和图1D所述。
消息传递服务600可以包括一个或更多个垃圾邮件记录服务器628。一个或更多个垃圾邮件记录服务器628可以记录已知的和可疑的垃圾邮件(例如,不想要的消息,尤其是那些促销性质的消息)。在一些实施例中,一个或更多个垃圾邮件记录服务器628可操作来分析消息以确定它们是否是垃圾邮件,并对可疑的垃圾邮件发送者(发送垃圾邮件消息的用户)执行惩罚措施。
消息传递服务600可以包括一个或更多个统计服务器630。一个或更多个统计服务器可以编译和存储与消息传递服务600的操作和消息传递服务600的用户的行为相关的统计信息。
消息传递服务600可以包括一个或更多个web服务器632。一个或更多个web服务器632可以与web浏览器进行超文本传输协议(HTTP)连接和超文本传输协议安全(HTTPS)连接。
消息传递服务600可以包括一个或更多个聊天活动监控服务器634。一个或更多个聊天活动监控服务器634可以监控用户的聊天,以确定消息传递服务600的用户的未授权或不鼓励的行为。一个或更多个聊天活动监控服务器634可以与垃圾邮件记录服务器628和阻止列表服务器620协同工作,其中一个或更多个聊天活动监控服务器634识别垃圾邮件或其他不鼓励的行为,并且向垃圾邮件记录服务器628提供垃圾邮件信息,并且在适当的情况下向阻止列表服务器620提供阻止信息。
消息传递服务600可以包括一个或更多个同步服务器636。一个或更多个同步服务器636可以使通信服务器526与来自消息传送客户端的联系人信息(例如在移动电话上的地址簿)同步,以在消息传送服务600中确定用户的联系人。
消息传递服务600可以包括一个或更多个多媒体服务器638。一个或更多个多媒体服务器可以存储在消息传递客户端之间传输的多媒体(例如,图像、视频、音频)、为离线端点缓存的多媒体,并且可以执行多媒体的代码转换。
消息传递服务600可以包括一个或更多个支付服务器640。一个或更多个支付服务器640可以处理来自用户的支付。一个或更多个支付服务器640可以连接到外部第三方服务器以进行支付。消息传递服务600可以包括一个或更多个注册服务器642。一个或更多个注册服务器642可以注册消息传递服务600的新用户。
消息传递服务600可以包括一个或更多个语音中继服务器644。一个或更多个语音中继服务器644可以在消息传递客户端之间中继互联网协议语音(VoIP)语音通信,以执行VoIP呼叫。
上述方法可以体现为计算机可读介质上的指令或计算架构的一部分。图7示出了适于实现如前所述的各种实施例的示例性计算架构700的实施例。例如,计算架构700可用于实现客户端设备202和/或环境200的一个或更多个方面。在一个实施例中,计算架构700可以包括电子设备(如计算机701)或作为其一部分来实现。实施例不限于这种上下文。
如本申请中所使用的,术语“系统”和“组件”旨在指代计算机相关的实体,或者是硬件、硬件和软件的组合、软件、或者是执行中的软件,它们的示例由示例性计算架构700提供。例如,组件可以是,但不限于,运行在处理器上的进程、处理器、硬盘驱动器、多个存储驱动器(光和/或磁存储介质的存储驱动器)、对象、可执行文件、执行线程、程序和/或计算机。举例来说,运行在服务器上的应用和服务器都可以是组件。一个或更多个组件可以驻留在进程和/或执行线程内,并且一个组件可以位于一台计算机上和/或分布在两台或更多台计算机之间。此外,组件可以通过各种类型的通信介质彼此通信地耦合,以协同操作。协同可以涉及单向或双向的信息交换。例如,组件可以传递以通过通信介质传递的信号的形式的信息。信息可以被实现为分配给各种信号线的信号。在这样的分配中,每个消息都是一个信号。然而,另外的实施例可以替代地采用数据消息。这种数据消息可以通过各种连接发送。示例性连接包括并行接口、串行接口和总线接口。
计算架构700包括各种常见的计算元件,如一个或更多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等。然而,实施例不限于由计算架构700实现。
如图7所示,计算架构700包括处理单元702、系统存储器704和系统总线706。处理单元702可以是各种市场上可买到的处理器中的任何一种,包括但不限于和处理器;嵌入式和安全处理器;处理器;单元处理器;Core(2)和处理器;以及类似的处理器。双微处理器、多核处理器和其他多处理器架构也可以用作处理单元702。
系统总线706提供系统组件(包括但不限于系统存储器704)到处理单元702的接口。系统总线706可以是几种类型总线结构中的任何一种,其还可以使用各种商业上可获得的总线架构中的任何一种互连到存储器总线(具有或不具有存储器控制器)、外围总线和本地总线。接口适配器可以经由插槽架构连接到系统总线706。示例插槽架构可以包括但不限于加速图形端口(AGP)、卡总线、(扩展的)工业标准架构((E)ISA)、微信道架构(MCA)、NuBus、外围组件互连(扩展的)(PCI(X))、PCI Express、个人计算机存储卡国际协会(PCMCIA),等等。
计算架构700可以包括或实现各种制品。一种制品可以包括存储逻辑的计算机可读存储介质。计算机可读存储介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器,等等。逻辑的示例可以包括使用任何合适类型的代码实现的可执行计算机程序指令,代码诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象代码、可视代码,等等。实施例还可以至少部分地实现为包含在非暂时性计算机可读介质中或其上的指令,这些指令可以被一个或更多个处理器读取和执行,以实现本文描述的操作的执行。
系统存储器704可以包括一个或更多个高速存储器单元形式的各种类型的计算机可读存储介质,如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、聚合物存储器(如铁电聚合物存储器)、双向(ovonic)存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、设备阵列(如独立磁盘冗余阵列(RAID)驱动器)、固态存储器设备(例如,USB存储器、固态驱动器(SSD))、以及适于存储信息的任何其他类型的存储介质。在图7所示的图示实施例中,系统存储器704可以包括非易失性存储器708和/或易失性存储器710。基本输入/输出系统(BIOS)可以存储在非易失性存储器708中。
计算架构700可以包括以一个或更多个低速存储器单元形式的各种类型的计算机可读存储介质,包括内部(或外部)硬盘驱动器(HDD)712、从可移动磁盘716读取或向其写入的磁软盘驱动器(FDD)714、以及从可移动光盘720(例如,CD-ROM或DVD)读取或向其写入的光盘驱动器718。HDD 712、FDD 714和光盘驱动器718可以分别通过HDD接口722、FDD接口724和光盘驱动器接口726连接到系统总线706。用于外部驱动器实现的HDD接口722可以包括通用串行总线(USB)和IEEE 694接口技术中的至少一种或两种。
驱动器和相关联的计算机可读介质提供数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储。例如,多个程序模块(包括操作系统728、一个或更多个应用程序730、其他程序模块732和程序数据734)可以存储在驱动器和存储器单元708、712中。在一个实施例中,一个或更多个应用程序730、其他程序模块732和程序数据734可以包括例如消息传递服务600的各种应用和/或组件。
用户可以通过一个或更多个有线/无线输入设备——例如,键盘736和诸如鼠标738的指向设备——向计算机701输入命令和信息。其他输入设备可以包括麦克风、红外(IR)遥控器、射频(RF)遥控器、游戏垫、手写笔、读卡器、加密锁、指纹读取器、手套、图形输入板、操纵杆、键盘、视网膜读取器、触摸屏(例如电容性、电阻性等)、轨迹球、跟踪板、传感器、触控笔,等等。这些和其他输入设备通常通过耦合到系统总线706的输入设备接口740连接到处理单元702,但是也可以通过其他接口连接,如并行端口、IEEE 694串行端口、游戏端口、USB端口、IR接口,等等。
监视器742或其他类型的显示设备也经由诸如视频适配器744的接口连接到系统总线706。监视器742可以在计算机701的内部或外部。除了监视器742,计算机通常还包括其他外围输出设备,如扬声器、打印机,等等。
计算机701可以使用经由到一个或更多个远程计算机(如远程计算机756)的有线和/或无线通信的逻辑连接在网络化环境中操作。远程计算机756可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他公共网络节点,并且典型地包括相对于计算机701描述的许多或全部元件,尽管为了简洁起见,仅示出了存储器/存储设备746。所描绘的逻辑连接包括到局域网(LAN)748和/或更大网络(例如,广域网(WAN)750)的有线/无线连接。这种LAN和WAN网络环境在办公室和公司中是常见的,并且有利于企业范围的计算机网络,如内部网,全部这些网络都可以连接到全球通信网络,例如,互联网。
当在LAN网络环境中使用时,计算机701通过有线和/或无线通信网络接口或适配器752连接到LAN 748。适配器752可以促进到LAN 748的有线和/或无线通信,LAN 748也可以包括设置在其上的无线接入点,用于与适配器752的无线功能通信。
当在WAN网络环境中使用时,计算机701可以包括调制解调器754,或者连接到WAN750上的通信服务器,或者具有用于通过WAN 750(如通过互联网)建立通信的其他装置。调制解调器754——其可以是内置或外置的有线和/或无线设备——经由输入设备接口740连接到系统总线706。在联网环境中,相对于计算机701描绘的程序模块或其部分可以存储在远程存储器/存储设备746中。将认识到,所示的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他装置。
计算机701可操作来使用IEEE 802标准系列与有线和无线设备或实体通信,如在无线通信中可操作地设置的无线设备(例如,IEEE 802.11空中调制技术)。这至少包括Wi-Fi(或无线保真)、WiMax和蓝牙TM无线技术、以及其他技术。因此,通信可以是与常规网络一样的预定义结构,或者仅仅是至少两个设备之间的自组织通信。Wi-Fi网络使用被称为IEEE802.11x(a、b、g、n等)的无线电技术,以提供安全、可靠、快速的无线连接。Wi-Fi网络可用于将计算机相互连接、连接到互联网、以及连接到有线网络(其使用与IEEE 802.3相关的媒体和功能)。
图8是描绘适于实现如前所述的各种实施例的示例性通信架构800的框图。例如,通信架构800对于实现图2A的环境可能是有用的。通信架构800包括各种常见的通信元件,如发射机、接收机、收发机、无线电、网络接口、基带处理器、天线、放大器、滤波器、电源等等。然而,实施例不限于由通信架构800实现。
如图8所示,通信架构800包括一个或更多个客户端802和服务器804。客户端802可以实现客户端设备510或客户端设备202。例如,服务器804可以实现通信服务器218、广播服务器228和/或通信服务器526。客户端802和服务器804可操作地连接到一个或更多个相应的客户端数据储存器806和服务器数据储存器808,客户端数据储存器806和服务器数据储存器808可用于存储相应客户端802和服务器804本地的信息,如cookies和/或相关联的上下文信息。
客户端802和服务器804可以使用通信框架810在彼此之间传送信息。通信框架810可以实现任何公知的通信技术和协议。通信框架810可以被实现为分组交换网络(例如,诸如互联网的公共网络、诸如企业内部网的专用网络等)、电路交换网络(例如,公共交换电话网络)、或者分组交换网络和电路交换网络的组合(具有合适的网关和转换器)。
通信框架810可以实现各种网络接口,这些网络接口被布置成接受、传送通信网络、和连接到通信网络。网络接口可以被认为是输入输出接口的一种特殊形式。网络接口可以采用连接协议,非限制性地包括直接连接、以太网(例如,粗、细、双绞线10/100/1000基站T等)、令牌环、无线网络接口、蜂窝网络接口、IEEE 802.8a-x网络接口、IEEE 802.16网络接口、IEEE 802.20网络接口等。此外,可以使用多个网络接口来与各种通信网络类型接合。例如,可以采用多个网络接口来允许通过广播、多播和单播网络进行通信。如果处理要求规定了更大的速度和容量,则分布式网络控制器架构可以类似地被用于池化、负载平衡以及以其他方式增加客户端802和服务器804所需的通信带宽。通信网络可以是有线和/或无线网络中的任何一个和组合,网络包括但不限于直接互连、安全定制连接、专用网络(例如,企业内部网)、公共网络(例如,互联网)、个人区域网(PAN)、局域网(LAN)、城域网(MAN)、作为互联网上节点的操作任务(OMNI)、广域网(WAN)、无线网络、蜂窝网络和其他通信网络。
图9示出了用于多载波OFDM系统(如消息传递服务600)的设备900的实施例。设备900可以实现例如参考消息传送请求接收逻辑402、请求转发逻辑406、协定接收逻辑410、响应转发逻辑426、呼叫信息转发逻辑430和/或呼叫管理逻辑434描述的软件组件902。设备900也可以实现逻辑电路904。逻辑电路904可以包括物理电路,以执行针对消息传递服务600所描述的操作。如图9所示,设备900可以包括无线电接口906、基带电路908和计算平台910,尽管实施例不限于这种配置。
设备900可以在单个计算实体中(如完全在单个设备内)实现消息传递服务600和/或逻辑电路904的一些或全部结构和/或操作。可替代地,设备900可以使用分布式系统架构(如客户端-服务器架构、3层架构、N层架构、紧密耦合或集群架构、对等架构、主从架构、共享数据库架构以及其他类型的分布式系统)在多个计算实体之间分布消息传递服务600和/或逻辑电路904的部分结构和/或操作。实施例不限于这种上下文。
在一个实施例中,无线电接口906可以包括适于传输和/或接收单载波或多载波调制信号(例如,包括互补码键控(CCK)和/或正交频分复用(OFDM)符号)的组件或组件的组合,尽管实施例不限于任何特定的空中接口或调制方案。无线电接口906可以包括例如接收机912、发射机916和/或频率合成器914。无线电接口906可以包括偏置控制器、晶体振荡器和/或一个或更多个天线918。在另一个实施例中,无线电接口906可以根据需要使用外部压控振荡器(VCO)、表面声波滤波器、中频(IF)滤波器和/或RF滤波器。由于潜在RF接口设计的多样性,其扩展描述被省略。
基带电路908可以与无线电接口906通信以处理、接收和/或传输信号,并且可以包括例如用于下变频所接收的信号的模数转换器920以及用于上变频用于传输的信号的数模转换器922。此外,基带电路908可以包括基带或物理层(PHY)处理电路924,用于相应接收/传输信号的PHY链路层处理。基带电路908可以包括例如用于媒体访问控制(MAC)/数据链路层处理的处理电路926。基带电路908可以包括存储器控制器928,用于例如经由一个或更多个接口930与处理电路926和/或计算平台910通信。
在一些实施例中,PHY处理电路924可以包括与诸如缓冲存储器的附加电路组合的帧构造和/或检测模块,以构造和/或解构通信帧,如无线电帧。可替代地或附加地,MAC处理电路926可以共享这些功能中某些功能的处理,或者独立于PHY处理电路924执行这些处理。在一些实施例中,可以将MAC和PHY处理集成到单个电路中。
计算平台910可以为设备900提供计算功能。如图所示,计算平台910可以包括处理组件932。除了基带电路908,或者作为基带电路908的替代,设备900可以使用处理组件932来执行消息传递服务600和逻辑电路904的处理操作或逻辑。处理组件932(和/或PHY 924和/或MAC 926)可以包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可以包括设备、逻辑设备、组件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、电感器,等等)、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。软件元件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任意组合。确定实施例是否使用硬件元件和/或软件元件来实现可以根据任意数量的因素而变化,如所需的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和如给定实现所需的其他设计或性能约束。
计算平台910还可以包括其他平台组件934。其他平台组件934包括常用计算元件,如一个或更多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件(例如,数字显示器)、电源等。存储器单元的示例可以包括但不限于一个或更多个高速存储器单元形式的各种类型的计算机可读和机器可读存储介质,如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、聚合物存储器(如铁电聚合物存储器)、双向存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、设备阵列(如独立磁盘冗余阵列(RAID)驱动器)、固态存储器设备(例如,USB存储器、固态驱动器(SSD))、以及适于存储信息的任何其他类型的存储介质。
设备900可以是例如超移动设备、移动设备、固定设备、机器对机器(M2M)设备、个人数字助理(PDA)、移动计算设备、智能电话、电话、数字电话、蜂窝电话、用户装备、电子书阅读器、手持式装置、单向寻呼机、双向寻呼机、消息传递设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、手持计算机、平板计算机、服务器、服务器阵列或服务器群(server farm)、web服务器、网络服务器、互联网服务器、工作站、微型计算机、主框架计算机、超级计算机、网络设备、web设备、分布式计算系统、多处理器系统、基于处理器的系统、消费者电子产品、可编程消费者电子产品、游戏设备、电视、数字电视、机顶盒、无线接入点、基站、节点B、演进节点B(eNB)、订户站、移动订户中心、无线电网络控制器、路由器、集线器、网关、网桥、交换机、机器或其组合。因此,根据合适的需要,本文描述的设备900的功能和/或特定配置可以被包括在设备900的各种实施例中,或者在设备900的各种实施例中被省略。在一些实施例中,设备900可以被配置成与一些协议和频率兼容,这些协议和频率与用于本文所引用的3GPP LTE规范和/或用于WMAN和/或其他宽带无线网络的IEEE 802.16标准中的一个或更多个相关联,尽管实施例在这方面不受限制。
设备900的实施例可以使用单输入单输出(SISO)架构来实现。然而,某些实现可以包括使用用于波束成形或空分多址(SDMA)的自适应天线技术和/或使用MIMO通信技术进行传输和/或接收的多个天线(例如,天线918)。
设备900的组件和特征可以使用分立电路、专用集成电路(ASIC)、逻辑门和/或单芯片架构的任意组合来实现。此外,在适当的情况下,可以使用微控制器、可编程逻辑阵列和/或微处理器或前述的任意组合来实现设备900的特征。注意,硬件、固件和/或软件元件在本文可以统称或单独称为“逻辑”或“电路”。
将认识到,图9的框图中所示的示例性设备900可以表示许多潜在实现的一个功能描述性示例。因此,附图中描绘的块功能的划分、省略或包含并不意味着用于实现这些功能的硬件组件、电路、软件和/或元件必须在实施例中被划分、省略或包含。
至少一个计算机可读存储介质936可以包括指令,这些指令在被执行时使得系统执行本文描述的任何计算机实现的方法。
关于术语的一般注释
一些实施例可以使用表达“一个实施例”或“实施例”及其派生词来描述。这些术语意味着结合实施例描述的特定特征、结构或特性被包括在至少一个实施例中。说明书中不同地方出现的短语“在一个实施例中”不一定都指同一实施例。此外,除非另有说明,否则上述特征被认为可以以任何组合一起使用。因此,单独讨论的任何特征可以彼此组合使用,除非注意到这些特征彼此不兼容。
总体参考本文使用的符号和术语,本文的详细描述可以按照在计算机或计算机网络上执行的程序过程来呈现。这些过程描述和表示由本领域中的技术人员使用来将他们的工作的实质最有效地传达给本领域中的其他技术人员。
过程在这里且通常被设想为导致期望结果的前后一致的操作序列。这些操作是需要物理量的物理操纵的那些操作。通常,但不是必须的,这些量采取能够被存储、传输、组合、比较、和以另外方式操纵的电、磁或光信号的形式。主要由于习惯用法的原因,将这些信号称为比特、值、元素、符号、字符、项、数字等有时证明是方便的。然而,应该注意的是,全部这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。
此外,所执行的操纵常常在术语例如相加或比较方面被提到,这些术语通常与操作人员所执行的脑力操作相关联。在形成一个或更多个实施例的一部分的本文所描述的任何操作中,人类操作员的这种能力不是必需的,或者在大多数情况下是不期望的。更确切地,操作是机器操作。用于执行各种实施例的操作的有用机器包括通用数字计算机或类似设备。
一些实施例可以使用表达“耦合(coupled)”和“连接(connected)”以及它们的派生词来描述。这些术语不一定意欲作为彼此的同义词。例如,可以使用术语“连接”和/或“耦合”来描述一些实施例,以指示两个或更多个元件彼此直接物理接触或电接触。然而,术语“耦合”也可以意味着两个或更多个元件彼此不直接接触,但是仍然彼此合作或相互作用。
各种实施例还涉及用于执行这些操作的装置或系统。该装置可以被特别构造成用于所需的目的,和/或它可以包括如由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。本文提出的过程并不固有地与特定的计算机或其他装置相关。各种通用机器可以与根据本文的教导编写的程序一起被使用,或者构造更专用的装置来执行所需的方法步骤可以证明是方便的。各种这些机器的所需结构将从所给出的描述中显现。
强调的是,本公开的摘要被提供,以允许读者快速确定技术公开的性质。摘要按照这样的理解进行提交,即它将不用于解释或限制权利要求的范围或含义。此外,在前面的详细描述中,可以看出,为了简化本公开,在单个实施例中将各种特征组合在一起。公开的这个方法不应被解释为反映所主张的实施例需要比在每个权利要求中明确陈述的更多的特征的意图。更确切地,如所附权利要求所反映的,发明主题在于少于单个公开的实施例的全部特征。因此,随附的权利要求特此被合并到详细描述中,每个权利要求独立地作为单独的实施例。在所附权利要求中,术语“包括(including)”和“其中(in which)”分别用作相应术语“包括(comprising)”和“其中(wherein)”的简单英语等同物。此外,术语“第一”、“第二”、“第三”等仅用作标签,且并不意欲对它们的对象强加数值要求。
上面描述的内容包括所公开架构的示例。当然,不可能描述部件和/或方法的每一个可能的组合,但是本领域中的普通技术人员可以认识到,许多另外的组合和置换是可能的。因此,该新颖的架构旨在包含落入所附权利要求的精神和范围内的全部这些变更、修改和变化。
Claims (20)
1.一种涉及广播和管理呼叫参与的计算机实现的方法,包括:
在包括第一用户账户和一个或更多个其他用户账户的一组用户账户之间发起视频呼叫,所述视频呼叫至少经由数据信道和不同于所述数据信道的实时通信(RTC)信道来执行;
生成交换消息,所述交换消息包括(i)与所述视频呼叫中的参与的指示相关的指示符,(ii)唯一地标识所述视频呼叫的呼叫标识符,以及(iii)与所述一组用户账户中的任何一个相关的参与者数据;和
经由所述RTC信道向不在所述一组用户账户中的至少一个附加用户账户发送所述交换消息,所述参与的指示显示在与所述至少一个附加用户账户相关联的图形用户界面(GUI)上。
2.根据权利要求1所述的方法,其中所述参与的指示包括来自所述视频呼叫的捕获帧、图形交换格式(GIF)文件、贴纸、视频剪辑或来自所述视频呼叫的视频数据。
3.根据权利要求1所述的方法,其中基于用户账户设置从多个用户账户中选择所述至少一个附加用户账户。
4.根据权利要求1所述的方法,其中,基于来自所述一组用户账户中的至少一个的输入,从多个用户账户中选择所述至少一个附加用户账户。
5.根据权利要求1所述的方法,其中操作还包括向所述一组用户账户中的至少一个用户账户发送通知,所述通知传达所述至少一个附加用户账户的参与的指示的显示。
6.根据权利要求1所述的方法,其中所述参与的指示包括加入所述视频呼叫的邀请。
7.根据权利要求6所述的方法,其中操作还包括从所述至少一个附加用户账户接收对所述参与的指示的选择,以及
如果所述视频呼叫正在进行,则基于所述选择,将所述至少一个附加用户账户添加到所述视频呼叫,以及
如果所述一组用户账户中的所有用户账户已经结束参与所述视频呼叫,则基于所述选择,尝试用所述一组用户账户和所述至少一个附加用户账户重新发起视频呼叫。
8.至少一种非暂时性计算机可读存储介质,其包括指令,所述指令在被执行时使得系统:
在包括第一用户设备和一个或更多个其他用户设备的一组用户设备之间发起视频呼叫,所述视频呼叫至少经由数据信道和不同于所述数据信道的实时通信(RTC)信道来执行;
生成交换消息,所述交换消息包括(i)与所述视频呼叫中的参与的指示相关的指示符,(ii)唯一地标识所述视频呼叫的呼叫标识符,以及(iii)与所述一组用户设备中的任何一个相关的参与者数据;和
经由所述RTC信道向不在所述一组用户设备中的至少一个附加用户设备发送所述交换消息,所述参与的指示显示在与所述至少一个附加用户设备相关联的图形用户界面(GUI)上。
9.根据权利要求8所述的至少一种非暂时性计算机可读存储介质,其中,所述参与的指示包括来自所述视频呼叫的捕获帧、图形交换格式(GIF)文件、贴纸、视频剪辑或来自所述视频呼叫的视频数据。
10.根据权利要求8所述的至少一种非暂时性计算机可读存储介质,还包括指令,该指令在被执行时使得系统基于与所述一组用户设备中的至少一个用户设备相关联的用户账户设置,从多个用户设备中选择所述至少一个附加用户设备。
11.根据权利要求8所述的至少一种非暂时性计算机可读存储介质,还包括指令,该指令在被执行时使得系统基于来自所述一组用户设备中的至少一个的输入,从多个用户设备中选择所述至少一个附加用户设备。
12.根据权利要求8所述的至少一种非暂时性计算机可读存储介质,还包括指令,该指令在被执行时使得系统向所述一组用户设备中的至少一个用户设备发送通知,所述通知传达所述至少一个附加用户设备的参与的指示的显示。
13.根据权利要求8所述的至少一种非暂时性计算机可读存储介质,其中,所述参与的指示包括加入所述视频呼叫的邀请。
14.根据权利要求13所述的至少一种非暂时性计算机可读存储介质,还包括指令,该指令在被执行时使得系统从所述至少一个附加用户设备接收对所述指示的选择,以及
如果所述视频呼叫正在进行,则基于所述选择,将所述至少一个附加用户设备添加到所述视频呼叫,以及
如果所述一组用户设备中的所有用户账户都已经结束参与所述视频呼叫,则基于所述选择,尝试用所述一组用户设备和所述至少一个附加用户设备重新发起视频呼叫。
15.一种涉及广播和管理呼叫参与的装置,包括:
至少一个处理器,其可操作来执行存储的指令,所述指令在被执行时使得所述至少一个处理器:
在包括第一用户和一个或更多个其他用户的一组用户之间发起视频呼叫,所述视频呼叫至少经由数据信道和不同于所述数据信道的实时通信(RTC)信道来执行;
生成交换消息,所述交换消息包括(i)与所述视频呼叫中的参与的指示相关的指示符,(ii)唯一地标识所述视频呼叫的呼叫标识符,以及(iii)与所述一组用户的账户中的任何一个相关的参与者数据;和
经由所述RTC信道向与不在所述一组用户中的附加用户相关联的设备发送所述交换消息,所述指示显示在与至少一个附加用户的账户相关联的图形用户界面(GUI)上。
16.根据权利要求15所述的装置,其中,所述参与的指示包括来自所述视频呼叫的捕获帧、图形交换格式(GIF)文件、贴纸、视频剪辑或
来自所述视频呼叫的视频数据。
17.根据权利要求15所述的装置,其中,基于来自所述一组用户的账户中的至少一个的输入,从多个用户的账户中选择所述至少一个附加用户的账户。
18.根据权利要求15所述的装置,还包括通知逻辑,所述通知逻辑被配置为向所述一组用户中的至少一个用户发送通知,所述通知传达所述至少一个附加用户的参与的指示的显示。
19.根据权利要求15所述的装置,其中,所述参与的指示包括加入所述视频呼叫的邀请。
20.根据权利要求19所述的装置,还包括呼叫管理逻辑,所述呼叫管理逻辑用于从所述至少一个附加用户的账户接收对所述指示的选择,以及
如果所述视频呼叫正在进行,则基于所述选择,将所述至少一个附加用户的账户添加到所述视频呼叫,以及
如果所述一组用户的账户中的所有用户账户都已经结束参与所述视频呼叫,则基于所述选择,尝试用所述一组用户的账户和所述至少一个附加用户的账户重新发起视频呼叫。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/731,279 | 2019-12-31 | ||
US16/731,279 US10904481B1 (en) | 2019-12-31 | 2019-12-31 | Broadcasting and managing call participation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113132344A CN113132344A (zh) | 2021-07-16 |
CN113132344B true CN113132344B (zh) | 2023-04-21 |
Family
ID=73059789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011633210.6A Active CN113132344B (zh) | 2019-12-31 | 2020-12-31 | 广播和管理呼叫参与 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10904481B1 (zh) |
EP (1) | EP3846455A1 (zh) |
CN (1) | CN113132344B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10951564B1 (en) | 2020-04-17 | 2021-03-16 | Slack Technologies, Inc. | Direct messaging instance generation |
US12192679B2 (en) | 2020-05-12 | 2025-01-07 | Truemeeting, Ltd | Updating 3D models of persons |
US20210367982A1 (en) * | 2020-05-22 | 2021-11-25 | Coqual Inc. | Hosted confidential discussion system |
US11784949B2 (en) | 2020-10-06 | 2023-10-10 | Salesforce, Inc. | Limited functionality interface for communication platform |
JP2024518888A (ja) * | 2021-05-10 | 2024-05-08 | トゥルー ミーティング インコーポレイテッド | 仮想3d通信のための方法及びシステム |
US11677863B1 (en) * | 2022-03-10 | 2023-06-13 | ServiceBell, Inc. | Mediated active call initiation in browsers |
US12015652B2 (en) * | 2022-03-17 | 2024-06-18 | Snap Inc. | Web calling system |
DE102023102250A1 (de) | 2023-01-31 | 2024-08-01 | alfaview Video Conferencing Systems GmbH & Co. KG | Dezentrale Datenbank, Verfahren zum Unterhalten einer solchen und darauf basierende Konferenz-Anwendung |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8788589B2 (en) * | 2007-10-12 | 2014-07-22 | Watchitoo, Inc. | System and method for coordinating simultaneous edits of shared digital data |
US9001178B1 (en) * | 2012-01-27 | 2015-04-07 | Google Inc. | Multimedia conference broadcast system |
US8848026B2 (en) * | 2013-02-01 | 2014-09-30 | Maitland M. DeLand | Video conference call conversation topic sharing system |
US9628629B1 (en) * | 2015-12-07 | 2017-04-18 | Microsoft Technology Licensing, Llc | Providing conference call aid based on upcoming deadline |
WO2017181086A1 (en) * | 2016-04-14 | 2017-10-19 | Stoner Theodore | Electronic group communication methods and system |
US10339957B1 (en) * | 2016-12-20 | 2019-07-02 | Amazon Technologies, Inc. | Ending communications session based on presence data |
US11102264B2 (en) * | 2018-01-12 | 2021-08-24 | Facebook, Inc. | Methods and systems for initiating a coordinated effect |
US10622007B2 (en) * | 2018-04-20 | 2020-04-14 | Spotify Ab | Systems and methods for enhancing responsiveness to utterances having detectable emotion |
DK180130B1 (da) * | 2018-05-07 | 2020-06-02 | Apple Inc. | Multi-participant live communication user interface |
-
2019
- 2019-12-31 US US16/731,279 patent/US10904481B1/en active Active
-
2020
- 2020-11-04 EP EP20205783.2A patent/EP3846455A1/en not_active Withdrawn
- 2020-12-31 CN CN202011633210.6A patent/CN113132344B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
EP3846455A1 (en) | 2021-07-07 |
CN113132344A (zh) | 2021-07-16 |
US10904481B1 (en) | 2021-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113132344B (zh) | 广播和管理呼叫参与 | |
US11882231B1 (en) | Methods and systems for processing an ephemeral content message | |
US11063893B1 (en) | Methods and systems for transmitting a video as an asynchronous artifact | |
US10462217B2 (en) | Pivot interface element for a messaging system | |
US11646989B1 (en) | Access controls for units of content in a messaging service | |
US20220043559A1 (en) | Interfaces for a messaging inbox | |
US20180302358A1 (en) | Methods and systems for presenting updates in a messaging thread | |
CN111543062B (zh) | 视频中的协同效果 | |
US11372698B2 (en) | Coordinated effects in experiences | |
US20220150295A1 (en) | Methods and systems for initiating a coordinated effect | |
EP3364330B1 (en) | Methods and systems for processing an ephemeral content message | |
US20230269209A1 (en) | Systems and methods for opt-in messaging | |
US11023429B2 (en) | Methods and systems for associating content with conversation tuples |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Yuan platform Co. Address before: California, USA Applicant before: Facebook, Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |