通过跟踪消息变换监视sip呼叫流的方法

文档序号:7694183阅读:107来源:国知局
专利名称:通过跟踪消息变换监视sip呼叫流的方法
技术领域
本发明涉及会话启动协议通信。
背景技术
会话启动协议(SIP)是支持基于网际协议的话音(VoIP)、即时消 息传送(IM)和呈现的关键技术,并且是IMS (IP多媒体子系统)的基 础。SIP是在给定通信会话(例如,话音和视频通信会话以及^^义会话) 的上下文内将一个或多个客户机连接在一起的逐跳控制协议。此控制协议 运行于多个称为SIP代理或SIP代理服务器的中间服务器,这些服务器的 一部分功能是路由作为给定SIP通信会话一部分的SIP消息。作为此路由 操作的一部分,向给定SIP标头中添加新的标头并删除或更改SIP消息中 的现有标头(以及值)。此外,SIP代理服务器可能由于路由操作而经历 状态更改。给定系统或网络包含多个分布式SIP代理服务器,后者处理与大量SIP 通信会话关联的大量同时发生的SIP消息。为了正常运作,需要监视SIP 消息的顺序和SIP代理服务器。但是,在不为SIP代理软件直接提供工具 的情况下实时监视分布式SIP服务器系统是很困难的。基于SIP的网络基础设施形成了提供多种通信服务的基础,需要维护最高可用性和高级伸缩 性以匹配话音服务期望和需求。可以通过部署可衡量服务质量并确定影响用户体验的问题的管理技术来提供此类服务质量(QoS )保证。当前方法 通常包括通过记录流经服务器的所有消息进行的脱机日志检查。但是,日 志表项并未包含足够的信息或需要额外的大量工作来重新创建消息变换。让我们首先通过常见问题来提出难题。当电话呼叫无法接通时,尤其 是在部署的初期阶段,用户将联系帮助台系统(如果电话可接通则通过电话本身,通过例如IM/电子邮件的备用通信等)。在此情况下,通过从所 有可能的服务器检索日志并尝试追溯呼叫路径以及通过检查日志检测根本 原因,可能并非始终能够追溯用户的原始呼叫上下文。例如,不《—每个月艮 务器都维护呼叫日志(不同于电话系统,SIP系统包含一组分布式服务器 并且通过在这些服务器的子集之间路由呼叫来获取服务,所述子集可能随 呼叫的不同而有所变化);通常只有几个关键服务器维护呼叫详情记录, 例如将呼叫转发到域外部的出站SIP代理。在这种情况下,如果帮助台可 以重试呼叫并在网络内实时追溯呼叫路径,则它通常4艮有用。此外,实时 监视呼叫对于获取有关各个正在进行的呼叫的联机信息以及聚合网络信息 4艮有用,并且可用于有效的网络管理操作。发明内容本发明涉及无需修改SIP代理服务器的操作代码即可监视SIP通信会 话的系统和方法。通过借助多个SIP代理服务器在客户机之间交换多个SIP 消息而进行SIP通信会话。SIP消息包括基于文本的标头及其相应值。给 定服务器对经过此服务器的SIP消息采取的操作可以从SIP代理服务器对 此消息执行的变换来推断。例如,如果INVITE消息上的目的地统一资源 标识符(URI) #皮从SIP消息的入站版本修改为SIP消息的出站消息,则 推断出SIP服务器执行了 SIP重定向操作。通过监视消息变换监视SIP代 理服务器采取的操作可以实时进行,并且不需要为SIP代理软件提供工具 或脱纟几分4斤曰志。除了确定入站和出站SIP消息之间的更改或变换之外,还需要在给定 SIP代理服务器处将入站SIP消息关联到出站SIP消息,例如,将入站呼 叫转移请求(REFER)与到被引用方的出站建立呼叫(INVITE)关联。 入站与出站消息之间的关联以及关^v站和出站消息之间的变换的确定用 于验证对于给定SIP通信会话,按预期发生必要的消息变换,即关联用于 诊断问题并调试SIP通信会话。此外,关联的入站和出站消息之间的变换 用于验证给定SIP服务器按预期运行,例如,通过将INVITE的Join标头关联到用作会议建立消息的早期INVITE,可以检测到会议服务器的正常 运行模式的任何更改。最后,关联可以用于标识与单个对话/会话相关的消 息并帮助生成有助于实时监视SIP对话/会话的足迹。为了将入站消息与出站消息关联,创建了 一组SIP关联规则以便将入 站SIP消息与出站消息(其是前者的已变换版本)进行匹配。可以针对特 定上下文定义这些关^^J,j。对于点对点呼叫,Call-ID标头字段在各跳之 间保持不变。当呼叫分支时,To标头中的tag字段可以用于在不同的分支 路径之间进行关联。对于会议呼叫,正在进行的会议呼叫可以由Dialog标 识符标识,后者可用于将参加现有会议的新呼叫者与INVITE中的匹配 Join标头相关联。当使用REFER消息将呼叫转移到第三方时,REFER 包含可用于与正在被转移的现有呼叫关联的标头Refer-to (以及子标头/选 项Replaces)。对于呈现,更新呈现服务器状态的PUBLISH消息可以产 生许多NOTIFY消息。PUBLISH和相应的NOTIFY可以通过正在4吏用的 事件包进行关联。创建了关联规则之后,使用这些规则关联给定SIP代理服务器处的入 站和出站消息。所关联的消息和相关变换用于诊断呼叫流。可以将给定端 对端呼叫分成一系列预期变换,并且使用关联机制在预期路径的每一跳上 安装规则,以验证是否真正发生预期变换并确定预期和观察的行为之间的 分叉点。在一个实施例中,为了跟踪SIP消息流和变换,在服务器机器的操作 系统(OS)内集成了称为SIP消息分类引擎或分类器的软件引擎。实际的 SIP软件(例如SIP代理)在此服务器上作为例如路由SIP消息的应用运 行。在os内放置分类引擎是由于效率和体系结构的需要,具体取决于特定情况。分类器是可编程的,并且因此可以通过使用一组适当的规则针对 不同的应用情况使用相同的软件。创建了一种有效的算法,此算法将一组 用户定义的规则作为输入并将这些规则变形为能够快速按照输入消息流匹 配规则的适当数据结构。规则指定了如何根据在分类器处从先前消息收集 的消息标头值组合(包括诸如集合成员身份以及对状态执行的操作之类的复杂功能)来确定特定消息子集,以及要对匹配分组执行的操作。这些操 作包括分析来自服务器的入站和出站消息流以及生成足迹。足迹包含选定 的消息元数据,后者包括区别标头-值对及其变换并由分类器转发到中M 视引擎。中央监视引擎整理来自跨网络的不同服务器或分类器的此信息,以推断呼叫路径上各个服务器中的SIP会话的状态以及聚合的呼叫状态。本发明涉及用于监视会话启动协议通信的方法,所述方法包括以下步骤确定由会话启动协议代理服务器产生的多个会话启动协议消息中的多 个变换;以及使用所确定的变换發汪包含所确定消息的会话启动协议通信 会话和所述会话启动协议代理服务器中的至少一个的正确操作。在用于监 视会话启动协议通信的方法的一个实施例中,将确定由通过其路由会话启 动协议消息的会活启动协议代理服务器产生的所述会话启动协议消息中的 至少一个变换。 -使用此确定的变换推断所述会话启动协议代理服务器对所 述会话启动协议消息执行的操作,并且使用此推断的操作验证包含所确定 消息的会话启动协议通信会话和所述会话启动协议代理服务器中的至少一 个的正确操作。在一个实施例中,将确定所述会话启动协议代理服务器处的所述M 启动协议消息的入站版本,并且还确定所述会话启动协议代理服务器处的 所述会话启动协议消息的出站版本。然后,可以确定所述会话启动协议消 息的所述入站版本与所述出站版本之间的差异。在一个实施例中,将确定 多个M启动协议通信中的每个通信的状态模型(例如,有限状态机)。 因此,使用所推断的操作还可以包括使用所推断的操作并结合所述包含 所确定消息的务活启动协议通信会话的状态模型,来推断所述包含所确定 消息的会话启动协议通信会话和所述会话启动协议代理服务器中的至少一 个的全局状态。在一个实施例中,用于监视会话启动协议通信的方法包括确定由M 启动协议代理服务器产生的多个会话启动协议消息中的多个变换。使用所 有这些确定的变换推断所述会话启动协议代理服务器对所述会话启动协议 消息中的每个消息执行的操作,并且使用所推断的操作發汪包含所确定消息的会话启动协议通信会话和所述会话启动协议代理服务器中的至少 一个 的正确操作。在一个实施例中,确定所述会话启动协议代理服务器处的所 述会话启动协议消息的入站版本和出站版本。将确定所述会话启动协议消 息的所述入站版本与所述出站版本之间的差异。在一个实施例中,将所述 入站版本与所述出站版本关联。在一个实施例中,将所述消息的入站版本与出站版本关联包括定义一 个或多个关联规则集。每个规则集包括多个关联规则。使用至少一个所述 关联规则集将每个入站会话启动协议消息与出站会话启动协议消息之一进 行匹配。可以根据会话启动协议消息的类型或会活启动协议通信会活的类 型来修改所述关联规则。在一个实施例中,每个关联规则包括要在评定所 述消息的入站和出站版本中使用的条件的合取以及要根据对所述消息的所 述入站和出站版本的评定而采取的操作。这些条件作用于与所述消息的所 述入站和出站版本关联的会话启动协议标头。在一个实施例中,所述M 启动协议标头包括预定义的会话启动协议标头、用户定义的伪标头、包括 其他标头的部分的派生标头以及它们的组合。本发明还涉及用于通过确定会话启动协议代理服务器处的多个会话启 动协议消息的入站版本和出站版本来监视会话启动协议通信的方法。将所 述入站版本和所述出站版本相关联,并且确定所述会话启动协议消息的所 关联的入站版本与出站版本之间的差异。使用所确定的差异推断所述M 启动协议代理服务器对每个所述会话启动协议消息执行的操作。使用所推 断的操作發汪包含所确定消息的会话启动协议通信会话和所述会话启动协 议代理服务器中的至少 一个的正确操作。在一个实施例中,将所述消息的入站版本与出站版本相关联包括定义 一个或多个关联规则集。每个规则集包括多个关联规则。在一个实施例中, 使用至少一个所述关联规则集将每个入站会话启动协议消息与出站会话启 动协议消息之一进4亍匹配。可以根据会话启动协议消息的类型或会活启动 协议通信会话的类型来修改所述关联规则。在一个实施例中,每个关联规 则包括要在评定所述消息的入站和出站版本中使用的条件的合取以及要根据对所述消息的所述入站和出站版本的评定而采取的操作。这些条件作用 于与所述会话启动协议消息的所述入站和出站版本关联的会话启动协议标头。


