用于对会话施加限制的方法和系统的制作方法

文档序号:7952317阅读:164来源:国知局
专利名称:用于对会话施加限制的方法和系统的制作方法
技术领域
此处所描述的技术一般涉及数据通信网络,尤其涉及通信会话。
背景技术
应用程序有时需要建立和管理计算设备之间的会话。会话是计算设备之间在一段时间上发生的一组交互。作为一个示例,诸如MICROSOFT MESSENGER或基于网际协议的语音(“VoIP”)等实时通信应用程序代表用户在通信设备之间建立会话。这些应用程序可使用诸如“会话发起协议”(“SIP”)等各种机制来建立会话。SIP是设备可用于彼此发现并建立、修改和终止设备之间的会话的应用层控制协议。SIP是一种因特网提议标准。其规范“RFC 3261”可在<http://www.ietf.org/rfc/rfc3261.txt>处获得。涉及事件通知的SIP扩展的规范“RFC3265”可在<http://www.ietf.org/rfc/rfc3265.txt>处获得。用于定位SIP服务器的规范“RFC 3263”可以在<http://www.ietf.org/rfc/rfc3263.txt>处获得。会话描述的规范“RFC 2327”可以在<http://www.ietf.org/rfc/rfc2327.txt>处获得。所有这些规范都通过引用整体结合于此。
应用程序可将SIP与另一协议一起使用来发送或接收信息。作为一个示例,应用程序可将SIP与实时传输协议(“RTP”)一起使用以在会话期间传输实时数据。通过将SIP与其它协议一起使用,应用程序可创建并管理会话,并在会话期间交换信息。与SIP一起使用来交换信息的协议可将信息分段成消息。作为一个示例,VoIP应用程序可将较长的叙述分段成较短的消息。在会话期间交换消息被称为“对话”。SIP可使用诸如传输控制协议/网际协议(“TCP/IP”)等较低级通信层来传输对话的消息,这些协议是常用的传输和网络层协议。
SIP网络包括可作为客户机、服务器或两者参与对话的实体。SIP支持四种类型的实体用户代理、代理服务器、重定向服务器和注册服务器(registrar)。用户代理通过与其它SIP实体交换消息来发起和终止会话。用户代理可以是用户代理客户机,它一般是发起SIP请求(例如,发起会话)的设备,或者可以是用户代理服务器,它是一般接收SIP请求并响应于这类请求的设备。作为示例,“IP电话”、个人数字助理以及任何其它类型的计算设备可以是用户代理。设备可以在一个对话中是用户代理客户机,而在另一对话中是用户代理服务器,或者在对话期间交换角色。代理服务器是对客户机充当服务器且对服务器充当客户机的实体。通过如此做,代理服务器在客户机和服务器之间截取、解释或转发消息。代理服务器通过例如确认消息的发送者和接收者来促进网络安全。重定向服务器接受SIP请求,并生成重定向发送请求的客户机来联系替换网络资源的SIP响应。作为一个示例,重定向服务器可指示特定用户当前在若干设备中的哪一个处可用。注册服务器是接受来自SIP客户机的注册信息并向位置服务或其它实体通知所接收的注册信息的服务器。
SIP支持两种消息类型从客户机发送到服务器的请求,以及一般在响应请求时从服务器发送到客户机的响应。SIP消息包括三个部分。SIP消息的第一部分是“起始行”,它包括指示消息类型和协议版本的字段。SIP消息的第二部分包括头部字段,其值被表示为名字—值对。SIP消息的第三部分是消息主体,它用于描述要发起的会话或包含涉及会话的数据。消息主体可出现在请求或响应中。
SIP消息基于其头部字段的内容来路由。要有效的话,SIP请求应当至少包含以下五个字段To(至)、From(自)、Contact(联系人)、Max-Forwards(最大转发)以及Via(经由)。To头部字段指示请求的接收者的逻辑身份。From头部字段指示请求的发起者的逻辑身份。Contact头部字段指示发送者希望从其接收对话的后续消息的来源的身份。Max-Forwards头部字段指示请求在到达其目的地之前可以做出的跳跃的数目。作为一个示例,如果来自设备A的消息在到达目的地设备C之前穿过设备B,则消息被认为做出了两次跳跃(例如,设备B和C)。Via头部字段指示请求至今为止已采取的路径(例如,请求所经过的设备的网络地址序列),并指示当路由响应时应当遵循的路径。头部也可包含Record-Route(记录路由)字段,它用于指示未来的请求和响应应当通过指示的设备来路由。网络设备可在转发SIP消息时插入指定设备的Record-Route头部,以试图迫使对话中的后续消息通过指定的设备路由。Record-Route头部字段可包含设备的标识符(例如,网络地址)和参数。这些和其它头部字段在上文引用的SIP规范中描述。
SIP具有对话或会话的概念,它表示持久存在一段时间的两个对等体之间的关系,并便于它们之间的消息的排序和路由。为维持正确的SIP对话,对等体需要储存它们之间的SIP路由路径,该路径可包括一个跳跃,但是当多个SIP代理(例如,路由器)分离对等体时,跳跃数可以大得多。
SIP会话可使用会话描述协议(“SDP”)RFC 2327来描述。SDP可用于为会话通告、会话邀请和其它形式的会话发起目的描述多媒体会话。SDP数据描述了会话名称和目的、会话活动的时间、会话的媒体、以及接收媒体的信息(例如,地址和端口)。SDP是可扩展的,这表现在可定义新的属性—值对来描述关于会话的自定义信息。
诸如即时消息通信等典型的实时会话的一个难题是对谁参与会话或可以对会话消息做什么只能施加极少(如果有的话)的限制。例如,如果用户A邀请用户B参与会话且用户B同意,则用户B能够自由地邀请其它用户,诸如用户C参与该会话。然而,用户A可能不希望用户C参与。作为另一示例,用户A可能希望将与用户B的会话在没有其它用户能够见到该会话的消息的意义上保密。即使用户B可能无法邀请用户C参与该会话,用户B仍可通过使用传统的复制粘贴来复制消息的内容并将其粘贴到与用户C的另一会话的消息中或粘贴到发送给用户C的电子邮件消息中,来有效地将消息转发给用户C。期望具有一种允许用户对会话施加限制,使得不期望的用户无法参与那些会话或看见那些会话的消息的内容的技术。

