CN109314661B - 通信系统 - Google Patents

通信系统 Download PDF

Info

Publication number
CN109314661B
CN109314661B CN201780038290.0A CN201780038290A CN109314661B CN 109314661 B CN109314661 B CN 109314661B CN 201780038290 A CN201780038290 A CN 201780038290A CN 109314661 B CN109314661 B CN 109314661B
Authority
CN
China
Prior art keywords
robot
message
user
identifier
user identifier
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
CN201780038290.0A
Other languages
English (en)
Other versions
CN109314661A (zh
Inventor
F·P·穆罕默德
K·阿南塔纳拉亚南
A·皮金
M·G·马特科沃斯基
A·别连科
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN109314661A publication Critical patent/CN109314661A/zh
Application granted granted Critical
Publication of CN109314661B publication Critical patent/CN109314661B/zh
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/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • 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/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

计算机系统包括保持多个代码模块、一个或多个处理器和通信系统的计算机存储设备。一个或多个处理器被配置为执行代码模块,从而实现机器人。通信系统包括消息中继器和匿名标识符生成器。消息中继器被配置为接收消息,该消息包括用户的标识符和机器人中的目标机器人的标识符。匿名标识符生成器被配置为通过将匿名化函数应用于消息中的用户标识符和机器人标识符来生成对目标机器人唯一的用户的匿名标识符。消息中继器被配置为向目标机器人发送消息的版本,其包括匿名用户标识符并且不包括用户标识符,其中用户标识符不被呈现为对目标机器人可访问。

Description

通信系统
技术领域
本发明涉及一种用于实现用户和机器人(即自主软件代理)之间的通信的通信系统。
背景技术
通信系统允许用户通过通信网络彼此通信,例如通过网络进行通信事件。网络可以是例如因特网或公共交换电话网(PSTN)。在通话期间,可以在网络的节点之间传输音频和/或视频信号,从而允许用户在通信会话中通过通信网络彼此发送和接收音频数据(例如语音)和/或视频数据(例如网络摄像头视频)。
这种通信系统包括基于因特网协议的语音或视频(VoIP)系统。为了使用VoIP系统,用户在用户设备上安装并执行客户端软件。客户端软件设置VoIP连接以及提供诸如注册和用户身份验证等其他功能。除了语音通信之外(或可替代地),客户端还可以为通信事件、即时消息(“IM”)、屏幕共享或白板会话建立连接。
可以在用户和“机器人”之间进行通信事件,“机器人”是智能的自主软件代理。机器人是一种自主计算机程序,它在代理关系中代表用户执行任务。机器人在通信事件的一些或所有持续时间内连续运行,等待消息,当检测到这些消息时,触发机器人响应那些消息而执行自动任务。机器人可以展示人工智能(AI),其可以模拟某些人类智能过程,例如,对通信事件中用户发送的消息产生类似人的响应,从而促进用户与机器人之间通过网络进行的双向对话。也就是说,自动生成对消息的响应,以便基于自然语言为用户提供真实的会话体验。
发明内容
随着向CaaP(作为平台的对话)范例的转变,机器人正成为实现富用户交互的新媒体和渠道。传统上使用应用程序执行的动作现在正在逐渐地使用机器人执行。正如众多第三方开发商目前提供的各种应用程序一样,预计在不久的将来,机器人也会出现类似的趋势。
这带来了一个有趣的问题,即由不同的第三方开发和维护的机器人之间的共谋。为了说明目的,假设一个保险机器人可以与一家制药公司机器人共谋,并对使用某种药物的用户收取更多费用。就用户隐私而言,期望的是,在第三方机器人之间进行这种共谋是不可能的(至少在用户未给出其知情同意的情况下)。
本发明通过管理将用户身份发布给机器人的方式来解决该问题。用户和不同的第三方机器人之间的通信通过消息中继器进行。该消息每次发布仅向每个第三方机器人中继一个匿名用户标识符,该标识符对于该机器人是唯一的。从该机器人的角度来看,匿名用户标识符构成一致的用户身份,但对任何其他机器人来说都是无意义的,并且特别是不能匹配到提供给不同机器人的、同一用户的匿名用户标识符。
本发明的第一方面涉及一种计算机系统,包括保持多个代码模块、一个或多个处理器和通信系统的计算机存储设备。一个或多个处理器被配置为执行代码模块,从而实现机器人。通信系统包括消息中继器和匿名标识符生成器。消息中继器被配置为接收包括用户的标识符(原始用户标识符)和目标机器人的标识符的消息。匿名标识符生成器被配置为通过将匿名化函数应用于消息中的用户标识符和机器人标识符来生成对目标机器人唯一的用户的匿名标识符。消息中继器被配置为向目标机器人发送消息的版本,其包括匿名用户标识符并且不包括用户标识符,其中用户标识符不被呈现为对目标机器人可访问。
通信系统充当用户和机器人之间的可信中介,机器人可以是独立的第三方机器人。如果用户信任通信系统,则他可以确信通信系统不允许机器人彼此共谋。
注意,在该上下文中“唯一”意味着在多个机器人内是唯一的,即多个机器人中没有两个机器人接收相同的匿名用户标识符。
机器人可以被配置为响应于接收到消息的版本,自动生成包括匿名用户标识符的对消息版本的响应,并将生成的响应发送到消息中继器。消息中继器可以被配置为检测响应中的匿名用户标识符,并将响应的版本发送给用户。
优选地,用户标识符的匿名版本是用户标识符的加密版本,通过应用对该机器人唯一的加密过程生成。例如,应用加密过程可以包括确定密码数据库中的与机器人标识符相关联且唯一的秘密,以及将加密函数应用于用户标识符和秘密。也就是说,该机器人独有密码秘密。
基于加密对用户标识符进行匿名化的优点在于它确实需要查找表来实现匿名化函数。也就是说,消息中继器不需要存储分配给每个原始用户标识符的匿名用户标识符的记录-在最坏的情况下,这将需要随着N和M增加将存储量缩放为O(N*M),N是用户数,M是机器人数(因为每个用户是M个匿名标识符)。也就是说,每个用户每个机器人可能需要最多一个匿名标识符存储在通信系统内。
相比之下,当基于加密进行匿名化时,消息中继器不需要保留其生成的匿名用户标识符的记录–全部它需要知道的是应用于每个机器人的特定加密过程,例如每个机器人的唯一秘密。当它从其中一个机器人接收到匿名用户标识符时,它可以简单地反转该机器人的加密过程以解密匿名用户标识符(即获得原始用户标识符),并使用解密的标识符向用户发送响应的版本。也就是说,消息中继器可以被配置为将在响应中接收的匿名用户标识符应用用于反转该机器人唯一的加密过程的解密过程。例如,可以使用密码数据库中该机器人唯一的秘密来解密匿名用户标识符。
在来自用户的消息中接收的用户标识符被加密的情况下,所需的存储量仅随着数字或机器人M缩放为O(M)(例如,每个机器人一个存储的秘密)并且与用户数量N无关。例如,用户标识符可以是用户名,或发布给用户的认证令牌(其可以包括或不包括用户名)。
可替代地,加密函数可以应用于通信系统的用户数据库中的与用户标识符相关联的另一用户标识符。也就是说,与用户标识符相关联的另一个用户标识符可以被加密并发送到机器人,而不是在消息本身中接收的用户标识符。虽然这可能需要额外的存储,但是这仍然只随着用户数量N而缩放为O(N),因此总存储要求仅缩放为O(M)+O(N)-与O(N*M)相比仍然是显着的改进。也就是说,在通信系统处每个用户的一个映射(O(N))加上每个机器人的一个秘密(O(M)),而不是每个用户每个机器人一个映射O(M*N)。
然而,注意,O(M*M)查找表的可能性可以用在本发明的其他较不优选的实施例中。
例如,用户数据库可能已经被维护作为通信系统的一部分。例如,在消息中接收的用户标识符可以是认证令牌,而其他用户标识符可以是用户数据库中的映射到加密令牌(即,与之相关联)的用户名。
从不同的角度来看,检索与所接收的用户标识符相关联的其他用户标识符、和将加密函数应用于所检索的标识符的组合操作也构成将加密函数应用于用户标识符,其中,检索其他用户标识符是该加密函数的一部分。
加密函数可以是对称加密函数。
消息中继器被配置为向用户标识符的数据应用密码签名函数以生成通信系统的密码签名,该密码签名包括在发送到机器人的消息的版本中。在此上下文中,“用户标识符的数据”可以表示原始(未加密的)用户标识符的至少一部分,或者加密的用户标识符的至少一部分。也就是说,签名可以在加密之前或之后应用。
这允许消息中继器拒绝包括匿名标识符的从任何机器人接收的任何消息,除非(i)该消息包括通信系统的密码签名和(ii)密码签名与匿名标识符匹配。这可以通过将密码签名函数应用于在响应中接收的匿名用户标识符的数据(在对其解密之后,在消息中继器在传出消息被加密之前将签名应用于传出消息的情况下)并且将所得密码签名与来自机器人的消息中接收到的密码签名进行比较来确定。
因此,在实施例中,消息中继器可以被配置为拒绝从机器人接收的包括匿名标识符的任何消息,除非该消息(i)包括通信系统的密码签名并且(ii)该签名与该消息中的匿名标识符匹配。
消息中继器可以被配置为将相应的密码签名函数应用于在响应中接收的匿名用户标识符的数据,并将得到的密码签名与响应中从机器人接收的密码签名进行比较。
在实施例中,匿名化函数可以使得用户标识符的字符长度(即,用户标识符中的字符的数量)不能从匿名用户函数的字符长度导出。也就是说,匿名化函数使得不可能从匿名版本判断原始用户标识符的长度,这可以以各种不同的方式实现(例如,通过使用固定长度的匿名标识符,随机化其长度,使用一组不同的固定灯(fixed light),每个固定灯用于原始用户标识符的字符长度范围,等等。)
例如,匿名用户标识符的字符长度可以基本上独立于匿名用户标识符的字符长度。
“基本上独立于”意味着独立(即完全独立)或独立于原始用户标识符的至少一个字符长度子集-例如,使得:
Figure BDA0001913202120000051
其中,α(*)是匿名化函数,uID是用户标识符,bID是机器人标识符,length(s)表示字符串s的字符长度,A,B,...表示多个字符长度的集合(例如范围)。换句话说,匿名化函数可以导致用户标识符的字符长度与匿名用户标识符的字符长度的一对多映射。
通信系统可以用于实现通信系统的用户之间的通信事件(例如,呼叫,消息传递会话,屏幕共享会话,共享白板会话等),并且消息可以在至少用户和至少机器之间的已建立的通信事件中传输。
例如,通信事件可以是用户,至少另一个用户和至少机器人之间的群组通信事件。可替代地或另外地,通信事件可以是至少用户、机器人和至少另一个机器人之间的群组通信事件,由此将消息的相应版本发送到每个机器人,每个机器人包括对该机器人唯一的匿名用户标识符。
对于后者,在某些情况下,机器人可以在不同时间被添加为通信事件的参与者。例如,可以在用户和机器人以及随后例如由机器人或用户添加的另一个机器人之间建立通信事件。
例如,通信事件可以是呼叫,并且消息可以包括实时音频和/或视频数据。可替代地,通信事件可以是消息传递会话,并且消息可以包括字符串。
通信系统可以被配置为从机器人接收包括匿名用户标识符的查找请求,使用用户标识符执行查找,以及将查找结果返回到机器人。
本发明的第二方面涉及一种计算机实现的方法,用于实现通信系统的至少一个用户与多个机器人中的至少一个目标机器人之间的通信,这些机器人由在一个或多个处理器上执行的多个代码模块实现,该方法包括在通信系统处实现以下步骤:在通信系统的消息中继器处接收包括用户的标识符和目标机器人的标识符的消息;通过对消息中的用户标识符和机器人标识符应用匿名化函数,生成对目标机器人唯一的、用户的匿名标识符;以及向所述目标机器人发送所述消息的版本,所述消息包括所述匿名用户标识符并且不包括所述用户标识符,其中使得所述用户标识符对所述目标机器人不可访问。
在实施例中,该方法可以包括从目标机器人接收对由目标机器人自动生成的消息的版本的响应,响应包括匿名用户标识符;检测响应中的匿名用户标识符;并将响应的版本发送给用户。
用户标识符的匿名版本可以是通过向用户标识符应用对该机器人唯一的加密过程而生成的用户标识符的加密版本。
例如,应用加密过程可以包括确定密码数据库中的与机器人标识符相关联的秘密,以及将加密函数应用于秘密和接收的用户标识符或通信系统的用户数据库中的与接收的用户标识符相关联的另一用户标识符。
在第二方面的实施例中,可以实现第一方面或其任何实施例的任何特征。
本发明的第三方面涉及一种计算机程序产品,包括存储在计算机可读存储介质上的系统代码,用于实现通信系统的至少一个用户与多个机器人中的至少一个目标机器人之间的通信,机器人被实现为在一个或多个处理器上执行的多个代码模块,该系统代码在通信系统处执行时被配置以实现第二方面的方法,第一方面的计算机系统的任何功能或其任何实施例。
本发明的第四方面涉及一种用于实现通信系统的用户与多个机器人之间的通信的通信系统,该机器人被实现为在一个或多个处理器上执行的多个代码模块,该通信系统包括:消息中继器,被配置为接收消息,该消息包括用户之一的标识符和机器人中的目标机器人的标识符;以及匿名标识符生成器,被配置为通过对消息中的用户标识符和机器人标识符应用匿名化函数,生成对目标机器人唯一的、用户的匿名标识符;其中,消息中继器被配置为向目标机器人发送消息的版本,其包括匿名用户标识符并且不包括用户标识符,其中用户标识符不被呈现为对目标机器人可访问。
在第四方面的实施例中,可以实现任何其他方面或其任何实施例的任何特征。
附图说明
为了更好地理解本发明,并且为了示出如何实施本发明的实施例,参考以下附图,其中:
图1示出了计算机系统的框图,该计算机系统包括通信系统和至少一个机器人;
图2A示出了数据中心的示意性框图;
图2B示出了数据中心的处理器的示意性框图;
图2C示出了系统架构的高级示意表示;
图3示出了系统架构的更详细的示意表示;
图4示出了通过通信系统的消息中继器在用户和机器人之间的示例信令流;
图5A示出了用户设备的示意性框图;
图5B示出了示例图形用户界面。
具体实施方式
所描述的实施例的核心原理是每个机器人具有在创建机器人时在通信系统内生成的秘密。机器人不知道这个秘密。通信系统在呼叫机器人时,使用该机器人的秘密对用户标识符(ID)进行对称加密,并将得到的加密值发送给机器人。对于每个(机器人,用户)配对,此值保持不变,但对于不同机器人而言不同,因为秘密特定于机器人。也就是说,为同一用户向不同的机器人发布不同的身份,即不同的配对ID。也就是说,为同一用户的每个机器人生成唯一ID。
当机器人想要向用户发送消息时,它再次将加密的值发送回通信系统。通信系统使用该机器人的秘密并解密该值以获得基础用户标识符并使用该标识符进行处理。
图1示出了计算机系统100的示意性框图。计算机系统100包括通信系统120、多个用户设备104和多个计算机设备110,每个计算机设备110连接到基于分组的计算机网络108,例如因特网。通信系统120被示出为包括多个数据中心122。
每个用户设备104由相应的用户102操作,并且包括被配置为执行通信客户端应用程序106的处理器。这里,术语处理器意味着被配置为执行代码(即软件)的任何装置,并且可以例如包括CPU或一组互连的CPU。
通信系统120具有使用用户102的通信客户端106在用户102之间经由网络108实现实时通信事件的功能,例如呼叫(例如,VoIP呼叫),即时消息(“聊天”)会话,共享白板会话,屏幕共享会话等。实时通信事件是指两个或更多个用户102之间的消息交换,使得在从一个客户端106发送消息与在参与通信事件的用户102的其他客户端处的消息接收之间仅存在短的延迟(例如,两秒或更短)。在至少一个参与者是机器人116的情况下,这也适用于计算机设备110处的发送/接收-见下文。
术语“消息”通常指的是在用户102之间传送的内容加上任何标题数据。内容可以是文本(字符串),但也可以是实时(同步)音频或视频数据。例如,可以在用户之间实时交换携带音频和(在某些情况下)视频数据的消息流,以实现用户之间的实时音频或视频呼叫。
例如,通信系统12可以被配置为实现至少一个通信控制器,例如呼叫控制器或消息传递控制器,被配置为在用户102中的两个或更多个之间建立通信事件,并且一旦建立则管理通信事件。例如,呼叫控制器可以在信令阶段中充当中间设备(例如,代理服务器),其中在两个或更多个用户102之间建立通信事件,并且一旦建立则可以负责维护通信事件的最新的状态数据。
消息传递控制器可以在即时消息通信会话中从每个用户接收即时消息(即,具有文本内容的消息),并且将所接收的消息中继到参与会话的其他用户。在某些情况下,它还可以在通信系统120中集中存储消息的副本,因此用户可以在以后访问它们,可能使用不同的用户设备。
控制器可以例如实现为在数据中心122处执行的服务实例或服务实例集群(214,图2B-见下文)。
通信系统120还被配置为实现地址查找数据库126和认证服务128。虽然与数据中心122分开示出,但在某些情况下,这些也可以在数据中心122处实现。认证服务128和查找数据库126协作以允许用户102使用他们的客户端106在他们的用户设备104处登录到通信系统。用户102在他的用户设备104处输入他的凭证,例如用户标识符(ID)-例如用户名和密码由客户端106传送到认证服务128。认证128服务检查凭证,并且如果有效,则允许用户设备102登录到通信系统,例如通过向用户设备104发行认证令牌107。例如,认证令牌107可以绑定到用户设备104,使得它只能由该用户设备104使用。在通信系统120内,认证令牌106与该用户的用户ID“uID”相关联并且可以在此后在通信系统120需要这种证明时作为成功认证的证据呈现给通信系统120。
例如,认证令牌107可以包括用户标识符uID,或者它可以不包括uID,并且令牌107和uID之间的关联可以存储在通信系统120内。在任何情况下,请注意认证令牌107本身构成用户102的标识符,即uID(例如用户名)和认证令牌107二者本身都是用户标识符。
此外,认证服务128在地址查找数据库126中生成经认证的用户设备的网络地址(例如,用户设备104的IP地址或客户端106的传输地址)与用户的用户ID之间的关联。这允许其他用户使用该用户的用户ID在该网络地址处与他联系,受到通信系统120施加的任何限制。例如,通信系统可以仅允许在通信系统120内是相互联系人的用户之间的通信。
通信系统120还包括当前用户数据库(联系人图)130,其是表示通信系统120的所有当前用户108(即,包括所有活动用户ID的记录)的计算机实现的数据结构。
联系人图130还表示用户102之间的联系关系,即,对于通信系统的用户108中的每一个,表示用户108的哪些其他用户是该用户的联系人的数据结构。基于联系人图130,客户端106中的每一个可以向其用户102显示用户的联系人,用户可以选择该联系人以在他的联系人之一发起的通信事件中发起与其的通信事件或者从其接收消息。
通信系统还包括密码数据库132,其功能在下面描述。
注意,数据库126、130和132可以以任何合适的方式实现、分布或定位。
计算机设备110中的每一个包括存储器114形式的计算机存储设备,其存储至少一个相应的代码模块,以及连接到存储器的至少一个处理器112。因此,代码模块可由处理器112访问,并且处理器112被配置为执行代码模块以实现其功能。
术语计算机存储设备通常是指电子存储设备或一组电子存储设备(可以是地理上定位的或分布的),例如磁性、光学或固态电子存储设备。
每个代码模块被配置为当在处理器112上执行时实现相应的机器人116,在此等效地称为软件代理。
如下面进一步详细描述的,计算机系统100具有机器人API(应用程序编程接口)形式的功能,以允许机器人116与用户102一起参与由通信系统120实现的通信事件。
机器人是自主计算机程序,其在机器人也参与的通信事件期间自动生成(没有人的任何直接监督)对从客户端106发送的消息的有意义的响应。也就是说,机器人以类似于人类的方式自主地响应这些消息,以为用户提供自然和直观的对话体验。
由通信系统120实现的通信事件可以在用户102之一和机器人116之一之间进行,即作为与两个参与者的一对一通信事件,其中一个是机器人。可替代地,由通信系统120实现的通信事件可以在多个用户102和一个机器人116、多个用户102和多个机器人116之间或者一个用户102和多个机器人116之间,即作为具有三个或更多个参与者的群组通信事件。
作为示例,示出了通信系统120的两个数据中心122,它们通过两个数据中心122之间的专用骨干连接124(专用的数据中心间连接)并置并彼此连接。例如,两个数据中心之间的光纤电缆或光纤电缆组。这允许绕过网络108以非常低的等待时间在两个并置的数据中心之间传送数据。
图2A示出了每个数据中心122的示例配置。如图所示,每个数据中心122包括多个服务器设备202。作为示例示出了六个服务器设备202,但是数据中心可以包括更少的或者更多(可能更多)服务器设备202(并且不同的数据中心122可以具有不同数量的服务器设备202)。数据中心122具有内部网络基础设施206,每个服务器202连接到该内部网络基础设施206,并且器在数据中心122中的每对服务器202之间提供内部服务到服务连接。每个服务器202包括至少一个处理器204。负载平衡器201接收来自网络108的传入消息,并且经由内部网络基础设施206将每个消息中继到服务器设备202中的适当的一个。
为了允许优化分配处理器204的处理资源,使用虚拟化。在这方面,如图2B所示,每个处理器204运行管理程序208。管理程序208是一段计算机软件,其创建、运行和管理虚拟机,例如虚拟服务器210。相应的操作系统212(例如,Windows Server(TM))在每个虚拟服务器210上运行。相应的应用程序代码在每个操作系统210上运行,以便实现服务实例214。
每个服务实例214实现相应的功能,以便提供服务,例如呼叫控制或消息传递控制服务。例如,提供相同服务的多个服务实例214的集群可以在数据中心122的不同虚拟服务器210上运行,以在一个失败的情况下提供冗余,其中传入消息被中继到由负载平衡器201选择的集群中的服务实例。如上所述,通信系统120的控制器,例如呼叫控制器或消息传递控制器,可以实现为提供通信服务的服务实例214或服务实例集群,例如呼叫控制或消息传递控制服务。
这种形式的架构例如用于所谓的云计算中,并且在该上下文中,服务被称为云服务。
图2C示出了通信系统120的示例软件架构,使得用户102可以使用由通信系统提供的通信基础设施参与与机器人116的通信事件,包括以上参考图1至2B所描述的通信系统120的通信基础设施。
如所指示的,由通信系统122提供的一个或多个通信服务214允许用户102彼此参与通信事件。
为了使机器人116也可以参与通信事件,提供了机器人API 220形式的机器人界面。提供单独的消息传递(聊天)和呼叫API 216、218,其提供机器人可以分别参与消息传递会话(基于文本的)和呼叫(音频和/或视频)的手段。如果任何通信服务214需要在聊天(文本)或呼叫(音频/视频)中将信息传送给机器人116中的一个时,则它发起聊天API 216的一个或多个功能并且适当地调用API 218,其进而发起机器人API 220的一个或多个功能。在另一个方向上,如果和当机器人116需要在聊天或呼叫中向一个或多个用户102发送信息时,则机器人发起机器人API 220的一个或多个功能,其进而适当地发起聊天或呼叫API216、218的一个或多个功能。
API 216、218、220中的每一个可以例如被实现为在通信系统120的一个或多个处理器上执行的代码-例如,以库的形式-被配置为提供一组功能。取决于调用API的位置,可以在本地发起(即调用)这些功能,或者可以通过耦合到处理器的网络接口远程调用它们,例如通过网络102或使用通信系统120的低延迟后端网络基础设施,例如内部数据中心网络基础设施206和数据中心间骨干124。对于从通信系统120内部进行的“内部”API调用,在某些情况下可能优选的是尽可能只使用后者。
在任何情况下,每个API通常可以实现为在至少两个计算机程序(至少一个机器人116和至少服务实例214)可访问的处理器上执行的代码-其可以在相同的一个或多个处理器上执行或不在相同的一个或多个处理器上执行-并且这些程序中的每个程序可以使用它们与这些程序中的另一个程序进行通信。
机器人API 220允许机器人116参与由现有通信系统实现的通信事件,例如Skype、FaceTime、谷歌语音、Facebook聊天等。也就是说,它提供了一种与机器人以及用户通信的功能可以使用通信系统的现有底层通信基础设施(例如其现有的认证、地址查找和用户界面机制)结合到最初仅为用户设计的通信系统中的手段。
在这个意义上,从通信系统的角度来看,机器人116是第三方系统,在某种意义上它们可以由机器人开发者独立地开发和实现,并且经由机器人API 220与通信系统120接口。
图3示出了计算机系统100的一个示例软件架构的附加细节。除了已经参考图1和2A-C描述的组件之外,对其使用相同的附图标记,示出了附加的软件组件。
为了创建并定制通信系统120的用户102可以使用通信系统120的通信基础设施与之通信的机器人116,机器人开发者可以使用机器人框架门户308来向机器人供应服务322发起机器人创建指令,其也可以实现为云服务。为了创建他的机器人116,机器人开发者可以使用由通信系统120的操作者提供的机器人框架SDK 312,或者可替代地,他可以构建与机器人API 220E兼容的他自己的SDK 306。SDK代表软件开发工具包。
机器人供应服务322与联系人图130交互,以便将新创建的机器人116添加为通信系统120的“用户”,即在某种意义上机器人116在通信系统中作为用户呈现给(真实)用户108。例如,使得通过在用户的客户端116处发起联系请求(可以自动接受),用户102可以将机器人116添加作为联系人。可替代地,任何用户102都能够使用他的客户端116与机器人116通信,而不必明确地将该机器人添加为联系人,尽管为方便起见仍可提供这样做的选项。在任何情况下,用户102都能够与机器人116发起通信事件,例如聊天或呼叫,就像他与通信系统120的另一个真实的人类用户102发起通信事件一样。
因此,每个机器人116在通信系统120内具有唯一的身份,如联系人130中该机器人的标识符“bID”所表示的,该标识符对于系统内的机器人是唯一的,其中整数“M”用于表示在通信系统120内具有这种身份的机器人的总数,即在联系人图130中存在M个唯一的机器人标识符,其中“bIDm”表示第m个机器人标识符。
整数N表示在通信系统120内具有身份的用户的总数,即,在联系人图130中存在N个人类用户标识符,其中“uIDn”表示第n个用户标识符。
因此,对于通信系统的实际人类用户108,似乎存在N+M个“用户”-N个人类108,加上M个机器人116。
在图3中以示例的方式示出了一个机器人116,但是应当理解,以下描述分别涉及多个机器人116中的每一个。
机器人116与第三方服务304(即,通信系统120的域和基础设施之外)通信,第三方服务304可以是各种广泛类型之一,例如外部搜索引擎,社交媒体平台,电子商务平台(例如用于购买商品,或订购外卖食品和饮料等)。机器人116充当用户108和第三方服务之间的中介,使得用户可以通过与机器人116的自然对话以直观的方式访问第三方服务。也就是说,机器人116构成用户102和第三方服务304之间的对话(即,自然语言)接口。
用户与机器人116的接洽是对话的,从没有规定他对机器人的请求的精确格式的意义上来说。例如,假设第三方服务304是在线外卖服务,并且用户想要订购比萨饼。
在这种情况下,用户102可以,例如,使用他的通信客户端106向机器人116发起聊天消息。用户自己不需要关心消息的文本内容的语义,并且例如可以通过对机器人116说“我可以订购比萨饼吗?”,或者“嗨,我想要比萨饼”或“订购比萨饼”而开始,即通过对机器人表达他一般意图为订购比萨饼,而在这个阶段没有额外的细节-或者有更具体的要求,例如“我喜欢意大利辣香肠披萨”,或者“请在两小时内送一份披萨到我家的地址”-这表达了他的意图的其他细节。
为了正确地解释这些,机器人需要以任何方式以及用户102选择表达它的任何细节水平来理解用户的意图。为此,需要将某种形式的意图识别应用于消息的内容,以便在可识别的范围内识别用户的意图-例如,识别用户想要订购比萨饼但没有指定细节,或者他想要订购特定类型的比萨饼但没有指定时间或地点,或者他想要在特定时间和地点要比萨但是没有指定比萨的细节等。
意图识别在本领域中是已知的,并且由于该原因,这里将不描述特定意图识别过程的细节。
例如,机器人可以使用第三方意图识别服务302,其中机器人116将其接收的消息的内容提供给第三方意图识别服务以进行意图识别。可替代地,机器人116本身可以实现意图识别功能。可替代地,可以通过对话管理器214D在通信系统202内预先应用意图识别,即,可以在消息被传达给机器人之前由对话管理器214D将意图识别应用于从通信系统120自身内的用户102之一接收的消息。对话管理器214D还可以实现在数据中心122之一中运行的服务实例或服务实例集群,例如作为另一个云服务。
意图识别处理的目的是确定在任何给定上下文中的用户意图。
意图识别过程包括自然语言处理,并使用预定的意图集合和预定的关联实体集合,即意图可以应用的事物。这些集合可以是广泛的以提供全面的意图识别,例如在各个域中的数百个意图和实体。
图4示出了经由通信系统(消息中继器)的服务214的消息中继器服务214R在用户102的客户端106(“用户n”)与机器人116之一(“机器人m”)之间的示例消息流的步骤。
在步骤S2,将消息402从用户n发送到消息中继器214R,在该示例中,消息包括用户的认证令牌107和机器人m的标识符(“bIDm”-目标机器人),以及内容402C,内容402C可以是文本(字符串)、异步媒体数据(例如图像、或音频或视频剪辑),或实时音频数据或实时视频数据,例如,并且在任何情况下是用户n和机器人m之间的通信事件(聊天、呼叫等)的消息。
认证令牌107用于识别用户n,并且用于认证目的,使得通信系统120知道接受消息402。
如图所示,密码数据库132与每个机器人标识符bIDm、bIDm+1...相关联地保持对该机器人唯一的密码秘密Km、Km+1。每个机器人ID和密钥配对构成机器人描述,对其的访问可以由服务214的机器人存储服务(未示出)来调节。
秘密Km、Km+1是私有密码密钥,其在通信系统之外是未知的。例如,可以在创建相应的机器人时生成每个密钥,并且通过机器人供应服务322在通信系统120内给出身份。
在将消息402的版本中继到机器人m之前,消息中继器214R应用匿名化用户n的身份的步骤。
在步骤S4,消息中继器214R检索在消息402中接收的与bIDm相关联的秘密Km,并将加密函数422应用于秘密Km和用户n的标识符401的组合,从而生成标识符401的加密版本401’。标识符401可以是认证令牌本身107,或者与认证令牌107相关联的用户标识符uID。
加密优选地是对称的,即,相同的密钥Km用于加密和解密,两者都仅在通信系统120内执行。
例如,机器人API 220可以被配置为提供功能(或相应的功能),其可以由中继214R经由呼叫API 218或聊天API 216发起,如适用于从机器人存储服务中获取一组机器人描述。给定该信息,消息中继器214R可以加密任何给定机器人目标的数据。
在步骤S6,消息中继器214R使用私有密码密钥Kc将密码签名函数424应用于用户标识符401的数据403,从而在没有私钥KC的情况下不能复制并且因此不能在通信系统120之外复制的处理中生成对数据403唯一的数字密码签名404。密钥KC可以是用于加密标识符401的相同秘密Km,或者它可以是不同的秘密。
数据403可以是未加密的用户标识符401的数据(即,签名可以是在加密“之前”生成的),或者它可以是加密的标识符401’的数据。在数据403是未加密数据的情况下,步骤S4和S6可以以任何顺序或并行执行。
在步骤S8,消息中继器214R向机器人m发送到消息402的版本402',其包括加密的标识符401’和数字签名404。该版本402'包括内容402C',其可以与原始消息内容402C'相同。在通过对话管理器214D在通信系统120内执行意图识别的情况下,除了原始内容402C之外或代替原始内容402C,内容402C'可以包括在意图识别中生成的数据。
在任何情况下,机器人m处理接收的消息402'的版本的内容402C',以便自动生成响应402R。响应402R包括用于用户n的其自己的内容402RC,并且还包括加密的用户标识符401’和数字签名404。机器人m将响应402R发送回消息中继器214R,在那里它被接收。
消息中继器414R确定响应源自机器人m,并因此解密响应402R中加密的标识符401’,从而使用与机器人m相关联且对于机器人m唯一的秘密Km来获得原始的未加密的标识符401。例如,响应402R可以包括机器人标识符bIDm。它还使用密钥KC验证响应402'中的数字签名404是有效的,即它与接收到的响应402R中的标识符401’匹配(这防止恶意机器人能够制作匿名用户标识符,因为如果不访问密钥KC,他们无法提供匹配的签名)。
如果签名404是有效的,消息中继器至少向用户m发送(S12)响应的内容402RC,其基于解密的标识符401将用户m识别为预期接收者。
也就是说,如果机器人116在传入消息(例如,响应404R)中提供其机器人ID以及成对ID(bID),则消息中继器214R解密成对id,条件是来自机器人116的该消息(例如响应402R)中的签名404有效。
在该过程期间的任何时间通信系统120内的用户身份都不向机器人显示,因为机器人从未接收到未加密版本的uID或令牌107。然而,如果和当从用户m发送另一消息给机器人m,相同的加密应用于相同的标识符401,因此机器人接收相同的加密标识符401’,因此知道它正在与同一用户通信。也就是说,机器人m被呈现有用户n的一致但匿名的身份。因为密码数据库132中的每个秘密对于其相应的机器人是唯一的,所以没有两个机器人看到相同用户的相同标识符。
经由网络108发送消息402、402'和响应402R、402RC。
为了简化,在图4中示出了一对一通信事件。然而,相同的技术可以应用于具有多个用户102和/或多个机器人116的群组通信事件。在同一个群组通信事件中有多个机器人情况下,每个都被呈现有用户的不同匿名身份,因此在群组通信事件期间或之后不能进行参与恶意共谋。
消息402'可以例如使用推送机制(例如Webhook)发送到机器人116。消息402'可以例如是JSON消息。
注意,在某些情况下,机器人能够从第三方服务访问关于用户的信息对用户可能是有益的。但是,机器人无法直接执行此操作,因为用户的身份是匿名的。
为了保持匿名,同时仍然允许这样,可以由通信系统120调解对这样的第三方服务的访问。因此,例如,机器人116可以向通信系统120发送用于通信系统120基于原始用户标识符401(机器人无权访问)通过第三方服务执行查找的请求。在接收到用户的知情同意的情况下,通信系统代表机器人执行查找,并将结果返回给机器人。
图5A是用户设备104的示意性框图。用户设备104是可以采用多种形式的计算机设备,例如,台式机或膝上型计算机、移动电话(例如智能手机)、平板计算设备、可穿戴计算设备、电视(例如智能电视)、机顶盒、游戏控制台等。用户设备104包括存储器507的形式的计算机存储设备,连接存储器507的处理器505、一个或多个输出设备,例如显示器501、扬声器等、一个或多个输入设备,例如相机、麦克风和网络接口503,例如以太网、Wi-Fi或移动网络(例如,3G、LTE等)接口,其使得用户设备104能够连接到网络108。显示器501可以包括可以接收来自设备6的用户的触摸输入的触摸屏,在这种情况下,显示器24也是用户设备6的输入设备。所示的连接到处理器的各种组件中的任何一个可以集成在用户设备104中,或者非集成并通过合适的外部接口(有线,例如以太网、USB、火线等,或无线,例如Wi-Fi、蓝牙、NFC等)连接到处理器505。处理器505执行客户端应用程序106以允许用户102使用通信系统120。存储器507保持认证令牌。客户端106具有用户接口,用于从用户设备104的用户接收信息和向用户设备104的用户输出信息,包括在诸如呼叫或聊天会话的通信事件期间。用户界面可以包括,例如,经由显示器501和/或自然用户界面(NUI)输出信息的图形用户界面(GUI),其使得用户能够以“自然”方式与设备交互,没有来自某些输入设备(例如鼠标、键盘、遥控器等)施加的人为约束。NUI方法的示例包括利用触敏显示器、语音和语音识别、意图和目标理解、使用深度相机的运动手势检测(例如立体或飞行时间相机系统、红外相机系统、RGB相机系统和这些的组合),使用加速度计/陀螺仪进行运动手势检测、面部识别、3D显示、头部、眼睛和凝视跟踪、沉浸式增强现实和虚拟现实系统等。
图5B示出了客户端106的图形用户界面(GUI)500的示例,其显示在显示器501上。
GUI包括联系人列表504,其显示在显示器501的可用显示区域的一部分中。多个显示元素显示在联系人列表中,每个显示元素代表用户的联系人之一,其包括显示元素502U、502B,分别表示人类联系人(即,用户102中的另一个)和机器人联系人(即,机器人116中的一个)。也就是说,机器人116与用户的人类联系人一起显示在联系人列表504中。
用户可以经由GUI 500向机器人发送聊天消息402,其内容402C与机器人的响应402R的内容402R一起显示在显示区域的第二部分中。
尽管在联系人列表504中仅显示一个机器人,但是此处可能出现多个机器人,例如:如果用户已将它们添加为联系人。例如,在用户和机器人参与的通信事件期间,用户可以将另一个机器人添加到建立的通信事件作为附加参与者。
术语“模块”和“组件”是指在处理器(例如一个CPU或多个CPU)上执行时执行指定任务的程序代码。程序代码可以存储在一个或多个计算机可读存储器设备中。下面描述的技术的特征是平台无关的,意味着可以在具有各种处理器的各种商业计算平台上实现这些技术。指令可以由计算机可读介质通过各种不同配置提供给处理器。计算机可读介质的一种这样的配置是信号承载介质,因此被配置为例如经由网络将指令(例如,载波)发送到计算设备。计算机可读介质还可以被配置为计算机可读存储介质,因此不是信号承载介质。计算机可读存储介质的示例包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、固态(例如闪存)存储器、硬盘存储器以及可以是磁、光和其他技术来存储指令和其他数据的其他存储器设备。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但应理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。而是,公开了上述具体特征和动作作为实现权利要求的示例形式。

Claims (14)

1.一种计算机系统,包括:
计算机存储设备,其保持多个代码模块,所述代码模块被配置为在被执行时实现多个机器人;
一个或多个处理器,被配置为执行所述代码模块,从而实现所述机器人;以及
通信系统,包括:
消息中继器,被配置为接收消息,所述消息包括用户的标识符和所述机器人中的目标机器人的标识符,以及
匿名标识符生成器,被配置为通过对所述消息中的用户标识符和机器人标识符应用匿名化函数,生成对所述目标机器人唯一的匿名用户标识符,其中,所述匿名用户标识符是通过向所述用户标识符应用对该机器人唯一的加密过程而生成的所述用户标识符的加密版本;
其中,所述消息中继器被配置为向所述目标机器人发送所述消息的版本,其包括所述匿名用户标识符并且不包括所述用户标识符,其中,所述用户标识符不被呈现为所述目标机器人可访问。
2.根据权利要求1所述的计算机系统,其中,所述机器人被配置为响应于接收到所述消息的所述版本,自动生成对包括所述匿名用户标识符的所述消息的所述版本的响应,并将所生成的响应发送到所述消息中继器;以及
其中,所述消息中继器被配置为检测所述响应中的所述匿名用户标识符,并将所述响应的版本发送给所述用户。
3.根据权利要求2所述的计算机系统,其中,应用所述加密过程包括确定密码数据库中的与所述机器人标识符相关联的秘密,以及将加密函数应用于所述秘密和所接收的用户标识符或所述通信系统的用户数据库中的与所接收的用户标识符相关联的另一用户标识符。
4.根据权利要求3所述的计算机系统,其中,所述消息中继器被配置为向在所述响应中接收的所述匿名用户标识符应用解密过程,用于反转对该机器人唯一的所述加密过程。
5.根据权利要求3所述的计算机系统,其中,所述加密函数是对称加密函数。
6.根据权利要求2所述的计算机系统,其中,所述消息中继器被配置为向所述用户标识符的数据应用密码签名函数以生成所述通信系统的密码签名,所述密码签名包括在发送到所述机器人的所述消息的所述版本中。
7.根据权利要求6所述的计算机系统,其中,所述消息中继器被配置为拒绝从所述机器人接收的包括匿名标识符的任何消息,除非该消息(i)包括所述通信系统的密码签名并且(ii)该签名匹配该消息中的所述匿名标识符。
8.根据权利要求6所述的计算机系统,其中,所述消息中继器被配置为将所述密码签名函数应用于在所述响应中接收的所述匿名用户标识符的数据,并将所得密码签名与在所述响应中从所述机器人接收的密码签名进行比较。
9.根据权利要求1所述的计算机系统,其中,所述匿名化函数使得所述用户标识符的字符长度不能从所述匿名用户标识符的字符长度导出。
10.根据权利要求1所述的计算机系统,其中,所述通信系统用于实现所述通信系统的用户之间的通信事件,所述消息在至少所述用户和至少所述机器人之间的已建立的通信事件中传输。
11.根据权利要求10所述的计算机系统,其中,所述通信事件是至少所述用户、所述机器人和所述机器人中的至少另一个机器人之间的群组通信事件,由此将所述消息的相应版本发送到所述机器人中的每个机器人,所述消息的相应版本包含对该机器人唯一的匿名用户标识符。
12.根据权利要求1所述的计算机系统,其中,所述通信系统被配置为从所述机器人接收包括所述匿名用户标识符的查找请求,使用所述用户标识符执行查找,以及将所述查找的结果返回到所述机器人。
13.一种用于实现通信系统的至少一个用户与多个机器人中的至少一个目标机器人之间的通信的计算机实现的方法,所述机器人由在一个或多个处理器上执行的多个代码模块实现,所述方法包括在所述通信系统中实现以下步骤:
在所述通信系统的消息中继器处接收包括所述用户的标识符和所述目标机器人的标识符的消息;
通过对所述消息中的用户标识符和机器人标识符应用匿名化函数,生成对所述目标机器人唯一的匿名用户标识符,其中,所述匿名用户标识符是通过向所述用户标识符应用对该机器人唯一的加密过程而生成的所述用户标识符的加密版本;以及
向所述目标机器人发送所述消息的版本,其包括所述匿名用户标识符并且不包括所述用户标识符,其中,所述用户标识符不被呈现为对所述目标机器人可访问。
14.一种计算机可读存储介质,其存储用于实现通信系统的至少一个用户与多个机器人中的至少目标机器人之间的通信的系统代码,所述机器人被实现为在一个或多个处理器上执行的多个代码模块,所述系统代码被配置为在所述通信系统处被计算机执行以实现以下步骤:
接收包括所述用户的标识符和所述目标机器人的标识符的消息;
通过对所述消息中的用户标识符和机器人标识符应用匿名化函数,生成对所述目标机器人唯一的匿名用户标识符,其中,所述匿名用户标识符是通过向所述用户标识符应用对该机器人唯一的加密过程而生成的所述用户标识符的加密版本;以及
向所述目标机器人发送所述消息的版本,其包括所述匿名用户标识符并且不包括所述用户标识符,其中,所述用户标识符不被呈现为对所述目标机器人可访问。
CN201780038290.0A 2016-06-20 2017-06-12 通信系统 Active CN109314661B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/187,215 US10341267B2 (en) 2016-06-20 2016-06-20 Anonymized identifiers for secure communication systems
US15/187,215 2016-06-20
PCT/US2017/036928 WO2017222839A1 (en) 2016-06-20 2017-06-12 Communication system

Publications (2)

Publication Number Publication Date
CN109314661A CN109314661A (zh) 2019-02-05
CN109314661B true CN109314661B (zh) 2021-08-03

Family

ID=59216003

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780038290.0A Active CN109314661B (zh) 2016-06-20 2017-06-12 通信系统

Country Status (4)

Country Link
US (2) US10341267B2 (zh)
EP (1) EP3453146B1 (zh)
CN (1) CN109314661B (zh)
WO (1) WO2017222839A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9634855B2 (en) 2010-05-13 2017-04-25 Alexander Poltorak Electronic personal interactive device that determines topics of interest using a conversational agent
US9361446B1 (en) * 2014-03-28 2016-06-07 Amazon Technologies, Inc. Token based automated agent detection
US10469425B1 (en) * 2016-12-09 2019-11-05 Amazon Technologies, Inc. Secure message service for preventing dissemination of sensitive information to third-parties
US11171892B2 (en) * 2017-02-27 2021-11-09 Ncr Corporation Service assistance and integration
US10783269B1 (en) * 2017-03-02 2020-09-22 Apple Inc. Cloud messaging system
CN110945839B (zh) * 2017-03-27 2022-03-04 奥瑞恩实验室 共享的和每用户的机器人群组的消息传递方法
WO2018183299A1 (en) * 2017-03-27 2018-10-04 Orion Labs Bot group messaging using bot-specific voice libraries
US10874950B2 (en) 2017-04-17 2020-12-29 Facebook, Inc. Gameplay threads in messaging applications
US10541981B1 (en) 2017-05-17 2020-01-21 Amazon Technologies, Inc. Secure message service for managing third-party dissemination of sensitive information
US11030620B1 (en) * 2017-08-01 2021-06-08 Wells Fargo Bank, N.A. Cash reconciliation bots systems
KR102472916B1 (ko) * 2018-02-09 2022-12-02 삼성전자주식회사 대화형 콘텐츠 제공 시스템 및 방법
US10817352B2 (en) * 2018-03-27 2020-10-27 International Business Machines Corporation System and method for operating a chatbot
US11315692B1 (en) 2019-02-06 2022-04-26 Vitalchat, Inc. Systems and methods for video-based user-interaction and information-acquisition
US10650163B2 (en) * 2019-08-14 2020-05-12 BehavioSec Inc Bot detection and access grant or denial based on bot identified
US10841251B1 (en) * 2020-02-11 2020-11-17 Moveworks, Inc. Multi-domain chatbot
RU2766134C2 (ru) * 2020-02-26 2022-02-08 Акционерное общество "Лаборатория Касперского" Способ анонимной отправки данных с устройства пользователя
US11423148B2 (en) * 2020-07-02 2022-08-23 Dell Products L.P. Preventing discovery of unique identifiers in firmware
WO2023119297A1 (en) * 2021-12-23 2023-06-29 Ruth Margalit Chat channel/bot mediating method and system

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000022549A1 (en) 1998-10-09 2000-04-20 Koninklijke Philips Electronics N.V. Automatic inquiry method and system
TW501046B (en) 1999-06-11 2002-09-01 Ind Tech Res Inst A portable dialogue manager
US6907571B2 (en) 2000-03-01 2005-06-14 Benjamin Slotznick Adjunct use of instant messenger software to enable communications to or between chatterbots or other software agents
DE10063148A1 (de) 2000-12-18 2002-06-20 Deutsche Telekom Ag Dialoganlage für eine Mensch-Maschine-Interaktion mit kooperierenden Dialogeinrichtungen
US6944760B2 (en) * 2001-05-24 2005-09-13 Openwave Systems Inc. Method and apparatus for protecting identities of mobile devices on a wireless network
US7287057B2 (en) 2001-11-15 2007-10-23 International Business Machines Corporation Accessing information using an instant messaging system
US20030182391A1 (en) 2002-03-19 2003-09-25 Mike Leber Internet based personal information manager
EP1365553A1 (en) 2002-05-23 2003-11-26 Accenture Global Services GmbH Method and device for instant messaging
EP1408704A1 (en) * 2002-10-09 2004-04-14 Nokia Corporation Method and arrangement for concealing true identity of user in communications system
EP1418519A1 (en) 2002-11-05 2004-05-12 Comhra Limited A dialogue management system
US7870199B2 (en) 2003-10-06 2011-01-11 Aol Inc. System and method for seamlessly bringing external services into instant messaging session
US8204984B1 (en) 2004-04-01 2012-06-19 Fireeye, Inc. Systems and methods for detecting encrypted bot command and control communication channels
US7409384B2 (en) 2004-04-19 2008-08-05 Yahoo! Inc. Integration of instant messaging with internet searching
US7603413B1 (en) 2005-04-07 2009-10-13 Aol Llc Using automated agents to facilitate chat communications
US20070043878A1 (en) 2005-08-18 2007-02-22 Microsoft Corporation Virtual robot communication format customized by endpoint
US20070172063A1 (en) 2006-01-20 2007-07-26 Microsoft Corporation Out-Of-Band Authentication for Automated Applications ("BOTS")
US8660244B2 (en) 2006-02-17 2014-02-25 Microsoft Corporation Machine translation instant messaging applications
US7747785B2 (en) 2006-04-14 2010-06-29 Microsoft Corporation Instant messaging plug-ins
US7949867B2 (en) 2006-07-19 2011-05-24 Rel-Id Technologies, Inc. Secure communications
EP1883019A1 (en) 2006-07-26 2008-01-30 Koninklijke KPN N.V. Method for anonymous communication between end-users over a network
US7752554B2 (en) 2006-10-05 2010-07-06 Microsoft Corporation Bot identification and control
US8027839B2 (en) 2006-12-19 2011-09-27 Nuance Communications, Inc. Using an automated speech application environment to automatically provide text exchange services
US9740731B2 (en) * 2007-08-14 2017-08-22 John Nicholas and Kristen Gross Trust Event based document sorter and method
US20090055485A1 (en) 2007-08-22 2009-02-26 Tu-Hsin Tsai Location based anonymous instant message exchange method and system
US8250192B2 (en) 2007-10-12 2012-08-21 International Business Machines Corporation Data server administration using a chatbot
US20090234638A1 (en) 2008-03-14 2009-09-17 Microsoft Corporation Use of a Speech Grammar to Recognize Instant Message Input
US8352873B2 (en) 2008-06-06 2013-01-08 Apple Inc. Media content and chat integration
US20100122082A1 (en) 2008-10-08 2010-05-13 Leiwen Deng User identity validation system and method
US8301902B2 (en) * 2009-02-12 2012-10-30 International Business Machines Corporation System, method and program product for communicating a privacy policy associated with a biometric reference template
US9736675B2 (en) * 2009-05-12 2017-08-15 Avaya Inc. Virtual machine implementation of multiple use context executing on a communication device
US9043407B1 (en) 2009-06-12 2015-05-26 Avaya Inc. Interactive user interface to communication-enabled business process platforms method and apparatus
US8255453B2 (en) 2009-09-14 2012-08-28 International Business Machines Corporation Public BOT management in private networks
CN101917279B (zh) * 2010-08-09 2013-08-14 广州客多软件科技有限公司 广播信息发送系统和使用该系统发送广播信息的方法
US20120260263A1 (en) 2011-04-11 2012-10-11 Analytics Intelligence Limited Method, system and program for data delivering using chatbot
US8787553B2 (en) 2011-09-22 2014-07-22 At&T Intellectual Property I, L.P. Implementing a network of intelligent virtual service agents to provide personalized automated responses
GB201119375D0 (en) * 2011-11-10 2011-12-21 Merburn Ltd Financial transaction processing system and method
US10419399B2 (en) * 2012-05-25 2019-09-17 T. Gregory Bender Method for at least one submitter to communicate sensitive incident information and locations to receivers
GB2503704A (en) * 2012-07-05 2014-01-08 Ibm Adaptive communication anonymization
CN104077341B (zh) 2013-07-19 2016-04-20 腾讯科技(北京)有限公司 即时通讯中生成关键词自动回复映射关系的方法和装置
US20150081476A1 (en) * 2013-09-17 2015-03-19 Geoff Rego Anonymizing buyer identity during comprehensive product evaluations and vendor research
CN104935496B (zh) * 2014-03-19 2019-08-06 腾讯科技(深圳)有限公司 即时通信方法、系统、装置和即时通信终端
US20150293923A1 (en) * 2014-04-10 2015-10-15 Max Planck Gesellschaft zur Förderung der Wissenschaften e.V. Systems and methods for anonymized user list count
CN105306191A (zh) * 2014-06-29 2016-02-03 张�浩 一种匿名即时通讯方法及系统
GB2537903B (en) 2015-04-30 2019-09-04 Toshiba Res Europe Limited Device and method for a spoken dialogue system
US9590956B1 (en) * 2015-12-18 2017-03-07 Wickr Inc. Decentralized authoritative messaging
US9866693B2 (en) 2016-05-06 2018-01-09 Genesys Telecommunications Laboratories, Inc. System and method for monitoring progress of automated chat conversations
US10038787B2 (en) 2016-05-06 2018-07-31 Genesys Telecommunications Laboratories, Inc. System and method for managing and transitioning automated chat conversations
US20170366479A1 (en) 2016-06-20 2017-12-21 Microsoft Technology Licensing, Llc Communication System

Also Published As

Publication number Publication date
US10341267B2 (en) 2019-07-02
US20170366478A1 (en) 2017-12-21
WO2017222839A1 (en) 2017-12-28
EP3453146B1 (en) 2021-10-27
US20190334840A1 (en) 2019-10-31
CN109314661A (zh) 2019-02-05
EP3453146A1 (en) 2019-03-13

Similar Documents

Publication Publication Date Title
CN109314661B (zh) 通信系统
US11362811B2 (en) Secure telecommunications
US10778656B2 (en) Sharing resources across multiple devices in online meetings
US20170366479A1 (en) Communication System
KR102327571B1 (ko) 영상 통화 데이터의 디스플레이
US20170289070A1 (en) Making a Dialogue Available To an Autonomous Software Agent
US20170288942A1 (en) Portal for Provisioning Autonomous Software Agents
US9660995B2 (en) Methods, systems, and computer readable media for combating device theft with user notarization
US20140317302A1 (en) Virtual collaboration session access
US20170289069A1 (en) Selecting an Autonomous Software Agent
US20140129683A1 (en) Shared access to a remotely running application
US20170288943A1 (en) Supplying Context Data to a Servicing Entity
JP2016518662A (ja) 認可認証の方法および装置
AU2013280679A1 (en) Communication system
JP2017085567A (ja) ユーザ端末、メッセージを送受信する方法及びコンピュータプログラム
US11736611B2 (en) Visual engagement using automatically dynamically selected visualization mediums
TW201931814A (zh) 通訊方法及裝置、資料處理方法及設備
US10009404B2 (en) Enterprise class virtual desktop infrastructure
JPWO2017094774A1 (ja) 制御システム、通信制御方法、及びプログラム
CN114844663A (zh) 一种桌面共享方法、系统、存储介质及设备
JP7366115B2 (ja) モバイルデバイスへの通知の配信
TWI625981B (zh) 利用探索節點的裝置探索之技術
US20180376518A1 (en) System and method for establishing a temporary electronic communication channel to allow an introduction of operators of electronic communication capable devices
US11941168B2 (en) Gaze initiated interaction technique
KR101829908B1 (ko) 클라이언트 및 클라이언트의 사용자 인터페이스 제공 방법

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
GR01 Patent grant
GR01 Patent grant