CN101616223B - 在软件应用程序中实施分布式语音功能的方法 - Google Patents

在软件应用程序中实施分布式语音功能的方法 Download PDF

Info

Publication number
CN101616223B
CN101616223B CN200910146274.0A CN200910146274A CN101616223B CN 101616223 B CN101616223 B CN 101616223B CN 200910146274 A CN200910146274 A CN 200910146274A CN 101616223 B CN101616223 B CN 101616223B
Authority
CN
China
Prior art keywords
call
phone
service servers
web service
sip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200910146274.0A
Other languages
English (en)
Other versions
CN101616223A (zh
Inventor
萨瓦尔·拉扎
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of CN101616223A publication Critical patent/CN101616223A/zh
Application granted granted Critical
Publication of CN101616223B publication Critical patent/CN101616223B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/0024Services and arrangements where telephone services are combined with data services
    • H04M7/003Click to dial services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • 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/1096Supplementary features, e.g. call forwarding or call holding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/51Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/12Arrangements for interconnection between switching centres for working between exchanges having different types of switching equipment, e.g. power-driven and step by step or decimal and non-decimal
    • H04M7/1205Arrangements for interconnection between switching centres for working between exchanges having different types of switching equipment, e.g. power-driven and step by step or decimal and non-decimal where the types of switching equipement comprises PSTN/ISDN equipment and switching equipment of networks other than PSTN/ISDN, e.g. Internet Protocol networks
    • H04M7/128Details of addressing, directories or routing tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明涉及在软件应用程序中实施分布式语音功能的方法。本发明的系统包括向一个或多个网络服务服务器发出语音功能请求的应用软件。网络服务服务器接收来自应用软件的所述请求。响应于语音功能请求,网络服务服务器选择至少一个请求以执行一个或多个动作从而提供语音功能请求,并向所选择的一个或多个装置发出实施具体化消息以执行这些动作。本发明通过去除实施的复杂性而简化软件应用程序编程员的工作,提供一种符合本发明配置的更为鲁棒性的实施方案,使应用程序编程员无需预先考虑配置变化。

Description

在软件应用程序中实施分布式语音功能的方法
相关申请交叉引用
本申请要求申请于2008年6月27日、名称为“Method For ImplementingDistributed Voice Functions into Software Applications(在软件应用程序中实施分布式语音功能的方法)”的美国临时专利申请序列号61/076,299的优先权,其通过参考被并入本文。
技术领域
总的来说,本发明涉及对集成于软件应用程序中的语音功能的执行进行分布,本发明特别涉及跨越(across)分布式VoIP而实施的语音功能的分配和协调(coordinating)。
背景技术
众多企业已日益普遍地使用嵌入在软件应用程序中的语音特征与客户和软件合作方交互。从来自客户支持的按键讲话网页特征的应用程序到自动约定提醒的应用正影响着VoIP技术。编写这类软件应用程序的程序员精通他们熟悉的应用软件类型,但通常并不擅长于电话协议。
在常用的VoIP配置中,一个企业的多个站点分布在不同位置。站点的规模从只有几个雇员和最小VoIP装置能力的小型网络到大型公司网络,所述大型公司网络例如为有许多雇员且具有能力很强并可能有冗余的VoIP装置的公司总部,其中所述能力很强的VoIP装置用于执行应用程序功能请求。
因此,需要一种系统和方法,将例如来自软件应用程序的高级语音功能请求转换为完成高级请求所需的较低级动作。还希望隐藏执行较低级动作之处的细节,并通过从一组可能的资源中进行选择来提供可用性更强的服务,以实施所请求的功能。
发明内容
基于前述需求,本发明为应用程序编程员提供语音功能,同时隐藏实施细节。对应用程序编程员而言,实施具体化协议(implementation specificprotocol)的细节及确定由哪些组件实施所请求的语音功能的细节是隐藏的。
本发明提供在软件应用程序中实施语音功能的方法和系统。本发明包括由软件应用程序操作的软件,还包括接收执行语音功能的请求并响应于该请求向网络服务服务器发出请求的软件。网络服务服务器确定由哪一个或哪些装置执行一个或多个动作,从而提供所请求的语音功能。
所请求的语音功能可以是在两个或更多指定方之间建立语音呼叫、配置电话设置、读取电话状态以及其它语音功能。网络服务服务器与一个或多个其它网络服务服务器通信,以确定由哪一个或哪些装置执行一个或多个动作,从而提供所请求的语音功能。所述的某个或某些装置至少包括呼叫处理器、会议桥、媒体网关、话机、软电话和语音邮件服务器中的一个或多个。软件可以使用HTTPS协议向网络服务服务器发出请求。
在另一实施例中,本发明提供一种包括编程界面的软件开发工具包,该软件开发工具包提供语音功能、接收语音功能请求的逻辑和响应于该请求来确定由哪一或哪些网络服务服务器发出请求的逻辑。
语音功能请求在两个或更多指定方之间建立语音呼叫。软件开发工具包的软件可以使用HTTPS协议向网络服务服务器发出请求。
在又一实施例中,本发明提供一种语音服务服务器,包括接收语音功能请求的逻辑,并包括响应于语音功能请求来确定由哪一个或哪些装置执行一个或多个动作从而提供语音功能请求的逻辑。语音服务服务器与一个或多个其它网络服务服务器通信,以确定由哪一个或哪些装置执行动作从而提供语音功能请求。
在又一实施例中,本发明提供一种包括应用软件和网络服务服务器的系统,所述应用软件向一个或多个网络服务服务器发出语音功能请求,所述网络服务服务器接收来自应用软件的请求。网络服务服务器响应于所述语音功能请求,确定由哪一个或哪些装置执行一个或多个动作,从而提供语音功能请求。网络服务服务器向所选择的一个或多个装置发出实施具体化消息(implementation specific message)以执行一个或多个动作。
所述系统还可以包括接收实施具体化消息并执行请求动作的装置。网络服务服务器与一个或多个其它网络服务服务器进行通信,以确定由哪一个或哪些装置执行动作从而提供语音功能请求。
VCX SDK提供接受高级语音功能请求并对完成高级请求所需的较低级动作进行协调的软件界面。本发明不仅将高级语音功能请求转换为完成高级请求所需的较低级动作,还隐藏执行较低级动作之处的细节。通过去除实施的复杂性而简化软件应用程序编程员的工作,提供一种符合本发明配置的更为鲁棒性(robust)的实施方案,使应用程序编程员无需预先考虑配置变化。
附图说明
图1是在分布式语音技术实施中利用向语音网络服务器发出的语音功能请求与客户交互的软件应用程序的框图;
图2是相关语音技术实施装置和根据本发明的SDK软件界面的框图;
图3是根据本发明的呼叫控制、电话配置和电话状态的框图;
图4是根据本发明的软件应用程序、语音SDK和网络服务服务器软件的一个方面的流程图;
图5a是根据本发明的示例性呼叫控制请求的示意图;
图5b是对图5a中所示的呼叫控制请求的示例性响应的示意图;
图6是根据本发明的示例性电话配置请求的示意图;
图7是根据本发明的示例性电话状态请求的示意图;以及
图8是根据本发明的应用程序和网络服务服务器之间进行交互的流程图。
具体实施方式
参看图1,位于位置111的软件应用程序110向网络服务服务器(WebServices server)112发出语音功能请求181。网络服务服务器112选择至少一个组件来执行所请求的语音功能,并命令所选组件执行一个或更多语音功能动作184。网络服务服务器112可以与相同站点或其它站点的网络服务服务器122进行通信,以选择至少一个组件来执行语音功能请求。所述通信显示为186,包括请求186a和响应186b。网络服务服务器112可使用与操作状态、装置能力、地理位置和工作载荷分配有关的信息确定应该由哪一或哪些组件执行语音功能请求。在这一或这些组件被选定后,使用实施具体化协议来命令所选组件执行某功能。下面将给出将SIP用作实施具体化协议以命令语音组件执行由软件应用程序请求的语音功能的具体例子。
在该例子中,位于住宅位置131的客户130访问公司xyz的网站来查看在线定单的状态。其定单状态表示定单已递送,但客户130还没有收到物品,于是决定联系客户服务。在xyz的客户服务网页上有标记为“电话联系”的链接。点击该链接,弹出询问客户的电话号码的窗口。客户输入其住宅电话号码。软件应用程序检索客户的电话号码,请求将要由网络服务服务器112执行的语音功能。语音功能请求181会在客户电话139和任何能查看递送状态的待机客户服务人员之间建立呼叫。该请求181由以网络服务服务器112作为目的地的软件应用程序110发出。
网络服务服务器112接收在客户电话139和客户递送维护之间建立呼叫的请求。网络服务服务器112针对所述语音功能请求来提取参数。网络服务服务器112与位置121处的网络服务服务器122进行通信186,以确定在这个时间点上用来联系客户递送维护的电话号码。网络服务服务器122使用装置具体化命令(device specific commands)来登记状态事件,并监控装置可用性和载荷以更新动态装置信息。网络服务服务器122还可以访问与装置有关的其它静态策略性数据(其可以描述装置地址、能力以及任务分配参数和优选项(preferences))。
为了控制电话(又称“关联电话”),网络服务服务器执行以下动作:
1.收集来自用户的以下信息:
-主要VCX系统IP和次要VCX系统IP
-电话号码和关联电话的MAC地址
2.在呼叫处理器上登记
3.调阅(subscribe)呼叫处理器以检索登记了关联电话号码的所有联系方式(登记事件)。处理由呼叫处理器生成的通知消息
4.调阅所接收的所有联系方式以获得每一联系方式的MAC地址(mac地址查询事件,mac-address-query-event)
5.调阅相关电话以得到详细的线路状态信息(线路状态事件)
6.处理从电话处接收的线路状态信息,向电话发送命令以进行呼叫、应答呼叫等
为监控其它电话,网络服务服务器执行以下动作:
1.通过sftp链接来检索本地目录和全局目录,以检索系统上的用户列表
2.对于每个被监控用户,调阅呼叫处理器以检索所有联系方式(登记事件),从而显示用户是否登陆
3.为显示与被监控用户有关的详细信息(全部呼叫列表,用户当前的通话方,被监控用户电话的待接听呼叫或闯入呼叫),调阅呼叫处理器以得到对话信息(对话事件)
4.对于每个被监控用户,调阅每个电话的联系方式(线路状态事件)以显示“不要打扰”状态(启用/禁止),“总是呼叫前转”状态(启用/禁止)等。
在登记和所有调阅过期之前(例如,每小时),网络服务服务器对发送到呼叫处理器和电话的登记和所有调阅进行更新。在关机时,网络服务服务器终止发送到呼叫处理器和电话的登记和所有调阅。
网络服务服务器被配置为VCX系统上的可信端点。网络服务服务器无需经过质疑就可在呼叫处理器上登记。例如,网络服务服务器向寄存器发送以下消息:
      REGISTER sip:152.67.120.165 SIP/2.0
      Vla:SIP/2.0/UDP192.168.3.12:5060;branch=c55c4e41f5d25edada84dd5de
b70875e
From:<sip:remCont1152.67.120.165>;tag=d40ee69daeaaaff9e7072edb2e9d30e
8
      To:<sip:remCont1152.67.120.165>
      Call-ID:36486e115c7813f17d28566516a7af7c192.168.3.260
      CSeq:1REGISTER
      Contact:sip:192.168.3.12:5060
      Expires:3600
      Content-Length:0
为了在用户登陆和退出时检索特定电话号码的联系列表并加以通知,网络服务服务器向呼叫处理器发送对登记(reg)事件的调阅。例如,为了获得用户1000的联系列表,网络服务服务器发送下列调阅消息:
       SUBSCRIBE sip:1000152.67.120.165 SIP/2.0
       Vla:                                                 SIP/2.0/UDP
192.168.3.12:5060;branch=0c9b81e530b620090166a0dbc33913be
       From:
<sip:remCont1152.67.120.165>;tag=cc307b72b8e8d672cef2100755214718
       To:<sip:1000152.67.120.165>
       Call-ID:e3f07a4cbbb34c1d83fa12757467343b192.168.3.12
       CSeq:1 SUBSCRIBE
       Contact:sip:192.168.3.12:5060
       Event:reg
       Expires:3600
       Content-Length:0
所述调阅消息包括以下内容:
-调阅请求,字段(field)必须被设置为该调阅适用的用户
-呈现事件字段并将其设置为‘reg(登记)’
当呼叫处理器接收调阅消息时,如果为该用户登记了一个或多个联系方式,则呼叫处理器会发送带登记联系方式列表的通知(Notify)消息。例如:
       NOTIFY sip:192.168.3.12SIP/2.0
       Vla:SIP/2.0/UDP 152.67.120.165;branch=2435161525
       CSeq:1 NOTIFY
       From:<sip:152.67.120.165>;tag=3fa662921acc
       To:<sip:remCont1152.67.120.165>;tag=11223344-1111-2222-33
       Contact:<sip:3ComCallProcessor152.67.120.165>
       Call-ID:690361689152.104.62.67
       Event:reg
       Subscription-State:active;expires=3600
       Content-Type:appllcation/reginfo+xml
       Content-Length:317
       <xml version=″1.0″><reginfo xmlns=″urn:letf:params:xml:ns:reginfo″
version=″0″state=″partial″>
       <registration aor=1000152.67.120.165 id=″1000152.67.120.165″
state=″active″>
       <contact id=″151.104.62.89″state=″active″
event=″registered″>1000151.104.62.89</contact>
       <contact id=″151.104.61.17″state=″active″
event=″reglstered″>1000151.104.61.17</contact>
       </reglstration></reginfo>
如果呼叫处理器具有针对用户的有效调阅和该用户新的联系方式的登记,则呼叫处理器发送所有有效联系方式的通知消息。如果呼叫处理器具有针对用户的有效调阅,并且如果该登记超时或者用户退出,则呼叫处理器发送包含所有有效联系方式以及未登记或过期(expired)联系方式的通知消息(事件=“过期”)
例如:
NOTIFY sip:remCont1152.67.120.165 SIP/2.0
Vla:SIP/2.0/UDP 152.67.120.165;branch=2435161525
       CSeq:1 NOTIFY
       From:<sip:152.67.120.165>;tag=3fa662921acc
       To:<sip:remCont1152.67.120.165>;tag=11223344-1111-2222-33
       Contact:<sip:3ComCallProcessor152.67.120.165>
       Call-ID:690361689152.104.62.67
       Event:reg
       Subscription-State:active;explres=3600
       Content-Type:application/reginfo+xml
       Content-Length:317
       <xml version=″1.0″><reginfo xmlns=″urn:letf:params:xml:ns:reginfo″
version=″1″state=″partial″>
       <reglstration aor=1000152.67.120.165 id=″1000152.67.120.165″
state=″active″>
       <contact id=″151.104.62.89″state=″active″
event=″registered″>1000151.104.62.89</contact>
       <contact id=″151.104.61.17″state=″terminated″
event=″expired″>1000151.104.61.17</contact>
       </registration></reginfo>
网络服务服务器为mac地址查询事件调阅由呼叫处理器接收的针对关联电话号码的所有有效联系方式。由于以下两种原因这是优选的:
-由于一个电话可在多个地方进行登记,所以网络服务服务器会检索所有登记的联系方式的MAC地址,以便确定用户想要控制的物理电话是哪一个。
-当电话针对mac地址查询事件而具有有效调阅时,该电话将详细线路信息添加到线路状态事件通知消息。
例如:
       SUBSCRIBE sip:1000192.168.3.252 SIP/2.0
       Vla:SIP/2.0/UDP
192.168.3.12:5060;branch=f7edc8ca1f63360a66362feb2da02004
       From:
<sip:remCont1152.67.120.165>;tag=f9ea40b0d39d527c900305fe965dbf08
       To:<sip:1000152.67.120.165>
       Call-ID:2e0496df0b31a9f2a3ef9f71d05b0ab5195.14.163.185
       CSeq:1 SUBSCRIBE
       Contact:sip:192.168.3.12:5060
       Event:mac-address-query-event
       Explres:3600
       Accept:appllcation/mac-address
       Content-Length:0
该电话返回OK确认,然后生成以下通知消息(包含联系方式MAC地址):
例如:
       NOTIFY sip:1000192.168.3.12 SIP/2.0
       Vla:SIP/2.0/UDP
192.168.3.252:5060;branch=f7edc8ca1f63360a66362feb2da02004
       To:
<sip:remCont1152.67.120.165>;tag=f9ea40b0d39d527c900305fe965dbf08
       From:<sip:1000152.67.120.165>
       Call-ID:2e0496df0b31a9f2a3ef9f71d05b0ab5195.14.163.185 CSeq:1
NOTIFY
       Contact:sip:1000192.168.3.12:5060
       Event:mac-address-query-event
       Subscrlption-State:active
       Accept:application/mac-address
       Content-Length:21
       MAC=00:12:33:44:22:12
为了调阅线路状态信息,网络服务服务器向电话发送对线路状态事件(line-status-event)的调阅。
例如:
       SUBSCRIBE sip:1000192.168.3.252 SIP/2.0
       Vla:SIP/2.0/UDP
192.168.3.260:5060;branch=c8c8267effe04fc43c20a52c366ac5af
       From:
<sip:remCont1152.67.120.165>;tag=7b8f07377f9399d6f3a019b2eb2193f9
       To:<sip:1000152.67.120.165>
       Call-ID:f962e9b5d80cf785bd176a60f024811c192.168.3.260 CSeq:9
SUBSCRIBE
       Contact:sip:192.168.3.260:5060
       Event:line-status-event
       Expires:3600
       Accept:application/line-status
       Content-Length:0
电话返回OK确认。
如果电话在网络服务服务器上没有针对mac地址查询事件的有效调阅,则电话生成只包含电话一般状态(空闲、繁忙、dnd状态、消息等待、总是呼叫前转状态、正在进行紧急呼叫)的通知消息。
例如:
       NOTIFY sip:remCont1192.168.3.260 SIP/2.0
       Vla:SIP/2.0/UDP 192.168.3.260:5060
       To:
<sip:remCont1152.67.120.165>;tag=95fd6effa9596d0cbd3727edb6008edf
       From:<sip:1000152.67.120.165>
       Call-ID:f962e9b5d80cf785bd176a60f024811c192.168.3.252
       CSeq:20 NOTIFY
       Contact:<sip:1000192.168.3.252:5060>
       User-Agent:″3Com-SIP-Phone/V7.1.40.40″
           Event:line-status-event
           Subscription-State:activs
           Content-Type:application/line-status
           Content-Length:52
           PHONE=1000152.67.120.165\n
           LINE_STATUS=1
网络服务服务器需要返回OK确认。
LINE_STATUS字段表示电话状态。该字段可以是多个值的组合(例如,如果启动“不要打扰”且用户正在打电话,则LINE_STATUS的值为3)。
LINE_IDLE=0            //Idie
LINE_OFF_HOOK=1,      //Off hook(or line in use)
LINE_DND=2,           //DND enabled
LINE_MWI=4,           //Message waiting
LINE_CFWD=8,  //Call forward universal enabled
LINE_EMER=16   //Emergency call in progress
如果电话针对mac地址查询事件具有来自网络服务服务器的有效调阅,则电话生成xml格式的通知消息,所述通知消息包含电话一般状态以及详细线路状态信息。
除以下情况之外,线路通知的XML是基于(based off)rfc 4235的:
-Added line=<line#>in the dialog info
-Added remote=<phone#of remote>in dialog id
-Proceedlng state is not reported.
-Additional information for transfer/conference/park is specific to 3com
例如:
       NOTIFY sip:remCont1192.168.3.252 SIP/2.0
       v:SIP/2.0/UDP 192.168.3.260:5060
       t:
<sip:remCont1152.67.120.165>;tag=95fd6effa9596d0cbd3727edb6008edf
       f:<sip:1000152.67.120.165>
       i:f962e9b5d80cf785bd176a60f024811c192.168.3.260
       CSeq:20 NOTIFY
       m:<sip:1000192.168.3.160:5060>
       User-Agent:″3Com-SIP-Phone/V7.1.40.40″
       Event:line-status-event
       Subscrlption-State:active
       c:application/line-status
       l:1040
       PHONE=1000152.67.120.165
       LINE_STATUS=1
       <?xml version=″1.0″?>
       <sip-line-state>
       <dialog-info xmlns=″urn:letf:params:xml:ns:dialog-info″
              version=″0″state=″full″
       entity=″1000152.67.120.165″line=″1″>
       <dialog id=ea939898-01d6-0192-16ed-
00e0bb139b5a192.168.3.160
       call-id=ea939898-01d6-0192-16ed-00e0bb139b5a192.168.3.160
       local-tag=″ea939898-01d6-0192-16ec-00e0bb139b5a″
       remote-tag=″87cc78c″
       direction=″inltiator″remote=″1001″remote_name=″user1001″>
       <state>confirmed</state>
       <substate>hold</substate>
       </dialog>
</dialog-info>
<dialog-info xmlns=″urn:letf:params:xml:ns:dialog-info″
       version=″0″state=″full″
       entity=″1000152.67.120.165″line=″2″>
       <dialog id=eec92bf8-01d6-0192-16ef-
00e0bb139b5a192.168.3.160
       call-id=eec92bf8-01d6-0192-16ef-00e0bb139b5a192.168.3.160
       local-tag=″eec92bf8-01d6-0192-16ee-00e0bb139b5a″
           remote-tag=″aa0acca4″
       direction=″initiator″remote=″1002″remote_name=″user1002″>
<state>confirmed</state>
       </dialog>
</dialog-info>
</sip-line-state>
网络服务服务器122以客户支持呼叫中心151处的电话159的号码进行响应。网络服务服务器112在接收来自网络服务服务器122的客户支持呼叫中心电话号码后,根据客户电话139和客户支持电话159的位置,确定在位置141处的呼叫处理器144将建立呼叫。
网络服务服务器112给位置141处的呼叫处理器(语音装置)144发命令184,要求该呼叫处理器在客户位置131处的客户130和呼叫中心位置151处的呼叫中心人员150之间建立呼叫,其中所述客户130的电话号码输入至客户服务网页。呼叫处理器144在位置151处的呼叫中心以太网电话159和网关(GM)146之间通过因特网建立呼叫,而来自网关(GM)146的电话呼叫通过PSTN被传送至位置131处的客户电话139。由这些指令产生的电话呼叫以虚线188显示。该呼叫是使用发送到呼叫中心电话159的SIP消息(消息185)和发送到网关(GM)146的其它SIP消息(消息186)建立的。该网关还受命通过PSTN将VoIP包中继至客户。
在一个实施例中,网络服务服务器112命令呼叫处理器144生成发送到网关146的SIP INVITE消息,以通过PSTN 170建立到客户电话139的呼叫,在客户130接听时,呼叫处理器144会代表客户电话生成第二INVITE,以发送到位置151处的呼叫中心以太网电话159。在另一实施例中,网络服务服务器112向位置151处的呼叫中心以太网电话159发出一连串的命令,以模仿用户拨打客户电话号码的动作。位置151处的呼叫中心以太网电话159可以验证网络服务服务器112是否被授权在呼叫中心以太网电话上有用户模仿特权。之后,被拨打的号码由呼叫处理器144通过网关146和PSTN 170路由到用户电话。
参见图2,其示出安装有语音服务软件开发人员工具包(SDK)214的软件应用程序210。SDK是提供给软件应用程序开发人员的软件,且SDK被链接在由应用程序开发人员创建的应用程序代码中或以其它方式与应用程序代码关联,以在应用程序中加入语音服务。SDK向软件应用程序提供应用程序界面(API)212。该语音服务API是以“WSDL”文档形式的网络服务来发布的。该文档用作编程界面,应用程序编程员通过该编程界面可将语音系统组件(如3Com公司的VCXTM系统)集成到其应用程序。API与平台无关(neutral)(例如是基于XML的平台)、其编程语言不用明确(agnostic)、其允许跨越(across)存留的(legacy)应用程序和新的应用程序而集成。应用程序编程员决定如何将提供给嵌入式语音服务的API更好地用于软件环境中。
程序界面212提供功能呼叫以执行语音功能请求。SDK接收这些语音功能请求,并且要么使用诸如SOAP,XML和HTTPS/SSL之类的协议通过界面280将这些请求传递给网络服务服务器240,要么提供网络服务服务器功能并将语音协议具体化命令(voice protocol specific commands)发给语音系统组件250,从而提供所请求的语音服务。语音具体化命令(voice specificcommands)(例如使用SIP协议)通过界面270而从网络服务服务器240和语音系统组件250发出。
参见图3,SDK 214包含呼叫控制功能321、电话配置功能322和电话状态功能323。呼叫控制功能321所使用的参数是SecurityData(加密数据)和CallControlActionType(呼叫控制动作类型)。XML有效载荷(payload)的SecurityData部分包含身份标记和认证标记。在网络服务请求被执行之前,利用API的软件应用程序必须将其证明符(credential)出示给呼叫控制装置(作为已经定义的SecurityData结构的一部分)。语音呼叫控制动作的例子有:进行呼叫、保持呼叫、断开呼叫、转移呼叫以及给电话会议增加参与方。呼叫控制动作‘进行呼叫’的方法使呼叫能够试图从“源”电话到达“目的”电话。源电话(发起者)例如是连接到3Com公司的VCXTM系统的手机。目的电话可以是任何电话(IP/PSTN)端点(图5a中给出一个例子,其响应在图5b中给出)。呼叫控制动作“断开呼叫”会断开“源”分机处正在进行的呼叫。呼叫控制动作“保持呼叫”方法会保持在“源”分机处正在进行的呼叫。呼叫控制动作‘电话会议’使用VCX会议特征来给正在进行的呼叫增加另一参与方。呼叫控制动作‘转移呼叫’使已建立的呼叫从一个电话转移到另一个电话。
电话配置功能所使用的参数是SecurityData和PhoneConfigActionType。XML载荷的SecurityData部分包含身份标记和认证标记。在网络服务请求被准许之前,利用API的软件的应用程序将其证明符出示给呼叫控制装置(作为定义的SecurityData结构的一部分)。电话配置动作的例子有:‘设置不要打扰’和切换此特征的‘不设置不要打扰’(示于图6中的例子),它们表示来电呼叫时是否让电话响铃。如果设置为‘不要打扰’(DND),则电话不会响铃,但可以提供可视警报和呼叫信息,以便用户根据需要来应答该呼叫。另一例子是设置‘发送到V-mail’和切换(toggle)该设置(即,将来电呼叫发送到语音邮件的设置)的‘不设置发送到V-mail’。‘遇忙呼叫前转(Call Forward Busy)’、‘响铃无应答呼叫前转(Call Forward Ring NoAnswer)’、‘总是呼叫前转(Call Forward Universal)’控制呼叫前转的特征,‘遇忙呼叫前转’在线路繁忙时改变呼叫被前转的目标号码,‘响铃无应答呼叫前转’在指定的响铃次数后线路无应答时改变呼叫被前转的目标号码,‘总是呼叫前转’将所有的来电呼叫前转至另一号码。该特征覆盖了‘遇忙呼叫前转’和‘响铃无应答呼叫前转’。‘查寻组(huntgroup)登录’和‘查寻组退出’控制查询组中的电话成员。查询组的提供是用来帮助管理境内呼叫。查询组将呼叫指向被标识为查询组成员的特定用户。‘静音电话’功能切换“源”电话上的静音设置。
电话状态功能所使用的参数是SecurityData和PhoneStatusActionType。XML载荷的SecurityData部分包含身份标记和认证标记。在网络服务请求被执行之前,利用API的软件应用程序将其证明符出示给呼叫控制装置(作为定义的SecurityData结构的一部分)。‘电话状态动作’规定正被读取的状态。这些动作的例子将在下文进行描述(图7中所示的例子)。‘获得电话状态(Get Phone State)’允许编程查找分机的当前呼叫状态。如果正在进行多个呼叫,则对它们全部进行报告。对以下呼叫状态进行报告:呼叫发起(Call originated)、呼叫到达(Call Delivered)、呼叫建立(Call Established),呼叫保持(Call Hold)和连接清除(Connection Cleared)。‘获得不要打扰(DND)状态’允许编程查找用户电话的DND状态。‘获得前转邮件至V-mail状态’提供编程查找用户电话的前转邮件状态。‘获得总是呼叫前转(CFU)状态’提供编程查找用户电话的CFU状态。‘获得遇忙呼叫前转(CFB)状态’提供编程查找用户电话的CFB状态。‘获得响铃无应答呼叫前转(CFRNA)状态’提供编程查找用户电话的CFRNA状态。
提供给应用程序编程员的SDK包括与语音组件(如呼叫处理器和桌面话机)交互的范例性(sample)应用程序,且该范例性应用程序是全功能性应用程序。这些例子为不熟悉语音系统组件的开发人员提供使用时的范例性用法和模式。范例性应用程序包括:源代码,其格式和注释可以使开发人员很容易地学习VCX API;构建文件和项目文件,使开发人员能够用所提供的指令来构建、编译和运行范例性应用程序;代码结构的走查(walkthrough),其呈文本文件格式;以及运行应用程序,包括能够利用其它哪些语音系统组件(电话,服务器等)来充分利用范例性应用程序的指令。
参见图4,其示出的流程图显示如图1中描述的软件应用程序210和网络服务服务器112的一个方面。其它网络应用程序软件401表示在xyz的客户服务网页上运行的软件应用程序210中的软件,但并不是理解该发明所必需的。如上文关于图1的描述一样,在xyz的客户服务网页上有标记为“电话联系”的链接,点击该链接,弹出询问客户的电话号码的窗口。再参考图4,客户随后输入其住宅电话号码。在步骤403调用电话联系而弹出屏幕例程,在步骤405显示弹出窗口,在步骤407等待用户输入。用户一旦输入其电话号码,软件前进到步骤409,在步骤409从用户的输入中读取电话号码。
在步骤411,软件应用程序调用SDK呼叫控制功能,以将用户电话和客户递送维护之间的呼叫设置为查询组号码(图5a中给出的例子)。SDK通过界面280向网络服务服务器112发出请求。网络服务服务器112在步骤421启动。在步骤423,网络服务服务器确定所请求的服务类型。如果服务类型不是‘呼叫控制’,则步骤425使用未示出的其它软件。如果服务类型是‘呼叫控制’,则在步骤427提取参数。调用Actionsneeded()例程以确定是否选定了将执行请求的一组动作和执行所述动作的装置。Actionsneeded()例程的更多细节在图8中示出。在这种情况下,通过在步骤431向语音装置发送实施具体化协议消息(implementation specific protocol messages)来实施每一动作。所述实施具体化消息是通过界面270发出的。
在一个实施例中,网络服务服务器112命令呼叫处理器144来生成SIPINVITE消息以发送至网关146,从而通过PSTN 170建立对客户电话139的呼叫。该呼叫一旦被客户130接听,呼叫处理器144生成第二INVITE以发送至位置151处的呼叫中心以太网电话159。可选地,Actionsneeded()例程428还可以选择动作列表,以模拟用户拨打客户电话号码的动作,其中该动作列表向位置151处的呼叫中心以太网电话159发出一系列命令。可以基于经配置的策略(policy)数据或基于提供专有解决方案的装置的属性来做出这个决定。位置151处的呼叫中心以太网电话159可以验证网络服务服务器112是否被授权使用呼叫中心以太网电话上的专有用户模拟特权。在网络服务服务器112使用逐键命令式方法(key by key commend method)远距离拨号后,被拨打号码被呼叫处理器144经由网关146和PSTN 170路由到客户电话。
在步骤433检查该尝试动作是否成功。如果动作成功,则在步骤435将状态设置为成功,并返回步骤429以查看是否需要更多的动作,在所有动作都完成时,在步骤439返回成功状态(示例性消息在图5b中示出)。如果动作不成功,则在步骤437将状态设置为错误,在步骤439发送响应,以表示失败和所请求的动作没有完成。
参见图8,Actionsneeded()例程428在步骤802开始,并检查传递的参数,以确定所需装置是在该网络服务器112的本地控制之下还是在另一网络服务器的控制之下。这个决定是在步骤804做出的。如果装置不在本地控制之下,则在步骤803确定具有控制权的网络服务器。网络服务器112与网络服务器122进行通信,网络服务器122具有对呼叫中心装置的控制权,并可以确定递送查询组中的哪个电话应该用来处理该呼叫。在步骤822中,在网络服务器122上运行的软件820接收通信请求186a。
在步骤824中,对与可用来完成动作的装置或装置组有关的静态策略数据进行检索和读取。在步骤826检索和读取有关装置或装置组的最新状态信息。基于所读取的策略数据和状态数据,在步骤828选定执行动作的装置。在步骤830,于响应186b中传回所选择的装置和相关策略数据。在步骤808,网络服务器112接收响应186b,并继续构建动作列表。利用指定协议,在参数(如电话号码)中传递的所选装置列表、策略信息以及其它信息被用来构建装置具体动作的列表。在步骤810返回该列表以结束图4的步骤428,其中在步骤428中使用指定协议将动作请求发送给所选装置。
尽管只讨论了本发明的一些示例性实施例,但应理解本领域普通技术人员在参考本文的描述后会明白其显然可以有各种变型。所有这些变型都在如随附权利要求所包括的精神和范围之内。

Claims (1)

1.一种包括应用软件和网络服务服务器的系统,该应用软件向一个或多个网络服务服务器发出至少一个语音功能请求,其中网络服务服务器:
接收来自所述应用软件的请求,
响应于所述语音功能请求,使用与操作状态、装置能力、地理位置和工作载荷分配有关的信息来选择一个或多个装置执行所述语音功能请求,
向所选择的一个或多个装置发出实施具体化消息以执行所述语音功能请求,
通过sftp链接来检索本地和全局目录,以检索系统上的用户列表,
对于多个被监控用户中的每一个,调阅呼叫处理器以检索所有登记事件,从而显示用户是否登陆,
为显示与被监控用户有关的详细信息,调阅呼叫处理器以得到对话信息;
对于多个被监控用户中的每一个,调阅每个电话的线路状态事件以显示其状态。
CN200910146274.0A 2008-06-27 2009-06-26 在软件应用程序中实施分布式语音功能的方法 Active CN101616223B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US7629908P 2008-06-27 2008-06-27
US61/076,299 2008-06-27

Publications (2)

Publication Number Publication Date
CN101616223A CN101616223A (zh) 2009-12-30
CN101616223B true CN101616223B (zh) 2015-01-28

Family

ID=41447330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910146274.0A Active CN101616223B (zh) 2008-06-27 2009-06-26 在软件应用程序中实施分布式语音功能的方法

Country Status (2)

Country Link
US (1) US8416766B2 (zh)
CN (1) CN101616223B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9992334B2 (en) * 2011-10-13 2018-06-05 Nuance Communications, Inc. Multi-modal customer care system
US9553935B2 (en) * 2012-09-29 2017-01-24 Oracle International Corporation Mechanism for configuring service endpoints in native client applications at runtime
EP2787696B1 (en) 2012-11-15 2016-10-26 Huawei Device Co., Ltd. Method and device for transferring web real-time communication session
US9318128B1 (en) 2013-01-08 2016-04-19 Google Inc. Methods and systems for determining instructions for applications that are recognizable by a voice interface
CN105208014B (zh) 2015-08-31 2018-09-25 腾讯科技(深圳)有限公司 一种语音通信处理方法、电子设备及系统
CN107295019A (zh) * 2017-08-14 2017-10-24 携程旅游网络技术(上海)有限公司 基于浏览器扩展的分机快速外呼系统及方法
CN108696523B (zh) * 2018-05-14 2021-11-19 平安科技(深圳)有限公司 一种通话服务的响应方法及设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101103612A (zh) * 2005-02-23 2008-01-09 国际商业机器公司 普适设备对网络服务的动态可扩展轻量级接入

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5995608A (en) * 1997-03-28 1999-11-30 Confertech Systems Inc. Method and apparatus for on-demand teleconferencing
US20020150227A1 (en) * 2001-04-12 2002-10-17 Abraham Simon Viruthakulangara Operator-assisted on-line call alerting and call connection service
US7505574B2 (en) * 2004-03-26 2009-03-17 Microsoft Corporation Method and system for providing an improved communications channel for telephone conference initiation and management
US8107495B2 (en) * 2005-05-13 2012-01-31 Yahoo! Inc. Integrating access to audio messages and instant messaging with VOIP
US20070183405A1 (en) * 2006-02-07 2007-08-09 Broadcom Corporation, A California Corporation Distributed server function in a VoIP to telephony bridging network
US8788620B2 (en) * 2007-04-04 2014-07-22 International Business Machines Corporation Web service support for a multimodal client processing a multimodal application

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101103612A (zh) * 2005-02-23 2008-01-09 国际商业机器公司 普适设备对网络服务的动态可扩展轻量级接入

Also Published As

Publication number Publication date
US20090323675A1 (en) 2009-12-31
CN101616223A (zh) 2009-12-30
US8416766B2 (en) 2013-04-09

Similar Documents

Publication Publication Date Title
CN101616223B (zh) 在软件应用程序中实施分布式语音功能的方法
EP1652359B1 (en) Method and system for suppressing early media in a communications network
RU2499359C2 (ru) Управляемое клиентом динамическое перенаправление вызова
CN101515949B (zh) 便于用户设备间会话转移的方法和系统
US7277697B2 (en) Method and system for establishing a teleconference over a telephony network
TW518849B (en) System controlling use of a communication channel
US9065912B2 (en) Conveying textual content from interactive systems to IP clients
CN101262527B (zh) 使用智能端点提供电话服务
US7801294B2 (en) System and method for resuming automatic advance calling to contacts
US20060217133A1 (en) Multi-modal call management
CN101877748A (zh) 用于拉取呼叫的方法和系统
JP2007533231A (ja) 通話管理サービス
US20020031207A1 (en) User editable database to forward communications sent to an unified assess number to caller-specific destinations
KR20080024515A (ko) 전화 통화 링백 기간 동안 프레즌스 정보 어나운싱하기
WO2007007090A1 (en) Apparatus and system for recording communications
US8199763B2 (en) Universal internet telephone system
EP1247387B1 (en) Improved session initiation protocol (sip)
US9154633B2 (en) Data communication
CN100511205C (zh) 用于提供代理服务器功能的方法和系统
CN102333165A (zh) 用于标记呼出电话呼叫的方法和装置
JP5170224B2 (ja) 電話転送システム及び方法
JP2018201200A (ja) 単一の記録アドレスを有する複数のデバイスのコンピュータ電話統合(cti)制御
US9042528B2 (en) Data communication
US20060128388A1 (en) Apparatus and method for easily restoring a connection to a telephone
CN100428230C (zh) 用于提供电信服务的电话设备、系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: HEWLETT-PACKARD CO. (US) P.O. BOX 10301, PALO ALTO

Free format text: FORMER OWNER: 3 COM CORP.

Effective date: 20110617

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: MASSACHUSETTS, THE USA TO: CALIFORNIA, THE USA

TA01 Transfer of patent application right

Effective date of registration: 20110617

Address after: California, USA

Applicant after: Hewlett-Packard Co.

Address before: Massachusetts, USA

Applicant before: 3com Corp.

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151103

Address after: Texas, USA

Patentee after: HEWLETT-PACKARD DEVELOPMENT Co.,L.P.

Address before: California, USA

Patentee before: Hewlett-Packard Co.

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20170204

Address after: Texas, USA

Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

Address before: Texas, USA

Patentee before: HEWLETT-PACKARD DEVELOPMENT Co.,L.P.