发明内容
提供了一种用于发起具有限制的通信会话的方法和系统。一种通信系统允许用户对要与另一用户进行的会话施加限制。如果另一用户不同意该限制或如果另一用户的系统不支持该限制,则会话将不进行。会话由指定要与“被邀请者”进行具有限制的会话的“邀请者”发起。该通信系统然后向被邀请者发送指定限制的邀请。如果被邀请者同意遵守会话的限制,则被邀请者向邀请者发送响应。当邀请者接收被邀请者将遵守会话的限制的指示时,邀请者和被邀请者随后可以进行该会话,诸如即时消息通信会话。在被邀请者的计算机系统上执行的该通信系统的客户机组件可帮助对该会话强制实施限制。


图1是示出一个实施例中由邀请者客户机组件提供的用户界面的显示页面,通过该用户界面,邀请者可邀请被邀请者参与会话。
图2是示出一个实施例中由被邀请者客户机组件提供的用户界面的显示页面,通过该用户界面,被邀请者可同意遵守会话的限制。
图3是示出一个实施例中指示会话的限制已被接受的邀请者客户机组件的用户界面的显示页面。
图4是示出一个实施例中的通信系统的组件的框图。
图5是示出一个实施例中的邀请者客户机组件的发送邀请组件的处理的流程图。
图6是示出一个实施例中的被邀请者客户机组件的接收邀请组件的处理的流程图。
图7是示出一个实施例中的被邀请者客户机组件的接收被邀请者动作组件的处理的流程图。
图8是示出一个实施例中的服务器组件的接收消息组件的处理的流程图。
图9是示出一个实施例中的服务器组件的接收邀请组件的处理的流程图。
具体实施例方式
提供了一种用于发起具有限制的通信会话的方法和系统。在一个实施例中,该通信系统允许用户对要与另一用户进行的会话施加限制。如果另一用户不同意该限制或其它用户的系统不支持该限制,则会话将不进行。会话是由指定要与“被邀请者”进行具有限制的会话的“邀请者”发起的。该通信系统然后向被邀请者发送指定限制的邀请。如果被邀请者同意遵守会话的限制,则被邀请者向邀请者发送响应。当邀请者接收到被邀请者将遵守会话的限制的指示时,则邀请者和被邀请者可进行该会话,诸如即时消息通信会话。在被邀请者的计算机系统上执行的该通信系统的客户机组件可帮助强制实施会话的限制。例如,如果该限制限制了被邀请者能够邀请谁参与会话(例如,仅某一域中的用户可参与),则客户机组件可检查由被邀请者为该会话发送的每一邀请,以确保它与限制相一致。作为另一示例,如果该限制限制了被邀请者可以对消息所做的动作(例如,禁止消息的复制粘贴),则客户机组件可检查被邀请者的每一动作以确保它与该限制相一致。以此方式,邀请者可对会话施加限制,并且可在某种程度上确保被邀请者将遵守限制,只要客户机组件被信任来强制实施限制。
在一个实施例中,该通信系统的客户机组件可使用会话发起协议来发起会话。当邀请者希望发起会话时,在邀请者的计算机系统上执行的客户机组件可提示邀请者对会话施加任何限制。另外,与邀请者相关联的企业(例如,邀请者可以是公司的员工)可能希望对其用户的所有会话施加某些限制。客户机组件创建符合会话发起协议和会话描述协议的邀请。通信系统可扩展SDP来包括指定会话的限制的自定义属性,例如,一个属性可以限制会话在没有其他人应被允许参与该会话且没有一个消息或其内容应对任何其他人可用的意义上是私密的。客户机组件然后生成具有指示邀请者和/或企业的限制的SDP数据的SIP邀请。客户机组件将SIP邀请转发到被邀请者。被邀请者的客户机组件在接收到邀请之后,可确定它是否支持由SDP数据的属性定义的所请求的限制。如果它能够支持这些限制,则它在其对该邀请的SIP响应(例如,SIP 200 OK消息)的SDP数据中包括那些属性。如果它不能支持限制或不能识别指定限制的属性,则它不在其响应中包括那些属性。当客户机组件支持限制时,它可提示被邀请者查看被邀请者是否希望遵守会话的限制。如果被邀请者不希望遵守限制,则客户机组件不将指定该限制的属性添加到响应的SDP数据。当邀请者的客户机组件接收到响应时,它检查SDP数据的属性以确定被邀请者是否将遵守限制要求。如果被邀请者不遵守限制,则邀请者可例如通过不发送SIP确认来决定不启动会话。
在一个实施例中,当会话消息通过服务器路由时,服务器对会话强制实施某些限制。当发起会话时,参与会话的邀请通过代理服务器路由,代理服务器储存会话的限制。在启动会话之后,会话的消息,尤其是由被邀请者发送的消息通过服务器路由。在从被邀请者接收到消息之后,服务器确定该消息是否与会话的限制相一致。如果消息不与会话的限制相一致,则服务器可丢弃该消息,使得限制可以被强制实施,且向邀请者和/或被邀请者通知该消息被丢弃。例如,如果限制指示仅某一域内的用户可被邀请参与会话,且被邀请者向另一域中的用户发送邀请,则服务器可丢弃该消息。然而,服务器可被限于仅强制实施某些限制。例如,服务器可能无法强制实施对消息内容的复制粘贴的任何禁止,但是可能能够强制实施对转发消息的禁止。
在一个实施例中,被邀请者的客户机组件可响应于邀请提供指示被邀请者的客户机组件可被信任来强制实施会话的限制的凭证。邀请者的客户机组件在接收到该响应之后,可基于该凭证决定是否继续进行会话。如果不使用凭证,则恶意的客户机组件可能同意遵守会话的限制,但却不遵守它。在这一情况下,邀请者客户机组件能够依赖于服务器通过坚持让所有的会话消息都应当通过服务器路由来强制实施某些限制。
图1是示出一个实施例中由邀请者客户机组件提供的用户界面的显示页面,通过该用户界面,邀请者可邀请被邀请者参与会话。显示页面100包括被邀请者名字输入域101、限制复选框102以及提交按钮103。邀请者在被邀请者名字输入域中输入被邀请者的名字,并对期望的限制复选适当的复选框。邀请者然后选择提交按钮来向被邀请者发送邀请。
图2是示出一个实施例中由被邀请者客户机组件提供的用户界面的显示页面,通过该用户界面,被邀请者可同意遵守会话的限制。显示页面200包括邀请者名字域201、会话限制区域202、接受限制按钮203以及拒绝限制按钮204。邀请者名字域包含邀请者的名字。会话限制区域列出了邀请者邀请被邀请者参与的会话的各种限制。在本示例中,会话的限制是消息不能被转发,且其它域中的用户不能被邀请参与该会话。如果被邀请者同意遵守会话的限制,则被邀请者选择接受限制按钮。否则,被邀请者选择拒绝限制按钮。该用户界面可允许被邀请者选择性地接受或拒绝限制。在被邀请者同意遵守限制之后,被邀请者客户机组件发送指示被邀请者客户机组件支持且被邀请者同意遵守的限制的响应。
图3是示出一个实施例中指示会话限制已被接受的邀请者客户机组件的用户界面的显示页面。显示页面300指示被邀请者接受了由邀请者发送的邀请。邀请者客户机组件然后向被邀请者发送确认消息以启动会话。
图4是示出一个实施例中的通信系统的组件的框图。该通信系统包括邀请者和被邀请者组件,并且当使用服务器来强制实施限制时可包括服务器组件。客户机计算机系统410和服务器计算机系统420通过诸如因特网等通信链路430连接。客户机计算机系统包括用户界面组件411、接收被邀请者动作组件412、接收邀请组件413以及发送邀请组件414。用户界面组件提供了图1-3的用户界面。发送邀请组件在邀请者希望发送邀请的时候被调用。该组件提示用户输入会话的限制,然后向被邀请者发送指示会话的限制的邀请。接收邀请组件在被邀请者接收邀请时被调用。该组件提示被邀请者确定被邀请者是否同意遵守客户机组件所支持的会话限制。如果是,则该组件向邀请者发送指示被邀请者将遵守会话限制的响应。接收被邀请者动作组件在只要被邀请者执行与会话有关的动作时就被调用。动作可包括试图邀请另一用户参与会话、试图转发会话的消息、或试图复制和粘贴消息的内容。该组件确定动作是否与会话的限制相一致。如果否,则该组件阻止该动作。服务器计算机系统包括注册组件421、注册存储422、接收邀请组件423、接收确认组件424、接收消息组件425、以及会话存储426。注册组件和注册存储可以是用于注册可参与会话的用户的常规SIP组件。注册组件可执行由SIP定义的注册。接收邀请组件在服务器从邀请者接收发送到被邀请者的邀请时被调用。服务器计算机系统可以充当SIP代理服务器。接收邀请组件可储存对会话限制的指示。接收确认组件在服务器接收到从邀请者到被邀请者的响应时被调用,该响应表明邀请者确认可以启动会话。服务器计算机系统还可包括处理由被邀请者发送给邀请者的响应以及记录被邀请者同意遵守的限制的组件。接收消息组件在接收到会话的消息时被调用。接收消息组件确定来自被邀请者的消息是否与会话的限制相一致,如果否,则丢弃该消息。会话存储储存会话的限制,使得它们可被强制实施。
实现该通信系统的计算设备可包括中央处理单元、存储器、输入设备(例如,键盘和定位设备)、输出设备(例如,显示设备)以及存储设备(例如,盘驱动器)。存储器和存储设备是可包含实现该通信系统的指令的计算机可读介质。另外,数据结构和消息结构可被储存或通过诸如通信链路上的信号等数据传输介质发送。可使用各种通信链路,诸如因特网、局域网、广域网、点对点拨号连接、蜂窝电话网络等等。
该通信系统的实施例可以在各种操作环境中实现,包括个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、可编程消费者电子产品、数码相机、网络PC、小型机、大型计算机、包括上述系统或设备的任一个的分布式计算系统等等。计算机系统可以是蜂窝电话、个人数字助理、智能电话、个人计算机、可编程消费者电子产品、数码相机等等。
图5是示出一个实施例中的邀请者客户机组件的发送邀请组件的处理的流程图。该组件在邀请者希望发送邀请时被调用。该组件提示邀请者输入会话的限制,并可应用企业级限制。该组件然后向被邀请者发送邀请。当组件接收到被邀请者同意遵守会话的限制的指示时,邀请者就向被邀请者发送确认,并指示可启动会话。在框501,该组件输入被邀请者的名字以及要对该会话施加的限制。在判别框502,如果有要施加在会话上的任何企业级限制,则该组件继续到框503,否则该组件继续到框504。在框503,该组件添加企业限制。在框504,该组件创建标识邀请者和被邀请者的SIP数据。在框505,该组件创建包括要施加在会话上的限制的属性的SDP数据。在框506,该组件向被邀请者发送邀请。在框507,该组件从被邀请者接收响应。在判别框508,如果响应是OK响应,则该组件继续到框509,否则该组件完成,指示会话发起失败。在判别框509,如果响应指示被邀请者将遵守会话的限制,则该组件继续到框510,否则该组件完成,指示会话发起失败。在框510,该组件向被邀请者发送确认,然后完成,指示会话发起成功。
图6是示出一个实施例中被邀请者客户机组件的接收邀请组件的处理的流程图。该组件接收邀请,并确定它是否能够支持会话限制。该组件然后提示被邀请者确定被邀请者是否将遵守客户机组件所支持的限制。该组件然后向邀请者发送指示它所支持且同意遵守的限制的OK响应。在框601,该组件标识客户机组件支持且将遵守的限制。在框602,该组件提示被邀请者指示被邀请者是否将遵守客户机组件所支持的会话限制。在判别框603,如果被邀请者同意遵守会话限制,则该组件继续到框604,否则该组件继续到框606。在框604,该组件向要发送给邀请者的SIP响应的SDP数据添加所接受的限制。在框605,该组件向邀请者发送指示被邀请者将遵守的限制的OK响应,然后完成,指示成功。在框606,该组件向邀请者发送不OK响应,然后完成,指示会话发起失败。
图7是示出一个实施例中的被邀请者客户机组件的接收被邀请者动作组件的处理的流程图。该组件在只要被邀请者执行与具有限制的会话有关的动作就被调用。该组件确定该动作是否与会话的限制相一致。如果否,则该组件阻止该动作。在框701,该组件将动作与会话的限制进行比较。在判别框702,如果该动作与会话的限制相一致,则该组件继续执行该动作,否则该组件继续到框703。在框703,该组件通知被邀请者该动作与会话的限制不一致,且还可通知邀请者。该组件然后完成,指示该动作失败。
图8是示出一个实施例中的服务器组件的接收消息组件的处理的流程图。该组件在只要服务器接收来自会话的被邀请者的消息的时候就被调用。该组件确定消息是否与会话的限制相一致。在框801,该组件将消息与会话的限制进行比较。在判别框802,如果消息与会话的限制相一致,则该组件继续到框804,否则该组件继续到框803。在框803,该组件向被邀请者和/或邀请者通知该消息与会话的限制不一致,然后完成,指示该消息不被转发。在框804,该组件转发消息,然后完成,指示消息已被转发。
图9是示出一个实施例中的服务器组件的接收邀请组件的处理的流程图。该组件在服务器接收到来自邀请者的邀请时被调用。该组件储存会话的限制,使得服务器稍后可对会话强制实施限制。在框901,该组件保存包括会话标识、被邀请者和邀请者的标识以及会话限制的会话信息。在框902,该组件转发邀请。在框903,该组件等待从被邀请者接收OK响应。在判别框904,如果接收到OK响应且该响应指示被邀请者将遵守会话的限制,则该组件继续到框905,否则该组件指示会话发起失败。在框905,该组件准备监视会话消息以强制实施会话限制。该组件然后完成,指示成功。该组件也可等待从邀请者接收确认。
从上述内容中,可以理解,此处为说明起见描述了该通信系统的具体实施例,但是可以在不脱离本发明的精神和范围的情况下做出各种修改。本领域的技术人员可以理解,邀请者可对会话施加任何类型的限制,诸如消息的数量或长度、消息的定时、参与者的域或名字等等。同样,在会话期间,邀请者可向被邀请者发送包括移除或添加一个或多个限制的指示的重新邀请。邀请者可对不同的被邀请者施加不同的限制。邀请另一个人参与会话的被邀请者可对其他人的参与施加不同的限制。然而,该通信系统可确保限制至少具有如由原始邀请者施加在被邀请者上的那些限制一样的限制性。本领域的技术人员可以理解,该通信系统可域用于发起除SIP之外的会话的协议一起使用。即使客户机或服务器组件可能无法强制实施限制,该通信系统也可用于查看被邀请者是否同意会话限制。本领域的技术人员可以理解,企业限制可能不是企业级的,而是可以被定制到不同的用户或企业组。因此,本发明除所附权利要求书之外不受任何限制。
权利要求
1.一种在计算机系统中用于发起具有限制的会话的方法,所述方法包括接收对所述会话的限制的指示;从邀请者向被邀请者发送参与所述具有限制的会话的邀请;从所述被邀请者接收表明所述被邀请者将参与会话以及所述被邀请者是否遵守所述会话的限制的指示;以及当所述被邀请者将遵守所述会话的限制时,与所述被邀请者进行会话。
2.如权利要求1所述的方法,其特征在于,所述会话是使用会话发起协议来发起的。
3.如权利要求2所述的方法,其特征在于,所述限制被指示为符合会话描述协议的属性。
4.如权利要求3所述的方法,其特征在于,从所述被邀请者接收指示包括接收具有所述属性的会话发起协议OK消息。
5.如权利要求1所述的方法,其特征在于,所述会话是即时消息通信会话。
6.如权利要求1所述的方法按期特征在于,所述限制限制了所述被邀请者能够邀请谁参与所述会话。
7.如权利要求1所述的方法,其特征在于,所述限制限制了所述被邀请者可以对所述会话的消息做出的动作。
8.如权利要求1所述的方法,其特征在于,所述限制的指示是从所述邀请者接收的。
9.如权利要求1所述的方法,其特征在于,所述限制的指示是基于与所述邀请者相关联的企业的策略来接收的。
10.一种包含用于通过一种方法控制计算机系统以进行具有限制会话的指令的计算机可读介质,所述方法包括由被邀请者从邀请者接收参与所述具有限制的会话的邀请;确定所述被邀请者是否将遵守所述会话的限制;当所述被邀请者将遵守所述会话的限制时,从所述被邀请者向所述邀请者发送表明所述被邀请者将参与会话且将遵守所述会话的限制的指示;以及与所述邀请者进行所述具有限制的会话。
11.如权利要求10所述的计算机可读介质,其特征在于,所述进行包括防止所述被邀请者采取与所述会话的限制不一致的任何动作。
12.如权利要求10所述的计算机可读介质,其特征在于,所述确定包括客户机组件确定它是否能够对所述会话强制实施限制。
13.如权利要求10所述的计算机可读介质,其特征在于,所述确定包括所述被邀请者指示所述被邀请者是否将遵守所述会话的限制。
14.如权利要求10所述的计算机可读介质,其特征在于,所述会话是使用会话发起协议来发起的。
15.如权利要求10所述的计算机可读介质,其特征在于,所述限制被指示为符合会话描述协议的属性。
16.如权利要求10所述的计算机可读介质,其特征在于,所述会话是即时消息通信会话。
17.一种包含用于通过一种方法控制服务器来强制实施会话限制的指令的计算机可读介质,所述方法包括接收从邀请者到被邀请者的参与所述具有限制的会话的邀请;记录所述会话的限制;从所述被邀请者接收所述会话的消息;确定所述消息是否与所述会话的限制相一致;以及当确定所述消息与所述会话的消息不一致时,丢弃所述消息。
18.如权利要求17所述的计算机可读介质,其特征在于,所述丢弃包括通知所述被邀请者所述被邀请者发送了与所述会话限制不一致的消息。
19.如权利要求17所述的计算机可读介质,其特征在于,所述会话是使用会话发起协议来发起的。
20.如权利要求19所述的计算机可读介质,其特征在于,所述服务器是代理服务器。
全文摘要
提供了一种用于发起具有限制的通信会话的方法和系统。一种通信系统允许用户对要与另一用户进行的会话施加限制。如果另一用户不同意该限制或如果另一用户的系统不支持该限制,则该会话不进行。该通信系统也可强制实施会话限制。
文档编号H04L29/06GK1819585SQ20061000480
公开日2006年8月16日 申请日期2006年1月11日 优先权日2005年2月11日
发明者R·V·约内斯库 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1