本发明涉及通信领域,尤其涉及一种软交换平台中电话通话的监控方法、系统、设备及介质。
背景技术:
现阶段软交换话务统计的一般方式是通过交换机的业务模块进行统计通话的话务数据(主叫信息、被叫信息、通话信息等),在通话结束后将话务数据报告给交换机的话务统计模块;话务统计模块进行登记话务统计任务,对上述的话务数作为据统计参数进行匹配及处理。
随着电话软交换技术逐渐精细化,对话务数据等电话通话过程的实时获取的要求越来越高,而上述话务数据等电话通话过程的监控方法显然无法满足对电话通话过程实时准确监控的目的。
技术实现要素:
本发明要解决的技术问题是为了克服现有技术中软交换平台中无法满足对电话通话的过程的实时准确监控的缺陷,提供一种软交换平台中电话通话的监控方法、系统、设备及介质。
本发明是通过下述技术方案来解决上述技术问题:
一种软交换平台中电话通话的监控方法,所述软交换平台中电话通话的监控方法包括:
创建客户端对象;
将所述客户端对象与电话软交换平台建立网络连接;
利用所述客户端对象监听所述电话通话的通话事件,所述通话事件由所述电话软交换平台产生;
所述客户端对象根据所述通话事件监控所述电话通话的过程。
优选地,所述客户端对象根据所述通话事件监控所述电话通话的过程的步骤包括:
所述客户端对象根据所述通话事件生成话务数据。
优选地,所述客户端对象根据所述通话事件监控所述电话通话的过程的步骤还包括:
所述客户端对象根据所述通话事件生成提示信息并显示;
所述客户端对象接受输入信息,并发送所述输入信息至所述电话软交换平台。
优选地,所述输入信息包括外呼、接听、拒接、挂断、保持、取消保持、转接、dtmf(双音多频)中的至少一种。
优选地,所述通话事件包括主叫事件、被叫事件、电话保持事件、转接事件、挂断事件中的至少一种。
一种软交换平台中电话通话的监控系统,所述软交换平台中电话通话的监控系统包括创建模块、连接模块、监听模块和监控模块;
所述创建模块用于创建客户端对象;
所述连接模块用于将所述客户端对象与电话软交换平台建立网络连接;
所述监听模块用于利用所述客户端对象监听所述电话通话的通话事件,所述通话事件由所述电话软交换平台产生;
所述监控模块用于利用所述客户端对象根据所述通话事件监控所述电话通话的过程。
优选地,所述监控模块还用于所述客户端对象根据所述通话事件生成话务数据。
优选地,所述监控模块还用于利用所述客户端对象根据所述通话事件生成提示信息并显示,还用于利用所述客户端对象接受输入信息,并发送所述输入信息至所述电话软交换平台。
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上所述的软交换平台中电话通话的监控方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的软交换平台中电话通话的监控方法的步骤。
本发明的积极进步效果在于:
本发明通过利用创建的客户端对象对电话软交换平台进行通话事件监听的手段可实时监控电话通话的过程,并利用客户端对象根据通话事件监控电话通话的过程,可实现准确、高效、实时地监控软交换平台中电话通话过程。
附图说明
图1为本发明的实施例1的软交换平台中电话通话的监控方法的流程图。
图2为为本发明的实施例1的软交换平台中电话通话的监控方法的步骤14的流程图。
图3为本发明的实施例2的软交换平台中电话通话的监控系统的模块示意图。
图4为本发明的实施例3提供的一种电子设备的结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本实施例提供一种软交换平台中电话通话的监控方法,如图1所示,软交换平台中电话通话的监控方法包括:
步骤11:创建客户端对象;
步骤12:将客户端对象与电话软交换平台建立网络连接;
步骤13:利用客户端对象监听电话通话的通话事件,通话事件由电话软交换平台产生。
步骤14:客户端对象根据通话事件监控电话通话的过程。
步骤14包括:
步骤141、客户端对象根据通话事件生成话务数据。
本实施例通过对电话通话的通话事件进行监听的方式,代替了原来的话务统计模块,提高了数据处理效率及准确率,并能实现实时获取通话数据的目的。
步骤142、客户端对象根据通话事件生成提示信息并显示给用户。
通话事件包括主叫事件、被叫事件、电话保持事件、转接事件、挂断事件中的至少一种。
步骤143、客户端对象接受用户的输入信息,并发送输入信息至电话软交换平台。
客户端对象可通过利用网页端的方式,实现人机界面的显示,对电话通话的过程进行可视化控制管理。在网页端界面上,用户可输入信息以对通话过程进行复好样的通话功能控制,以进行不同的通话操作,输入信息包括外呼、接听、拒接、挂断、保持、取消保持、转接、dtmf中的至少一种,以进行对应的电话外呼操作、电话接听操作、电话拒接操作、电话挂断操作、电话保持操作、电话转接操作和dtmf操作等操作。
现阶段主流电话软交换平台的解决方案多以freeswitch(一种电话软交换平台)为主,本实施例以freeswitch为例进行具体阐述。
如下所示客户端对象(client对象)创建连接后,添加通话事件的监听类(esleventlistenerimpl),在函数seteventsubscriptions中定义所要监听的通话事件的返回数据的类型为“plain”(一种数据格式),在函数addeventfilter中根据通话事件的名称,对应添加需要监听的通话事件。
通话事件的监听类(esleventlistenerimpl)需实现iesleventlistener接口,重写方法eventreceived和backgroundjobresultreceived。其中eventreceived方法可以监听到除异步指令事件以外的所有添加到监听列表的事件,而异步指令事件在方法backgroundjobresultreceived中监听。在这两个方法中可以实现对监听到的通话事件进行处理,比如进行数据获取分析。
在新通话发起呼叫至通话结束的过程中,freeswitch会产生如下通话事件:
主叫创建事件channel_create、被叫创建事件channel_create,主叫应答事件channel_answer、被叫应答事件channel_answer、呼叫保持事件channel_hold事件、取消呼叫保持事件channel_unhold、主叫挂断事件channel_hangup_complete、被叫挂断事件channel_hangup_complete、转接挂断事件channel_hangup_complete、被转接创建事件channel_create、被转接应答事件channel_answer等。
通过对应的事件名进行区分各个不同的通话事件,然后分别对各个通话事件进行对应的处理。
比如以下代码中:
通过利用heartbeat、channel_create、channel_answer等不同的通话事件名,以对应处理不同的通话事件。
在处理监听到的通话事件时,需要注意的是,同一个通话行为对应的通话事件有可能会监听到两次,有的通话事件只会监听一次,这是由于通话行为的特殊性决定,通话行为是由多个频道(channel)所组成,例如最常见的呼叫接听行为就是由双频道组成,一个主叫频道一个被叫频道,所以像channel_create频道创建事件会在几种场景中被监听到:1)发起呼叫时,主叫频道的创建,2)发起呼叫时,被叫频道的创建,3)发起转接时,被转接方的频道创建。几种情况下的创建事件都需要监听,在处理时需要分别处理主、被叫的数据信息。
channel_answer频道的通话应答事件会在主叫方发起呼叫被叫方接听时触发(类似的,转接时的通话应答实际上是被转接方被呼叫了),由于通话在此事件中连接成功,因此也可以在这里发起实现录音功能,即进行实时数据的统计处理功能。
channel_hold以及channel_unhold呼叫保持/取消保持事件是单频道触发事件,只会影响当前操作频道的通话状态。
channel_hangup_complete通话挂断事件会在通话结束或通话建立失败时触发。在监听的通话事件中可以通过map<string,string>header=event.geteventheaders();stringchanneluid=header.get("caller-unique-id")的方式获取需要实时统计的话务数据。
还可通过在通话事件中,实时获取其他通话数据,如主被叫号码、通话起止时间、通话时长、录音文件、挂断原因等信息的实时获取,提高了实时监控各种通话数据的效率,满足不同情况下的用户需求。
除了上述几种比较常用的通话事件,还有其他事件可以根据实际需求自定义实现监听控制,原理类似,事件监听内容有很高的拓展性,其他事件内容在此不再赘述。
在对通话事件进行监听的过程中,客户端对象还可以根据通话事件生成提示信息并通过人机界面显示给用户,以供用户进行查看,并还可以接收用户的反馈操作以对通话过程进行控制。
客户端对象通过调用函数client.sendsyncapicommand()方法向freeswitch系统发送同步实时命令,常见的通话操作包括外呼、接听、拒接、挂断、保持、取消保持、转接、dtmf等操作。
外呼:呼叫操作是异步操作,调用函数client.sendasyncapicommand()方法实现,命令使用originateuser/810002&bridge(user/810008)实现,originate命令的发起方为freeswitch系统,在通话时,通话的两端都会显示为被叫并响铃,可通过自动接听的方式进行主叫接听,将主叫显示为呼叫等待的状态。
人机界面上的具体可视化页面可与手机通话界面类似,包括拨号、振铃、通话、保持、转接、dtmf、状态切换/自动应答、通话记录、通讯录页面等界面。
客户端对象的人机界面管理与以实体话机为载体的方式实现通话的控制管理相比,人机界面管理的服务方式可供用户将所有控制操作在电脑网页端进行操作,有效提高外呼以及接听的效率,例如在拨号时可以直接拷贝输入,避免在实体话机上需要依次输入号码,输入慢且容易出错的问题,也可以自定义电话功能如自动接听功能,可有效减少客户等待时间,通讯录功能点击列表中的号码自动填入拨号页面,实现快速外呼或转接功能,实现状态切换管理功能,也可自定制通话记录数据等功能。
实施例2
本实施例提供一种软交换平台中电话通话的监控系统,如图3所示,软交换平台中电话通话的监控系统包括创建模块21、连接模块22、监听模块23和监控模块24。
创建模块21用于创建客户端对象;
连接模块22用于将客户端对象与电话软交换平台建立网络连接;
监听模块23用于利用客户端对象监听电话通话的通话事件,通话事件由电话软交换平台产生。
本实施例通过对电话通话的通话事件进行监听的方式,代替了原来的话务统计模块,提高了数据处理效率及准确率,并能实现实时获取通话数据的目的。
监控模块24用于利用客户端对象根据通话事件监控电话通话的过程。
监控模块24还用于客户端对象根据通话事件生成话务数据。
通话事件包括主叫事件、被叫事件、电话保持事件、转接事件、挂断事件中的至少一种。
监控模块24还用于利用客户端对象根据通话事件生成提示信息并显示,以及还用于利用客户端对象接受用户的输入信息,并发送输入信息至电话软交换平台。
客户端对象可通过利用网页端的方式,实现人机界面的显示,对电话通话的过程进行可视化控制管理。在网页端界面上,用户可输入信息以对通话过程进行复好样的通话功能控制,以进行不同的通话操作,输入信息包括外呼、接听、拒接、挂断、保持、取消保持、转接、dtmf中的至少一种,以进行对应的电话外呼操作、电话接听操作、电话拒接操作、电话挂断操作、电话保持操作、电话转接操作和dtmf操作等操作。
现阶段主流电话软交换平台的解决方案多以freeswitch(一种电话软交换平台)为主,本实施例以freeswitch为例进行具体阐述。
如下所示客户端对象(client对象)创建连接后,添加通话事件的监听类(esleventlistenerimpl),在函数seteventsubscriptions中定义所要监听的通话事件的返回数据的类型为“plain”,在函数addeventfilter中根据通话事件的名称,对应添加需要监听的通话事件。
通话事件的监听类(esleventlistenerimpl)需实现iesleventlistener接口,重写方法eventreceived和backgroundjobresultreceived。其中eventreceived方法可以监听到除异步指令事件以外的所有添加到监听列表的事件,而异步指令事件在方法backgroundjobresultreceived中监听。在这两个方法中可以实现对监听到的通话事件进行处理,比如进行数据获取分析。
在新通话发起呼叫至通话结束的过程中,freeswitch会产生如下通话事件:
主叫创建事件channel_create、被叫创建事件channel_create,主叫应答事件channel_answer、被叫应答事件channel_answer、呼叫保持事件channel_hold事件、取消呼叫保持事件channel_unhold、主叫挂断事件channel_hangup_complete、被叫挂断事件channel_hangup_complete、转接挂断事件channel_hangup_complete、被转接创建事件channel_create、被转接应答事件channel_answer等。
通过对应的事件名进行区分各个不同的通话事件,然后分别对各个通话事件进行对应的处理。
比如以下代码中:
通过利用heartbeat、channel_create、channel_answer等不同的通话事件名,以对应处理不同的通话事件。
在处理监听到的通话事件时,需要注意的是,同一个通话行为对应的通话事件有可能会监听到两次,有的通话事件只会监听一次,这是由于通话行为的特殊性决定,通话行为是由多个频道(channel)所组成,例如最常见的呼叫接听行为就是由双频道组成,一个主叫频道一个被叫频道,所以像channel_create频道创建事件会在几种场景中被监听到:1)发起呼叫时,主叫频道的创建,2)发起呼叫时,被叫频道的创建,3)发起转接时,被转接方的频道创建。几种情况下的创建事件都需要监听,在处理时需要分别处理主、被叫的数据信息。
channel_answer频道的通话应答事件会在主叫方发起呼叫被叫方接听时触发(类似的,转接时的通话应答实际上是被转接方被呼叫了),由于通话在此事件中连接成功,因此也可以在这里发起实现录音功能,即进行实时数据的统计处理功能。
channel_hold以及channel_unhold呼叫保持/取消保持事件是单频道触发事件,只会影响当前操作频道的通话状态。
channel_hangup_complete通话挂断事件会在通话结束或通话建立失败时触发。在监听的通话事件中可以通过map<string,string>header=event.geteventheaders();stringchanneluid=header.get("caller-unique-id")的方式获取需要实时统计的话务数据。
还可通过在通话事件中,实时获取其他通话数据,如主被叫号码、通话起止时间、通话时长、录音文件、挂断原因等信息的实时获取,提高了实时监控各种通话数据的效率,满足不同情况下的用户需求。
除了上述几种比较常用的通话事件,还有其他事件可以根据实际需求自定义实现监听控制,原理类似,事件监听内容有很高的拓展性,其他事件内容在此不再赘述。
在对通话事件进行监听的过程中,客户端对象还可以根据通话事件生成提示信息并通过人机界面显示给用户,以供用户进行查看,并还可以接收用户的反馈操作以对通话过程进行控制。
客户端对象通过调用函数client.sendsyncapicommand()方法向freeswitch系统发送同步实时命令,常见的通话操作包括外呼、接听、拒接、挂断、保持、取消保持、转接、dtmf等操作。
外呼:呼叫操作是异步操作,调用函数client.sendasyncapicommand()方法实现,命令使用originateuser/810002&bridge(user/810008)实现,originate命令的发起方为freeswitch系统,在通话时,通话的两端都会显示为被叫并响铃,可通过自动接听的方式进行主叫接听,将主叫显示为呼叫等待的状态。
人机界面上的具体可视化页面可与手机通话界面类似,包括拨号、振铃、通话、保持、转接、dtmf、状态切换/自动应答、通话记录、通讯录页面等界面。
客户端对象的人机界面与以实体话机为载体的方式实现通话的控制管理相比,人机界面管理的服务方式可供用户将所有控制操作在电脑网页端进行操作,有效提高外呼以及接听的效率,例如在拨号时可以直接拷贝输入,避免在实体话机上需要依次输入号码,输入慢且容易出错的问题,也可以自定义电话功能如自动接听功能,可有效减少客户等待时间,通讯录功能点击列表中的号码自动填入拨号页面,实现快速外呼或转接功能,实现状态切换管理功能,也可自定制通话记录数据等功能。
实施例3
图4为本发明实施例3提供的一种电子设备的结构示意图。电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现实施例1的软交换平台中电话通话的监控方法。图4显示的电子设备50仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,电子设备50可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备50的组件可以包括但不限于:上述至少一个处理器51、上述至少一个存储器52、连接不同系统组件(包括存储器52和处理器51)的总线53。
总线53包括数据总线、地址总线和控制总线。
存储器52可以包括易失性存储器,例如随机存取存储器(ram)521和/或高速缓存存储器522,还可以进一步包括只读存储器(rom)523。
存储器52还可以包括具有一组(至少一个)程序模块524的程序/实用工具525,这样的程序模块524包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器51通过运行存储在存储器52中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1所提供的软交换平台中电话通话的监控方法。
电子设备50也可以与一个或多个外部设备54(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口55进行。并且,模型生成的设备50还可以通过网络适配器56与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器56通过总线53与模型生成的设备50的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备50使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例5
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现实施例1所提供的软交换平台中电话通话的监控方法的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行实现实施例1的软交换平台中电话通话的监控方法中的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
1.一种软交换平台中电话通话的监控方法,其特征在于,所述软交换平台中电话通话的监控方法包括:
创建客户端对象;
将所述客户端对象与电话软交换平台建立网络连接;
利用所述客户端对象监听所述电话通话的通话事件,所述通话事件由所述电话软交换平台产生;
所述客户端对象根据所述通话事件监控所述电话通话的过程。
2.如权利要求1所述的软交换平台中电话通话的监控方法,其特征在于,
所述客户端对象根据所述通话事件监控所述电话通话的过程的步骤包括:
所述客户端对象根据所述通话事件生成话务数据。
3.如权利要求2所述的软交换平台中电话通话的监控方法,其特征在于,所述客户端对象根据所述通话事件监控所述电话通话的过程的步骤还包括:
所述客户端对象根据所述通话事件生成提示信息并显示;
所述客户端对象接受输入信息,并发送所述输入信息至所述电话软交换平台。
4.如权利要求3所述的软交换平台中电话通话的监控方法,其特征在于,所述输入信息包括外呼、接听、拒接、挂断、保持、取消保持、转接、dtmf中的至少一种。
5.如权利要求1所述的软交换平台中电话通话的监控方法,其特征在于,所述通话事件包括主叫事件、被叫事件、电话保持事件、转接事件、挂断事件中的至少一种。
6.一种软交换平台中电话通话的监控系统,其特征在于,所述软交换平台中电话通话的监控系统包括创建模块、连接模块、监听模块和监控模块;
所述创建模块用于创建客户端对象;
所述连接模块用于将所述客户端对象与电话软交换平台建立网络连接;
所述监听模块用于利用所述客户端对象监听所述电话通话的通话事件,所述通话事件由所述电话软交换平台产生;
所述监控模块用于利用所述客户端对象根据所述通话事件监控所述电话通话的过程。
7.如权利要求6所述的软交换平台中电话通话的监控系统,其特征在于,
所述监控模块还用于所述客户端对象根据所述通话事件生成话务数据。
8.如权利要求7所述的软交换平台中电话通话的监控系统,其特征在于,所述监控模块还用于利用所述客户端对象根据所述通话事件生成提示信息并显示,还用于利用所述客户端对象接受输入信息,并发送所述输入信息至所述电话软交换平台。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-5中任一项所述的软交换平台中电话通话的监控方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5中任一项所述的软交换平台中电话通话的监控方法的步骤。
技术总结