CN1655553A - 便于第三方呼叫和设备控制的系统和方法 - Google Patents

便于第三方呼叫和设备控制的系统和方法 Download PDF

Info

Publication number
CN1655553A
CN1655553A CNA2005100094955A CN200510009495A CN1655553A CN 1655553 A CN1655553 A CN 1655553A CN A2005100094955 A CNA2005100094955 A CN A2005100094955A CN 200510009495 A CN200510009495 A CN 200510009495A CN 1655553 A CN1655553 A CN 1655553A
Authority
CN
China
Prior art keywords
communication equipment
sip
physical representation
equipment
com
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.)
Granted
Application number
CNA2005100094955A
Other languages
English (en)
Other versions
CN100583882C (zh
Inventor
A·拉加弗
E·施特格曼
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 Corp
Original Assignee
Microsoft Corp
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 Corp filed Critical Microsoft Corp
Publication of CN1655553A publication Critical patent/CN1655553A/zh
Application granted granted Critical
Publication of CN100583882C publication Critical patent/CN100583882C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/58Arrangements for transferring received calls from one subscriber to another; Arrangements affording interim conversations between either the calling or the called party and a third party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols

Abstract

本发明包括一种用来便于使用具有SIP对等配置的第三方呼叫控制的系统和方法。更具体来说,本发明包括一种系统和方法,包括协议,用来:将通信设备模型化为其逻辑表示和物理表示;用唯一标识相关所述逻辑表示和物理表示;识别在网络上的所有通信设备;确定所识别的通信设备之间的关系;为每个物理表示建立设备控制信道;为每个逻辑表示建立呼叫控制信道;通过所述呼叫和设备控制信道控制所述逻辑表示和物理表示;通过所述呼叫和设备控制信道监视所述逻辑表示和物理表示的状态;和存储表示所述逻辑表示和物理表示状态的数据。

Description

便于第三方呼叫和设备控制的系统和方法
技术领域
本发明通常涉及第三方呼叫和设备控制的系统和方法,尤其是涉及使用会话发起协议(SIP)的第三方呼叫和设备控制系统和方法。
背景技术
第三方呼叫控制允许非端点实体发起和管理在其它实体间的呼叫。早期的电话网依赖于这样一个前提,即,所有的呼叫开始于用来提供进行呼叫所必需的信令和接口的端点。既使在更现代化的电话网络中,基础网络操作也需要呼叫由具有媒体和信令功能的端点来发起。因此,先前的公共交换电话网络(PSTN)不支持第三方呼叫控制。随着PSTN标准的发展,第三方呼叫控制机制被引入,但是只有很少的第三方呼叫控制方案被广泛实施。虽然所有呼叫开始于能够提供信令和合适接口的端点的前提对于普通原有电话业务(POTS)来说是足够的,但是该前提潜在地限制了增强业务和数据接口的发展。
随着软交换的引入,媒体和信令可以被有效地分离开来。软交换是一种用来连接传统PSTN到因特网协议上语音(VoIP)产品的应用程序接口(API)。软交换链接PSTN到IP网络,并管理多个信令层。
今天,多媒体网络基于因特网协议,从而允许媒体和信令分离,并允许应用程序从通信会话的信令和媒体方面分离出来。从而,第三方应用服务器可以有效管理在参与者之间呼叫的属性。除此之外,可以建立会话发起协议(SIP)来支持在IP网络中实时通信会话的建立。与会话描述协议(SDP)一起,会话发起协议(SIP)可以有效分离在通信会话内的媒体和信令的传送。
虽然SIP提供了实施第三方呼叫控制的机制,并且已经引入多种能够进行第三方呼叫控制的方法,但是每一种方法都有明显的缺点。最普通的方法是开发非常类似于当前计算机电话集成(CTI)模型的SIP第三方呼叫控制。在该方法中,背对背用户代理控制并桥接多个呼叫支线到其它用户代理。不幸地是,由于每个用户代理在与背对背用户代理进行会话中,只能看到自己,而看不到其它端点,所以SIP的端到端想法因此而崩溃。第三方控制器必须明确地知道有效使用该方法的背对背用户代理。
在另一种SIP方法中,第三方呼叫控制使用对等配置进行模型化。该SIP方法消除了对于背对背用户代理的需要,但是增加了端点必须处理的SIP原语类型的复杂性。虽然这样一个方法是希望的,然而已知在过去并没有得以成功实施。
因此,在工业中存在对这样一种系统和方法的需求,即,通过使用具有SIP对等配置的第三方呼叫控制来控制和监视通信设备的系统和方法。
因此,在工业中存在对于控制和监视通信设备的系统和方法的需求,所述设备提供第三方呼叫控制并克服了使用具有SIP的对等配置实施第三方呼叫控制所涉及的复杂性。
发明内容
宽泛地描述,本发明包括便于使用具有SIP对等配置进行第三方呼叫控制的系统和方法。更具体来说,本发明包括系统和方法,包括协议,用来:模型化通信设备作为其逻辑表示和物理表示;用唯一标识相关所述逻辑表示和物理表示;识别在网络上的所有通信设备;确定所识别的通信设备之间的关系;为每个物理表示建立设备控制信道;为每个逻辑表示建立呼叫控制信道;通过所述呼叫和设备控制信道控制所述逻辑表示和物理表示;通过所述呼叫和设备控制信道监视所述逻辑表示和物理表示的状态;和存储表示所述逻辑表示和物理表示状态的数据。
有利地,本发明提供了一种使用具有SIP的对等配置的第三方呼叫控制方法。通过使用SIP消息解决在通信设备间实施端到端通信所涉及的复杂性,本发明基本上消除了控制器单元必须知道便于在所有通信设备端点间进行通信的背对背用户代理的必要。通过引入和使用具有可扩展标记语言(XML)和简单对象接入控制(SOAP)代码的SIP消息,本发明可以有效地管理实施对等第三方呼叫控制所涉及的复杂情况。根据本发明的方法,通信设备被模型化为分离的逻辑和物理表示。所述逻辑表示关于线路/呼叫服务,而所述物理表示关于接入到通信设备的物理属性。分离的通信信道在通信设备的控制器单元及逻辑表示(即,呼叫控制信道)和控制器单元及物理表示(即,设备控制信道)之间是开放的。分离的通信信道在通信设备的监视单元及逻辑表示(即,呼叫控制信道)和监视单元及物理表示(即,设备控制信道)之间也是开放的。通过控制和监视分离通信信道,本发明可以有效控制并监视通信设备的逻辑和物理表示。
在结合附图阅读和理解本发明的基础上,本发明的其它特征和优点将变得明显。
附图简述
图1显示了根据本发明典型实施例及其环境中的第三方呼叫控制系统的框图表示。
图2显示了图1的第三方呼叫控制系统可以根据本发明典型实施例使用的计算环境及其计算机系统的框图表示。
图3显示了根据本发明典型实施例用来控制和监视通信设备的第三方呼叫控制系统的框图表示。
图4A-4B显示了根据本发明典型实施例控制和监视通信设备的方法的流程表示。
图5A-5B显示了根据本发明典型实施例用唯一标识相关通信设备的逻辑表示和通信设备的物理表示的方法的流程表示。
图6A-6B显示了根据本发明实施例用通信设备的物理表示建立设备控制信道的方法流程表示。
图7A-7B显示根据本发明实施例使用通信设备的逻辑表示建立呼叫控制信道的方法流程表示。
具体实施方式
现在参考附图,其中相同的数字在所有附图中表示相同元件或步骤,图1显示了根据本发明典型实施例的第三方呼叫控制系统300的环境100的框图表示。环境100包括多个客户端系统106,这些系统包括类似于下面参考图2更充分描述的已知计算系统、环境和/或配置中发现的硬件和软件元件。每个客户端系统106包括置于其上面的第三方控制系统300。典型地,多个客户端系统106a、106b置于域名系统(DNS)名字空间的网络子层103内。本领域熟练技术人员将会认识到,网络子层103典型地包括适合于通信连接一组两个或多个客户系统106的基础结构和设施(包括,多个能够相互进行通信的计算机系统,但不局限于此)。这种子层网络103和客户端系统106可以多种拓扑结构来配置,包括星型、总线型、或令牌环型配置,但不局限于此。而且,网络子层103和客户端系统106可以宽泛地被分类为属于特定的体系结构,包括对等或客户/服务器体系结构,但不局限于此。网络子层103可以附加地根据客户系统106的地理位置及其类型进行分级。例如,通信地连接多个相互靠近地安置于例如一个建筑物内的计算机系统或服务器的网络子层103通常被称作局域网(LAN);如果这些计算机系统被远离的安置,那么该网络子层103通常被称作广域网(WAN),例如,因特网;如果这些计算机系统被安置于有限的地理区域内,例如,大学校园或军事设施内,那么该网络子层103典型地被称作校园网(CAN);如果这些计算机系统在城市或乡镇内被相互连接在一起,那么该网络子层103通常被称作城域网(MAN);和,如果这些计算机系统在用户家里相互连接在一起,那么该网络子层103通常被称作家庭局域网(HAN)。
每个客户系统106通信地连接到代理服务器109(即,在工业中有时也称作“归属服务器109”)。本领域熟练技术人员将会认识到,代理服务器109通常置于客户端系统106和另一个服务器之间。当客户端系统106(即,通过操作计算机应用程序、程序或程序模块)向目的服务器发出请求时,代理服务器109尝试满足其自身的请求。如果代理服务器109不能满足来自客户端系统106的请求,那么代理服务器109就将该请求转发到目的服务器。代理服务器109的主要目的是通过减少发送到目的服务器的请求数量来提高在用户和客户端系统组内的性能。代理服务器109可以类似于下面参考图2描述的计算机系统210进行配置。
代理服务器109通信地连接到电话归属服务器112。代理服务器109b还通信地连接到会话发起协议(SIP)电话128(即,在此通常也称作“通信设备128”)。电话归属服务器112能够在客户端系统106a、106b和任何相关的电话设备之间进行通信。电话归属服务器112可以类似于下面参考图2描述的计算机系统来进行配置,并且,通常包括能够与电话设备进行通信的应用程序,程序、或程序模块。
典型地,电话归属服务器112间接或直接地通过PBX121通信地连接到时分复用(TDM)电话118(即,在此通常称作“通信设备118”)。本领域熟练技术人员将认识到,PBX121是通常用于组织内部以便在其内部的TDM电话118之间共享有限数量外线的专用电话网络。PBX121通过接受呼入呼叫并将呼叫路由到例如TDM电话118的合适设备来担当呼叫中心。传统上,PBX121被配置作为计算机电话集成(CDI)系统(即,PBX121b),但是也可以配置为能够使用SIP的PBX121a。在本发明的一个典型实施例中,电话归属服务器112通信地连接到SIP前端(FE)单元125,该单元适用于将CTI数据和/或消息转换或翻译成SIP数据和/或消息,并将SIP数据和/或消息转换或翻译成CTI数据和/或消息。SIP FE单元125连接到不能够使用SIP进行通信的PBX121b。置于网络子层103中的每个PBX121a、121b可以通过公共交换电话网络(PSTN)132通信地连接到网络子层103外部的其它设备,例如,TDM电话118c、PBX(没有示出)、或客户系统106c,但不局限于此。
每个客户端系统106的第三方呼叫控制系统300配备由用户接口315和合适的软件(参考图3更详细描述)以便于与相关的通信设备118、128进行通信。优选地,每个客户端系统106和每个通信设备118、128具有唯一标识,以便消息和数据可以被指向合适的位置。作为示例性的目的,客户端系统“A”106a和客户端系统“B”106b置于DNS名字空间的“phones.example.com”子层中。从而,客户端系统“A”106a由统一资源识别符(URI) userA@example.com进行识别,而客户端系统“B”106b由URI userB@example.com进行识别。TDM电话“A”118a与客户端系统“A”106a相关,并由扩展号码“1111”和URI1111@PBXA.phones.example.com进行识别。类似地,TDM电话“B”118b与客户端系统“B”106b相关,并由扩展号码“2222”和URI2222@PBXB.phones.example.com进行识别。SIP电话128也与与客户端系统“B”106b相关,并由URI userB-phone@phones.example.com进行识别。TDM电话“C”118c与客户端系统“C”106c相关,并由号码“555-1212”进行识别,这是因为它不在“phones.examples.com”的网络子层103内。
电话归属服务器112优选地包括实时协作(RTC)服务器,其充当到所有PBX121组的前端,从而允许从网络的其它部分抽象出PBX的拓扑。在电话归属服务器112的一侧,SIP域可以使用不同于在电话归属服务器112另一侧上的电话域安全机制。在这种SIP安全机制中,第三方呼叫控制用户被以与验证即时消息用户相同的方式进行验证(即,通过使用用户名和密码)。此外,电话或线路的验证规则可以被绑定到电话或线路的“主人”,并可以置于与“主人”的其它验证数据相同的位置。例如,这是通过将线路和电话绑定到用户,并需要用户的代理服务器109负责验证接入到电话或线路来完成的。
优选地,客户端系统“A”106a包括监视和控制TDM电话“A”118a的功能,和客户端系统“B”106b包括监视和控制TDM电话“B”118b和SIP电话128的功能。为了呼叫客户端系统“C”106c的用户,客户端系统“A”106a用户通过用户接口315(见图3)使用第三方呼叫控制软件来拨号到,例如,“555-1212”。客户端系统“A”106a提供了到代理服务器“A”109a的SIP消息,反过来,代理服务器也将SIP消息提供给电话归属服务器112。SIP消息包含与TDM电话“A”118a相关的唯一标识(即,1111@PBXA.phones.example.com),以及与客户端系统“A”106a相关的唯一标识(即, userA@example.com)。唯一标识信息保证了SIP消息被发送到网络内的正确位置。基于在SIP消息内的标识信息,电话归属服务器112提供该SIP消息到能够使用SIP的PBX“A”121a。能够使用SIP的PBX“A”121a解释该SIP消息,发送TDM电话“A”118a一个控制命令来呼叫号码“555-1212”,并通过电话归属服务器112发回一个新SIP消息到客户端系统“A”106a。TDM电话“A”118a接收该控制命令并拨打号码“555-1212”。客户端系统“A”106a也通过状态查询SIP消息监视TDM电话“A”118a。当TDM电话“A”118a打开一条线路并拨打号码“555-1212”时,客户端系统“A”106a接收具有识别由TDM电话“A”118a进行的动作的状态数据的SIP消息。客户端系统“A”106a存储该状态数据,该数据可以被用户接口315使用来用TDM电话“A”118a的状态更新用户(即,TDM电话“A”具有一条开放的线路,并且正在拨打“555-1212”)。
客户端系统“B”106b用户可以使用TDM电话“B”118b或SIP电话128呼叫TDM电话“C”118c。如果客户端系统“B”106b用户想用TDM电话“B”118b呼叫TDM电话“C”118c,那么该过程除了下面的描述之外,基本上与上面描述的客户端系统“A”106a相同。由于PBX“B”121b不是能够使用SIP的PBX121a,所以PBX“B”121b只能操作CTI数据。从而,电话归属服务器112将来自客户端系统“B”106b的SIP消息提供给SIP FE单元125。SIP FE单元125解释该SIP消息,将该SIP消息转换成CTI数据,该数据指示TDM电话“B”121b呼叫“555-1212”,并将该CTI数据提供给PBX“B”121b。PBX“B”121b发送控制命令到TDM电话“B”118b来指示它拨打“555-1212”并将CTI响应提供给SIP FE单元125。SIP FE单元125解释该CTI响应,将该响应转换成SIP响应,并将SIP响应经过电话归属服务器112提供给客户端系统“B”106b。然而,如果客户端系统“B”106b的用户希望使用SIP电话128呼叫TDM电话“C”118c,那么客户端系统“B”106b就提供SIP消息到代理服务器“B”109b,该服务器反过来将SIP消息提供给SIP电话128。在一个可选实施例中,代理服务器“B”109b提供该SIP消息到电话归属服务器112,该服务器接着将该SIP消息提供给SIP电话128。由于SIP电话128可以接收并基于SIP消息进行工作,所以无需中间转换。在该可选实施例中,SIP电话128开通一条线路,呼叫号码“555-1212”,并将一个新的SIP消息通过电话归属服务器112或代理服务器“B”109b提供给客户端系统“B”106b。
从客户端系统“C”106c经过TDM电话“C”118c到TDM电话“B”118b的呼叫,例如,能够使TDM电话“B”118b振铃,并且客户端系统“B”106b通过监视活动来检测该振铃。换句话说,客户端系统“B”106b接收具有识别TDM电话“B”118b正在振铃的状态数据的SIP消息。该状态数据被客户系统“B”106b存储并被用来通过用户接口315通知用户,TDM电话“B”正在振铃。
本领域熟练技术人员将认识到,通信连接包括或需要任何合适类型的双向信号和/或媒体通信的连接,包括模拟、数字、有线和无线通信信道,但不局限于此。这些通信信道可以使用铜线、光纤、无线射频、红外、卫星、或其它设备和媒体,但不局限于此。此外,本领域熟练技术人员将认识到,第三方呼叫控制系统300可以与其它环境100连接使用,因此,本发明可以在不同的环境100中进行实施,并不应该局限于上面所述的典型实施例100。因此,合适的环境100可以包括多个客户系统106、代理服务器109、电话归属服务器112、通信设备118、128和PBX121,因而,不局限于在图1中所示的客户端系统106、代理服务器109、电话归属服务器112、通信设备118、128和PBX121的数量。而且,本发明不仅仅局限于诸如TDM电话118或SIP电话128的电话通信设备118、128。通信设备118、128包括任何可以与另一个诸如移动电话、膝上型计算机、台式计算机、个人数字助理(PDA)、即时消息应用程序、电子邮件应用程序等设备或计算机软件程序进行通信的设备或计算机软件程序。
图2显示了根据本发明典型实施例图1的第三方呼叫控制系统可以使用的计算环境200及其计算机系统210、280的框图表示。计算环境200及其计算机系统210、280仅仅表示了实施本发明的合适计算环境和计算机系统的一个例子,目的不在于暗示对本发明使用和功能范围的任何限制。计算机系统210、280也不应该解释为具有与典型计算环境200中所展示的任何一个元件或元件的组合的依赖或需求。
因此,应该明白,本发明可以使用多种其它通用或专用计算系统环境或配置进行工作。已知可以适合于用作本发明的客户端系统106的计算系统、环境和/或配置的例子包括个人计算机、服务器计算机、手持或膝上型设备、微处理器系统、基于微处理器的系统、机顶盒、可编程家电、网络PC、迷你计算机、巨型计算机、包括任何上述系统或设备的分布式计算环境,等等,但不局限于此。
本发明还可以描述为包括计算机可执行指令的一般情况,例如由计算机系统执行的程序模块。通常,程序模块包括线程、程序、编程、对象、组件、数据、数据指令,它们用来执行特定的任务并实现特定的抽象数据类型。本发明在分布式计算环境中进行实施,在这种环境中,任务被通过通信网络连接的远程处理设备所执行。在分布式计算环境中,程序模块可以置于本地或远程计算机存储介质中,包括在内存存储设备中,但不局限于此。
典型客户端系统106、电话归属服务器112、和代理服务器109可以包括计算机系统210形式的通用计算设备,如图2所示。计算机系统210的部件可以包括处理单元220、系统存储器230、和系统总线221,但不局限于此,所述系统总线将包括系统内存230的各种系统部件连接到处理单元220来进行双向数据和/或指令传输。系统总线221可以是多种类型总线结构的任何一种,包括内存总线或内存控制器、外设总线、和使用任何种类的总线体系结构的本地总线。作为例子,但不是限制,这些体系结构包括工业标准体系(ISA)总线、微通道体系(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)本地总线、和外设部件互连(PCI)总线(即,也称作“背板(Mezzanine)总线”)。
计算机系统210典型地包括多种计算机可读介质。计算机可读介质包括任何可以被计算机系统210访问,读取或写入的可用介质,并包括易失或非易失、可移动和不可移动介质。作为例子,但不是限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括易失和非易失、可移动和不可移动介质,这些介质以存储诸如计算机可读指令、数据、数据结构、程序模块、程序、编程或线程的信息的任何方法和技术来实现。计算机存储介质包括RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字多样盘(DVD)或其它光盘存储器、磁盒、磁带、磁光存储设备、磁盘存储器或其它磁存储设备、或任何其它可以用来存储所需信息并可以被计算机系统210访问的介质,但不局限于此。通信介质典型地以诸如载波或其它传输机制的调制数据信号来包含计算机可读指令、数据、数据结构、程序模块、程序、编程或线程。术语“调制数据信号”表示具有一个或多个字符的信号,所述字符在该信号中被以编码信息的方式设置或改变。作为例子,但不是限制,通信介质包括诸如有限网络和直接线连接的有线介质,和如声音、RF、红外和其它无线介质的无线介质。上面的任何组合也可以包括在计算机可读介质的范围内。
系统存储器230包括以易失和/或非易失存储器形式存在的计算机存储器介质,例如,只读存储器(ROM)231和随机访问存储器(RAM)232。包含指导在计算机210内单元之间信息传送(例如,在启动期间)的基本例程的基本输入/输出系统233(BIOS)典型地存储在ROM231中。RAM232典型地存储可以被处理单元220立即访问和/或处理单元当前正工作于的数据和/或程序指令。作为例子,不是限制,图2显示了整体或部分时而不时地驻留在RAM232内的操作系统234、应用程序235、其它程序模块236,和程序数据237。
计算机210还可以包括其它可移动/不可移动、易失/非易失性计算机存储介质。仅作为例子,图2显示了读取或写入不可移动、非易失磁介质的硬盘驱动器241,读取或写入例如CD ROM或其它光介质等可移动、非易失光盘的光盘驱动器255。包括在典型计算环境200中的其它可移动/不可移动、易失/非易失计算机存储介质包括磁带盒、闪存卡、数字多样盘、数字视频带、固态RAM、固态ROM等,但不局限于此。硬盘驱动器241典型地通过非可移动存储接口,例如接口240连接到系统总线221,而磁盘驱动器251和光盘驱动器255典型地通过可移动存储接口,例如接口250连接到系统总线221。
上面所讨论并显示于图2中的驱动器241、251、255及其相关计算机存储介质提供了计算机系统244的计算机可读指令、数据、数据指令、程序模块、程序、编程、或例程的存储器。在图2中,例如,硬盘驱动器241显示用来存储操作系统244、应用程序245、其它程序模块246,和程序数据247。注意,这些元件可以与操作系统234、应用程序235、其它程序模块236和程序数据237相同,也可以不同。给出不同数量的操作系统244、应用程序245,其它程序模块246和程序数据来显示至少它们是操作系统234、应用程序235、其它程序模块236和程序数据237的不同备份。用户可以通过连接的输入设备输入命令和信息到计算机系统210,例如键盘262和通常称之为鼠标、滚动球或触摸垫的指示设备261。其它连接的输入设备(没有示出)可以包括麦克风、游戏杆、游戏垫、卫星盘、扫描器、等等。这些和其它输入设备通常被通过连接到系统总线221的用户输入接口260连接到处理单元220,但也可通过其它接口和总线结构连接,例如,并行口、游戏端口或通用串行总线(USB)。监视器201或其它类型的显示设备也经过接口连接到系统总线221,例如,视频接口290。除了监视器291之外,计算机系统210还包括诸如喇叭297和打印机296的其它外围输出设备,它们通过输出外设接口295来连接。
计算机系统210可以工作于使用到一个或多个远程计算机系统的双向通信连接链路的组网环境中,例如远程计算机系统280。该远程计算机系统280可以是个人计算机、膝上型计算机、服务器计算机、路由器或上面相对于计算机系统210描述的所有部件,虽然在图2中仅显示了远程计算机系统280的内存存储设备281。图2所描述的双向通信连接链路包括局域网(LAN)271和广域网(WAN)273,但是也可以包括其它网络。例如这种网络是普及的在办公室、企业范围内的计算机网络、企业内部网络和因特网。
当通信地连接到LAN271时,计算机系统210通过网络接口或适配器270连接到LAN271。当通信地连接到WAN273时,计算机系统210典型地包括用来在例如因特网的WAN273上建立通信链路的调制解调器272或其它装置。调制解调器272可以是内置的,也可以是外置的,并通过用户输入接口260或其它合适的机制连接到系统总线221。在组网环境中,相对于计算机系统210描述的程序模块或其部分可以被存储在远程内存存储器设备281中。作为例子,并不是限制,图2显示了驻留于内存存储设备281中的远程应用程序285。应该理解,所示的网络连接是示例性的,并且可以使用其它在计算机之间建立双向通信链路的装置。
图3显示了用来根据本发明典型实施例控制和监视通信设备118、128的本发明第三方呼叫控制系统300的框图表示。除了上面参考图2描述的硬件和软件元件之外,每个客户端系统106进一步包括第三方呼叫控制应用程序303和实体复制品存储单元318。
实体复制品存储单元318是能够存储和检索数据的存储设备,包括,但不限制于随机访问存储器(RAM)、闪存、磁存储设备、光存储设备、硬盘驱动器、可移动易失或非易失存储设备、光存储介质、磁存储介质、或RAM内存卡。可选地,实体复制品存储单元318可以包括可通过有线和/或无线网络系统接入的远程存储设备。此外,实体复制品存储单元318可以包括内存系统,在该系统中包括了主和辅存储设备的多阶系统,如上所述。主存储设备和辅存储设备可以作为其它的高速缓存,或第二存储设备可以作为主存储设备的备份。在另一个配置中,实体复制品存储单元318包括配置作为简单数据库文件或使用例如SQL查询语言可搜索的关系数据库的存储设备。
第三方呼叫控制程序应用程序303向客户端系统106提供了控制和监视通信设备118、128的功能。第三方呼叫控制程序应用程序303包括用户接口315和呼叫控制API306,其包括监视单元309和控制器单元312。用户接口315通信地连接到呼叫控制API306,从而,通信地连接到监视单元309和控制器单元312。
监视单元309和控制器单元312包括在呼叫控制API306内的计算机软件程序模块。控制器单元312通信地连接到通信设备118、128的物理表示321和通信设备118、128的逻辑表示324。监视单元309通信地连接到通信设备118、128的物理表示321、通信设备118、128的逻辑表示324,和实体复制品存储单元318。
在操作时,客户端系统106的用户通过第三方控制程序303控制和监视通信设备118、128。在本发明的典型实施例中,通信设备118、128被模型化为两种表示。更具体来说,通信设备118、128可以被模型化为物理表示321和逻辑表示324。对于电话设备,物理表示321包括电话设备的物理属性,从而向用户提供对那些物理属性的交互操作和控制。逻辑表示324向用户提供了通信设备118、128的呼叫和/或线路服务。物理表示321和逻辑表示324一起来提供电话功能,例如,但不是限制,拨打、挂机、应答、传送呼叫、摘机、转发呼叫、中止呼叫、恢复呼叫或消息,向会议添加呼叫者、从会议中移除通讯设备、从会议中移除另一个呼叫者、打开或关闭扬声器电话、产生双音多频DTMF,和收集数字。
用户接口315向客户端系统106a用户提供了表示当前正被监视的通信设备118、128状态的数据显示。此外,用户接口315便于客户端系统106用户控制通信设备118、128。本领域熟练技术人员将认识到,用户接口315可以多种配置来实现,并典型的通过计算机监视器291显示给用户。用户接口315通常经过输入设备从用户接收输入,例如,键盘262和/或鼠标261,但不限制于此。
在从用户接收到输入之后,用户接口315向呼叫控制API306发出控制请求。控制请求被指向呼叫控制API306的控制单元312。依赖于该用户请求是与设备属性相关(即,与物理表示321相关)还是与呼叫属性相关(即,与逻辑表示324相关),控制器单元312发送合适的SIP消息到通信设备118、128。如果用户请求与呼叫属性相关,那么控制器单元312就发送合适的SIP消息到通信设备118、128及其物理表示321。从而,通信设备118、128完成在所接收的SIP消息中所描述的用户请求。通信设备118、128可以提供一个SIP响应给发起SIP消息。如上参考图1所述,如果通信设备118、128是SIP电话128,那么SIP电话128可以产生合适的SIP响应到发起SIP消息。如果通信设备118、128是与能够进行SIP的PBX121a相关的TDM电话118,那么能够进行SIP的PBX121a产生到发起SIP消息的SIP响应。如果通信设备118、128是与典型PBX121b相关的TDM电话118,那么SIP FE125将来自PBX121b的CTI响应转换成到发起SIP消息的SIP响应。来自通信设备118、128的SIP响应被提供给控制器单元312并接着提供给用户接口315。
监视单元309持续产生SIP通知消息并将它们提供给通信设备118、124的物理表示321和逻辑表示324。监视单元309使用对于SIP通知消息的响应来产生表示通信设备118、128的当前状态的数据。所产生的数据被监视单元309提供给用来存储在其中的实体复制品存储单元318。在本发明的典型实施例中,存储在实体复制品存储单元318中的数据表示正在被监视的通信设备118、128的准确的当前状态。存储在实体复制品存储单元315中的数据被通过监视单元309提供给用户接口315来向用户显示通信设备118的当前状态。对通信设备118、128的监视和控制是独立的功能,因此,监视单元309并不直接与控制器单元312进行通信来获得表示通信设备118、128当前状态的数据。
在本发明的典型实施例中,呼叫控制(即,控制或监视通信设备118、128的逻辑表示324)和设备控制(即,控制或监视通信设备118、128的物理表示321)是通过使用可扩展标记语音(XML)代码将传统SIP消息和本发明的SIP消息扩展连接起来实现的。会话发起协议(SIP)、应用层控制/信令协议是本领域熟练技术人员熟知的标准协议。简单来说,SIP支持在通信设备118、128和客户端系统106之间的通信。SIP支持开始、修改、中止通信会话的标准。每个通信会话是通过在通信设备118、128和客户端系统106之间的SIP关系来表示的,并通过在这些通信设备118、128与客户端系统106之间的SIP对话来管理。SIP与其它公共协议结合进行工作,例如,实时传输协议(RTP)、实时流协议(RTSP)、媒体网关控制协议(MEGACO)、和会话描述协议(SDP),但不局限于此。与其它公共协议一起,SIP能够使客户端系统106识别并连接到通信设备118、128,从而建立通信会话。SIP提供了实施多种业务所必需的原语,SIP并不提供程序模块,例如与在此所描述的呼叫控制API306相关的程序模块,也不提供在此所描述的方法或协议。
例如,非限制性地,表1-8提供了与在此所描述的本发明的功能相关的典型SIP消息呼叫流。第三方呼叫控制的启动开始于向通信设备118、128开通两个不同的控制信道。一个控制信道是通信设备118、128的物理表示321,并被称作设备控制信道327。另一控制信道是通信设备118、128的逻辑表示324,并被称作呼叫控制信道330。在SIP条件下,信道327、330包括在客户端系统106和通信设备118、128之间的对话。
表1和2提供了初始化到通信设备118、128的物理表示321的设备控制信道327的SIP呼叫流。更具体来说,表1显示了由SIP提供的查询能力和设备控制信道327的建立,表2显示了预订与设备控制信道327相关的设备状态的客户端系统106。
                         表1
OPTIONS sip:userB-phone@phones.example.com SIP/2.0
Via:SIP/2.0/TCP userB-pc.example.com;branch=z9hG4bKADx
Max-Forwards:70
From:User B<userB@example.com>;tag=adx
To:1111@phones.example.com
Call-ID:dx@userB-pc.example.com
CSeq:1 OPTIONS
Contact:<sip:userB@userB-pc.example.com>
Accept:application/sdp
Content-Type:??
SIP/2.0 200 OK
Via:SIP/2.0/TCP userB-pc.example.com;branch=z9hG4bKADx
To:sip:1111@phones.example.com;tag=pdx
From:User B<sip:userB@example.com>;tag=adx
Call-ID:dx@userB-pc.example.com
CSeq:1 OPTIONS
Contact:<sip:1111@phones.example.com>
Allow:INVITE,ACK,CANCEL,OPTIONS,BYE,SERVICE
Allow-Events:dialog,phone-device
Accept:application/sdp
Accept-Encoding:gzip
Accept-Language:en
Supported:Replaces,Referred-By
Content-Type:application/sdp
Content-Length:??
INVITE sip:1111@phones.example.com SIP/2.0
Via:SIP/2.0/TCP userB-pc.example.com;branch=z9hG4bKAD1
Max-Forwards:70
To:1111@phones.example.com
From:User B<userB@example.com>;tag=ad1
Call-ID:ad1@userB-pc.example.com
CSeq:1 INVITE
Contact:<sip:userB@userB-pc.example.com>
Accept:application/sdp
Content-Type:??
SIP/2.0 200 OK
Via:SIP/2.0/TCP userB-pc.example.com;branch=z9hG4bKAD1
From:User B<userB@example.com>;tag=ad1
To:<sip:1111@phones.example.com>;tag=pd1
Call-ID:ad1@userB-pc.example.com
CSeq:1 INVITE
Contact:pbxB.phones.example.com
ACK sip:1111@phones.example.com SIP/2.0
Via:SIP/2.0/TCP userB-pc.example.com;branch=z9hG4bKAD1
Max-Forwards:70
To:1111@phones.example.com
From:User B<userB@example.com>;tag=ad1
Call-ID:ad1@userB-pc.example.com;tag=pd1
CSeq:1 ACK
Contact:<sip:userB@userB-pc.example.com>
                        表2
SUBSCRIBE sip:1111@phones.example.com SIP/2.0
Via:SIP/2.0/TCP userB-pc.example.com;branch=z9hG4bKAD1
From:User B<userB@example.com>;tag=ad1
To:sip:1111@phones.example.com;tag=pd1
Call-ID:ad1@userB-pc.example.com
CSeq:1 SUBSCRIBE
Contact:<sip:userB@userB-pc.example.com>
Event:phone-device
Expires:??
Accept:application/phone-info+xml
SIP/2.0 200 OK
Via:SIP/2.0/TCP userB-pc.example.com;branch=z9hG4bKAD1
From:User B<userB@example.com>;tag=ad1
To:<sip:1111@phones.example.com>;tag=pd1
Call-ID:ad1@userB-pc.example.com
CSeq:1 SUBSCRIBE
Expires:??
Contact:??
NOTIFY sip:userB@userB-pc.example.com SIP/2.0
Via:SIP/2.0/TCP phones.example.com;branch=z9hG4bKPD1
From:<sip:1111@phones.example.com>;tag=pd1
To:User B<sip:userB@example.com>;tag=ad1
Call-ID:ad1@userB-pc.example.com
CSeq:1 NOTIFY
Event:phone-device
Subscription-State:??;expires=??
Contact:??
Contact-Type:application/phone-info+xml
**Device State XML Doc not shown**
SIP/2.0 200 OK
From:User B<userB@example.com>;tag=ad1
To:<sip:1111@phones.example.com>;tag=pd1
Call-ID:ad1@userB-pc.example.com
CSeq:100 NOTIFY
Contact:??
表3和4提供了使用通信设备118、128的逻辑表示324建立呼叫控制信道330的SIP呼叫流。更具体来说,表3显示了由SIP提供的查询能力,和表4显示了预订与呼叫控制信道330相关的呼叫/对话状态的客户端系统106。建立呼叫控制信道330类似于表1所显示的SIP呼叫流。如果电话和线路URI相同,(即通信设备118、128的远程端点和设备控制327信道相同),那么就无需再次发送SIP OPTIONS消息,这是因为在设备控制信道327初始化期间该信息已经被收集。
                           表3
OPTIONS sip:1111@phones.example.com SIP/2.0
Via:SIP/2.0/TCP userB-pc.example.com;branch=z9hG4bKADx
Max-Forwards:70
From:User B<sip:userB@example.com>;tag=adx
To:sip:1111@phones.example.com
Call-ID:dx@userB-pc.example.com
CSeq:1 OPTIONS
Contact:<sip:userB@userB-pc.example.com>
Accept:application/sdp
Content-Type:??
SIP/2.0 200 OK
Via:SIP/2.0/TCP userB-pc.example.com;branch=z9hG4bKADx
To:sip:1111@phones.example.com;tag=pdx
From:User B<sip:userB@example.com>;tag=adx
Call-ID:dx@userB-pc.example.com
CSeq:1 OPTIONS
Contact:<sip:1111@phones.example.com>
Allow:INVITE,ACK,CANCEL,OPTIONS,BYE,REFER
Allow-Events:dialog
Accept:application/sdp
Accept-Encoding:gzip
Accept-Language:en
Supported:Replaces,Referred-By
Content-Type:application/sdp
Content-Length:??
                        表4
SUBSCRIBE sip:1111@phones.example.com SIP/2.0
From:User B<userB@example.com>;tag=ad2
To:<sip:1111@phones.example.com>
Call-ID:ad2@userB-pc.example.com
CSeq:1 SUBSCRIBE
Contact:<sip:userB@userB-pc.example.com>
Event:dialog
Expires:??
Accept:application/dialog-info+xml
Content-Type:??
SIP/2.0 200 OK
From:User B<userB@example.com>;tag=ad2
To:<sip:1111@phones.example.com>;tag=pd2
Call-ID:ad2@userB-pc.example.com
CSeq:1 SUBSCRIBE
Contact:??
NOTIFY sip:userB@userB-pc.example.com SIP/2.0
From:User B<userB@phones.example.com>;tag=ad2
To:<sip:1111@phones.example.com>;tag=pd2
Call-ID:ad2@userB-pc.example.com
CSeq:100 NOTIFY
Event:dialog
Subscription-State:??;expires=??
Contact:??
Contact-Type:application/dialog-info+xml
<?xml version=“1.0”?>
  <dialog-info xmlns=“urn:ietf:params:xml:ns:dialog-info”
        version=“4”
        state=“full”
        entity=“sip:1111@phones.example.com”>
    <dialog/>
  </dialog-info>
SIP/2.0 200 OK
From:User B<userB@example.com>;tag=ad2
To:<sip:1111@phones.example.com>;tag=pd2
Call-ID:ad2@userB-pc.example.com
CSeq:100 NOTIFY
Contact:??
表5显示了客户端系统106开始呼叫的SIP呼叫流。更具体来说,表5显示了客户端系统106“B”106b使用扬声器电话向客户端系统“C”106c开始呼叫,在此没有示出对于SIP NOTIFY的200OK响应。在本发明的典型实施例中,简单对象接入控制(SOAP)请求和XML代码与SIP SERVICE和SIPNOTIFY消息结合使用来进行呼叫初始化。在SIP中,REFER建立对于由REFER产生的处理状态的暗含脚本。由于已经存在对于所有呼叫/对话状态的描述,所以状态变化将被通过NOTIFY更新,只在呼叫连接之后为初始REFER发送响应代码,并在呼叫资源变得不可用时,明确地终止该脚本。
                               表5
          SERVICE sip:1111@phones.example.com SIP/2.0
          From:User B<userB@example.com>;tag=??
          To:<sip:1111@phones.example.com>
          Call-ID:??@userB-pc.example.com
          CSeq:1 SERVICE
          Contact:<sip:userB@userB-pc.example.com>
          Content-Type:??
          <SOAP-ENV:Envelope
            xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/”
            SOAP-ENV:encodingStyle=
“http://schemas.xmlsoap.org/soap/encoding/”>
              <SOAP-ENV:Body>
                <xs323:SetHookSwitchStatus
                   xmlns:xs323=
“http://www.ecma.ch/standards/ecma-323/csta”>
                     <hookswitch>1</hookswitch>
                      <hookswitchOnHook>0</hookswitchOnHook>
               </xs323:SetHookSwitchStatus>
           </SOAP-ENV:Body>
         </SOAP-ENV:Envelope>
         SIP/2.0 200 OK
         From:User B<userB@example.com>;tag=??
         To:<sip:1111@phones.example.com>;tag=??
         Call-ID:ad3@userB-pc.example.com
         CSeq:1 SERVICE
Contact:??
NOTIFY sip:userB@userB-pc.example.com SIP/2.0
From:User B<userB@example.com>;tag=ad1
To:<sip:1111@phones.example.com>;tag=pd1
Call-ID:ad1@userB-pc.example.com
CSeq:101 NOTIFY
Event:phone-device
Subscription-State:??;expires=??
Contact:??
Contact-Type:application/phone-info+xml
**Device State XML Doc showing spkr phone=on**
REFER sip:1111@phones.example.com SIP/2.0
From:User B<userB@example.com>;tag=ad2
To:<sip:1111@phones.example.com>;tag=pd2
Call-ID:ad2@userB-pc.example.com
CSeq:1 REFER
Contact:<sip:userB@userB-pc.example.com>
Refer-To:<tel:555-1212>;method=INVITE
Content-Type:??
REFER sip:1111@phones.example.com SIP/2.0
From:User B<userB@example.com>;tag=555555
To:<sip:1111@phones.example.com>
Call-ID:ad3@userB-pc.example.com
CSeq:1 REFER
Contact:<sip:userB@userB-pc.example.com>
Refer-To:<tel:555-1212>;method=INVITE
Referred-By:??
Content-Type:??
SIP/2.0 100 Trying
From:User B<userB@example.com>;tag=555555
To:<sip:1111@phones.example.com>;tag=666666
Call-ID:ad3@userB-pc.example.com
CSeq:1 REFER
Contact:??
SIP/2.0 202 Accepted
From:User B<userB@example.com>;tag=555555
To:<sip:1111@phones.example.com>;tag=666666
Call-ID:ad3@userB-pc.example.com
CSeq:1 REFER
Contact:??
NOTIFY sip:userB@userB-pc.example.com SIP/2.0
From:User B<userB@example.com>;tag=ad2
To:<sip:1111@phones.example.com>;tag=pd2
Call-ID:ad2@userB-pc.example.com
CSeq:101 NOTIFY
Event:dialog
Subscription-State:??;expires=??
Contact:??
Contact-Type:application/dialog-info+xml
<?xml version=“1.0”?>
  <dialog-info xmlns=“urn:ietf:params:xml:ns:dialog-info”
        version=“4”
        state=“partial”
        entity=“sip:1111@phones.example.com”>
    <dialog id=“0”
        local-uri=sip:1111@phones.example.com
        remote-uri=tel:555-1212
        call-id=“aaa@555-1111.example.com”
        local-tag=“123456”
      direction=“initiator”>
      <state>trying</state>
    </dialog>
  </dialog-info>
NOTIFY sip:userB@userB-pc.example.com SIP/2.0
From:User B<userB@example.com>;tag=ad2
To:<sip:1111@phones.example.com>;tag=pd2
Call-ID:ad2@userB-pc.example.com
CSeq:102 NOTIFY
Event:dialog
Subscription-State:??;expires=??
Contact:??
Contact-Type:application/dialog-info+xml
<?xml version=“1.0”?>
  <dialog-info xmlns=“urn:ietf:params:xml:ns:dialog-info”
        version=“4”
        state=“partial”
        entity=“sip:1111@phones.example.com”>
    <dialog id=“0”
        local-uri=sip:1111@phones.example.com
        remote-uri=tel:555-1212
        call-id=“aaa@555-1111.example.com”
        local-tag=“123456”
        remote-tag=“654321”
      direction=“initiator”>
      <state>early</state>
    </dialog>
  </dialog-info>
NOTIFY sip:userB@userB-pc.example.com SIP/2.0
From:User B<userB@example.com>;tag=ad2
To:<sip:1111@phones.example.com>;tag=pd2
Call-ID:ad2@userB-pc.example.com
CSeq:103 NOTIFY
Event:dialog
Subscription-State:??;expires=??
Contact:??
Contact-Type:application/dialog-info+xml
<?xml version=“1.0”?>
  <dialog-info xmlns=“urn:ietf:params:xml:ns:dialog-info”
        version=“4”
        state=“partial”
        entity=“sip:1111@phones.example.com”>
    <dialog id=“0”
        local-uri=sip:1111@phones.example.com
        remote-uri=tel:555-1212
        call-id=“aaa@555-1111.example.com”
        local-tag=“123456”
        remote-tag=“654321”
      direction=“initiator”>
      <state>confirmed</state>
    </dialog>
  </dialog-info>
NOTIFY sip:userB@userB-pc.example.com SIP/2.0
From:User B<userB@example.com>;tag=555555
To:<sip:1111@phones.example.com>;tag=666666
Call-ID:ad3@userB-pc.example.com
CSeq:100 NOTIFY
Event:refer
Subscription-State:terminated;reason=noresource;expires=0
Contact:message/sipfrag
SIP/2.0 200 OK
表6显示了TDM电话118开始呼叫的SIP呼叫流。更具体来说,表6显示了客户端系统“B”106b使用TDM电话118b开始到客户端系统“C”106c的呼叫。与在图5中一样,没有示出响应于NOTIFY的SIP200OK。
                     表6
NOTIFY sip:userB@userB-pc.example.com SIP/2.0
From:User B<userB@example.com>;tag=ad1
To:<sip:1111@phones.example.com>;tag=pd1
Call-ID:ad1@userB-pc.example.com
CSeq:101 NOTIFY
Event:phone-device
Subscription-State:??;expires=??
Contact:??
Contact-Type:application/phone-info+xml
**Device State XML Doc showing off-hook/spkr phone**
NOTIFY sip:userB@userB-pc.example.com SIP/2.0
From:User B<userB@example.com>;tag=ad2
To:<sip:1111@phones.example.com>;tag=pd2
Call-ID:ad2@userB-pc.example.com
CSeq:101 NOTIFY
Event:dialog
Subscription-State:??;expires=??
Contact:??
Contact-Type:application/dialog-info+xml
<?xml version=“1.0”?>
  <dialog-info xmlns=“urn:ietf:params:xml:ns:dialog-info”
        version=“4”
        state=“partial”
        entity=“sip:1111@phones.example.com”>
    <dialog id=“0”
        local-uri=sip:1111@phones.example.com
        remote-uri=tel:555-1212
        call-id=“aaa@555-1111.example.com”
        local-tag=“123456”
      direction=“initiator”>
      <state>trying</state>
    </dialog>
  </dialog-info>
NOTIFY sip:userB@userB-pc.example.com SIP/2.0
From:User B<userB@example.com>;tag=ad2
To:<sip:1111@phones.example.com>;tag=pd2
Call-ID:ad2@userB-pc.example.com
CSeq:102 NOTIFY
Event:dialog
Subscription-State:??;expires=??
Contact:??
Contact-Type:application/dialog-info+xml
<?xml version=“1.0”?>
    <dialog-info xmlns=“urn:ietf:params:xml:ns:dialog-info”
          version=“4”
          state=“partial”
          entity=“sip:1111@phones.example.com”>
      <dialog id=“0”
          local-uri=sip:1111@phones.example.com
          remote-uri=tel:555-1212
          call-id=“aaa@555-1111.example.com”
          local-tag=“123456”
          remote-tag=“654321”
        direction=“initiator”>
        <state>early</state>
      </dialog>
    </dialog-info>
NOTIFY sip:userB@userB-pc.example.com SIP/2.0
From:User B<userB@example.com>;tag=ad2
To:<sip:1111@phones.example.com>;tag=pd2
Call-ID:ad2@userB-pc.example.com
CSeq:103 NOTIFY
Event:dialog
Subscription-State:??;expires=??
Contact:??
Contact-Type:application/dialog-info+xml
<?xml version=“1.0”?>
  <dialog-info xmlns=“urn:ietf:params:xml:ns:dialog-info”
         version=“4”
         state=“partial”
         entity=“sip:1111@phones.example.com”>
    <dialog id=“0”
         local-uri=sip:1111@phones.example.com
         remote-uri=tel:555-1212
         call-id=“aaa@555-1111.example.com”
         local-tag=“123456”
         remote-tag=“654321”
       direction=“initiator”>
       <state>confirmed</state>
      </dialog>
    </dialog-info>
表7显示了客户端系统106断开呼叫的SIP呼叫流。该呼叫存在两种情况。在第一种情况中,该呼叫由客户端106开始。在第二种情况中,该呼叫由TDM电话118开始。在任何一种情况中,客户端系统106处理用来断开呼叫的对话标识。如果该呼叫由客户端系统106开始,那么就通过SIP REFER消息来建立对话,但是在另一方成功响应于该INVITE消息时,就终止该对话。
                       表7
REFER sip:1111@phones.example.com SIP/2.0
From:User B<userB@example.com>;tag=555555
To:<sip:1111@phones.example.com>
Call-ID:ad3@userB-pc.example.com
CSeq:1 REFER
Contact:<sip:userB@userB-pc.example.com>
Refer-To:<tel:555-1212>;method=BYE?
       local-uri=sip:1111@phones.example.com;tag=123456
             &remote-uri=tel:555-1212;tag=654321
             &Call-Id=aaa@555-1111.example.com
    Referred-By:??
    Content-Type:??
    NOTIFY sip:userB@userB-pc.example.com SIP/2.0
    From:User B<userB@example.com>;tag=555555
    To:<sip:1111@phones.example.com>;tag=666666
    Call-ID:ad3@userB-pc.example.com
    CSeq:100 NOTIFY
    Event:refer
    Subscription-State:terminated;expires=??
    Contact-Type:message/sipfrag
    SIP/2.0 200 OK
    NOTIFY sip:userB@userB-pc.example.com SIP/2.0
    From:User B<userB@example.com>;tag=ad2
    To:<sip:1111@phones.example.com>;tag=pd2
    Call-ID:ad2@userB-pc.example.com
    CSeq:103 NOTIFY
    Event:dialog
    Subscription-State:??;expires=??
    Contact:??
    Contact-Type:application/dialog-info+xml
    <?xml version=“1.0”?>
      <dialog-info xmlns=“urn:ietf:params:xml:ns:dialog-info”
             version=“4”
             state=“partial”
             entity=“sip:1111@phones.example.com”>
         <dialog id=“0”
             local-uri=sip:1111@phones.example.com
             remote-uri=tel:555-1212
             call-id=“aaa@555-1111.example.com”
             local-tag=“123456”
             remote-tag=“654321”
           direction=“initiator”>
           <state>terminated</state>
         </dialog>
       </dialog-info>
    SERVICE sip:1111@phones.example.com SIP/2.0
    From:User B<userB@example.com>;tag=??
    To:<sip:1111@phones.example.com>
    Call-ID:??@userB-pc.example.com
    CSeq:1 SERVICE
    Contact:<sip:userB@userB-pc.example.com>
    Content-Type:??
    <SOAP-ENV:Envelope
      xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/”
      SOAP-ENV:encodingStyle=
“http://schemas.xmlsoap.org/soap/encoding/”>
              <SOAP-ENV:Body>
                <xs323:SetHookSwitchStatus
                   xmlns:xs323=
“http://www.ecma.ch/standards/ecma-323/csta”>
            <hookswitch>1</hookswitch>
                     <hookswitchOnHook>1</hookswitchOnHook>
              </xs323:SetHookSwitchStatus>
          </SOAP-ENV:Body>
        </SOAP-ENV:Envelope>
表8显示了客户端系统106接受呼叫的SIP呼叫流。一旦呼入呼叫到达(即,接收到INVITE消息或呼叫信令),该客户端系统106就发送“尝试”状态NOTIFY消息到该呼叫的发起者。
                            表8
NOTIFY sip:userB@userB-pc.example.com SIP/2.0
From:User B<userB@example.com>;tag=ad2
To:<sip:1111@phones.example.com>;tag=pd2
Call-ID:ad2@userB-pc.example.com
CSeq:101 NOTIFY
Event:dialog
Subscription-State:??;expires=??
Contact:??
Contact-Type:application/dialog-info+xml
<?xml version=“1.0”?>
   <dialog-info xmlns=“urn:ietf:params:xml:ns:dialog-info”
         version=“4”
         state=“partial”
         entity=“sip:1111@phones.example.com”>
    <dialog id=“0”
         local-uri=sip:1111@phones.example.com
         remote-uri=tel:555-1212
         call-id=“aaa@555-1111.example.com”
         remote-tag=“654321”
      direction=“recipient”>
      <state>trying</state>
    </dialog>
  </dialog-info>
NOTIFY sip:userB@userB-pc.example.com SIP/2.0
From:User B<userB@example.com>;tag=ad2
To:<sip:1111@phones.example.com>;tag=pd2
Call-ID:ad2@userB-pc.example.com
CSeq:102 NOTIFY
Event:dialog
Subscription-State:??;expires=??
Contact:??
Contact-Type:application/dialog-info+xml
<?xml version=“1.0”?>
  <dialog-info xmlns=“urn:ietf:params:xml:ns:dialog-info”
        version=“4”
        state=“partial”
        entity=“sip:1111@phones.example.com”>
    <dialog id=“0”
        local-uri=sip:1111@phones.example.com
        remote-uri=tel:555-1212
        call-id=“aaa@555-1111.example.com”
        local-tag=“123456”
        remote-tag=“654321”
      direction=“recipient”>
      <state>early</state>
    </dialog>
  </dialog-info>
REFER sip:1111@phones.example.com SIP/2.0
From:User B<userB@example.com>;tag=555555
To:<sip:1111@phones.example.com>
Call-ID:ad3@userB-pc.example.com
CSeq:1 REFER
Contact:<sip:userB@userB-pc.example.com>
Refer-To:<tel:555-1212>;method=OK?
       To=“sip:1111@phones.example.com;tag=123456”
       &From=“tel:555-1212;tag=654321”
       &Call-Id=aaa@555-1111.example.com
Content-Type:??
NOTIFY sip:userB@userB-pc.example.com SIP/2.0
From:User B<userB@example.com>;tag=ad2
To:<sip:1111@phones.example.com>;tag=pd2
Call-ID:ad2@userB-pc.example.com
CSeq:103 NOTIFY
Event:dialog
Subscription-State:??;expires=??
Contact:??
Contact-Type:application/dialog-info+xml
<?xml version=“1.0”?>
  <dialog-info xmlns=“urn:ietf:params:xml:ns:dialog-info”
        version=“4”
        state=“partial”
        entity=“sip:1111@phones.example.com”>
    <dialog id=“0”
        local-uri=sip:1111@phones.example.com
        remote-uri=tel:555-1212
        call-id=“aaa@555-1111.example.com”
        local-tag=“123456”
        remote-tag=“654321”
      direction=“recipient”>
      <state>confirmed</state>
    </dialog>
  </dialog-info>
SERVICE sip:1111@phones.example.com SIP/2.0
From:User B<userB@example.com>;tag=??
To:<sip:1111@phones.example.com>
Call-ID:??@userB-pc.example.com
CSeq:1 SERVICE
Contact:<sip:userB@userB-pc.example.com>
Content-Type:??
NOTIFY sip:userB@userB-pc.example.com SIP/2.0
From:User B<userB@example.com>;tag=ad1
To:<sip:1111@phones.example.com>;tag=pd1
Call-ID:ad1@userB-pc.example.com
CSeq:101 NOTIFY
Event:phone-device
Subscription-State:??;expires=??
Contact:??
Contact-Type:application/phone-info+xml
**Device State XML Doc showing spkr phone=on**
本邻域熟练技术人员将认识到,存在用来附加监视和控制这样一些情形的其它呼叫流,例如,拒绝呼叫、指示线路忙、转发呼叫、断开来自客户系统106的呼叫、断开来自TDM电话118的呼叫、客户端系统106摘机、来自TDM电话118的摘机、传送呼叫、恢复呼叫、会议呼叫、发送DTMF、和收集物理地输入到TDM电话118的键盘的数字,但不局限这些情况。这些情形中的每一个都需要类似于在上面的表中所描述的SIP消息。
图4A-4B显示了根据本发明典型实施例控制和监视通信设备118、128的方法400的流程表示。为了使用户能够有效控制和监视通信设备118、128,必须存在合适的环境100和第三方呼叫控制系统300。本发明将每个通信设备118、128模型化成两个用来控制和监视通信设备118、128的物理属性和通信设备118、128的呼叫和/或线路的改变状态的两种独特表示。
为了有效监视和控制通信设备118、128,第三方呼叫控制应用程序303将通信设备118、128看成两个分离的表示。因此,在开始步骤403之后,第三方呼叫控制应用程序303继续到步骤406,在此,建立通信设备118、128的逻辑表示324和物理表示321。逻辑表示324代表与通信设备118、128相关的呼叫和/或线路,从而能够提供呼叫/线路服务给客户端系统106。物理表示321代表通信设备118、128的物理属性,从而能够在通信设备118、128和客户端系统106之间提供用户交互操作。
为了明确定位这两种表示,第三方呼叫控制应用程序303必须能够唯一地寻址到它们,从而继续到步骤409,在此,每个通信设备118、128的逻辑表示324和物理表示321与唯一标识相关。尤其是,每个逻辑表示324和每个物理表示324与SIP URI相关,从而能够使客户端系统106发送SIP消息到唯一标识的通信设备118、128。
为了相关通信设备118、128每个逻辑表示324和每个物理表示321与唯一标识,必须识别所有通信设备118、128(即,它们所有的逻辑表示324和物理表示321。为了这样做,第三方呼叫控制应用程序203继续到步骤412,在此,识别在网络子层103内的所有逻辑表示324和物理表示321。例如,不是限制,对于所有通信设备118、128的识别可以通过扫描客户端系统106的网络目录来完成。可接受的网络目录包括由Microsoft Corporation of Redmond,Washington的操作系统软件提供的“ACTIVE DIRECTORY”。
下面,第三方呼叫控制应用程序303继续到步骤415,在此,确定所有识别的通信设备118、128之间的所有关系。更具体来说,第三方呼叫控制应用程序303确定在通信设备118、128(即,TDM电话118和SIP电话128)、线路、和客户端系统106的用户之间的关系和/或映射。该确定过程也可以通过使用网络目录来完成。
第三方呼叫控制应用程序303接着继续到步骤418,在此,控制器单元312和监视单元309都建立到所有通信设备118、128的物理表示321的设备控制信道327。如上所述,通过建立与通信设备118、128的SIP对话会话来建立设备控制信道327。
接着,在步骤421,控制器单元312和监视单元309都建立到所有通信设备118、128的逻辑表示324的呼叫控制信道330。通过建立与通信设备118、128的SIP对话会话来建立呼叫控制信道330。
在步骤424,控制器单元312通过在呼叫和设备控制信道327上发送SIP消息来指导通信设备118的逻辑表示324和物理表示321。如上面参考图3所描述的那样,可以使用SIP消息来控制呼叫/线路和通信设备118、128的物理属性。
继续到步骤427,监视单元309通过在呼叫和设备控制信道330、327上发送SIP消息来监视通信设备118、128的逻辑表示324和物理表示321。通过使用SIP查询,监视单元309确定在网络子层103内的通信设备118、128的当前状态。在本发明的典型实施例中,步骤424和427基本上以同时的方式来发生。
随后,在步骤430,监视单元309将表示通信设备118、128的当前状态的数据提供给实体复制品存储单元318,并存储在其中。接着使用该数据通过用户接口315通知用户有关特定通信设备118、128的状态。接着在步骤433,第三方呼叫控制应用程序303根据方法400终止操作。
图5A-5B显示了根据本发明的典型实施例使用唯一标识相关通信设备118、128的逻辑表示324和通信设备118、128的物理表示321的方法500的流程表示。为了使第三方呼叫控制应用程序303能正确地通过SIP消息寻址通信设备118、128的逻辑表示324和物理表示321,给每个逻辑表示324和每个物理表示321分配一个唯一标识。优选地,该唯一标识包括SIP URI。
在开始步骤503之后,第三方呼叫控制应用程序303继续到步骤506,在此,第三方呼叫控制应用程序303确定通信设备118、128是否是TDM-型设备。如果在步骤506,第三方呼叫控制应用程序303确定通信设备118、128是TDM型设备,那么第三方呼叫控制应用程序303就继续到步骤512,并相关通信设备118、128的逻辑表示324和电话号码。接着,第三方呼叫控制应用程序303继续到下面所描述的步骤515。
但是,如果在步骤506,第三方呼叫控制应用程序303确定通信设备118、128不是TDM型设备,那么第三方呼叫控制应用程序303就继续到步骤509,在此,第三方呼叫控制应用程序303确定通信设备118、128是否是SIP型设备。如果在步骤509,第三方呼叫控制应用程序303确定通信设备118、128是SIP型设备,那么第三方控制应用程序303就继续到步骤527,在此,逻辑表示324与通信设备118、128的用户的电子邮件地址相关。接着第三方呼叫控制应用程序303继续到步骤530,在此,物理表示321与通信设备118、128的完全限定域名(FQDN)相关。接着在步骤533,第三方呼叫控制应用程序303结束根据方法500的操作。
然而,如果在步骤509,第三方呼叫控制应用程序303确定通信设备118、128不是SIP型设备,那么第三方呼叫控制应用程序303继续到步骤524,在此,产生错误。接着在步骤533,第三方呼叫控制应用程序303结束根据方法500的操作。
在步骤515,第三方呼叫呼叫控制应用程序303确定通信设备118、128是否只具有一条线路。如果在步骤515,第三方呼叫控制应用程序303确定通信设备118、128只具有一条线路,那么第三方呼叫控制应用程序303继续到步骤521,在此,物理表示321与通信设备118、128的电话号码相关。接着在步骤533,第三方呼叫控制应用程序303结束根据方法500的操作。
然而,如果在步骤515,第三方呼叫控制应用程序303确定通信设备118、128拥有不只一条线路,那么第三方呼叫控制应用程序303继续到步骤518,在此,使用设备控制信道327来连接到通信设备118、128。接着在步骤533,第三方呼叫控制应用程序303结束根据方法500的操作。
图6A-6B显示了根据本发明典型实施例使用通信设备118、128的物理表示321建立设备控制信道327的方法600的流程表示。为了正确地控制和监视通信设备118、128的物理表示321,控制器单元312和监视单元309需要建立到物理表示321的通信信道。虽然图6A-6B的描述只描述了控制器单元312建立到通信设备118、128的物理表示321的设备控制信道327,但是监视单元309也建立了到通信设备118、128的物理表示321的设备控制信道327,基本上与方法600相同。
在步骤603开始之后,控制器单元312继续到步骤606,在此,控制器单元312发送SIP INVITE消息到通信设备118、128的物理表示321。SIP INVITE消息尝试在控制器单元312和物理表示321之间建立通信会话。接着,在步骤609,控制器单元312从通信设备118、128的物理表示321接收SIP OK响应。SIP OK响应提供通知通信设备118、128的物理表示321已经接受了到通信会话的邀请。在步骤612,控制器单元312发送SIP ACK消息到通信设备118、119的物理表示321的SIP OK消息。该SIP OK消息是用来确认接收物理表示321接受建立通信会话的。
通过接受到通信会话的邀请,物理表示321通知控制器单元312,物理表示321支持合适的SIP电话设备包。从而,在步骤615,控制器单元312发送SIP SUBSCRIBE消息到通信设备118、128的物理表示321。SIP SUBSCRIBE消息指示控制器单元312希望预订或使用SIP电话设备包来控制通信设备118、128的物理属性。
下面,在步骤618,控制器单元312从通信设备118、128的物理表示321接收SIP OK消息。SIP OK消息指示控制器单元312物理表示321正允许建立设备控制信道327。
在步骤621,控制器单元312发送给通信设备118、128的物理表示321一个SIP NOTIFY消息。该SIP NOTIFY消息能够在通信设备118、128的控制器单元312和物理表示321之间建立设备控制信道327。典型地,SIP NOTIFY消息包括XML代码,该代码有助于建立设备控制信道327。接着在步骤633控制器单元312结束根据方法600的操作。
图7A-7B显示了根据本发明典型实施例使用通信设备118、128的逻辑表示324建立呼叫控制信道330的方法700的流程表示。为了正确控制监视通信设备118、128的逻辑表示324,控制器单元312和监视单元309必须建立到逻辑表示324的通信信道330。虽然图7A-7B的描述只描述了控制器单元312建立到通信设备118、128的逻辑表示321的呼叫控制信道330,但是监视单元309也建立了到通信设备118、128的逻辑表示324的呼叫控制信道330,基本上与方法700相同。
在步骤703开始之后,控制器单元312继续到步骤706,在此,控制器单元312发送SIP OPTIONS消息到通信设备118、128的逻辑表示324。SIPOPTIONS消息查询通信设备118、128的逻辑表示324所支持的SIP呼叫类型。接着,在步骤709,控制器单元312从通信设备118、128的逻辑表示324接收SIP OK响应。SIP OK响应指示控制器单元312通信设备118、128的逻辑表示324所支持的SIP呼叫的类型。
通过响应于SIP OPTIONS消息,逻辑表示324通知控制器单元312逻辑表示324支持SIP消息。此外,逻辑表示324已经识别出所支持的SIP呼叫。因此,在步骤712,控制器单元312发送SIP SUBSCRIBE消息到通信设备118、128的逻辑表示324。SIP SUBSCRIBE消息指示控制器单元312希望预订或使用所支持的SIP呼叫来控制通信设备118、128的线路和/或呼叫服务。
接着,在步骤715,控制器单元312从通信设备118、128的逻辑表示324接收SIP OK消息。该SIP OK消息指示控制器单元312该逻辑表示324允许建立呼叫控制信道330。
在步骤718,控制器单元312发送给通信设备118、128的逻辑表示324一个SIP NOTIFY消息。该SIP NOTIFY消息能够建立在控制器单元312和通信设备118、128的逻辑表示324之间的呼叫控制信道330。优选地,SIP NOTIFY消息包括XML代码,该代码有助于建立呼叫控制信道330。接着在步骤733,控制器单元312结束根据方法700的操作。
虽然本发明已经详细进行了描述,但是应该明白在本发明的精神和范围内可以进行变化和修改,如在此之前所描述的以及在所附权利要求书中所定义的那样。如果有的话,在下面的权利要求书中的相应结构、材料、动作,及所有装置加功能的单元的等同物目的在于包括结合其它具体要求的要求元件执行功能的任何结构、材料、或动作。

Claims (19)

1、一种用来控制和监视用于多路通信的通信设备的系统,其特征在于,该系统包括:
用于与第二通信设备进行通信的第一通信设备;
与所述第一通信设备进行通信的控制器单元,其中所述控制器单元适用于提供控制数据到所述第一通信设备;
与所述第一通信设备进行通信的监视单元,其中所述监视单元适用于提供查询数据到所述第一通信设备,并适用于从所述第一通信设备接收状态数据;
与所述监视单元进行通信的实体复制品存储单元,其中所述实体复制品存储单元适用于从所述监视单元接收所述状态数据,存储所述状态数据作为复制品数据,并将所述复制品数据提供给所述监视单元;和
与所述控制器单元和所述监视单元进行通信的用户接口,其中所述用户接口适用于提供用户数据到所述控制器单元和所述监视单元,并适用于从所述监视单元接收所述复制品数据。
2、根据权利要求1的系统,其特征在于,所述控制器单元进一步适用于从所述第一通信设备接收响应数据,并将所述响应数据提供给所述用户接口。
3、根据权利要求1的系统,其特征在于,所述第一通信设备适用于提供并接收来自所述控制器单元和所述监视单元的会话发起协议(SIP)数据。
4、根据权利要求3的系统,其特征在于,所述第一通信设备包括SIP电话。
5、根据权利要求3的系统,其特征在于,所述第一通信设备包括时分复用(TDM)电话。
6、根据权利要求5的系统,其特征在于,该系统进一步包括:
与所述第一通信设备、所述控制器单元和所述监视单元进行通信的前端SIP单元,
其中所述前端SIP单元适用于将第一SIP数据转换成第一计算机电话集成(CTI)数据,以及将第二CTI数据转换成第二SIP数据,
其中所述前端SIP单元进一步适用于从所述控制器单元和所述监视单元接收所述第一SIP数据,将所述第一CTI数据提供给所述第一通信设备,从所述第一通信设备接收所述第二CTI数据,并将所述第二SIP数据提供给所述控制器单元和所述监视单元。
7、根据权利要求3的系统,其特征在于,所述第一通信设备是能够使用SIP的PBX电话。
8、一种控制和监视在多路通信中使用的通信设备的方法,其特征在于,该方法包括步骤:
将通信设备模型化为逻辑表示和物理表示,其中所述逻辑表示代表所述通信设备的通信链路,所述物理表示代表所述通信设备的物理属性;
相关所述逻辑表示和第一唯一标识,并相关所述物理表示和第二唯一标识;
识别在通信设备网络中的多个逻辑表示和多个物理表示;
确定在所述多个逻辑表示和所述多个物理表示之间的多个关系;
为所述多个物理表示组中的每一个建立设备控制信道;
为所述多个逻辑表示组中的每一个建立呼叫控制信道;
通过所述呼叫控制信道和所述设备控制信道控制所述多个逻辑表示组和所述多个物理表示组;
监视所述多个逻辑表示组和所述多个物理表示组;和
存储从所述多个逻辑表示组和所述多个物理表示组监视的数据的复制品。
9、根据权利要求8的方法,其特征在于,相关所述逻辑表示和第一标识以及相关所述物理表示与第二标识的步骤,包括以下步骤:
如果所述通信设备是TDM设备,相关所述逻辑表示和电话号码;
如果所述通信设备是SIP设备,相关所述逻辑表示和电子邮件地址;
如果所述通信设备是只有一条通信线路的TDM设备,相关所述物理表示和电话号码;和
如果所述通信设备是SIP设备,相关所述物理表示和完全限定域名(FQDN)。
10、根据权利要求9的方法,其特征在于,进一步包括,如果所述通信设备是具有多于一条通信线路的TDM设备,那么使用所述设备控制信道来连接到所述物理表示的步骤。
11、根据权利要求8的方法,其特征在于,确定多个逻辑表示和多个物理表示包括从网络目录搜索在网络内的通信设备列表。
12、根据权利要求8的方法,其特征在于,建立设备控制信道包括:
从所述第一通信设备发送SIP INVITE消息到第二通信设备;
由所述第一通信设备从所述第二通信设备接收SIP OK响应;
响应于接收到所述SIP OK响应,从所述第一通信设备发送SIP确认(ACK)消息到所述第二通信设备;和
从所述第一通信设备发送SIP SUBSCRIBE消息到所述第二通信设备;
由所述第一通信设备从所述第二通信设备接收SIP OK响应;和
从所述第一通信设备发送SIP NOTIFY消息到所述第二通信设备。
13、根据权利要求8的方法,其特征在于,建立呼叫控制信道包括:
从所述第一通信设备发送SIP OPTIONS消息到所述第二通信设备;
由所述第一通信设备从所述第二通信设备接收SIP OK响应;
从所述第一通信设备发送SIP SUBSCRIBE消息到所述第二通信设备;
由所述第一通信设备从所述第二通信设备接收SIP OK响应;和
从所述第一通信设备发送SIP NOTIFY消息到所述第二通信设备。
14、一种计算机可读介质,具有用来控制和监视在多路通信中使用的通信设备的计算机可执行指令,该计算机可执行指令执行以下步骤,包括:
将通信设备模型化为逻辑表示和物理表示,其中所述逻辑表示代表所述通信设备的通信链路,和所述物理表示代表所述通信设备的物理属性;
相关所述逻辑表示和第一唯一标识,并相关所述物理表示和第二唯一标识;
识别在通信设备网络中的多个逻辑表示和多个物理表示;
确定在所述多个逻辑表示和所述多个物理表示之间的多个关系;
为所述多个物理表示组中的每一个建立设备控制信道;
为所述多个逻辑表示组中的每一个建立呼叫控制信道;
通过所述呼叫控制信道和所述设备控制信道控制所述多个逻辑表示组和所述多个物理表示组;
监视所述多个逻辑表示组和所述多个物理表示组;和
存储从所述多个逻辑表示组和所述多个物理表示组监视的数据的复制品。
15、根据权利要求14的计算机可读介质,其特征在于,相关所述逻辑表示和第一标识以及相关所述物理表示与第二标识的步骤,包括以下步骤:
如果所述通信设备是TDM设备,相关所述逻辑表示和电话号码;
如果所述通信设备是SIP设备,相关所述逻辑表示和电子邮件地址;
如果所述通信设备是只有一条通信线路的TDM设备,相关所述物理表示和电话号码;和
如果所述通信设备是SIP设备,相关所述物理表示和完全限定域名(FQDN)。
16、根据权利要求15的计算机可读介质,其特征在于,还具有用来在所述通信设备是具有多于一条通信线路的TDM设备时,使用所述设备控制信道来连接到所述物理表示的计算机可执行指令。
17、根据权利要求14的计算机可读介质,其特征在于,确定多个逻辑表示和多个物理表示包括从网络目录搜索在网络内的通信设备列表。
18、根据权利要求14的计算机可读介质,其特征在于,建立设备控制信道包括:
从所述第一通信设备发送SIP INVITE消息到第二通信设备;
由所述第一通信设备从所述第二通信设备接收SIP OK响应;
响应于接收到所述SIP OK响应,从所述第一通信设备发送SIP ACK消息到所述第二通信设备;和
从所述第一通信设备发送SIP SUBSCRIBE消息到所述第二通信设备;
由所述第一通信设备从所述第二通信设备接收SIP OK响应;和
从所述第一通信设备发送SIP NOTIFY消息到所述第二通信设备。
19、根据权利要求14的计算机可读介质,其特征在于,建立呼叫控制信道包括:
从所述第一通信设备发送SIP OPTIONS消息到所述第二通信设备;
由所述第一通信设备从所述第二通信设备接收SIP OK响应;
从所述第一通信设备发送SIP SUBSCRIBE消息到所述第二通信设备;
由所述第一通信设备从所述第二通信设备接收SIP OK响应;和
从所述第一通信设备发送SIP NOTIFY消息到所述第二通信设备。
CN200510009495A 2004-02-11 2005-02-16 便于第三方呼叫和设备控制的系统和方法 Expired - Fee Related CN100583882C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/776,489 2004-02-11
US10/776,489 US7940792B2 (en) 2004-02-11 2004-02-11 System and methods for facilitating third-party call and device control

Publications (2)

Publication Number Publication Date
CN1655553A true CN1655553A (zh) 2005-08-17
CN100583882C CN100583882C (zh) 2010-01-20

Family

ID=34701358

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200510009495A Expired - Fee Related CN100583882C (zh) 2004-02-11 2005-02-16 便于第三方呼叫和设备控制的系统和方法

Country Status (5)

Country Link
US (1) US7940792B2 (zh)
EP (1) EP1564962A3 (zh)
JP (1) JP4664084B2 (zh)
KR (1) KR101130398B1 (zh)
CN (1) CN100583882C (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1889435B (zh) * 2006-07-31 2010-04-14 华为技术有限公司 一种终端和服务器互通的方法和系统
CN103188250A (zh) * 2011-12-31 2013-07-03 北京大唐高鸿软件技术有限公司 基于sip协议的终端设备状态通知及控制方法
CN103905411A (zh) * 2012-12-28 2014-07-02 北京大唐高鸿软件技术有限公司 基于sip的终端控制与状态监控方法

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI113827B (fi) * 2000-02-17 2004-06-15 Wicom Comm Oy Pakettiverkkopuhelinjärjestelmä
US8180034B2 (en) * 2001-07-27 2012-05-15 Alcatel Lucent Apparatus, and associated method, for a CTI-enabled SIP-phone
US8126889B2 (en) 2002-03-28 2012-02-28 Telecommunication Systems, Inc. Location fidelity adjustment based on mobile subscriber privacy profile
US20050289222A1 (en) * 2004-06-28 2005-12-29 Sahim Faramarz F Flexible session initiation protocol endpoint signaling
US8281355B1 (en) * 2004-08-02 2012-10-02 Sprint Spectrum L.P. Method, apparatus, and system for invoking third-party call control via a cable-television host device
US20060090166A1 (en) * 2004-09-30 2006-04-27 Krishna Dhara System and method for generating applications for communication devices using a markup language
US6985105B1 (en) 2004-10-15 2006-01-10 Telecommunication Systems, Inc. Culled satellite ephemeris information based on limiting a span of an inverted cone for locating satellite in-range determinations
KR100666946B1 (ko) * 2005-01-19 2007-01-10 삼성전자주식회사 단말의 상태를 테스트하기 위한 네트워크시스템 및 그테스트방법
US8401002B2 (en) 2005-06-22 2013-03-19 Research In Motion Limited Exchange and use of globally unique device identifiers for circuit-switched and packet switched integration
US7920692B2 (en) * 2005-10-03 2011-04-05 Verizon Data Services Llc PBX call management
US7825780B2 (en) 2005-10-05 2010-11-02 Telecommunication Systems, Inc. Cellular augmented vehicle alarm notification together with location services for position of an alarming vehicle
US9008293B2 (en) * 2005-11-25 2015-04-14 At&T Intellectual Property I, L.P. Caller ID information to internet protocol television displays
US8781942B2 (en) * 2005-11-30 2014-07-15 Genesys Telecommunications Laboratories, Inc. System and method for matching electronic proposals to electronic requests
US8842557B2 (en) * 2005-12-02 2014-09-23 British Telecommunications Plc Computer telephony system
GB0525485D0 (en) * 2005-12-15 2006-01-25 Siemens Plc A communications system and method
US8689317B2 (en) 2005-12-19 2014-04-01 Level 3 Communications, Llc Providing SIP signaling data for third party surveillance
US9167553B2 (en) 2006-03-01 2015-10-20 Telecommunication Systems, Inc. GeoNexus proximity detector network
US7899450B2 (en) * 2006-03-01 2011-03-01 Telecommunication Systems, Inc. Cellular augmented radar/laser detection using local mobile network within cellular network
EP1838076A1 (en) * 2006-03-24 2007-09-26 BRITISH TELECOMMUNICATIONS public limited company Computer telephony system, method and server
DE102006031080B4 (de) * 2006-07-05 2008-04-30 Siemens Ag Verfahren und Kommunikationsendgerät zum Bereitstellen von VoIP
CN101163136B (zh) * 2006-10-09 2010-07-14 中兴通讯股份有限公司 一种利用会话初始协议软终端播放话务员工号的方法
US8121282B1 (en) * 2007-04-19 2012-02-21 Cisco Technology, Inc. Call park/retrieve using SIP
US9705940B1 (en) * 2008-01-11 2017-07-11 Avaya Inc. Simultaneous advanced call control for both simple and advanced SIP user agents
GB0808448D0 (en) 2008-05-09 2008-06-18 Elync Ltd Secure communication system and method of operating the same
US8505056B2 (en) 2008-07-10 2013-08-06 Apple Inc. Updating properties of remote A/V performance nodes
US8525681B2 (en) 2008-10-14 2013-09-03 Telecommunication Systems, Inc. Location based proximity alert
US8892128B2 (en) 2008-10-14 2014-11-18 Telecommunication Systems, Inc. Location based geo-reminders
US8315599B2 (en) 2010-07-09 2012-11-20 Telecommunication Systems, Inc. Location privacy selector
US8649806B2 (en) 2011-09-02 2014-02-11 Telecommunication Systems, Inc. Aggregate location dynometer (ALD)
US20130147901A1 (en) * 2011-12-07 2013-06-13 Reginald Weiser Systems and methods for video enabling pbx systems without a sip stack
US9380080B2 (en) 2012-11-08 2016-06-28 At&T Intellectual Property I, L.P. Session initiation for multimedia services
US9444855B2 (en) 2012-11-19 2016-09-13 At&T Intellectual Property I, L.P. Initiating a central server-directed communication session from an in-progress half call model communication session
DE102013008933A1 (de) * 2013-05-24 2014-12-11 Unify Gmbh & Co. Kg Verfahren und Anordnung zum Aufbau von Telekommunikationsverbindungen

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5541928A (en) * 1993-11-02 1996-07-30 Nippondenso Co., Ltd. Communication system which establishes communication sessions based on unit ID codes to avoid transmission conflicts
EP0998702A1 (en) * 1997-08-01 2000-05-10 Muse Technologies, Inc. Shared multi-user interface for multi-dimensional synthetic environments
US6856618B2 (en) * 1997-10-21 2005-02-15 Intel Corporation Apparatus and method for computer telephone integration in packet switched telephone networks
JP2000041272A (ja) 1998-07-09 2000-02-08 Toshiba Corp 電子交換装置
US6958994B2 (en) * 1998-09-24 2005-10-25 Genesys Telecommunications Laboratories, Inc. Call transfer using session initiation protocol (SIP)
US6373930B1 (en) * 1999-09-09 2002-04-16 Sprint Communications Company L.P. Method and system for monitoring telecommunications traffic
US6625258B1 (en) * 1999-12-27 2003-09-23 Nortel Networks Ltd System and method for providing unified communication services support
US7961712B2 (en) * 2000-05-08 2011-06-14 Broadcom Corporation System and method for supporting multiple voice channels
US7035248B2 (en) 2000-08-10 2006-04-25 Alcatel Switch with emulation client
GB2368227B (en) * 2000-10-17 2003-12-10 Hewlett Packard Co Contact center
GB2368223B (en) * 2000-10-17 2004-01-07 Hewlett Packard Co Associating parties with communication sessions
US20030023730A1 (en) * 2001-07-27 2003-01-30 Michael Wengrovitz Multiple host arrangement for multimedia sessions using session initiation protocol (SIP) communication
US6909778B2 (en) * 2001-07-27 2005-06-21 Alcatel Enhanced IP phone operation
US7139263B2 (en) * 2001-10-19 2006-11-21 Sentito Networks, Inc. Voice over IP architecture
AU2003256809A1 (en) * 2002-07-26 2004-02-16 Macrohard Corporation Method and system for managing telephony services from an internet client
US20050113108A1 (en) * 2003-11-24 2005-05-26 Kadakia Mitul B. Location-based location service apparatus, and associated method, for routing a call in a telephonic communication system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1889435B (zh) * 2006-07-31 2010-04-14 华为技术有限公司 一种终端和服务器互通的方法和系统
CN103188250A (zh) * 2011-12-31 2013-07-03 北京大唐高鸿软件技术有限公司 基于sip协议的终端设备状态通知及控制方法
CN103905411A (zh) * 2012-12-28 2014-07-02 北京大唐高鸿软件技术有限公司 基于sip的终端控制与状态监控方法
CN103905411B (zh) * 2012-12-28 2019-01-11 北京大唐高鸿软件技术有限公司 基于sip的终端控制与状态监控方法

Also Published As

Publication number Publication date
KR101130398B1 (ko) 2012-07-27
US7940792B2 (en) 2011-05-10
EP1564962A2 (en) 2005-08-17
KR20060041810A (ko) 2006-05-12
US20050174987A1 (en) 2005-08-11
EP1564962A3 (en) 2012-03-28
CN100583882C (zh) 2010-01-20
JP4664084B2 (ja) 2011-04-06
JP2005253064A (ja) 2005-09-15

Similar Documents

Publication Publication Date Title
CN1655553A (zh) 便于第三方呼叫和设备控制的系统和方法
CN1199417C (zh) 多业务通信系统及方法
CN1201533C (zh) 因特网电话网络系统、网络访问方法及通话装置适配器
CN1507725A (zh) 因特网通信系统、因特网通信方法、对话管理服务器、通信适配器、通信中继服务器及程序
CN1794705A (zh) 即时消息用户使用其它即时消息系统聊天室的方法及系统
CN1565105A (zh) 手持无线会议技术
CN1770805A (zh) 计算机辅助管理电话会议的方法以及电话会议服务器装置
CN1147176C (zh) 呼叫控制和载体控制分离的无线网及其中建立呼叫的方法
CN1890944A (zh) 用于web服务中介体的端口类型不可知的代理支持
CN1816053A (zh) 基于会话初始化协议的流媒体直播p2p网络方法
CN101035092A (zh) 信息处理设备、方法、和程序以及存储该程序的记录介质
CN1823347A (zh) 用来提供一种服务的系统和方法
CN1819671A (zh) 关于按键通话发言权和队列信息的方法及其相关装置
CN1801814A (zh) 一种离线消息发送和接收方法
CN1615646A (zh) 通信装置
CN1874328A (zh) 实现业务互通的方法及系统
CN1889742A (zh) 基于设备管理的数据共享方法及其数据备份恢复方法
CN1656482A (zh) 在使用用户档案web门户的电信网中用于服务和应用个性化的方法和装置
CN1893352A (zh) 一种因特网协议多媒体子系统的鉴权方法
CN1868197A (zh) 借助于sip协议的荷载信道变更的信令方法、软件产品和装置
CN1235421C (zh) 智能终端应用协议
CN1859188A (zh) 通信指纹系统及通信指纹采集、管理方法
CN1692612A (zh) 提供集成通讯id的系统和方法
CN1848881A (zh) 通信过程中处理主叫号码显示的实现方法及装置
CN1545303A (zh) 承载和控制相分离的通信网络中多方会议业务的实现方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100120

Termination date: 20130216