图1是根据本发明使用的M启动协议体系结构的实施例的示意性表示;图2是会话启动协议建立和介质路径的实施例的示意性表示; 图3是呼叫保持的实施例的示意性表示; 图4是呼叫保持的足迹模式和状态模型的实施例的示意性表示; 图5是根据本发明使用的监视体系结构的实施例的示意性表示;以及 图6是根据本发明由会话启动协议服务器监视会话启动协议消息的实 施例的示意性表示。
具体实施方式
首先参考图1,其中示出了在本发明的监视系统和方法中使用的SIP !^出设施100的示例性实施例。SIP基础设施包含多个用户代理(UA) 102 和多个SIP服务器104。 SIP服务器包括跨一个或多个网络112部署的注 册服务器106、位置服务器108和SIP代理服务器110。每个UA代表一个 控制会话建立和介质传输的SIP端点。J.Rosenberg等人所著的iVWoco/" ( RFC 3261, IETF, 2002年6月)中详细说明了 SIP协议。SIP消息是请求或响应。例如,INVITE是请求而"180 Ringing"或 "200 OK"是响应。每个SIP消息包含一组标头和值,它们通过类似于超 文本传输协议(HTTP)但多样性、用法和语义更为丰富的语法被指定为 字符串。例如,给定标头可以出现多次,以字符串列表作为其值以及具有 多个子标头(称为参数),每个子标头都具有关联的值。以下实例示出了 Alice向Bob发出邀请以开始对话INVITE sip:bob@M.03dcomVia: SIP/2.0/UDP pcB.atlante com;brawIi=z9hMax-Forwards: 70To: Bob々ip:bob薛b:itoxi.c咖〉From: Alice. <sip:alice@atlaata,com>;tag=1^2CalHD: a84Mc76e66710翻e33,atantaxomCSeq: 314159 INVTmContact: <dp:alioe@pc33Maittaxoni>Ccwrteiit-Type: a醇ication/sdpContent-Lengtk 142(未示出Alice的M描述)通过各SIP代理路由SIP消息以在UA之间建立会话。根据消息中包 括的目的地SIP URI,代理将所有请求(例如INVITE )路由到适当的目 的地UA。参考图2,其中示出了后跟使用丰富文扣格式(RTF) 200的介 质交换的会话建立的示例性实施例。通常,通过INVITE请求202、 OK响 应204以及对响应的ACK 206在两个用户代理102之间建立^"。通过交 换BYE 208和OK 210消息来关闭SIP通信会话。图2中示出的信令顺序可以存在大量变型,例如,在呼叫生存期间内 进行多次INVITE/OK/ACK交换,修改SIP通信会话(如在蜂窝环境中传 送呼叫或添加视频会话),将INVITE消息分支到多个目标,在请求路径 上回送或重定向。此外,会议呼叫是常见的,其中多个端点向公共控制服 务器(即会议服务器)发送信号。在SIP网络中的UA之间将发生三种不同类型的关联。第一种类型的 关联是SIP事务。SIP事务在客户机和服务器之间发生,并且包含从客户 机发送到服务器的第一请求直到从服务器发送到客户机的最后(非lxx) 响应的所有消息。第二种类型是多媒体会话,其是一组多媒体发送方和接 收方以及从发送方流向接收方的数据流。多媒体^4义是多媒体会话的一个 实例。第三种类型是对话,其是两个UA之间持续某段时间的对等SIP关 系。由SIP消息(例如,对INVITE请求的2xx响应)建立对话。通过呼 叫标识符、本地标记和远程标记来标识对话。对话也称为呼叫段(call leg)。根据本发明的方法确定在每个SIP代理服务器处发生的消息变换,以 确定SIP代理服务器为了监视SIP通信会话和SIP代理服务器的运行而采 取的操作。给定服务器将接收多个SIP消息。因此,每个SIP代理服务器 可以具有多个并存的入站版本和出站版本的SIP消息。为了确定SIP消息变换,需要将消息的入站版本与消息的出站版;M目关联。在一个实施例中,例如从储存库或数据库确定多个用户定义的关联规 则,或者由一个或多个用户输入所述规则。这些关联规则用于将每个SIP 代理服务器处的sip消息的入站版本与sip消息的出站版本进行关联或匹 配。每个用户定义的关联规则都可以表达为后跟操作的条件合取。条件作用于与SIP消息关联的标头。这些标头包括预定义的SIP标头、为方便而 定义的伪标头(例如messagejype),以及通过其他标头构建的派生标头。 在一个实施例中,标头From.tag代表From标头内的"tag"参数并且派 生自From标头。Dialog-ID派生标头包括Call-Id (SIP标头)、From.tag (派生自From SIP标头并代表From的tag字段)以及To.tag。根据本发 明的方法支持用户定义的数据类型,即包括基本数据类型(例如String或 Integer)的标量、指针和关联数组,或其他用户定义的数据类型。将维护 可作为规则操作的一部分更新的用户指定的状态。例如,在Struct Session ={Dialog Dialogl, String State}中,元素"State"存储对话的状态,状态 可以是"established" 、 "setup"或"shutdown"。条件评估可能具有副 作用。例如,如果当前SIP消息的Dialog-id是活动会活列表中的一个元素, 以下条件评估导致将指针存储到匹配元素,此匹配元素然后可以例如用于 作为规则操作的一部分而修改任何关联的数据结构。*CurrentSession=(Dialog-ID belongs-to %ActiveSessions) 多个已确定关联规则中的每一个规则都包括条件合取以及关联的操作 列表。这些操作还可以更改变量值。在一个实施例中,分类算法包括静态部分和运行时部分。静态部分包 括规则分析和创建数个允许运行时部分有效工作的表和位图。生成这些有 效结构的关键是消除了规则集中的大部分冗余,以便运行时阶段不需要重复提取标头或评估条件。运行时部分包括分析各个SIP消息,将这些已分 析的消息与关联规则进行比较,以及当SIP消息与规则匹配时执行一组操作。由于SIP事务的存在时间通常很短,因此SIP事务不适于实时运行监 视。但是,可以使用SIP事务模型和综合SIP事务完成对具有监视系统的 SIP网络的功能發汪。另一方面,SIP对话和会活的持续时间相当长。因此,为联机获取单个对话和会话信息以及聚合信息而对对话和M进行功 能监视和实时运行监视是相当可行的。根据本发明的系统和方法的示例性实施例利用SIP对话或SIP通信会 话的"模型,,。此模型捕获SIP对话的各种可能状态以及每种状态下预期 的足迹模式。状态对应于SIP对话的进度,从要发出的邀请开始,中间通 过不同代理进行路由,分支消息(如果需要),并且到达目的地。基于SIP的呼叫还可以被置于保持、转发或转移。可以由相应的状态机模型(例如,有限状态机)表示这些SIP对话。通过发送和接收SIP消息(其可简化为 足迹记录)来触发这些模型中的状态转变。通过使用连接到SIP代理的分 类器提取SIP消息的相关部分来获取足迹记录。例如,如果Call-Id对于 特定的SIP对话不变,则足迹记录可仅包含消息类型(例如Invite)、Call-Id, 以及发出或接收消息的SIP服务器的代理地址。由于分类器工作在OS层, 这使得能够实时生成足迹记录。对照与对话模型的不同状态关联的足迹模 式来匹配足迹记录。足迹模式可以被视为足迹记录的抽象表示,其中包含 具体标头值的占位符,这些占位符在匹配过程中被实例化。例如,对应于 正在传输邀请的状态的足迹模式"INVITE<Proxy><Call-id>",可以与足 迹记录"INVITE 9.123.44.78 ac34h56@p33.atlanta.com"(其中Call-id绑 定到ac34h56@p33.atlanta com, 并且Proxy-address设置为9.123.44.78 ) 进行匹配。当SIP邀请通过系统继续时,Call-id将保持不变,但是 Proxy-address将更改,并且这些绑定将允许我们通过网络多艮踪呼叫。参考图3,其中示出了呼叫保持300 SIP服务的消息图的示例性实施 例。图4中示出了代表服务400以及由分类器从不同SIP实体中的SIP消息生成的相应足迹(部分示出)的状态模型。SIP监视引擎(SME)可以 使用此模型实时跟踪置于保持状态的SIP对话。虽然消息图仅示出了一个 中间代理,但是通常可以存在有限数量的此类代理。这并不表示随着SIP 代理数量的增加状态也将激增,因为状态和足迹模式是抽象的,并且没有 绑定到某个特定的代理。更确切地说,状态和足迹才莫式随对话的进行动态 绑定到不同的代理。同样,可以为其他SIP服务创建状态机,并且可以分 层地构建这些状态机以对SIP对话中的不同可能性进行编码。参考图5,其中示出了本发明的SIP监视系统的体系结构500的示例 性实施例。所述体系结构包括SME502以及一个或多个SIP分类器504。 每个SIP分类器在逻辑上可以被视为监视SIP消息506的入站版本和SIP 消息508的出站版本两者,且在每一侧具有不同的规则集。 一种确定在经 过SIP代理时如何变换给定SIP消息的方法是布置一对规则, 一个规则布 置在SIP代理的入站侧消息流中,而另一个规则布置在出站侧消息流中。 通过关联匹配的消息,可以确定SIP代理对每个消息进行的特定变换,例 如,针对在出站版本上具有匹配Call-ID的消息重写目的地URI。在另一 个实例中,将标识加入正在进行的两方呼叫以将此呼叫转换为三方会汉呼 叫的新参与者。可以对分类器进行编程,以便在来自其值与任何进行中 Dialog-ID匹配的新参与方的INVITE消息上查找Join标头。SME接收以下输入由分类器生成的正在进行的SIP对话和会话的足 迹记录、SIP对话或会活的模型(就状态而言),以及相应的预期足迹模 式。给定这些输入后,对于每个正在进行的对话或会话实例,SME使用模 型匹配算法实时确定实例可能处于的状态。此外,还可以实时确定聚合级 别的信息,例如模型的任何给定状态下的实例数。此类统计信息有助于进 行有效的网络管理。SME中的监视算法需要确定对应于特定对话或会话的 足迹记录以监4见各个对话或会话。对于许多服务,可以使用消息标头中的Call-ID确定对应于单个对话 或^^舌的消息。但是,当SIP消息通过网络路由时,消息标头和标头值通 常会改变。目的地URI重写的常见用法是将诸如sip:bob@biloxi.com之类的URI实例化为sip:bob@bobs-host.biloxi.com,也就是将域内的用户解析 为域中的特定主机。将入站INVITE (具有目的地sip:bob@biloxi.com)与 出站INVITE (去往bob@bobs-host.biloxi.com)关联的能力可用于诊断用 途。重定向的另一个实例是通过重定向服务器l (PI)的302 MOVED响 应(具有Contact: sip:bob@blues.com )来响应用户(UAl)发向 sip:bob@biloxi,com的INVITE。此302消息在返回路径中可以使用 sip:bob@blues.com在代理(P2 )上触发新的INVITE,此INVITE最终被 路由到Bob的客户机(UA2 )。因此,在能够将INVITE与相应的302关 联的情况下,将允许实时监视系统以推断源自UAl的呼叫在到达UA2之 前经过P1和P2,并对消息进行上述修改,即,呼叫4皮转发到新的目的地 以及转发实体本身。在上述两个实例中,Call-ID标头值不变。对于非分支呼叫,Call-ID 以及From和To标头中的标记(子标头)值的组合保持不变。当呼叫分支 或呼叫重定向时,呼叫的每个已分支/已重定向段在To标头中具有不同的 标记值。入站INVITE的Call-ID标头值可以与出站Call-ID字段关联。但 是在许多其他实例中,Call-ID字段甚至不足以关联消息。例如,在诸如呼 叫转移或加入会议呼叫的服务中,需要使用不同的标头子集及其值来关联 消息。例如,当使用REFER消息将呼叫转移到第三方时,REFER包含可 用于与正在被转移的现有呼叫关联的标头Refer-to以及子标头/选项 Replaces.分类器的可编程性在此可以发挥作用。可以对分类器进行编程, 以便根据服务器(例如重定向服务器)的功能查找不同的标头子集。参考图6,其中示出了根据本发明由SIP代理服务器600监视SIP消 息的示例性实施例。第一用户代理602在Invite消息601中发送 <Call-id=l><Req-URI=bob@us>,此消息通过SIP代理服务器604进行路 由。这是在代理服务器处的消息的入站版本。第一SIP分类器608监视此 消息并将其传送到SME 606。 SIP代理604接收SIP的入站版本并生成 Invite消息的出站版本610,后者被转发到第二用户代理612。出站版本的 格 式 为 Invite<Proxy-addr=9.23.123.34><Call-id=l><Req-URI=bob@9.2.10>。第二 SIP 分类器614接收SIP消息的入站和出站版本并使用Call-id将它们关联,并 推断目的地URI正在被重写。第二 SIP分类器生成足迹,其中Call-id相 同但目的地URI不同,并且还包括代理地址。在第二用户代理612处接收 出站版本的邀请610 <Call-id=l>Rea-URI=bob(a)9.2.10 ,并且第三SIP分 类器616监视此接收的SIP消息。当发ilit请时,监视引擎606启动新的 呼叫实例,其标记值Call-id=l并且Req-URI=bob@us。当SME从第二 SIP分类器接收到与SIP消息的关^站和出站版^目关的通信时,SME 将此通信与从第一 SIP分类器608接收的邀请关联并更新Req-URI。此夕卜, SME为代理地址创建新的标记。如果存在更多的代理,则SME可以将较 新的代理地址存储为列表以便可以跟踪整个路径。在一个实施例中,在帮助台代理的上下文中部署本发明的会话启动协 议消息监视系统。帮助台代理获取网络中预期呼叫流的概况,并且随后为 示例服务情况导出呼叫状态模型。在呼叫路径中的SIP代理服务器处使用 适当的规则配置SIP分类器,以便实时监^f见呼叫并确认是否发生预期更改, 即实时追溯呼叫的路径。如果检测到异常,则可以更深层地实例化其他规 则。操作者可以创建激励,并且可以使用监视系统在系统的不同部分处检 测激励及其响应。除了此类网络功能测试之外,监视系统还生成聚合信息 (例如,处于特定状态的对话的数量或平均对话终止时间),以及个别信 息(例如在某个特定时刻,在正在进行的SIP对话和会话的呼叫路径上对 话处于哪种状态)。此信息在部署有效的网络管理工具(例如负栽平衡) 中非常有用。根据本发明的示例性实施例的方法和系统可以采取完全硬件实施例、 完全软件实施例或包含硬件和软件元素两者的实施例的形式。在一个优选 实施例中,本发明以软件实现,所述软件包括但不限于固件、驻留软件和 微代码。此外,示例性方法和系统可以采取可从计算机可用或计算机可读 介质访问的计算机程序产品的形式,所述计算机可用或计算机可读介质提 供了可以被计算机、逻辑处理单元或任何指令执行系统使用或与计算机、逻辑处理单元或任何指令执行系统结合的程序代码。出于此描述的目的, 计算机可用或计算机可读介质可以是任何能够包含、存储、传送、传播或 传输由指令执行系统、装置或设^f吏用或与所述指令执行系统、装置或设 备结合的程序的装置。适合的计算机可用或计算机可读介质包括但不限于 电、磁、光、电磁、红外线或半导体系统(或装置或设备)或传播介质。 计算机可读介质的实例包括半导体或固态存储器、磁带、可移动计算机盘、随机存取存储器(RAM)、只读存储器(R0M)、硬磁盘和光盘。光盘的当前实 例包括光盘-只读存储器(CD-ROM)、光盘-读/写(CR-R/W)和DVD。适合于存储和/或执行程序代码的数据处理系统包括但不限于至少一 个通过系统总线直接或间接连接到存储器元件的处理器。所述存储器元件 包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置以及 提供至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装 置检索代码的次数的高速緩沖存储器。输入/输出或1/0设备(包括但不限 于键盘、显示器和指点设备)可以直接或通过中间1/0控制器与系统相连。 根据本发明的方法和系统的示例性实施例还包括网络适配器,所述网络适 配器连接到系统以使所述数据处理系统能够通过中间专用或公共网络变得 与其他数据处理系统或远程打印机或存储设备相连。当前可用的适合网络 适配器类型包括但不限于调制解调器、电缆调制解调器、DSL调制解调器、 以太网卡以及它们的组合。在一个实施例中,本发明涉及包含机器可执行或计算机可执行代码的 机器可读或计算机可读介质(当机器或计算机读取所述代码时,将导致所 述机器或计算机执行根据本发明的示例性实施例的用于监视会话启动协议 通信流的方法),以及计算机可执行代码本身。所述机器可读或计算机可 读代码可以是能够由所述机器或计算机读取和执行,并且可以以本领域公 知和使用的任何适合语言或语法(包括机器语言、汇编语言、高级语言、 面向对象语言和脚本编制语言)表示的任何类型的代码或语言。所述计算 机可执行代码可以存储在任何适合的存储介质或数据库(包括部署在根据 本发明的系统所使用的计算机网络内并与其通信以及可由其访问的数据库)中,并且可以在本领域公知和使用的任何适合的硬件平台(包括用于 控制本发明的呈现的控制系统)上执行。虽然在此披露的本发明的示例性实施例实现了本发明的目的是显而易 见的,但要理解的是,本领域的技术人员可以构想大量修改并创建其他实 施例。此外,可以单独或与其他实施例(多个)结合使用任何实施例中的 一个或多个功能和/或元素,并且可以以任何适合的顺序执行根据本发明的 方法中的步骤或元素。因此,将理解的是,所附权利要求旨在涵盖在本发 明的精神和范围内的所有此类修改和实施例。
权利要求
1.一种用于监视会话启动协议通信的方法,所述方法包括确定由通过其路由会话启动协议消息的会话启动协议代理服务器产生的所述会话启动协议消息中的变换;使用所确定的变换推断所述会话启动协议代理服务器对所述会话启动协议消息执行的操作;以及使用所推断的操作验证包含所确定消息的会话启动协议通信会话和所述会话启动协议代理服务器中的至少一个的正确操作。
2. 如权利要求l中所述的方法,其中确定所述变换的步骤进一步包括 确定所述会话启动协议代理服务器处的所述会话启动协i义消息的入站版本;确定所述会活启动协议代理服务器处的所述会活启动协议消息的出站 版本;以及确定所述会话启动协议消息的所述入站版本与所述出站版本之间的差异。
3. 如权利要求l中所述的方法,其中所述方法还包括确定多个会话启动协议通信中的每个通信的状态模 型;以及使用所推断的操作的步骤进一步包括使用所推断的操作并结合所述 包含所确定消息的会话启动协议通信会话的状态模型,来推断所述包含所 确定消息的会话启动协议通信会话和所述会话启动协议代理服务器中的至 少一个的全局状态。
4. 一种用于监视会话启动协议通信的方法,所述方法包括确定由M启动协议代理服务器产生的多个会话启动协议消息中的多 个变换;使用所确定的变换推断所述会话启动协议代理服务器对所述会话启动 协议消息中的每个消息执行的操作;以及使用所推断的操作發汪包含所确定消息的会话启动协议通信会话和所 述会活启动协议代理服务器中的至少 一个的正确操作。
5. 如权利要求4中所述的方法,其中确定所述变换的步骤进一步包括: 确定所述会活启动协议代理服务器处的所述务活启动协议消息的入站版本;确定所述会活启动协i^代理服务器处的所述会话启动协议消息的出站 版本;以及异。 ,、,_ '、 …'、 一、,'、 日
6. 如权利要求4中所述的方法,其中确定所述变换的步骤进一步包括 确定所述务活启动协议代理服务器处的所述会话启动协议消息的入站版本;确定所述会活启动协+义代理服务器处的所述会活启动协议消息的出站 版本;以及将所述消息的入站版本与出站版本相关联。
7. 如权利要求6中所述的方法,其中所述将所述消息的入站版本与出 站版本相关联的步骤进一步包括定义一个或多个关联规则集,每个规则集 包括多个关联规则。
8. 如权利要求7中所述的方法,还包括使用至少一个所述关联规则集 将每个入站会话启动协i义消息与出站会话启动协i义消息之一进行匹配。
9. 如权利要求7中所述的方法,还包括根据会话启动协议消息的类型 或会话启动协议通信会话的类型来修改所述关联规则。
10. 如权利要求7中所述的方法,其中每个关联规则包括要在评定所 述消息的入站和出站版本中使用的条件的合取以及要根据对所述消息的所 述入站和出站版本的评定而采取的操作。
11. 如权利要求IO中所述的方法,其中所述条件作用于与所述消息的 所述入站和出站版本关联的M启动协议标头。
12. 如权利要求ll中所述的方法,其中所述会话启动协议标头包M定义的会话启动协议标头、用户定义的伪标头、包括其他标头的部分的派 生标头以及它们的组合。
13. —种用于监视会话启动协议通信的方法,所述方法包括确定会话启动协议代理服务器处的多个会话启动协议消息的入站版本;确定所述会活启动协议代理服务器处的所述会话启动协议消息的出站 版本;将所述消息的入站版本与出站版4^目关联;确定所述会话启动协议消息的所关联的入站版本与出站版本之间的差异;使用所确定的差异推断所述会话启动协议代理服务器对每个所述M 启动协议消息执行的操作;以及使用所推断的操作验证包含所确定消息的会话启动协议通信会话和所 述会话启动协议代理服务器中的至少 一个的正确操作。
14. 如权利要求13中所述的方法,其中所述将所述消息的入站版本与 出站版本相关联的步骤进一步包括定义一个或多个关联规则集,每个规则 集包括多个关联规则。
15. 如权利要求14中所述的方法,还包括使用至少一个所述关联规则 集将每个入站会话启动协议消息与出站会话启动协议消息之一进行匹配。
16. 如权利要求14中所述的方法,还包括根据会活启动协议消息的类 型或会话启动协议通信会话的类型来修改所述关联规则。
17. 如权利要求14中所述的方法,其中每个关联规则包括要在评定所 述消息的入站和出站版本中使用的条件的合取以及要根据对所述消息的所 述入站和出站版本的评定而釆取的操作。
18. 如权利要求17中所述的方法,其中所述条件作用于与所述会话启 动协议消息的所述入站和出站版本关联的会话启动协议标头。
19. 一种用于监视会话启动协议通信的方法,所述方法包括确定由会话启动协议代理服务器产生的多个会话启动协议消息中的多个变换;以及使用所确定的变换验证包含所确定消息的会话启动协议通信会话和所 述会话启动协议代理服务器中的至少 一个的正确操作。
全文摘要
本发明涉及一种通过跟踪消息变换监视SIP呼叫流的方法。提供了监视会话启动协议通信的系统和方法,而无需修改通过其路由构成给定通信的消息的会话启动协议代理服务器的操作代码。在多个代理服务器处确定会话启动协议消息的入站和出站版本。在每个代理服务器处,使用测试消息标头的条件的用户定义关联规则将各个入站和出站消息版本相关联。然后针对变换检查所关联的入站和出站消息版本,并且将这些变换用于确定适当代理服务器对此消息采取的操作。这些操作用于检查代理服务器和会话启动协议通信两者的正确操作。
文档编号H04L12/56GK101325605SQ20081010818
公开日2008年12月17日 申请日期2008年5月30日 优先权日2007年6月15日
发明者A·阿查里雅, B·森古普塔, N·班纳吉 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1