CN102158615B - Voip***中基于linux的媒体服务器及其放音方法 - Google Patents
Voip***中基于linux的媒体服务器及其放音方法 Download PDFInfo
- Publication number
- CN102158615B CN102158615B CN 201110091324 CN201110091324A CN102158615B CN 102158615 B CN102158615 B CN 102158615B CN 201110091324 CN201110091324 CN 201110091324 CN 201110091324 A CN201110091324 A CN 201110091324A CN 102158615 B CN102158615 B CN 102158615B
- Authority
- CN
- China
- Prior art keywords
- playback
- message
- module
- kernel spacing
- media server
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000011664 signaling Effects 0.000 claims abstract description 6
- 238000005538 encapsulation Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 6
- 238000010276 construction Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明涉及VOIP技术。本发明解决了现有LINUX环境中,VOIP***不用专用硬件时媒体服务器转发速度慢、性能较低的问题,提供了一种VOIP***中基于LINUX的媒体服务器及其放音方法,其技术方案可概括为:VOIP***中基于LINUX的媒体服务器由用户空间***和内核空间***组成,其中,用户空间***用于根据接收的放音信令请求,向内核空间***发送控制命令;内核空间***用于接收用户空间***的放音请求,根据缓存的对应放音文件生成放音报文并进行发送。本发明的有益效果是:提高媒体服务器的效率,适用于LINUX环境中的VOIP***。
Description
技术领域
本发明涉及VOIP(Voice Over Internet Protocol)技术,特别涉及VOIP***在LINUX环境下放音的技术。
背景技术
在VOIP***中,如图1所示,主要有IPPBX(IP Private Branch eXchange)及其接入的用户(话机)、呼叫控制服务器(例如软交换或者IMS(IP Multimedia Subsystem)核心设备)、应用服务器(Application Server,简称AS)、媒体服务器(Media Server,简称MS)。
应用服务器,负责各种增值业务的逻辑产生和管理,增值业务如彩铃、即时消息服务等,应用服务器还能够提供第三方呼叫接口,以方便与其他***的集成与融合,应用服务器是完全独立的组件,它与呼叫控制无关,从而可以实现呼叫控制与业务的分离,有助于新业务的应用,其在运行过程中,很多业务功能需要媒体服务器的支撑。媒体服务器,负责媒体资源功能的提供,如编解码转换,放音功能提供以支撑彩铃、信号提示音等业务,信号音检测与产生,DTMF信号(Double tone multifrequency,典型如拨号按键)检测与产生、会议混音等。通过AS与MS的配合,IPPBX用户可以使用如前所述的多种增值服务。
媒体服务器的语音文件可以存储在本地或者网络,在放音的时候,媒体服务器读取文件,并转化成IP报文发送出去,媒体服务器的放音功能的实现,一般采用的技术方案是用专用的硬件处理,由硬件实现编解码、IP报文组装。但是为了节约硬件成本,有人提出不用专用硬件,而是基于操作***的架构放音,这种方式可以在用户量不大的情况下部署,能够节约专用硬件成本;放音具体实现方案为,创建套接字,然后基于此套接字向接收方发送基于UDP协议的语音报文,从而达到放音的目的。当操作***为LINUX时,以上技术方案的所有的操作均在用户空间,而不是内核空间,由于所有语音数据均需要从用户空间到内核空间的拷贝,而语音数据又非常庞大,所以存在转发速度慢,性能较低的弱点。
发明内容
本发明的目的就是克服目前LINUX环境中,VOIP***不用专用硬件时媒体服务器转发速度慢、性能较低的缺点,提供一种VOIP***中基于LINUX的媒体服务器及其放音方法。
本发明解决其技术问题,采用的技术方案是,VOIP***中基于LINUX的媒体服务器,包括用户空间***和内核空间***,其特征在于,所述用户空间***用于根据接收的放音信令请求,向内核空间***发送控制命令;所述内核空间***用于接收用户空间***的放音请求,根据缓存的对应放音文件生成放音报文并进行发送。
具体的,所述用户空间***包括参数设置模块和放音请求模块;
所述参数设置模块,用于向内核空间***发送设置参数;
所述放音请求模块,用于向内核空间***发送放音请求。
进一步的,所述内核空间***包括参数设置和请求处理模块、放音处理和调度模块及报文发送模块;
所述参数设置和请求处理模块,用于接收并处理来自用户空间***的设置参数及放音请求;
所述放音处理和调度模块,用于读取缓存中的放音文件以及生成RTP(Real-timeTransport Protocol)放音报文;
所述报文发送模块,用于将所述放音处理和调度模块生成的RTP放音报文进行IP封装并发送。
具体的,所述用户空间***还包括DTMF处理模块和放音事件处理模块;
所述DTMF处理模块,用于处理RTP报文,并根据一定算法来分析DTMF事件并产生DTMF信号;
所述放音事件处理模块,用于接收内核空间***的放音事件。
再进一步的,所述内核空间***还包括RTCP(Real-time Transport Control Protocol)处理模块和报文接收模块;
所述RTCP处理模块,用于根据RTP报文内容生成回复的RTCP报文,并接收RTCP报文且将处理结果反馈给用户空间***;
所述报文接收模块,用于接收外部IP报文。
具体的,所述参数设置模块及放音请求模块分别与参数设置和请求处理模块连接,参数设置和请求处理模块与放音处理和调度模块连接,放音处理和调度模块与放音事件处理模块连接,放音处理及调度模块与报文发送模块连接,报文接收模块与RTCP处理模块连接,报文接收模块与DTMF处理模块连接,RTCP处理模块与报文发送模块连接。
VOIP***中基于LINUX的媒体服务器放音方法,其特征在于,包括以下步骤:
a.媒体服务器接收到放音请求后,用户空间***向内核空间***发送放音请求;
b.内核空间***接收到用户空间***的放音请求后,读取缓存中对应的放音文件并生成RTP放音报文;
c.内核空间***将生成的RTP放音报文进行IP封装后从对应端口发送出去。
具体的,所述步骤c中,内核空间***判断缓存中没有对应的放音文件时,需要先将用户空间***中的该语音文件拷贝到内核空间***。
进一步的,内核空间***在放音的过程中,接收到IP报文后,执行如下操作:
d1.判断所述IP报文是RTP报文还是或RTCP报文,若为RTP报文则进入d2步骤,若为RTCP报文则进入d3步骤;
d2.对该RTP报文进行判断,是否需要发送RTCP报文,若是则生成RTCP报文并进行IP封装后发送,同时将该RTP报文发送给用户空间***,并进入d4步骤;
d3.将该RTCP报文处理后,将处理结果反馈用户空间***;
d4.用户空间***的DTMF处理模块接收到该RTP报文后,分析判断其是否为DTMF数据,若是则通知应用服务器处理相应事件。
具体的,所述内核空间***定时判断内核空间***中的缓存文件是否在一段时间内没有被访问,若没有被访问则删除该缓存文件。
本发明的有益效果是,通过上述LINUX环境下VOIP***中的媒体服务器及其放音方法,由于其放音RTP报文是在内核空间***直接完成的,包括对放音报文流控制的RTCP报文也在内核空间***完成,减少了数据拷贝过程,从而提高媒体服务器的效率,且可以控制放音文件数据是否在内核缓存,这样可以进一步减少内核空间***与用户空间***数据的拷贝,极大的提高转发效率。
附图说明
图1是本发明实施例的VOIP***结构图。
图2是本发明媒体服务器结构框图。
图3是本发明实施例的媒体服务器结构框图。
图4是本发明放音方法流程图。
具体实施方式
下面结合实施例及附图,详细描述本发明的技术方案。
本发明VOIP***结构图参见图1,本发明媒体服务器结构框图参见图2,本发明放音方法流程图参见图4。本发明的VOIP***中基于LINUX的媒体服务器由用户空间***和内核空间***组成,其中,用户空间***用于根据接收的放音信令请求,向内核空间***发送控制命令;内核空间***用于接收用户空间***的放音请求,根据缓存的对应放音文件生成放音报文并进行发送。本发明的VOIP***中基于LINUX的媒体服务器放音方法中,首先媒体服务器接收到放音请求后,用户空间***向内核空间***发送放音请求,然后在内核空间***接收到用户空间***的放音请求后,读取缓存中对应的放音文件并生成RTP放音报文,最后内核空间***将生成的RTP放音报文进行IP封装后从对应端口发送出去。
实施例
本实施例的VOIP***结构图参见图1,其媒体服务器结构框图参见图3,其放音方法流程图参见图4。本实施例必须基于IP网络进行构建,包括应用服务器(AS),媒体服务器(MS),IPPBX,电话用户。其中IPPBX作为支持IP协议的用户交换机,可以连接电话机,并完成相应的呼叫控制与媒体处理。应用服务器给用户提供业务,它会与媒体服务器交互完成媒体的控制,媒体服务器提供媒体功能,如DTMF信号产生与检测,放音等,媒体服务器可以与应用服务器合在一起作为一个物理实体,也可以分别部署。本实施例中,放音功能分两部分来完成,在用户空间***完成与应用服务器的信令交互,向内核空间***发送控制命令,统计告警等;内核空间***完成放音报文组装与发送等。
首先由用户空间***和内核空间***组成VOIP***中基于LINUX的媒体服务器,其中,用户空间***用于根据接收的放音信令请求,向内核空间***发送控制命令,内核空间***用于接收用户空间***的放音请求,根据缓存的对应放音文件生成放音报文并进行发送,用户空间***包括参数设置模块和放音请求模块,参数设置模块用于向内核空间***发送设置参数,如报文的发送频率、是否进行语音文件缓存等,放音请求模块用于向内核空间***发送放音请求,其包括文件名、放音次数、编码、放音接收方IP地址、端口参数等,内核空间***包括参数设置和请求处理模块、放音处理和调度模块及报文发送模块,参数设置和请求处理模块用于接收并处理来自用户空间***的设置参数及放音请求,放音处理和调度模块用于读取缓存中的放音文件以及生成RTP放音报文,包括放音的报文组装、编解码、放音事件通知、放音文件管理等,以及向用户空间***反馈放音事件等,报文发送模块用于将所述放音处理和调度模块生成的RTP放音报文进行IP封装并发送,用户空间***还可以包括DTMF处理模块和放音事件处理模块,DTMF处理模块用于处理RTP报文,并根据一定算法来分析DTMF事件且产生DTMF信号等,放音事件处理模块用于接收内核空间***的放音事件,如当前播放状态(开始、完成、出错等)等,内核空间***还可以包括RTCP处理模块和报文接收模块,RTCP处理模块用于根据RTP报文内容生成回复的RTCP报文,并接收RTCP报文且将处理结果反馈给用户空间***,报文接收模块用于接收外部IP报文,其包含RTP报文;这里参数设置模块及放音请求模块分别与参数设置和请求处理模块连接,参数设置和请求处理模块与放音处理和调度模块连接,放音处理和调度模块与放音事件处理模块连接,放音处理及调度模块与报文发送模块连接,报文接收模块与RTCP处理模块连接,报文接收模块与DTMF处理模块连接,RTCP处理模块与报文发送模块连接。
本实施例VOIP***中基于LINUX的媒体服务器放音方法,具体步骤如下:
a.媒体服务器接收到放音请求后,用户空间***向内核空间***发送放音请求;
b.内核空间***接收到用户空间***的放音请求后,读取缓存中对应的放音文件并生成RTP放音报文;
c.内核空间***将生成的RTP放音报文进行IP封装后从对应端口发送出去。
在步骤c中,内核空间***判断缓存中没有对应的放音文件时,需要先将用户空间***中的该语音文件拷贝到内核空间***。
该内核空间***在放音的过程中,接收到IP报文后,执行如下操作:
d1.判断所述IP报文是RTP报文还是或RTCP报文,若为RTP报文则进入d2步骤,若为RTCP报文则进入d3步骤;
d2.对该RTP报文进行判断,是否需要发送RTCP报文,若是则生成RTCP报文并进行IP封装后发送,同时将该RTP报文发送给用户空间***,并进入d4步骤;
d3.将该RTCP报文处理后,将处理结果反馈用户空间***;
d4.用户空间***的DTMF处理模块接收到该RTP报文后,分析判断其是否为DTMF数据,若是则通知应用服务器处理相应事件。
该内核空间***定时判断内核空间***中的缓存文件是否在一段时间内没有被访问,若没有被访问则删除该缓存文件。
本实施例中,不约束内核空间***与用户空间***间的通信方式。
Claims (6)
1.VOIP***中基于LINUX的媒体服务器,包括用户空间***和内核空间***,其特征在于,所述用户空间***用于根据接收的放音信令请求,向内核空间***发送控制命令;所述内核空间***用于接收用户空间***的放音请求,根据缓存的对应放音文件生成放音报文并进行发送;
所述用户空间***包括参数设置模块、放音请求模块、DTMF处理模块和放音事件处理模块;
所述参数设置模块,用于向内核空间***发送设置参数;
所述放音请求模块,用于向内核空间***发送放音请求;
所述DTMF处理模块,用于处理RTP报文,并根据一定算法来分析DTMF事件并产生DTMF信号;
所述放音事件处理模块,用于接收内核空间***的放音事件;
所述内核空间***包括参数设置和请求处理模块、放音处理和调度模块及报文发送模块;
所述参数设置和请求处理模块,用于接收并处理来自用户空间***的设置参数及放音请求;
所述放音处理和调度模块,用于读取缓存中的放音文件以及生成RTP放音报文;
所述报文发送模块,用于将所述放音处理和调度模块生成的RTP放音报文进行IP封装并发送。
2.如权利要求1所述VOIP***中基于LINUX的媒体服务器,其特征在于,所述内核空间***还包括RTCP处理模块和报文接收模块;
所述RTCP处理模块,用于根据RTP报文内容生成回复的RTCP报文,并接收RTCP报文且将处理结果反馈给用户空间***;
所述报文接收模块,用于接收外部IP报文。
3.如权利要求2所述VOIP***中基于LINUX的媒体服务器,其特征在于,所述参数设置模块及放音请求模块分别与参数设置和请求处理模块连接,参数设置和请求处理模块与放音处理和调度模块连接,放音处理和调度模块与放音事件处理模块连接,放音处理及调度模块与报文发送模块连接,报文接收模块与RTCP处理模块连接,报文接收模块与DTMF处理模块连接,RTCP处理模块与报文发送模块连接。
4.VOIP***中基于LINUX的媒体服务器放音方法,其特征在于,包括以下步骤:
a.媒体服务器接收到放音请求后,用户空间***向内核空间***发送放音请求;
b.内核空间***接收到用户空间***的放音请求后,读取缓存中对应的放音文件并生成RTP放音报文;
c.内核空间***将生成的RTP放音报文进行IP封装后从对应端口发送出去;
d.内核空间***在放音的过程中,接收到IP报文后,执行如下操作:
d1.判断所述IP报文是RTP报文还是或RTCP报文,若为RTP报文则进入d2步骤,若为RTCP报文则进入d3步骤;
d2.对该RTP报文进行判断,是否需要发送RTCP报文,若是则生成RTCP报文并进行IP封装后发送,同时将该RTP报文发送给用户空间***,并进入d4步骤;
d3.将该RTCP报文处理后,将处理结果反馈用户空间***;
d4.用户空间***的DTMF处理模块接收到该RTP报文后,分析判断其是否为DTMF数据,若是则通知应用服务器处理相应事件。
5.如权利要求4所述的VOIP***中基于LINUX的媒体服务器放音方法,其特征在于,步骤c中,内核空间***判断缓存中没有对应的放音文件时,需要先将用户空间***中的该对应的放音文件拷贝到内核空间***。
6.根据权利要求4或5所述VOIP***中基于LINUX的媒体服务器放音方法,其特征在于,所述内核空间***定时判断内核空间***中的缓存文件是否在一段时间内没有被访问,若没有被访问则删除该缓存文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110091324 CN102158615B (zh) | 2011-04-12 | 2011-04-12 | Voip***中基于linux的媒体服务器及其放音方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110091324 CN102158615B (zh) | 2011-04-12 | 2011-04-12 | Voip***中基于linux的媒体服务器及其放音方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102158615A CN102158615A (zh) | 2011-08-17 |
CN102158615B true CN102158615B (zh) | 2013-07-10 |
Family
ID=44439783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110091324 Expired - Fee Related CN102158615B (zh) | 2011-04-12 | 2011-04-12 | Voip***中基于linux的媒体服务器及其放音方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102158615B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102638453B (zh) * | 2012-03-13 | 2015-07-29 | 广州华多网络科技有限公司 | 一种基于Linux***服务器的语音数据内核转发方法 |
CN102685342B (zh) * | 2012-05-11 | 2014-05-21 | 深圳市共进电子股份有限公司 | 基于Linux***提高VOIP语音信号实时性的方法性及*** |
CN103916548A (zh) * | 2014-04-17 | 2014-07-09 | 上海斐讯数据通信技术有限公司 | 一种嵌入式voip语音通信***及其语音放音方法 |
CN106100910B (zh) * | 2016-08-18 | 2019-10-25 | 瑞斯康达科技发展股份有限公司 | 一种实现掉电告警的方法、装置和*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6108695A (en) * | 1997-06-24 | 2000-08-22 | Sun Microsystems, Inc. | Method and apparatus for providing analog output and managing channels on a multiple channel digital media server |
CN1852219A (zh) * | 2005-07-14 | 2006-10-25 | 华为技术有限公司 | 一种音频/视频文件播放方法 |
CN101345767A (zh) * | 2008-08-11 | 2009-01-14 | 中兴通讯股份有限公司 | 媒体服务器资源管理方法 |
CN101563906A (zh) * | 2006-12-20 | 2009-10-21 | Nxp股份有限公司 | 具有嵌入式媒体服务器的无线媒体*** |
-
2011
- 2011-04-12 CN CN 201110091324 patent/CN102158615B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6108695A (en) * | 1997-06-24 | 2000-08-22 | Sun Microsystems, Inc. | Method and apparatus for providing analog output and managing channels on a multiple channel digital media server |
CN1852219A (zh) * | 2005-07-14 | 2006-10-25 | 华为技术有限公司 | 一种音频/视频文件播放方法 |
CN101563906A (zh) * | 2006-12-20 | 2009-10-21 | Nxp股份有限公司 | 具有嵌入式媒体服务器的无线媒体*** |
CN101345767A (zh) * | 2008-08-11 | 2009-01-14 | 中兴通讯股份有限公司 | 媒体服务器资源管理方法 |
Non-Patent Citations (1)
Title |
---|
陈小军,李毅.一种基于Linux内核提高流媒体服务器性能的方法.《科技信息》.2008,(第6期), * |
Also Published As
Publication number | Publication date |
---|---|
CN102158615A (zh) | 2011-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11482240B2 (en) | Presentation of communications | |
KR101130398B1 (ko) | 제3자 호 및 장치 제어를 용이하게 하기 위한 시스템 및방법 | |
US7471783B1 (en) | Method and system for replicating ring back tones | |
EP1919179B1 (en) | Method and system for implementing interconversion between ring back tone and ringing tone | |
US9838564B2 (en) | System and method for distributed processing in an internet protocol network | |
US20230353603A1 (en) | Call processing system and call processing method | |
CN102158615B (zh) | Voip***中基于linux的媒体服务器及其放音方法 | |
CN101170611A (zh) | 实现音视频信箱服务的方法及*** | |
CN103685793A (zh) | 高保真音频数据的时移分配 | |
CN101909192A (zh) | 电视终端的通信方法及其电视终端 | |
CN104579710A (zh) | 碎片化异步会议***会议成员发布语音信息的方法 | |
CN103929555A (zh) | 一种ip录音***语音流镜像方法 | |
CN104579712A (zh) | 碎片化异步会议***会议成员发布文字信息的方法 | |
CN113612759B (zh) | 一种基于sip协议的高性能高并发智能广播***及实现方法 | |
CN110943938A (zh) | 一种ims交换网电话终端实时录音方法和*** | |
CN101005402B (zh) | Sip用户代理业务切换的信息上报方法 | |
CN1556645A (zh) | 一种在下一代网络中提供个性化回铃音业务的***及方法 | |
WO2016150333A1 (zh) | 实现语音信箱***与融合通信***互通的方法和*** | |
CN102231734A (zh) | 实现从文本到语音tts的音频转码方法、装置及*** | |
WO2010130193A1 (zh) | 音频媒体发包控制装置、方法及音频媒体服务器 | |
CN104580778A (zh) | 碎片化异步会议***会议成员发布图片信息的方法 | |
CN101848283A (zh) | 呼叫拒接转移的方法、装置及***和终端 | |
KR200462920Y1 (ko) | 멜로디링 음질 향상 ip 단말 | |
US10818295B1 (en) | Maintaining network connections | |
CN101867577A (zh) | 基于sip的录音控制方法、***和媒体服务器 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130710 |