交叉模式通信
背景技术
[0001] 随着电子通信服务激增,希望以电子方式进行通信的个人发现越来越难以识别用于通信的合适方法。通常,任何给定的人具有在可用通信服务的子集上的账户,并且倾向于仅主动使用该子集的较小组。这在个人希望进行通信时存在问题,因为个人必须首先识别共同服务以从两个人可能拥有账户的多个不同服务进行通信。另外,所识别的服务可能在一段时间适合,但是如果他们发现当前服务具有其他服务不具有的约束或限制,则个人可能需要识别用于通信的其他服务。此外,个人并不总是能够使用他们个人喜欢的通信方法。
使用多种电子通信方法进行通信的个人还必须保持多个凭证,并且可能无法完全了解每种通信服务的能力,因为个人可能不会在每种服务上累积足够的时间。当两个以上的人希望进行通信时,问题只会进一步恶化。
发明内容
[0002] 提供本“发明内容”是为了介绍与跨模式通信有关的简化概念。本“发明内容”并非旨在识别所要求保护的主题的必要特征,也并非旨在用于确定所要求保护的主题的范围。
[0003] 本文中描述的技术涉及跨信道通信。这些技术可以采用中心方法、系统或模式(本文中的“交叉模式管理器”或“CMM”),其被启用以通过多种模式发送和/或接收消息。用户可以通过本文中描述的各种方法在用户用来进行通信的模式上启用CMM。一旦在用户用来进行通信的至少一个信道上被启用,跨多种模式的CMM的存在允许用户创建和/或加入由CMM维持的跨信道通信会话并且允许在用户的通信模式与存在CMM的多种模式中任何一种之间进行通信。换言之,这些技术允许用户从他们选择的信道内跨不同信道进行通信。
[0004] 注意,术语“模式”在本文中与“信道”可互换地使用。如本文中使用的,术语“信道”是指任何电子通信模式或方法。
附图说明
[0005] 参考附图描述具体实施方式。在附图中,附图标记的最左边的数字识别首次出现附图标记的图。不同图中的相同附图标记表示相似或相同的项目。
[0006] 图1是描绘跨信道通信的示例可以在其中操作的示例环境的框图。
[0007] 图2是描绘经由跨信道通信会话从与第一信道相关联的第一客户端设备向与第二信道相关联的第二客户端设备中继消息的单次迭代的示例场景的框图。
[0008] 图3是描绘根据各种示例的可以实现跨信道通信的示例设备的选择组件的框图。
[0009] 图4是从第一用户设备的角度来看在示例跨信道通信会话期间的示例用户界面的示意图。
[0010] 图5是从第二用户设备的角度来看在示例跨信道通信会话期间的示例用户界面的示意图。
[0011] 图6是从电子邮件服务界面的角度来看在示例跨信道通信会话期间的示例用户界面的示意图。
[0012] 图7是示出在跨信道通信会话中从第一信道向第二信道中继通信的示例过程的流程图。
[0013] 图8是示出向与关联于由设备显示的界面的信道不同的信道发送消息和从其接收消息的示例过程的流程图。
[0014] 图9是示出经由跨信道通信会话在第一信道与第二信道之间中继消息的示例过程的流程图。
具体实施方式
[0015] 概述
[0016] 本公开涉及用于提供跨模式通信的技术。
[0017] 本文中描述了允许用户跨各种通信模式进行通信的技术。这些技术允许用户通过第一模式发送和/或接收通信,同时用户正在与之通信的其他用户可以自由选择所述其他用户进行通信的模式。例如,第一用户可以经由第一通信服务发送消息,并且第二用户可以经由第二通信服务接收消息。这些技术可以采用中心方法、系统或模式(本文中的“交叉模式管理器”或“CMM”)来促进跨模式通信。
[0018] 可以部署CMM,使得用户不需要与CMM界面交互以便跨模式发送和接收消息。用户可以使用与通信模式相关联的界面(例如,用于 信道的 界面)来向其他通
信模式的消息和从其接收消息(例如,消息可以显示在 界面中,即使消息是由另一用户在 管理器界面中输入的并且消息可以被输入 界面并且显示在
管理器界面中。以这种方式,用户能够通过他们喜欢的通信模式进行通信。
[0019] 此外,CMM能够不知道与针对各通信模式的用户账户相对应的用户凭证。通过采用不知道针对通信模式的用户凭证的CMM,CMM提供了一种安全的跨信道通信方法,因为CMM不会在可以与它们一起存储的通信模式之外复制针对通信模式的用户凭证的存储。为实现这一点,可以将CMM配置为在多个信道上操作(例如,通过存储与CMM相关联的以下一个或多个:客户ID和标记、到信道上的CMM账户的用户名和密码、信道的API端点、与CMM相关联的电话号码、与CMM相关联的电子邮件地址、其他联系信息等)。换言之,CMM被配置为经由存在于那些信道上(例如,在信道上具有账户(即,“代理账户”),已经与信道服务协商以通过信道发送和接收消息,等等)而在多个信道上发送和/或接收消息。以这种方式,CMM可以经由在第一信道上的CMM存在而经由第一信道接收通过不同信道去往另一用户的消息,并且CMM可以经由在该不同信道上的CMM存在而通过该不同信道向另一用户发送该消息。
[0020] 为了能够跨模式进行通信,用户可以使得CMM能够在所启用模式上与用户的账户进行通信。CMM还可以被允许代表用户进行通信(例如,代表用户使用用户当前没有发送通信的模式或用户尚未具有账户的模式)。
[0021] 这些技术有效地限制了在一个设备上维持多个信道所需要的存储器空间和处理。
这些技术最大化了用户对启用CMM的所有信道的存在,而用户无需将用户维持的信道数目增加到超过1(如果用户希望的话)。用户可以维持有限的应用组,而不需要安装和执行与信道相对应的多个应用来最大化用户在信道上的存在。此外,这些技术可以通过允许用户经由有限的信道组进行通信并且仍然能够访问CMM针对其被启用以进行操作的多个信道,来减少所需要的带宽。
[0022] 术语“技术”可以指系统、方法、用指令编码的计算机可读介质、模块和/或算法、以及硬件逻辑(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD))等,如在上文和在整个文件中所描述的上下文所许可的那些技术。
[0023] 说明性环境
[0024] 图1是描绘本文中描述的示例可以在其中操作的示例环境100的框图。在一些示例中,环境100的各种设备和/或组件包括可以经由一个或多个网络104彼此通信并且与外部设备通信的分布式计算资源102。在至少一个示例中,分布式计算资源102可以实现本文中描述的技术。例如,分布式计算资源102可以包括用于跨模式通信的系统。为了实现跨模式通信,分布式计算资源102可以在其上存储交叉模式管理器(本文中为“CMM”),诸如CMM 106(1),或者可以经由网络104与远程存储的CMM 106(2)通信。在一些示例中,针对分布式计算资源102描述的一些或所有技术可以附加地或替代地由一个或多个客户端设备108实现。在一些示例中,客户端设备108可以被编程为CMM。在一些示例中,CMM可以是由应用程序编程接口(API)可访问的网络服务的一部分。
[0025] 在各种示例中,分布式计算资源102包括诸如分布式计算资源102(1)至102(N)等的计算设备。示例支持如下场景:其中分布式计算资源102可以包括一个或多个计算设备,其在集群和/或其他分组配置中操作,以共享资源、平衡负载、提高性能、提供故障转移支持和/或冗余、和/或用于其他目的。虽然被示出为台式计算机,但是分布式计算资源102可以包括各种各样的设备类型,并且不限于任何特定类型的设备。例如,分布式计算资源102可以包括具有可操作地连接到计算机可读介质、I/O接口和网络接口的一个或多个处理单元的任何类型的计算设备。计算机可读介质可以具有存储在其上的CMM框架,或用于中继去往和来自远程存储的CMM 106(2)的通信的框架。
[0026] 在一些示例中,网络104可以包括诸如因特网等公共网络、诸如机构和/或个人内联网等专用网络、或者专用和公共网络的某种组合。网络104还可以包括任何类型的有线和/或无线网络,包括但不限于局域网(LAN)、广域网(WAN)、卫星网络、有线网络、Wi-Fi网络、WiMax网络、移动通信网络(例如,3G、4G等)或其任何组合。网络104可以利用通信协议,包括基于分组和/或基于数据报的协议,诸如因特网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)和/或其他类型的协议。此外,网络104还可以包括促进网络通信和/或形成网络的硬件基础的多个设备,诸如交换机、路由器、网关、接入点、防火墙、基站、中继器、骨干设备等。
[0027] 示例环境100还包括客户端设备108和其他客户端设备110。在一些示例中,客户端设备108和/或其他客户端设备110可以包括但不是限于台式计算机、服务器计算机、网络服务器计算机、个人计算机、移动计算机、膝上型计算机、平板计算机、可穿戴计算机、植入式计算设备、电信设备、汽车计算机、网络电视、瘦客户机、终端、个人数据助手(PDA)、游戏机、游戏设备、工作站、媒体播放器、个人视频录像机(PVR)、机顶盒、相机、用于包括在计算设备中的集成组件、电器、或任何其他类型的计算设备,诸如一个或多个单独的处理器设备,诸如CPU型处理器(例如,微处理器)、GPU或加速器设备。客户端设备108和/或其他客户端设备
110可以是用户可以通过其与另一实体进行对话的任何设备。
[0028] 在一些示例中,客户端设备108和/或其他客户端设备110分别经由网络104通信地耦合到信道112和114,通过网络104用户可以根据本文中描述的技术参与对话。在一些示例中,尽管图1将信道112和114描绘为经由网络104与客户端设备108进行通信。在一些示例中,通信可以包括对话。如本文中使用的,“对话”可以包括自然语言的交换。在附加或替代示例中,“对话”可以包括人工语言和/或计算机代码。在一些示例中,“对话”可以包括文件交换。
[0029] 信道112和114的示例可以包括社交网络信道112(1)和/或114(1)(例如,等)、项目协作信道112(2)和/或114(2)(例如,
等)、电子邮件服务112(3)和/或114(3)(例如,
等)、短消息服务(SMS)和/或语音服务112(4)和/或114(4)、或者任
何其他信道112(X)和/或114(Y)(例如,AOL Instant Messenger、Gtalk、
等),客户端设备108和/或110可以通过
这些信道与另一实体进行对话。
[0030] 在一些示例中,客户端设备108所链接到的信道112对应于客户端设备108的第一用户通过其维持在线、拥有账户或可访问以进行通信的信道。第一用户可能更喜欢这些信道112的子集,并且可以将特定的信道用于大多数不同类型的通信(例如,第一用户可以使用一个或多个社交网络服务112(1)来与朋友通信;项目协作服务112(2)用于文件共享和与同事通信;SMS服务112(4)用于朋友、家人和同事;并且即使用户可能具有多个电子邮件服务账户,也可以主要使用一个电子邮件)。类似地,其他客户端设备110所链接到的信道114可以对应于其他客户端设备110的第二用户通过其维持在线、拥有账户或可访问以进行通信的信道。可以设想的是,客户端设备108和其他客户端设备110可以链接到相同信道子集和/或不同信道子集,这取决于第一用户和第二用户可访问的信道。注意,可以设想的是,用户可以在多个设备上维持存在于多个信道上和/或多个用户可以在单个设备上维持多个信道。为简单起见,本文中讨论单个用户并且通常是单个设备,但是可以设想到多个用户和设备。
[0031] 根据本文中描述的技术,第一用户和第二用户可以使用他们喜欢的任何信道来分别向其他用户发送消息和从其他用户接收消息。例如,从第一用户的角度来看,第一用户可以使用客户端设备108中的任何一个或多个来通过被配置为与相应的客户端设备108一起工作的信道112中的任一个或多个来发送和接收消息。第一用户通过信道发送的消息可以由CMM通过信道114中的任何一个或多个向其他客户端设备110中的任何一个或多个递送,而无论一个或多个信道114中的任一个是否与一个或多个信道112中的任一个相对应。在客户端设备108中的任何一个或多个处接收的消息可以通过信道114中的任何一个或多个从其他客户端设备110被发送,而无论一个或多个信道114中的任一个是否与一个或多个信道
112中的任一个相对应。
[0032] 示例场景
[0033] 图2描绘了实现用于经由由CMM框架212建立的跨信道通信会话而从与第一信道(例如,社交网络服务206)相关联的第一客户端设备204向与第二信道(例如,短消息服务(SMS)服务210)相关联的第二客户端设备208中继消息202的单次迭代的技术的示例场景
200。该示例场景200是受限于特定配置的示例,但不应当被解释为将这些技术限制于该特定实现;示例场景200被给出以进一步帮助本领域普通技术人员理解本文中描述的技术。
[0034] 在一些示例中,第一客户端设备204可以是如图1所示的客户端设备108,第二客户端设备208可以是如图1所示的另一客户端设备110,社交网络服务206可以是如图1所示的信道112(例如,社交网络服务112(1))之一,SMS服务210可以是如图1所示的信道114(例如,SMS服务114(4))之一,并且CMM框架212可以存储在可以是分布式计算资源102中一个或多个的计算资源214上。
[0035] 在这个示例中,已经经由CMM框架212在第一客户端设备204与第二客户端设备208之间建立了跨信道通信会话。这在下面更详细地描述,但是在一些示例中,跨信道通信会话可以基于消息来建立,该消息包含由第一客户端设备204并且经由与社交网络服务206(即,第一信道)相关联的用户账户216向与社交网络服务206(即,第一信道)相关联的CMM账户
218(即,“代理”账户)发送的命令。CMM账户218可以向存储在计算资源214上的CMM框架212中继包含该命令的消息。
[0036] CMM框架212可以创建跨信道通信会话标识符,并且随后经由第二信道(例如,SMS服务210)从第二客户端设备208接收包含用以加入跨信道通信会话的请求并且包含跨信道通信会话标识符的消息。为了接收包含该请求的消息,CMM可以具有SMS服务的账户,诸如电话号码,可以向该账户寻址包含该请求的消息。CMM SMS账户可以向CMM框架212转发包含该请求的消息,CMM框架212随后可以在第一客户端设备204与第二客户端设备208之间建立跨信道通信会话。
[0037] 一旦CMM框架212已经建立了跨信道通信会话,CMM框架212可以从第一客户端设备向与跨信道通信会话相关联的其他客户端设备(即,这个示例中的第二客户端设备208)中继消息。在场景200中,用户可以生成消息202(1),客户端设备204例如经由网络104经由与社交网络服务206相关联的用户账户216而向与社交网络服务206相关联的CMM账户218发送(步骤220)消息202(1)。在一些示例中,用户可以在客户端设备204处显示的用户界面中生成消息202(1)(例如,存储在客户端设备上的客户端应用,当客户具有服务账户时,该客户端应用允许用户经由与客户端应用相关联的服务生成和发送消息),该客户端设备204与用户经由用户账户216可访问的社交网络服务206相关联。例如,用户可以使用社交网络的消息传递功能来从用户账户向服务的CMM账户发送消息(例如,通过在CMM账户“墙壁”上发布,通过直接消息传递CMM账户,通过@提到CMM账户,等等)。
[0038] 社交网络服务206向与社交网络206相关联的CMM账户218中继消息202(1)(步骤
222)。除了CMM账户能够通过某种模式从用户接收消息之外,社交网络服务206如何在账户之间中继消息几乎没有结果。在接收到消息202(1)时,CMM账户218可以例如经由网络104向存储在计算资源214上的CMM框架212中继消息202(1)(步骤224)。注意,图2描绘了通信地耦合第一客户端设备204和社交网络服务206、社交网络服务206和计算资源214、以及计算资源214和第二客户端设备208的网络104。可以设想的是,每个之间的特定通信系统可以是不同的,但是为了简单起见,这里示出了网络104。
[0039] CMM框架212可以包括用于将接收的消息转换成适合于由CMM框架212通过其他信道中继的消息的模块。在这个示例中,CMM框架212可以检测或者可以以其他方式被告知(例如,通过信道标识符)消息202(1)的协议。在这个示例中,消息202(1)可以被构造为符合社交网络消息协议226,并且可以包含组成消息202(1)的内容的图像228和音频230。CMM框架
212还可以被告知各种信道的保真度和/或约束(例如,通过存储在计算资源214上或者CMM框架212以其他方式可访问的信道数据)。例如,在准备通过第二信道(即,SMS服务210)向第二客户端设备208中继消息202(1)时,CMM框架212可以转换消息202(1)(步骤232),以创建符合SMS服务210的协议(即,SMS协议234)、保真度和约束的转换后消息202(2),而不牺牲原始消息202(1)的内容。例如,在转换消息202(1)以创建转换后的消息202(2)时,CMM框架212能够知道(例如,通过CMM框架212可访问的信道数据)SMS信道并不支持图像。为了继续向与第二客户端设备208相关联的用户提供图像228,在一些示例中,CMM框架212可以存储经由超链接可访问的图像228的本地副本,CMM框架212可以将该本地副本作为文本包括在转换后的消息202(2)内容中(即,到图像236的网络链接)。
[0040] 此外,CMM框架212可以通过CMM框架212的音频到文本模块而将音频230转换为文本,并且将音频238的文本表示包括在转换后的消息202(2)的内容中。可以设想的是,CMM框架212可以在必要时创建多个转换后的消息(例如,目的地信道仅接收多达140字符消息,使得CMM框架212将文本分成140字符消息、具有不同协议的多个目的地信道等)。
[0041] 一旦转换后的消息202(2)完成(例如,消息符合目的地信道的协议,消息具有适当的保真度,消息满足目的地信道的约束,等等),CMM框架212可以经由SMS服务210(即,第二信道)向第二客户端设备208中继转换后的消息202(2)(步骤240)。为了经由SMS服务210向第二客户端设备208中继转换后的消息202(2),CMM可以具有SMS服务210的账户(例如,电话号码),CMM可以从该账户发送转换后的消息202(2)。
[0042] 示例设备
[0043] 图3描绘了示例设备300的选择组件,其可以表示分布式计算资源102(1)至102(N)、客户端设备108、其他客户端设备110、或实现本文中描述的交叉模式通信技术中一些或所有的其他计算设备中的一个或多个。示例设备300可以包括具有可操作地连接到计算机可读介质304的一个或多个处理单元302的任何类型的计算设备。连接可以经由总线306,总线306在某些情况下可以包括系统总线、数据总线、地址总线、PCI总线、Mini-PCI总线以及各种本地、外围设备和/或独立总线中的一个或多个,或者连接可以经由另一可操作连接。例如,处理单元302可以表示微处理器、控制器、或用于处理计算机可执行指令以控制设备的操作以便促进跨信道通信的任何其他合适类型的处理器。在使用片上系统架构的一些示例中,处理单元302可以包括一个或多个固定功能块(也称为加速器),其通过采用硬件(而不是软件或固件)的CMM 106来实现该方法的一部分。
[0044] 计算机可读介质304包括两种类型的计算机可读介质,即计算机存储介质和通信介质。计算机存储介质可以包括以用于存储诸如计算机(或其他电子设备)可读和/或可执行指令、数据结构、程序模块和/或其他数据等信息(以压缩或未压缩形式)的任何方法或技术而实现的易失性和非易失性的、非暂态的机器可读的可移动和不可移动介质,以执行本文中描述的过程或方法。计算机存储介质包括但不限于硬盘驱动器、软盘、光盘、CD-ROM、DVD、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、闪存、磁性和/或光卡、固态存储器设备、和/或适合于存储电子指令的其他类型的物理机器可读介质。
[0045] 与此相对,通信介质包含计算机可读指令、数据结构、程序模块、和/或调制数据信号(诸如载波和/或其他传输机制)中的其他数据。如本文中定义的,计算机存储介质不包括通信介质。
[0046] 示例设备300可以包括但不限于台式计算机、服务器计算机、网络服务器计算机、个人计算机、移动计算机、膝上型计算机、平板计算机、可穿戴计算机、植入式计算设备、电信设备、汽车计算机、网络电视、瘦客户机、终端、个人数据助理(PDA)、游戏机、游戏设备、工作站、媒体播放器、个人视频录像机(PVR)、机顶盒、相机、用于包括在计算设备中的集成组件、电器、和/或任何其他种类的计算设备,诸如一个或多个单独的处理器设备,诸如CPU型处理器(例如,微处理器)、GPU和/或加速器设备。
[0047] 在一些示例中,如关于设备300所示,计算机可读介质304可以存储由处理单元302可执行的指令,处理单元302可以表示并入到设备300中的CPU。计算机可读介质304还可以存储指令,这些指令由外部CPU型处理器可执行,由GPU可执行,和/或由加速器可执行,诸如现场可编程门阵列(FPGA)型加速器、数字信号处理(DSP)型加速器、和/或任何内部或外部加速器。
[0048] 存储在计算机可读介质304上的可执行指令可以包括例如操作系统308、CMM框架
310、以及可由处理单元302加载和执行的其他模块、程序和/或应用。CMM 106可以包括其上存储有CMM框架310的设备300。CMM 106和CMM框架310在本文中可互换地使用,因为CMM框架
310经常完成CMM 106的功能。CMM框架310可以是关于图2描述的CMM框架212。CMM框架310可以包括许可模块312、对话转换/中继模块314、通信日志模块316和/或会话跟踪模块318。这些技术可以部署在更多或更少的模块中。如上所述,本文中描述的功能可以至少部分由诸如加速器等一个或多个硬件逻辑组件来执行。例如而非限制,可以使用的说明性类型的硬件逻辑组件包括FPGA、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。例如,加速器可以表示混合设备,诸如来自XILINX或ALTERA的混合设备,该设备包括嵌入在FPGA架构中的CPU核。
[0049] 在所示示例中,计算机可读介质304还包括数据存储器320。在一些示例中,数据存储器320包括数据存储库,诸如数据库、数据仓库和/或其他类型的结构化或非结构化数据存储库。在一些示例中,数据存储器320包括具有一个或多个表、索引、存储过程等以实现数据访问的关系数据库。数据存储器320可以存储用于存储在计算机可读介质304中和/或由处理器302和/或加速器(诸如模块312至318)执行的过程、应用、组件和/或模块的操作的数据。备选地,一些或所有上述数据可以存储在单独的存储器上,诸如分布式计算资源102、客户端设备108、其他客户端设备110的存储器上、CPU型处理器(例如,微处理器)的板上存储器、GPU的板上存储器、FPGA型加速器的板上存储器、DSP型加速器上的板上存储器、和/或另一加速器的板上存储器。
[0050] 设备300还可以包括一个或多个输入/输出(I/O)接口322,以允许设备300与输入/输出设备通信,诸如用户输入设备,包括外围输入设备(例如,键盘、鼠标、笔、游戏控制器、麦克风或音频输入设备、触摸输入设备(例如,触摸屏、触摸板等)、手势输入设备、相机等,和/或输出设备,包括外围输出设备(例如,显示器、打印机、音频扬声器、触觉输出、用于音频感觉的骨传导等)。在一些示例中,I/O接口322可以用于与客户端设备108或其他客户端设备110通信。设备300还可以包括一个或多个网络接口324,以实现计算设备300与诸如客户端设备108和/或其他客户端设备110等其他联网设备之间的通信。这样的网络接口324可以包括一个或多个网络接口控制器(NIC)和/或其他类型的收发器设备,以通过诸如网络
104等网络发送和/或接收通信。
[0051] 示例设备300包括可以分布式地或单独地存储在设备300上的示例CMM框架310,如上所述,设备300可以包括一个或多个设备,诸如分布式计算资源102(1)至102(N)、客户端设备108或其他客户端设备110。一些或所有模块能够可用于远程设备和/或分布式计算资源102(可被配置为云服务系统),能够从其可访问,或者能够存储于其上。在一些示例中,CMM框架310包括如本文中描述的提供跨模式通信的模块312至318。在一些示例中,可以采用任何数目的模块,并且本文中描述为由一个或多个模块采用的技术可以由更多或更少数目的模块使用。
[0052] 许可模块312可以包括计算机可执行指令,这些计算机可执行指令在被执行时将处理单元302编程为接收与信道和CMM相关联的凭证(即,在信道上的CMM侧认证),所述凭证授权CMM框架310在该信道上进行操作(例如,允许CMM在该信道上保持存在,等效地,通过该信道发送和接收消息)。许可模块还可以被编程为寻求针对CMM框架310通过信道联系客户端设备和/或代表客户端设备中继消息并通过其他信道向客户端设备中继消息(即,用户侧信道许可)的用户许可。在信道上认证CMM框架310的目的是允许CMM框架310通过该信道进行通信。
[0053] 在一些示例中,在各种信道上对CMM框架310的认证可以包括提供由许可模块312向信道注册CMM框架310的提示(例如,设置用户名、密码和其他信息以创建信道账户;创建电子邮件账户;与实体协商以访问信道(例如,提供完成无线电呼号的应用的提示,完成接收电话号码的小区提供商的要求);向API注册以接收客户端ID和标记,等等)。许可模块312可以重定向认证CMM框架310的用户,以通过到信道网页的信道进行操作、引起注册表单的显示和经由信道API向信道中继对表单的输入、或者以其他方式促进对CMM框架310的认证,以使得CMM框架310可以在信道上进行操作。在一些示例中,在认证流程或其他注册过程之后,许可模块312可以存储足以允许CMM框架310在信道上操作的信息(例如,在数据存储器
320中)(例如,客户端ID和标记、用户名和密码、信道的API端点、电话号码、电子邮件地址、其他联系信息等)。在一些示例中,对话转换/中继模块314可以经由例如存储在数据存储器
320中的API端点引用来调用信道API,以代表CMM和/或客户端设备发送和接收和/或访问消息、文件和/或其他通信。在一些示例中,针对信道的CMM框架310的认证按照每个信道而不是每个用户而发生。换言之,一旦CMM框架310在信道上被认证,用户就可以经由该信道联系CMM框架310以发起跨信道通信会话。
[0054] 关于用户侧信道许可,许可模块312可以被编程为引起信道的列表的显示,用户能够向CMM框架310授予在所述信道上进行操作的许可。例如,通过向CMM框架310授予在信道上进行操作的许可,用户能够通过用户向CMM框架310授予在其上进行操作的许可的信道,向其他信道发送消息。通过用户向CMM框架310授予在其上进行操作的许可的信道,用户还可以从其他信道接收消息。在一些示例中,许可模块312可以将用户重定向到与信道相关联的网页,以允许用户引导信道以允许CMM框架310访问通信和/或代表用户进行行动(例如,发出对网络服务的请求,从用户发送的信道服务接收消息,递送从其他信道发送的消息,等等),从而允许CMM框架310保持对用户凭证的不可知(例如,用户可以向信道服务认证自己,并且一旦向信道认证,则指示信道服务向CMM框架310授予许可)。在一些示例中,用户可以通过将与CMM框架310相关联的账户添加到用户的联系人列表或者通过将与CMM框架310相关联的账户添加到群组讨论,来向CMM框架310授予许可。
[0055] 在一些示例中,用户可以在与用户相关联的信道上启用CMM框架310(例如,用户具有账户,被注册或以其他方式访问信道),而无需向CMM框架310授予许可。在一些示例中,通过信道联系CMM框架310可能足以实现这些技术。在一些示例中,CMM框架310可以使用与用户相关联的标识(例如,电子邮件地址、电话号码、用户ID、用户名、MAC地址等)和信道,以便实现这些技术。
[0056] 例如,第一客户端设备可以向与CMM框架310相关联的电话号码发送SMS,以发起跨信道通信会话(或者以其他方式启用CMM框架310,诸如通过如上所述向其授予许可)。CMM框架310可以存储从其接收SMS消息的电话号码,利用该电话号码,CMM框架310可以完成本文中讨论的技术。在一些示例中,CMM框架310可以将电话号码与跨信道通信会话相关联。CMM框架310还可以从第二客户端设备接收请求加入跨信道通信会话的电子邮件(或者以其他方式启用CMM框架310,诸如通过如上所述向CMM框架310授予许可)。在一些示例中,CMM框架
310可以将与所接收的电子邮件相关联的电子邮件信息(例如,电子邮件地址)与跨信道通信会话相关联。
[0057] 随后,CMM框架310可以从第一客户端设备接收SMS消息,CMM框架可以将SMS消息转换为电子邮件(例如,通过复制SMS消息的正文并且将其粘贴到电子邮件中)。然后,CMM框架
310可以经由与CMM框架310相关联的电子邮件账户来向第二客户端设备发送所生成的电子邮件。CMM框架310可以类似地从第二设备接收、转换和向第一设备中继作为SMS消息的电子邮件。注意,在一些示例中,可以通过特定信道联系CMM框架310,因为如上所述CMM框架310已经向该信道注册。而且,注意,可以设想的是,尽管上面的示例为了简单起见讨论了两个客户端设备,但是这些技术可以用一个设备来实现。在这个示例中,CMM框架310经由不同的信道向客户端设备中继经由一个信道从客户端设备接收的消息。还可以设想的是,CMM框架
310可以通过多个不同信道从任何第一客户端设备向多个其他设备中继消息。
[0058] 对话转换/中继模块314可以包括计算机可执行指令,这些计算机可执行指令在执行时将处理单元302编程为创建对话会话,将接收的消息转换为适合于目的地信道的格式,并且向与目的地信道关联的客户端设备中继所接收的消息。
[0059] 在一些示例中,对话转换/中继模块314可以接收创建跨信道通信会话(等效地,本文中的对话会话)的命令。在一些示例中,命令可以包括诸如对话会话名称和/或通信目的地标识符(例如,用户尝试与之通信的实体的用户名、电子地址等)等参数。例如,用户可以向与用户相关联的信道的界面中输入命令(例如,“new_conv”等)(例如,用户可以向SMS信道的图形用户界面中键入“new_conv”),随后是对话名称(例如,“new_conv USSEnterprise”)并且向与CMM框架310和信道相关联的账户发送命令和任何参数(例如,对于包含命令的SMS,是与CMM相关联的电话号码;对于包含命令的电子邮件,是与CMM相关联的电子邮件账户;对于社交媒体服务消息,是社交媒体服务上的用户账户或与CMM相关联的账户已经添加的群组讨论,等等)。
[0060] 在CMM框架310私下参与(例如,能够访问)来自用户的通信而无需用户直接联系CMM框架的一些示例中(例如,当与CMM相关联的账户被添加到包括用户的群组会谈时,当CMM已经被授予访问用户发送的消息的许可时,如上所述,等等),对话转换/中继模块314可以检测来自用户的通信的命令和任何参数。例如,如果CMM已经向群聊服务注册并且用户通过群聊服务向群聊添加与CMM和群聊服务相关联的账户,则用户可以向群组发送包含命令和任何参数的消息。CMM框架310可以从发送的消息中检测命令的存在。例如,CMM框架310可以包括或被配置为通信地耦合到自然语言处理API,自然语言处理API可以使用机器学习、消歧和/或短语检测来检测来自群聊的命令。
[0061] 在一些示例中,响应于接收到命令和任何参数,对话转换/中继模块314可以通过将信道标识符、与用户以及从中接收到命令的信道相关联的用户标识(例如,电话号码、电子邮件、用户名等)、以及目的地标识符和/或对话会话名称关联在一起,来创建对话会话。
在一些示例中,目的地标识符是允许CMM框架310向与另一信道相关联的第二客户端设备中继消息的标识符。组成目的地标识符的信息可以包括目标信道标识符(例如,@email.com、目标信道的名称)或用户标识符(例如,电话号码、用户名等)中的一个或多个。
[0062] 在所接收的命令包括指定目的地标识符的参数的示例中,对话转换/中继模块314可以将从其接收到命令的信道(例如,电子邮件)的信道标识符、与第一客户端设备相关联并且与从其接收到命令的信道相关联的第一用户标识(例如,user@email)、目的地标识(例如,第二用户标识、电话号码)和与目的地标识符相对应的目的地信道标识符(例如,SMS)关联在一起。在一些示例中,对话转换/中继模块314可以将该信息存储在表的单行中,其中表的行表示不同的对话会话。例如,对话转换/中继模块314可以从第一客户端设备接收包含文本“new_conv+11234567890”的电子邮件。作为响应,对话转换/中继模块314可以在类似于如下所示的示例的表1中创建行:
[0063]
[0064] 表1
[0065] 在一些示例中,对话转换/中继模块314可以添加用以识别对话会话的CMM生成的会话标识符,并且更容易地检索对话会话数据以便更快地中继消息。对话转换/中继模块
314可以使用该表来通过SMS信道(例如,经由与CMM相关联的电话号码并且通过向+1 123
456 7890发送消息)向第二设备中继通过电子邮件信道(经由user@email.com)从第一设备接收的(例如,通过电子邮件信道以CMM@email.com接收的)消息。在一些示例中,该表可以用于反向中继消息(即,通过SMS信道从第二设备接收消息并且通过电子邮件信道将它们发送给第一设备)。
[0066] 在一些示例中,随着接收到指定附加目的地标识的更多命令,可以添加更多列。为了便于加入附加方,对话转换/中继模块314可以向用户提供CMM生成的会话标识符,使得用户可以将CMM生成的会话标识符包括在还包括待添加的附加目的地标识的命令中。在一些示例中,用户指定与目的地标识相关联的信道标识符。在其他示例中,对话转换/中继模块
314可以检测最合适的目的地信道标识符(例如,十一、十或七个数字的串可以与SMS标识符相关联;“@username”可以与社交媒体标识符相关联;“@____com”可以与电子邮件标识符相关联;等等)。
[0067] 在另一示例中,所接收的命令可以包括指定对话会话标识符(例如,会谈名称)的参数。在这个示例中,对话转换/中继模块314可以将从其接收到命令的信道的信道标识符(例如,电子邮件)、与第一客户端设备相关联并且与从其接收到命令的信道相关联的第一用户标识(例如,user@email.com)、目的地标识(例如,第二用户标识、电话号码)、以及与目的地标识符相对应的目的地信道标识符(例如,SMS)关联在一起。例如,对话转换/中继模块
314可以从第一客户端设备接收包含文本“new_conv USS Enterprise”的电子邮件。作为响应,对话转换/中继模块314可以在类似于下面说明的示例表2的表中创建第一行(不包括粗体标题)。然后,对话会话标识符可以通过任何方法(例如,口口相传、广告等)进行共享,并且第二用户可以发送第二设备要加入对话会话的请求,请求包括命令(例如,“join_conv”)和对话会话标识符(例如,“USS Enterprise”)。例如,对话转换/中继模块314可以通过SMS信道从第二设备接收包含文本“join_conv USS Enterprise”的SMS。作为响应,对话转换/中继模块314可以创建如下所示的示例表2的第二行(不包括粗体标题)。
[0068]
信道标识符 用户标识 对话会话标识符
电子邮件 user@email.com USS Enterprise
SMS +1 123 456 7890 USS Enterprise
[0069] 表2
[0070] 对话转换/中继模块314可以使用该表通过SMS信道(例如,经由与CMM相关联的电话号码并且通过将消息发送至+11234567890)来向第二设备中继通过电子邮件信道(经由user@email.com)从第一设备接收的(例如,通过电子邮件信道在CMM@email.com处接收的)消息。在一些示例中,该表可以用于反向中继消息(即,通过SMS信道从第二设备接收消息并且通过电子邮件信道将它们发送给第一设备)。
[0071] 注意,在本文中使用术语时,取决于消息流的方向,目的地信道是指消息所针对的信道。目的地信道根据从其接收消息的客户端设备而变化。例如,在上面的示例中,“user@email.com”可以向CMM发送电子邮件。目的地信道可以与已加入对话会话并且具有相关联的信道标识符和用户标识的任何客户端设备相关联(例如,上面具有用户标识+1 123 456
7890的SMS信道)。例如,当与SMS关联的客户端设备回复时,目的地信道将成为电子邮件信道。
[0072] 还要注意,CMM框架310通过上述的对话转换/中继模块314功能来提供跨越两个或更多个信道的对话方法。
[0073] 在一些示例中,对话转换/中继模块314可以被编程为接收对话会话的密码。例如,命令和/或请求的附加参数可以包括密码参数(例如,“new_conv