公开/公告号CN102111514A
专利类型发明专利
公开/公告日2011-06-29
原文格式PDF
申请/专利权人 杭州华三通信技术有限公司;
申请/专利号CN200910265528.0
发明设计人 陈涛;
申请日2009-12-25
分类号H04M7/00(20060101);H04M1/64(20060101);H04L29/06(20060101);
代理机构11018 北京德琦知识产权代理有限公司;
代理人谢安昆;宋志强
地址 310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地
入库时间 2023-12-18 02:47:37
法律状态公告日
法律状态信息
法律状态
2017-05-03
专利权人的姓名或者名称、地址的变更 IPC(主分类):H04M7/00 变更前: 变更后: 申请日:20091225
专利权人的姓名或者名称、地址的变更
2013-12-25
授权
授权
2011-09-14
实质审查的生效 IPC(主分类):H04M7/00 申请日:20091225
实质审查的生效
2011-06-29
公开
公开
技术领域
本发明涉及通信技术领域,特别涉及一种在因特网协议上承载语音(Voice over Internet Protocol,VoIP)录音系统和录音方法。
背景技术
VoIP系统的录音分为内线和内线之间的录音、以及内线和外线之间的录音两种。目前,这两种录音主要是通过本地端口镜像录音组网、基于端口的分析器(SPAN)录音组网和基于端口的远程分析器(RSPAN)录音组网三种组网方案来实现的,下面分别对这三种录音组网方案进行简单介绍。
图1为现有技术本地端口镜像录音组网的结构示意图。如图1所示,该结构主要包括录音服务器101、语音服务器102、交换机103、语音网关104以及多个IP电话105,其中,录音服务器101、语音服务器102、语音网关104和多个IP电话105分别与交换机103相连,且交换机103通过与其相连的语音网关104从公共开关电话网络(PSTN)中获取外界的语音信息。
当对内线和内线之间进行录音时,首先,录音服务器101通过交换机103获取到所有经过语音服务器102的会话初始化协议(SIP)数据包,并对SIP数据包进行解析,得到呼叫双方的电话号码和实时传输协议(RTP)端口号等信息;其次,录音服务器101再次通过交换机103得到所有IP电话的RTP数据包,并根据对SIP数据包解析出的结果对RTP数据包进行过滤,将过滤后得到的语音流进行数字压缩处理后,由录音服务器101进行保存。
当对内线和外线之间进行录音时,首先,录音服务器101通过交换机103获取到所有经过语音服务器102的SIP数据包,并对SIP数据包进行解析,得到呼叫双方的电话号码和实时传输协议(RTP)端口号等信息;其次,录音服务器101再次通过交换机103得到所有经过语音网关104的RTP数据包,并根据对SIP数据包解析出的结果对RTP数据包进行过滤,将过滤后得到的语音流进行数字压缩处理后,由录音服务器101进行保存。
至此,即得到了采用的对两种录音进行录音的本地端口镜像组网。
由此,该组网方案主要是通过由录音交换机捕获数据包来实现录音的,也就要求交换机支持对数据包的镜像功能,即数据包能够从交换机的一个端口复制到另一个端口上。
图2为现有技术SPAN录音组网的结构示意图。如图2所示,该结构主要包括录音服务器201、语音服务器202、核心交换机203、多个接入交换机204、语音网关205以及多个IP电话206。其中,录音服务器201、语音服务器202和语音网关205与多个接入交换机中的其中一个接入交换机204相连,每个接入交换机204都与核心交换机203相连,IP电话206分别与多个接入交换机中的某个接入交换机204相连。
当进行录音时,核心交换机203需要将所有数据包镜像给与录音服务器201相连的接入交换机204,从而实现对内线和内线之间、以及内线和外线之间的录音,具体实现过程如图1所述的组网实现方案,这里不再赘述。
由此,该组网方案也是通过由交换机捕获数据包来实现录音的,也就需要交换机支持对数据包的镜像功能,而且,对于不支持基于流的镜像的接入交换机来说,核心交换机需要处理全部的镜像数据,也就增大了核心交换机的数据处理压力。
图3为现有技术RSPAN录音组网的结构示意图。如图3所示,该结构主要包括录音服务器301、语音服务器302、交换机303、多个语音网关304以及多个IP电话305。其中,录音服务器301、语音服务器302、多个语音网关304和多个IP电话305分别与交换机303相连,
当进行录音时,交换机303需要将所有数据包镜像给录音服务器,也就需要交换机支持对数据包的镜像功能,而且,当语音网关304过多时,会对交换机303的性能产生很大的影响。
通过上述分析可以看出,现有VoIP系统进行录音的三种组网方案都需要通过录音服务器来捕获数据包,录音服务器捕获数据包时是通过一些特定的抓包工具来完成的,而这些抓包工具又需要将网卡设置为混杂模式才能实现,因此,会对整个VoIP系统的性能造成很大的影响。
发明内容
有鉴于此,本发明的主要目的在于提供一种VoIP录音系统,能够通过传递消息实现对VoIP系统的录音,录音组网方案更加灵活方便。
本发明的第二个目的在于提供一种录音服务器,能够通过传递消息实现对VoIP系统的录音,录音组网方案更加灵活方便。
本发明的第三个目的在于提供一种IP电话,能够通过传递消息实现对VoIP系统的录音,录音组网方案更加灵活方便。
本发明的第四个目的在于提供一种VoIP录音方法,能够通过传递消息实现对VoIP系统的录音,录音组网方案更加灵活方便。
为了达到上述目的,本发明提出的技术方案为:
一种VoIP录音系统,包括录音服务器、语音服务器和多个IP电话,其中,
所述录音服务器,用于存储系统中需要进行录音的IP电话的电话号码,并根据所述需要进行录音的IP电话的电话号码,以会话初始化协议SIP消息的形式向语音服务器订阅存储在语音服务器中的需要进行录音的IP电话的注册状态信息,接收语音服务器以SIP消息的形式发送的通告需要进行录音的IP电话的注册状态信息,并根据获取到的需要进行录音的IP电话的注册状态信息中的IP地址,以SIP消息的形式向所述需要进行录音的IP电话发送订阅录音请求消息,并根据接收到的录音响应消息,以静音监听方式对所述需要进行录音的IP电话进行录音;
所述需要进行录音的IP电话,用于接收录音服务器发送的录音请求消息,并在通话开始时,以SIP消息的形式向录音服务器发送通告录音响应消息。
一种录音服务器,应用于VoIP录音系统,
所述录音服务器,用于存储系统中需要进行录音的IP电话的电话号码,并根据所述需要进行录音的IP电话的电话号码,以SIP消息的形式向语音服务器订阅存储在语音服务器中的需要进行录音的IP电话的注册状态信息,接收语音服务器以SIP消息的形式发送的通告需要进行录音的IP电话的注册状态信息,并根据获取到的需要进行录音的IP电话的注册状态信息中的IP地址,以SIP消息的形式向所述需要进行录音的IP电话发送订阅录音请求消息,并根据接收到的录音响应消息,以静音监听方式对所述需要进行录音的IP电话进行录音。
一种IP电话,应用于VoIP录音系统,
所述IP电话,用于接收录音服务器发送的录音请求消息,并在通话开始时,以SIP消息的形式向录音服务器发送通告录音响应消息。
一种VoIP录音方法,该方法包括:
录音服务器根据存储的需要进行录音的因特网协议IP电话的电话号码,以SIP消息的形式向语音服务器订阅存储在语音服务器中的需要进行录音的IP电话的注册状态信息,接收语音服务器以SIP消息的形式发送的通告需要进行录音的IP电话的注册状态信息,获取需要进行录音的IP电话的注册状态信息中的IP地址,并根据所述IP地址以SIP消息的形式向所述需要进行录音的IP电话发送订阅录音请求消息;
需要进行录音的IP电话接收录音服务器发送的订阅录音请求消息,并在通话开始时,以SIP消息的形式向录音服务器发送通告录音响应消息;
录音服务器根据接收到的录音响应消息,以静音监听方式对所述需要进行录音的IP电话进行录音。
综上所述,本发明所采用的VoIP录音系统和录音方法,通过在语音服务器中存储录音服务器的IP地址,在录音服务器中存储需要进行录音的IP电话的电话号码,从而能够通过SIP消息的形式在录音服务器、语音服务器以及需要进行录音的IP电话之间传递录音请求消息和录音响应消息,实现对需要进行录音的IP电话的录音。因此,通过传递SIP消息实现了对VoIP系统的录音,录音组网方案更加灵活方便。
附图说明
图1为现有技术本地端口镜像录音组网的结构示意图。
图2为现有技术SPAN录音组网的结构示意图。
图3为现有技术RSPAN录音组网的结构示意图。
图4为本发明所采用的VoIP录音系统的结构示意图。
图5为本发明所采用的录音方法的工作流程图。
具体实施方式
为了解决现有技术中存在的问题,本发明提出了一种全新的VoIP录音系统,即在系统中使用了一个具有电话功能的录音服务器,并通过在语音服务器中存储录音服务器的IP地址,在录音服务器中存储需要进行录音的IP电话的电话号码,从而能够在录音服务器、语音服务器以及需要进行录音的IP电话之间通过SIP消息的形式来传递录音请求消息和录音响应消息,实现对需要进行录音的IP电话的录音。通过传递SIP消息实现了对VoIP系统的录音,录音组网方案更加灵活方便。
基于上述介绍,本发明所述方案的具体实现包括:
录音服务器根据所述需要进行录音的IP电话的电话号码,以SIP消息的形式向语音服务器订阅存储在语音服务器中的需要进行录音的IP电话的注册状态信息,接收语音服务器以SIP消息的形式发送的通告需要进行录音的IP电话的注册状态信息,获取需要进行录音的IP电话的注册状态信息中的IP地址,并根据所述IP地址以SIP消息的形式向所述需要进行录音的IP电话发送订阅录音请求消息;
需要进行录音的IP电话接收录音服务器发送的订阅录音请求消息,并在通话开始时,以SIP消息的形式向录音服务器发送通告录音响应消息;
录音服务器根据接收到的录音响应消息,以静音监听方式对所述需要进行录音的IP电话进行录音。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
参见图4,图4为本发明所采用的VoIP录音系统的结构示意图。该录音系统包括录音服务器401,语音服务器402,交换机403,语音网关404和IP电话1、IP电话2等多个IP电话405。其中,录音服务器401具有电话功能,即录音服务器401本身有一个电话号码,这个电话号码是任意一个电话号码,只要不与系统中IP电话405的电话号码冲突即可,并且,录音服务器401还用于存储需要进行录音的IP电话的电话号码以及对应的全部录音和按需录音两种录音方式中的一种;语音服务器402用于存储系统中所有IP电话405的至少包括IP电话的电话号码和IP地址的注册状态信息,同时,语音服务器402还用于存储录音服务器401的IP地址;语音网关404用于实现PSTN网络与IP电话405之间RTP语音流的传递;交换机403分别与录音服务器401,语音服务器402、语音网关404和系统中所有IP电话405相连,用于实现各种数据流之间的转发。
在本实施例中,假设系统中的IP电话1为需要进行录音的IP电话,则录音服务器401中存储了IP电话1的电话号码以及IP电话1需要进行录音的方式,IP电话1需要进行录音的方式可以有全部录音方式和按需录音方式两种,其中,全部录音方式是对需要进行录音的IP电话从通话开始到通话结束的整个过程进行录音的一种方式;按需录音方式是按照需要录音的IP电话录音的需要,对所述需要进行录音的IP电话进行部分通话过程的一种录音方式。下面以IP电话1为例说明录音服务器401对其进行录音的具体过程。
首先,录音服务器401向语音服务器402订阅IP电话1的注册状态信息,本实施例中,注册状态信息的订阅是通过SIP中的SUBSCRIBE消息来实现的,具体的SUBSCRIBE消息的定义方式为现有技术。
然后,语音服务器402向录音服务器401通告IP电话1的注册状态信息,如果在语音服务器402中没有IP电话1的注册状态信息,则说明IP电话1注册到语音服务器402时失败,则结束对IP电话1的录音;否则,语音服务器402以SIP中的NOTIFY消息将IP电话1的注册状态信息通告给录音服务器401,录音服务器401根据得到的IP电话1的注册状态信息即可得到IP电话1的IP地址。且具体的NOTIFY消息的定义方式也为现有技术,这里不再赘述。
接下来,录音服务器401根据得到的IP电话1的IP地址向IP电话1发送订阅录音请求消息,这里的订阅录音请求消息是通过SIP中的SUBSCRIBE消息来发送的。在本实施例中,由于IP电话1需要进行录音的方式可以有全部录音方式和按需录音方式两种,因此,录音请求有全部录音请求和按需录音请求两种,对于不同的录音请求,具体的SUBSCRIBE消息的格式是不同的,但是,都可以通过在SUBSCRIBE消息的Event头域中设置一个字段来确定。
当IP电话1为全部录音方式时,则录音服务器401向IP电话1发送的是订阅全部录音请求消息,此时,在Event头域中设置的是Record undemand字段,所述Record undemand字段用于指示IP电话1为全部录音方式,所采用的SUBSCRIBE消息可以为:
sip:xxx@172.32.27.101:5061 SIP/2.0
Via:SIP/2.0/UDP 172.32.51.50:5060;branch=z9hG4bK63872f3b5b0
Call-ID:6adda4fa5b0b7e32f73518d063872f0000@172.32.51.50
From:<sip:xxx@172.32.51.50:5060>;tag=63872f3b
To:<sip:xxx@172.32.27.101:5061>
CSeq:1 SUBSCRIBE
Contact:<sip:xxx@172.32.51.50:5060>;expires=3600
Expires:3600
Event:Record undemand
Allow:ACK,BYE,CANCEL,INFO,INVITE,NOTIFY,PRACK,REFER,REGIS
TER,UPDATE,SUBSCRIBE
Date:Tue,13 May 2009 11:20:09 GMT
User-Agent:xxx
Max-Forwards:70
Content-Length:0;
当IP电话1为按需录音方式时,则录音服务器401向IP电话1发送的是订阅按需录音请求消息,此时,在Event头域中设置的是Record demand字段,所述Record demand字段用于指示IP电话1为按需录音方式,进一步地,在SUBSCRIBE消息中还设置了Record demand onkey和Recorddemand offkey字段,分别用于告知IP电话录音开始键和录音结束键,采用的SUBSCRIBE消息可以为:
sip:xxx@172.32.27.101:5061 SIP/2.0
Via:SIP/2.0/UDP 172.32.51.50:5060;branch=z9hG4bK63872f3b5b0
Call-ID:6adda4fa5b0b7e32f73518d063872f0000@172.32.51.50
From:<sip:xxx@172.32.51.50:5060>;tag=63872f3b
To:<sip:xxx@172.32.27.101:5061>
CSeq:1 SUBSCRIBE
Contact:<sip:xxx@172.32.51.50:5060>;expires=3600
Expires:3600
Event:Record demand
Allow:ACK,BYE,CANCEL,INFO,INVITE,NOTIFY,PRACK,REFER,REGIS
TER,UPDATE,SUBSCRIBE
Date:Tue,13 May 2009 11:20:09 GMT
User-Agent:xxx
Max-Forwards:70
c:application/Record demand
Content-Length:100
Message Body
Record demand onkey=”XXXX”
Record demand offkey=”YYYY”。
最后,当IP电话1开始通话时,向录音服务器401发送通告录音响应消息,这里的通告录音响应消息是通过SIP中的NOTIFY消息来发送的,在本实施例中,通告录音响应消息也有通告全部录音响应消息和通告按需录音响应消息两种,且都可以通过在NOTIFY消息的Event头域中设置一个字段来定义。
当录音服务器401向IP电话1发送的是订阅全部录音请求消息时,IP电话1向录音服务器401发送的是通告全部录音响应消息,则在NOTIFY消息的Event头域中设置的是Record undemand字段,所述Record undemand字段用于指示IP电话1为全部录音方式,所采用的NOTIFY消息可以定义为:
sip:xxx@172.32.51.50:5060 SIP/2.0
v:SIP/2.0/UDP172.32.27.101;branch=z9hG4bK00913f3b-d4f7-da11-9917-b3e
2e14879b9
f:<sip:172.32.27.101>;tag=ad5e22cc
t:<sip:xxx@172.32.27.101>
i:8022ce8e-e2f0-da11-a1e9-8f071c5b429c
Cseq:504 NOTIFY
Timestamp:1150042986
Date:Tue,13 May 2009 11:20:10 GMT
Max-Forwards:70
m:<sip:@172.32.27.101>
user-agent:xxx
Event:Record undemand
Subscription-State:active;expires=3600
c:application/Record undemand
l:84
Message body
PHONE=xxx@172.32.51.50:5060
LINE_STATUS=1
<sip-line-state>
<dialog-info xmlns=”urn:ietf:params:ns:dialog-info”
version=”0”state=”=full”
entity=”xxx@172.32.51.50”line=”1>
<dialog id=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
call-id=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
local-tag=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
direction=”initiator”remote=”2004 remote_name=””>
<dialog>
</dialog-info>
</sip-line-state> ;
当录音服务器401向IP电话1发送的是订阅按需录音请求消息时,IP电话1向录音服务器401发送的是通告按需录音响应消息,则在NOTIFY消息的Event头域中设置的是Record demand字段,所述Record demand字段用于指示IP电话1为按需录音方式,所采用的NOTIFY消息按照需要又有所不同:
当IP电话1开始通话时,向录音服务器401发送的NOTIFY消息可以为:
sip:xxx@172.32.51.50:5060 SIP/2.0
v:SIP/2.0/UDP172.32.27.101;branch=z9hG4bK00913f3b-d4f7-da11-9917-b3e
2e14879b9
f:<sip:172.32.27.101>;tag=ad5e22cc
t:<sip:xxx@172.32.27.101>
i:8022ce8e-e2f0-da11-a1e9-8f071c5b429c
Cseq:504 NOTIFY
Timestamp:1150042986
Date:Tue,13 May 2009 11:20:10 GMT
Max-Forwards:70
m:<sip:XXX@172.32.27.101>
user-agent:xxx
Event:Record demand
Subscription-State:active;expires=3600
c:application/Record demand
l:84
Message body
PHONE=xxx@172.32.51.50:5060
LINE_STATUS=1
<sip-line-state>
<dialog-info xmlns=”urn:ietf:params:ns:dialog-info”
version=”0”state=”full”
entity=”xxx@172.32.51.50”line=”1>
<dialog id=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
call-id=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
local-tag=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
direction=”initiator”remote=”2004 remote_name=””>
<dialog>
</dialog-info>
</sip-line-state> ;
当IP电话1要求录音服务器401开始对其进行录音时,所述NOTIFY消息通过Record demand onkey字段携带开始键告知录音服务器开始录音,也即IP电话1按下Record demand onkey中对应的按键,从而录音服务器401会对其进行录音,向录音服务器401发送的NOTIFY消息可以为:
sip:xxx@172.32.51.50:5060 SIP/2.0
v:SIP/2.0/UDP172.32.27.101;branch=z9hG4bK00913f3b-d4f7-da11-9917-b3e
2e14879b9
f:<sip:172.32.27.101>;tag=ad5e22cc
t:<sip:xxx@172.32.27.101>
i:8022ce8e-e2f0-da11-a1e9-8f071c5b429c
Cseq:504 NOTIFY
Timestamp:1150042986
Date:Tue,13 May 2009 11:20:10 GMT
Max-Forwards:70
m:<sip:XXX@172.32.27.101>
user-agent:xxx
Event:Record demand
Subscription-State:active;expires=3600
c:application/Record demand
l:84
Message body
Record demand onkey=”XXXX”
PHONE=xxx@172.32.51.50:5060
LINE_STATUS=1
<sip-line-state>
<dialog-info xmlns=”urn:ietf:params:ns:dialog-info”
version=”0”state=”full”
entity=”xxx@172.32.51.50”line=”1>
<dialog id=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
call-id=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
local-tag=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
direction=”initiator”remote=”2004 remote_name=””>
<dialog>
</dialog-info>
</sip-line-state> ;
当IP电话1要求录音服务器401结束对其进行录音时,所述NOTIFY消息通过Record demand offkey字段携带结束键告知录音服务器结束录音,也即IP电话1按下Record demand offkey中对应的按键,从而录音服务器401会结束对其进行的录音过程,向录音服务器401发送的NOTIFY消息可以为:
sip:xxx@172.32.51.50:5060 SIP/2.0
v:SIP/2.0/UDP172.32.27.101;branch=z9hG4bK00913f3b-d4f7-da11-9917-b3e
2e14879b9
f:<sip:172.32.27.101>;tag=ad5e22cc
t:<sip:xxx@172.32.27.101>
i:8022ce8e-e2f0-da11-a1e9-8f071c5b429c
Cseq:504 NOTIFY
Timestamp:1150042986
Date:Tue,13 May 2009 11:20:10 GMT
Max-Forwards:70
m:<sip:XXX@172.32.27.101>
user-agent:xxx
Event:Record demand
Subscription-State:active;expires=3600
c:application/Record demand
l:84
Message body
Record demand offkey=”YYYY”
PHONE=xxx@172.32.51.50:5060
LINE_STATUS=1
<sip-line-state>
<dialog-info xmlns=”urn:ietf:params:ns:dialog-info”
version=”0”state=”full”
entity=”xxx@172.32.51.50”line=”1>
<dialog id=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
call-id=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
local-tag=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
direction=”initiator”remote=”2004 remote_name=””>
<dialog>
</dialog-info>
</sip-line-state> 。
当录音服务器401收到IP电话1发送的通告录音响应NOTIFY消息后,会根据相应的消息,以静音监听方式对IP电话1进行对应的录音,具体如何通过静音监听方式来进行录音已为现有技术,这里不再赘述。
需要说明的是,在本实施例中,录音服务器通过静音监听方式对IP电话进行录音需要IP电话能够具有混音功能,现有大多数IP电话都已具有混音功能,故这里没有对其进行着重说明。
还需说明的是,在对IP电话进行按需录音时,当录音服务器接收到IP电话开始通话的NOTIFY消息时,并没有对其进行录音,只有当接收到IP电话发送的开始录音的NOTIFY消息时,才会对其进行录音。
至此,即得到了本发明所述VoIP录音系统。
需要说明的是,在本实施例中,是通过SIP消息来实现各种信息之间的传递的,实际中还可以采用其他的消息,以能够完成本发明实施例的实现为准。
图5为图4所述录音系统的工作流程图。如图5所示,该流程包括以下步骤:
步骤501:由语音服务器存储系统中所有IP电话的注册状态信息。
在本步骤中,语音服务器首先存储系统中的每一个IP电话的注册状态信息,且IP电话的注册状态信息是以SIP消息的形式存储在语音服务器中的。
需要说明的是,所述IP电话的注册状态信息至少包括IP电话的IP地址和IP电话的电话号码。
步骤502:由录音服务器存储需要进行录音的IP电话的电话号码以及每个需要进行录音的IP电话对应的录音方式。
在本步骤中,录音服务器存储需要进行录音的IP电话的电话号码,同样的,IP电话的电话号码也是以SIP消息的形式存储在录音服务器中的。
同时,录音服务器需对需要进行录音的IP电话的录音方式进行存储,这里录音方式有全部录音方式和按需录音方式两种,其中,所述全部录音方式是对需要进行录音的IP电话从通话开始到通话结束的整个过程进行录音的一种方式,所述按需录音方式是按照需要录音的IP电话录音的需要,对所述需要进行录音的IP电话进行部分通话过程的一种录音方式。
步骤503:由语音服务器对录音服务器的IP地址进行存储。
为了通过静音监听方式实现本发明所述的录音方法,这里所采用的录音服务器是一个能通过通过静音监听方式的录音服务器,这种录音服务器本身有一个电话号码,这个电话号码可以是任意的,只要不与系统中IP电话的电话号码冲突即可。
在本步骤中,语音服务器将录音服务器的IP地址进行存储,也即录音服务器将自身的IP地址以SIP消息的形式发送给语音服务器,由语音服务器对其进行存储。
步骤504~505:由录音服务器向语音服务器订阅需要进行录音的IP电话的注册状态信息,并判断在语音服务器中是否存在需要进行录音的IP电话的注册状态信息,如果是,执行步骤506;否则结束录音。
在本步骤中,录音服务器向语音服务器订阅需要进行录音的IP电话的注册状态信息,如果在语音服务器中有对应的IP电话的注册状态信息,则执行步骤506;否则,说明该IP电话注册到语音服务器时失败,即结束对需要进行录音的IP电话的录音过程。
需要说明的是,IP电话的注册状态信息的订阅是通过SIP中的SUBSCRIBE消息来实现的,具体的SUBSCRIBE消息的定义方式为现有技术。
步骤506:由语音服务器将需要进行录音的IP电话的注册状态信息通告给录音服务器。
当在语音服务器中找到对应的IP电话的注册状态信息后,由语音服务器将该对应的IP电话的注册状态信息通告给录音服务器。
需要说明的是,在本步骤中,语音服务器是通过SIP中的NOTIFY消息将IP电话的注册状态信息通告给录音服务器的,具体的NOTIFY消息的定义方式也为现有技术,这里不再赘述。
步骤507:由录音服务器向需要进行录音的IP电话订阅录音请求消息。
录音服务器接收到由语音服务器通告的IP电话的注册状态信息后,会根据其中的IP电话的IP地址向对应的IP电话发送订阅录音请求消息,这里的订阅录音请求消息是通过SIP中的SUBSCRIBE消息来发送的。且录音请求有全部录音请求和按需录音请求两种,对于不同的录音请求,具体的SUBSCRIBE消息的格式是不同的,但是,都可以通过在SUBSCRIBE消息的Event头域中设置一个字段来确定。
当IP电话为全部录音方式时,则录音服务器向IP电话发送的是订阅全部录音请求消息,此时,在Event头域中设置的是Record undemand字段,所述Record undemand字段用于指示需要进行录音的IP电话为全部录音方式。
当IP电话为按需录音方式时,则录音服务器向IP电话发送的是订阅按需录音请求消息,此时,在Event头域中设置的是Record demand字段,所述Record demand字段用于指示需要进行录音的IP电话为按需录音方式,进一步地,在SUBSCRIBE消息中还设置了Record demand onkey和Recorddemand offkey字段,分别用于告知IP电话录音开始键和录音结束键。
步骤508:当需要进行录音的IP电话开始通话时,由IP电话向录音服务器通告录音响应消息。
当需要进行录音的IP电话与其他通话设备开始通话时,向录音服务器发送通告录音响应消息,且通告录音响应消息是通过SIP中的NOTIFY消息来发送的。按照步骤507中录音服务器向IP电话发送的订阅录音请求消息的不同,通告录音响应消息也有通告全部录音响应消息和通告按需录音响应消息两种,且具体的NOTIFY消息也是不同的,但都可以通过在NOTIFY消息的Event头域中设置一个字段来定义。下面分别对这两种录音方式所采用的NOTIFY消息定义进行介绍。
当录音服务器向IP电话发送的是订阅全部录音请求消息时,IP电话向录音服务器发送的是通告全部录音响应消息,在NOTIFY消息的Event头域中设置的是Record undemand字段,录音服务器收到该NOTIFY消息后,即可对需要进行录音的IP电话进行录音。
当录音服务器向IP电话发送的是订阅按需录音请求消息时,IP电话向录音服务器发送的是通告按需录音响应消息,在NOTIFY消息的Event头域中设置的是Record demand字段,根据需要的不同,具体的NOTIFY消息又有所不同,以下分别对其进行描述。
当IP电话开始通话时,向录音服务器发送的NOTIFY消息可以为:
sip:xxx@172.32.51.50:5060 SIP/2.0
v:SIP/2.0/UDP172.32.27.101;branch=z9hG4bK00913f3b-d4f7-da11-9917-b3e
2e14879b9
f:<sip:172.32.27.101>;tag=ad5e22cc
t:<sip:xxx@172.32.27.101>
i:8022ce8e-e2f0-da11-a1e9-8f071c5b429c
Cseq:504 NOTIFY
Timestamp:1150042986
Date:Tue,13 May 2009 11:20:10 GMT
Max-Forwards:70
m:<sip:XXX@172.32.27.101>
user-agent:xxx
Event:Record demand
Subscription-State:active;expires=3600
c:application/Record demand
l:84
Message body
PHONE=xxx@172.32.51.50:5060
LINE_STATUS=1
<sip-line-state>
<dialog-info xmlns=”urn:ietf:params:ns:dialog-info”
version=”0”state=”full”
entity=”xxx@172.32.51.50”line=”1>
<dialog id=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
call-id=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
local-tag=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
direction=”initiator”remote=”2004 remote_name=””>
<dialog>
</dialog-info>
</sip-line-state> ;
当IP电话要求录音服务器开始对其进行录音时,所述NOTIFY消息通过Record demand onkey字段携带开始键告知录音服务器开始录音,也即IP电话按下Record demand onkey中对应的按键,从而录音服务器会对其进行录音,向录音服务器发送的NOTIFY消息可以为:
sip:xxx@172.32.51.50:5060 SIP/2.0
v:SIP/2.0/UDP172.32.27.101;branch=z9hG4bK00913f3b-d4f7-da11-9917-b3e
2e14879b9
f:<sip:172.32.27.101>;tag=ad5e22cc
t:<sip:xxx@172.32.27.101>
i:8022ce8e-e2f0-da11-a1e9-8f071c5b429c
Cseq:504 NOTIFY
Timestamp:1150042986
Date:Tue,13 May 2009 11:20:10 GMT
Max-Forwards:70
m:<sip:XXX@172.32.27.101>
user-agent:xxx
Event:Record demand
Subscription-State:active;expires=3600
c:application/Record demand
l:84
Message body
Record demand onkey=”XXXX”
PHONE=xxx@172.32.51.50:5060
LINE_STATUS=1
<sip-line-state>
<dialog-info xmlns=”urn:ietf:params:ns:dialog-info”
version=”0”state=”full”
entity=”xxx@172.32.51.50”line=”1>
<dialog id=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
call-id=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
local-tag=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
direction=”initiator”remote=”2004 remote_name=””>
<dialog>
</dialog-info>
</sip-line-state> ;
当IP电话要求录音服务器结束对其进行录音时,所述NOTIFY消息通过Record demand offkey字段携带结束键告知录音服务器结束录音,也即IP电话按下Record demand offkey中对应的按键,从而录音服务器会结束对其进行的录音过程,向录音服务器发送的NOTIFY消息可以为:
sip:xxx@172.32.51.50:5060 SIP/2.0
v:SIP/2.0/UDP172.32.27.101;branch=z9hG4bK00913f3b-d4f7-da11-9917-b3e
2e14879b9
f:<sip:172.32.27.101>;tag=ad5e22cc
t:<sip:xxx@172.32.27.101>
i:8022ce8e-e2f0-da11-a1e9-8f071c5b429c
Cseq:504 NOTIFY
Timestamp:1150042986
Date:Tue,13 May 2009 11:20:10 GMT
Max-Forwards:70
m:<sip:XXX@172.32.27.101>
user-agent:xxx
Event:Record demand
Subscription-State:active;expires=3600
c:application/Record demand
l:84
Message body
Record demand offkey=”YYYY”
PHONE=xxx@172.32.51.50:5060
LINE_STATUS=1
<sip-line-state>
<dialog-info xmlns=”urn:ietf:params:ns:dialog-info”
version=”0”state=”full”
entity=”xxx@172.32.51.50”line=”1>
<dialog id=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
call-id=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
local-tag=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
direction=”initiator”remote=”2004 remote_name=””>
<dialog>
</dialog-info>
</sip-line-state> 。
因此,在本步骤中,根据不同的录音方式,录音服务器根据收到的对应的NOTIFY消息,以静音监听的方式对需要进行录音的IP电话进行对应的录音,如何通过静音监听方式来进行录音为现有技术,这里不再赘述。
同样地,录音服务器通过静音监听方式对IP电话进行录音需要IP电话能够具有混音功能,现有大多数IP电话都已具有混音功能,故这里没有对其进行着重说明。
至此,即完成了本发明所述录音系统的整个工作流程。
总之,本发明所采用的VoIP录音系统,通过在语音服务器中存储录音服务器的IP地址,在录音服务器中存储需要进行录音的IP电话的电话号码以及其对应的录音方式,从而能够在录音服务器、语音服务器以及需要进行录音的IP电话之间通过SIP消息来传递录音请求和录音响应消息,实现对需要进行录音的IP电话的录音,使得录音组网方案更加灵活方便。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
机译: 用于因特网协议上的语音(VoIP)和因特网协议上的传真(FoIP)的系统和方法
机译: 用于因特网协议上的语音(VoIP)和因特网协议上的传真(FoIP)的系统和方法
机译: 用于因特网协议上的语音(VoIP)和因特网协议上的传真(FoIP)的系统和方法