CN114124739B - 部署FreeSWITCH服务的方法、装置、电子设备及存储介质 - Google Patents

部署FreeSWITCH服务的方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114124739B
CN114124739B CN202111331132.9A CN202111331132A CN114124739B CN 114124739 B CN114124739 B CN 114124739B CN 202111331132 A CN202111331132 A CN 202111331132A CN 114124739 B CN114124739 B CN 114124739B
Authority
CN
China
Prior art keywords
file
service
configuration
script
freewitch
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
CN202111331132.9A
Other languages
English (en)
Other versions
CN114124739A (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.)
Beijing Fangjianghu Technology Co Ltd
Original Assignee
Beijing Fangjianghu Technology Co Ltd
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 Beijing Fangjianghu Technology Co Ltd filed Critical Beijing Fangjianghu Technology Co Ltd
Priority to CN202111331132.9A priority Critical patent/CN114124739B/zh
Publication of CN114124739A publication Critical patent/CN114124739A/zh
Application granted granted Critical
Publication of CN114124739B publication Critical patent/CN114124739B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施方式公开了一种部署FreeSWITCH服务的方法、装置、电子设备及存储介质。方法包括:获取用于构建FreeSWITCH服务的业务镜像的Dockerfile文件、所述FreeSWITCH服务的配置文件和所述FreeSWITCH服务的脚本文件,其中所述配置文件包含业务配置文件和环境变量文件;基于所述Dockerfile文件创建包含所述业务镜像的容器;在所述容器中挂载基于所述脚本文件生成的脚本数据卷和基于所述业务配置文件生成的业务配置数据卷;基于所述环境变量文件生成所述容器的环境变量。本发明实施方式的可移植性高,提高了灾备、扩容和回滚能力,实现了研发测试流水线的快速迭代。

Description

部署FreeSWITCH服务的方法、装置、电子设备及存储介质
技术领域
本发明实施方式涉及FreeSWITCH技术领域,更具体的说,涉及一种部署FreeSWITCH服务的方法、装置、电子设备及存储介质。
背景技术
FreeSWITCH是开源的电话交换平台,从软电话客户端到运营商级的软交换设备几乎无所不能。FreeSWITCH可以原生地运行于Windows、Max OS X、Linux、BSD及solaris等诸多32/64位平台。FreeSWITCH可以用作一个简单的交换引擎、专用分支交换(PrivateBranch Exchange,PBX),媒体网关或媒体支持互动式语音应答((Interactive VoiceResponse,IVR)的服务器等。FreeSWITCH支持会话初始协议(Session initializationProtocol,SIP)、H323、Skype、Google Talk等协议,并能很容易地与各种开源的PBX系统(如sipXecs、Call Weaver、Bayonne、YATE及Asterisk等)通信。
目前,在常见的FreeSWITCH的部署方案中,直接编译FreeSWITCH源码,在宿主机安装对应的依赖应用,并修改编译结果的配置(conf)目录下的配置文件及脚本(scripts)目录下的脚本插件来直接启动FreeSWITCH服务。
然而,针对流量较大、场景丰富、迭代频繁的场景(比如互联网公司)中,运维及项目迭代管理难度大幅度上升,主要体现在:(1)、灾备、扩容、回滚能力不足,各种变动都得重新编译源码、安装依赖和修改配置,可移植性差。(2)、单点故障、配置修改及脚本更新不够透明,多人协作场景无冲突解决能力。
发明内容
本发明实施方式提出一种部署FreeSWITCH服务的方法、装置、电子设备及存储介质。
本发明实施方式的技术方案如下:
一种部署FreeSWITCH服务的方法,包括:
获取用于构建FreeSWITCH服务的业务镜像的Dockerfile文件、所述FreeSWITCH服务的配置文件和所述FreeSWITCH服务的脚本文件,其中所述配置文件包含业务配置文件和环境变量文件;
基于所述Dockerfile文件创建包含所述业务镜像的容器;
在所述容器中挂载基于所述脚本文件生成的脚本数据卷和基于所述业务配置文件生成的业务配置数据卷;
基于所述环境变量文件生成所述容器的环境变量。
在示范性实施方式中,还包括:
在操作系统镜像中安装FreeSWITCH服务的源代码以构建FreeSWITCH服务的源镜像;
基于所述源镜像编译所述源代码以构建FreeSWITCH服务的基础映像;
基于所述基础映像创建FreeSWITCH服务的业务镜像;
基于所述业务镜像生成所述Dockerfile文件;
将所述Dockerfile文件发送到代码仓库;
所述获取Dockerfile文件包括:经由Jenkins从所述代码仓库获取所述Dockerfile文件。
在示范性实施方式中,还包括:
将所述配置文件和所述脚本文件发送到所述代码仓库;
其中在配置主目录下的、对应于业务配置的子目录中存储所述业务配置文件,在所述配置主目录下存储所述环境变量文件,在脚本主目录下存储所述脚本文件;
所述获取配置文件和脚本文件包括:经由Jenkins从所述配置主目录中获取所述环境变量文件,从所述子目录中获取所述业务配置文件以及从所述脚本主目录中获取所述脚本文件。
在示范性实施方式中,所述基于所述环境变量文件生成所述容器的环境变量包括:
基于所述环境变量文件,以docker-compose编排工具生成所述容器环境变量。
在示范性实施方式中,所述业务配置文件包含呼叫计划配置文件或号码管理配置文件;所述环境变量文件包含会话初始协议端口、外部端口、内部端口或认证密码;所述脚本文件包括所述FreeSWITCH服务的附加业务逻辑。
一种部署FreeSWITCH服务的装置,包括:
获取模块,用于获取用于构建FreeSWITCH服务的业务镜像的Dockerfile文件、所述FreeSWITCH服务的配置文件和所述FreeSWITCH服务的脚本文件,其中所述配置文件包含业务配置文件和环境变量文件;
创建模块,用于基于所述Dockerfile文件创建包含所述业务镜像的容器;
挂载模块,用于在所述容器中挂载基于所述脚本文件生成的脚本数据卷和基于所述业务配置文件生成的业务配置数据卷;
生成模块,用于基于所述环境变量文件生成所述容器的环境变量。
在示范性实施方式中,还包括:
发送模块,用于在操作系统镜像中安装FreeSWITCH服务的源代码以构建FreeSWITCH服务的源镜像;基于所述源镜像编译所述源代码以构建FreeSWITCH服务的基础映像;基于所述基础映像创建FreeSWITCH服务的业务镜像;基于所述业务镜像生成所述Dockerfile文件;将所述Dockerfile文件发送到代码仓库;
所述获取模块,用于经由Jenkins从所述代码仓库获取所述Dockerfile文件。
在示范性实施方式中,
发送模块,还用于将所述配置文件和所述脚本文件发送到所述代码仓库;其中在配置主目录下的、对应于业务配置的子目录中存储所述业务配置文件,在所述配置主目录下存储所述环境变量文件,在脚本主目录下存储所述脚本文件:
所述获取模块,用于经由Jenkins从所述配置主目录中获取所述环境变量文件,从所述子目录中获取所述业务配置文件以及从所述脚本主目录中获取所述脚本文件。
在示范性实施方式中,生成模块,用于基于所述环境变量文件,以docker-compose编排工具生成所述容器环境变量。
在示范性实施方式中,所述业务配置文件包含呼叫计划配置文件或号码管理配置文件;所述环境变量文件包含会话初始协议端口、外部端口、内部端口或认证密码;所述脚本文件包括所述FreeSWITCH服务的附加业务逻辑。
一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时可实现如上任一项所述的部署FreeSWITCH服务的方法的步骤。
一种电子设备,该电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现如上任一项所述的部署FreeSWITCH服务的方法。
一种计算机程序产品,包括计算机指令,所述计算机指令在被处理器执行时实施如上任一项所述的部署FreeSWITCH服务的方法。
从上述技术方案可以看出,在本发明实施方式中,获取用于构建FreeSWITCH服务的业务镜像的Dockerfile文件、FreeSWITCH服务的配置文件和FreeSWITCH服务的脚本文件,其中配置文件包含业务配置文件和环境变量文件;基于Dockerfile文件创建包含业务镜像的容器;在容器中挂载基于脚本文件生成的脚本数据卷和基于业务配置文件生成的业务配置数据卷;基于环境变量文件生成容器的环境变量。可见,本实施方式利用容器技术,解决传统呼叫中心服务端安装部署繁冗、无法大规模扩展的问题,镜像的可移植性保证了FreeSWITCH服务可以部署在多种资源池,从而显著提升兼容性。
而且,本发明实施方式可以利用Docker-Compose来编排部署镜像,抽离日常迭代开发的模块,以数据卷的形式挂载到容器中,推动整个研发测试流程从传统模式到互联网流水线式的转换。
另外,本发明实施方式通过Jenkins来统一管理,整个上线、回滚和扩容更加直观高效,实现了研发测试流水线的快速迭代。
附图说明
为了更清楚地说明本发明实施方式中的技术方案,下面将对实施方式描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施方式的部署FreeSWITCH服务的方法的流程图。
图2是本发明实施方式的部署FreeSWITCH服务的示意图。
图3是本发明实施方式的镜像管理流程图。
图4是本发明实施方式的配置挂载流程图。
图5为本发明实施方式的部署FreeSWITCH服务的装置的结构图。
图6是本发明实施方式中的电子设备的示范性结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
为了描述上的简洁和直观,下文通过描述若干代表性的实施方式来对本发明的方案进行阐述。实施方式中大量的细节仅用于帮助理解本发明的方案。但是很明显,本发明的技术方案实现时可以不局限于这些细节。为了避免不必要地模糊了本发明的方案,一些实施方式没有进行细致地描述,而是仅给出了框架。下文中,“包括”是指“包括但不限于”,“根据……”是指“至少根据……,但不限于仅根据……”。由于汉语的语言习惯,下文中没有特别指出一个成分的数量时,意味着该成分可以是一个也可以是多个,或可理解为至少一个。
下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
本发明实施方式的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施方式例如能够以除了在这里图示或描述的那些以外的顺序实施。
在本发明实施方式中,利用Docker编排构建FreeSWITCH镜像,通过FreeSWITCH镜像启动FreeSWITCH服务。首先,利用Docker创建FreeSWITCH镜像,再基于环境变量生成FreeSWITCH镜像的编排工具,并通过编排工具将FreeSWITCH镜像以容器方式启动为FreeSWITCH服务。
图1是本发明实施方式的部署FreeSWITCH服务的方法的流程图。该方法可以由安装有持续集成(CI)工具的设备所执行。比如,持续集成工具优选实施为Jenkins。Jenkins是一个开源的、提供友好操作界面的持续集成工具,主要用于持续、自动的构建和测试软件项目、监控外部任务的运行。Jenkins可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)和构建工具结合使用。
如图1所示,该方法包括:
步骤101:获取用于构建FreeSWITCH服务的业务镜像的Dockerfile文件、FreeSWITCH服务的配置文件和FreeSWITCH服务的脚本文件,其中配置文件包含业务配置文件和环境变量文件。
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到可移植的容器中,然后发布到Linux机器或Windows机器上,也可以实现虚拟化,其中容器使用沙箱机制,相互之间不会有接口。Docker使用客户端-服务器(C/S)架构模式,使用远程API来管理和创建Docker容器。Docker容器通过Docker镜像来创建。
Dockerfile是用于构建FreeSWITCH服务的业务镜像的文本文件,文本内容包含了构建该业务镜像所需的指令和说明。Docker通过读取Dockerfile中的指令自动生成FreeSWITCH服务的业务镜像。在FreeSWITCH服务的业务镜像中,包含FreeSWITCH服务的基本逻辑和FreeSWITCH插件Lua的常用依赖包,等等。而且,FreeSWITCH服务的业务镜像中还可以包含FreeSWITCH服务的关键函数、语音识别组件或提示音语言类型,等等。
在一个实施方式中,可以从代码仓库中获取用于构建FreeSWITCH服务的业务镜像的Dockerfile文件。此时,在开发过程中,预先在操作系统镜像中安装FreeSWITCH服务的源代码以构建FreeSWITCH服务的源(source)镜像;基于源镜像编译源代码以构建FreeSWITCH服务的基础映像;基于基础映像创建FreeSWITCH服务的业务(basic)镜像;基于业务镜像生成Dockerfile文件;将Dockerfile文件发送到代码仓库。步骤101中的获取Dockerfile文件包括:经由Jenkins从代码仓库获取所述Dockerfile文件。
FreeSWITCH服务的配置文件包含FreeSWITCH服务的自定义conf配置,比如呼叫计划、号码管理,等等。FreeSWITCH服务的脚本文件包含FreeSWITCH服务的附加业务逻辑。比如,附加业务逻辑包含与录音处理相关的逻辑或与人机交互相关的逻辑,等等。包含在FreeSWITCH服务的脚本文件中的附加业务逻辑,可以调用FreeSWITCH服务的业务镜像中的各种资源,比如依赖包、函数、语音识别组件或提示音语言类型,等等。
在一个实施方式中,所述业务配置文件包含呼叫计划配置文件或号码管理配置文件,等等;环境变量文件包含会话初始协议端口、外部端口、内部端口或认证密码,等等;
在一个实施方式中,可以从代码仓库中获取FreeSWITCH服务的配置文件和FreeSWITCH服务的脚本文件。此时,在开发过程中,将配置文件和脚本文件发送到代码仓库,其中在配置主目录下的、对应于业务配置的子目录中存储所述业务配置文件,在所述配置主目录下存储所述环境变量文件,在脚本主目录下存储所述脚本文件。步骤101中的获取配置文件和脚本文件包括:经由Jenkins从配置主目录中获取所述环境变量文件,从子目录中获取所述业务配置文件以及从所述脚本主目录中获取所述脚本文件。
以上示范性描述了业务配置文件、环境变量文件和脚本文件的典型实例,本领域技术人员可以意识到,这种描述仅是示范性的,并不用于限定本发明实施方式的保护范围。
步骤102:基于所述Dockerfile文件创建包含业务镜像的容器。
Docker通过读取Dockerfile中的指令自动生成业务镜像。而且,基于Docker创建包含该业务镜像的容器。
步骤103:在容器中挂载(mount)基于所述脚本文件生成的脚本数据卷(volume)和基于业务配置文件生成的业务配置数据卷。
在这里,基于步骤101中获取的脚本文件生成脚本数据卷,而且在容器中挂载脚本数据卷。另外,基于业务配置生成的业务配置数据卷,而且在容器中挂载业务配置数据卷。
在这里,采用数据卷方式挂载脚本文件和业务配置。与绑定装入相比,数据卷更易于备份或迁移。可以使用Docker CLI命令或Docker API管理数据卷。数据卷适用于Linux和Windows容器。可以在多个容器之间更安全地共享数据卷。数据卷驱动程序允许在远程主机或云提供程序上存储卷,加密卷的内容或添加其他功能。新的数据卷可以通过容器预先填充其内容。此外,数据卷通常是用在容器的可写层中持久数据更好的选择,因为数据卷不会增加使用它的容器的大小,并且数据卷的内容存在于给定容器的生命周期之外。
步骤104:基于环境变量文件生成所述容器的环境变量。
在这里,基于环境变量文件,以docker-compose编排工具生成容器环境变量。docker-compose是用于定义和运行多容器Docker应用程序的工具。通过docker-compose,可以使用YML文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从YML文件配置中创建并启动服务。docker-compose的应用过程包括:(1)、使用Dockerfile定义应用程序的环境;(2)、使用docker-compose.yml文件定义构成应用程序的服务,这样它们可以在隔离环境中一起运行;(3)、执行docker-compose up命令来启动并运行整个应用程序。
可见,本发明实施方式利用容器技术,解决传统呼叫中心服务端安装部署繁冗、无法大规模扩展的问题,镜像的可移植性使得FreeSWITCH可以部署在多种资源池,从而显著提升兼容性。而且,还可以利用Docker-Compose来编排部署镜像,抽离日常迭代开发的模块,以数据卷的形式挂载到容器中,使得推动整个研发测试流程从传统模式到互联网流水线式的转换。另外,通过Jenkins来统一管理,使得整个上线、回滚、扩容直观高效。
图2是本发明实施方式的部署FreeSWITCH服务的示意图。
在开发过程中:通过代码仓库(git)来配置Dockerfile、配置文件(包括业务配置文件conf及环境变量文件(env))以及脚本文件(scripts)。
在测试阶段:通过Jenkins来构建镜像、推送配置、启停FreeSWITCH及对应FreeSWITCH进行扩容回滚等操作,其中在镜像创建(image build)处理中执行镜像管理,在ENV管理处理中处理环境变量和个性化配置。而且,在Volume挂载处理中挂载拆分处理的FreeSWITCH所需文件,粘合整个迭代开发流程,推动整个研发测试流水线的快速迭代。镜像创建处理通过代码仓库获取对应业务模块的Dockerfile文件,并通过Dockerfile构建业务镜像,镜像版本为Jenkins BUILD_ID。ENV管理处理通过代码仓库获取env文件,以对env文件执行docker-compose的方式生成容器的环境变量。而且,在Volume挂载处理中,通过代码仓库获取配置文件及脚本文件,推送到需要部署FreeSWITCH服务的目标机器中,以volume的方式挂载到容器的指定目录。
本发明实施方式的实现过程可以分为镜像管理和配置管理。
图3是本发明实施方式的镜像管理流程图。
在图3中,镜像管理流程包括:
步骤301:执行源代码镜像管理。具体包括:通过在基础Linux操作系统镜像中安装FreeSWITCH的指定版本源码,构建基于源码的源(source)镜像。
步骤302:执行基础镜像管理。具体包括:基于source镜像,编译源码并按照FreeSWITCH服务的常用应用模块,以及安装FreeSWITCH服务的插件Lua的常用依赖包,从而构建FreeSWITCH服务的基础(base)镜像。
步骤303:执行业务镜像管理。具体包括:在代码仓库(git)的主目录生成对应业务模块名命名的主目录,并添加基于base镜像的Dockerfile文件。
步骤304:进一步执行业务镜像管理。具体包括:在业务主目录生成自定义的modules.conf文件。
步骤305:继续执行业务镜像管理。具体包括:在Dockerfile中复制modules.conf到FreeSWITCH的编译结构主目录,并基于自定义的配置文件,安装额外的业务依赖(包括脚本文件的外部依赖包)。
图4是本发明实施方式的配置挂载流程图。
在图4中,配置挂载流程包括:
步骤401:将业务的脚本文件统一维护到代码仓库中,其中以模块名为目录名来放置业务的脚本文件。
步骤402:将自定义的配置文件统一维护到代码仓库中,其中以模块名为目录名来放置各个配置文件,包括呼叫计划、号码管理等。
步骤403:在配置文件的主目录放置环境变量文件,用来配置模块自定义环境变量,主要包含SIP端口、内部端口、外部端口和认证密码,等等。
综上所述,在本发明实施方式中,获取用于构建FreeSWITCH服务的业务镜像的Dockerfile文件、FreeSWITCH服务的配置文件和FreeSWITCH服务的脚本文件,其中配置文件包含业务配置文件和环境变量文件;基于Dockerfile文件创建包含业务镜像的容器;在容器中挂载基于脚本文件生成的脚本数据卷和基于业务配置文件生成的业务配置数据卷;基于环境变量文件生成容器的环境变量。可见,本实施方式利用容器技术,解决传统呼叫中心服务端安装部署繁冗、无法大规模扩展的问题,镜像的可移植性保证了FreeSWITCH服务可以部署在多种资源池,从而显著提升兼容性。
而且,本发明实施方式可以利用Docker-Compose来编排部署镜像,抽离日常迭代开发的模块,以数据卷的形式挂载到容器中,推动整个研发测试流程从传统模式到互联网流水线式的转换。
另外,本发明实施方式通过Jenkins来统一管理,使得整个上线、回滚、扩容直观高效,实现研发测试流水线的快速迭代。
图5为本发明实施方式的部署FreeSWITCH服务的装置的结构图。
如图5所示,部署FreeSWITCH服务的装置500包括:
获取模块501,用于获取用于构建FreeSWITCH服务的业务镜像的Dockerfile文件、FreeSWITCH服务的配置文件和FreeSWITCH服务的脚本文件,其中配置文件包含业务配置文件和环境变量文件;
创建模块502,用于基于Dockerfile文件创建包含业务镜像的容器;
挂载模块503,用于在容器中挂载基于脚本文件生成的脚本数据卷和基于业务配置文件生成的业务配置数据卷;
生成模块504,用于基于环境变量文件生成容器的环境变量。
在示范性实施方式中,还包括:
发送模块505,用于在操作系统镜像中安装FreeSWITCH服务的源代码以构建FreeSWITCH服务的源镜像;基于源镜像编译源代码以构建FreeSWITCH服务的基础映像;基于基础映像创建FreeSWITCH服务的业务镜像;基于业务镜像生成Dockerfile文件;将Dockerfile文件发送到代码仓库;获取模块501,用于经由Jenkins从代码仓库获取Dockerfile文件。
在示范性实施方式中,发送模块505,还用于将配置文件和脚本文件发送到代码仓库;其中在配置主目录下的、对应于业务配置的子目录中存储业务配置文件,在配置主目录下存储环境变量文件,在脚本主目录下存储脚本文件:获取模块501,用于经由Jenkins从配置主目录中获取环境变量文件,从子目录中获取业务配置文件以及从脚本主目录中获取脚本文件。
在示范性实施方式中,生成模块504,用于基于环境变量文件,以docker-compose编排工具生成容器环境变量。
在示范性实施方式中,业务配置文件包含呼叫计划配置文件或号码管理配置文件;环境变量文件包含会话初始协议端口、外部端口、内部端口或认证密码;脚本文件包括FreeSWITCH服务的附加业务逻辑。
本发明实施方式还提供一种计算机可读介质,所述计算机可读存储介质存储指令,所述指令在由处理器执行时可执行如上所述的部署FreeSWITCH服务的方法中的步骤。实际应用中,所述的计算机可读介质可以是上述实施方式中描述的设备/装置/系统中所包含的,也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或多个程序被执行时,可以实现上述各实施方式描述的部署FreeSWITCH服务的方法。根据本发明公开的实施方式,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件,或者上述的任意合适的组合,但不用于限制本发明保护的范围。在本发明公开的实施方式中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
如图6所示,本发明实施方式还提供一种电子设备,其中可以集成本发明实施方式实现方法的装置。如图6所示,其示出了本发明实施方式所涉及的电子设备的示范性结构图,
具体地:该电子设备可以包括一个或一个以上处理核心的处理器601、一个或一个以上计算机可读存储介质的存储器602以及存储在存储器上并可在处理器上运行的计算机程序。在执行所述存储器602的程序时,可以实现上述部署FreeSWITCH服务的方法。
在实际应用中,该电子设备还可以包括电源603、输入单元604、以及输出单元605等部件。本领域技术人员可以理解,图6中示出的电子设备的结构并不构成对该电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:处理器601是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行服务器的各种功能和处理数据,从而对该电子设备进行整体监控。存储器602可用于存储软件程序以及模块,即上述计算机可读存储介质。处理器601通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器601对存储器602的访问。
该电子设备还包括给各个部件供电的电源603,可以通过电源管理系统与处理器601逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源603还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。该电子设备还可包括输入单元604,该输入单元604可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。该电子设备还可以包括输出单元605,该输出单元605可以用于显示由用户输入的信息或提供给用户的信息以及各种图像用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。
本发明实施方式还提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令在被处理器执行时实施如上述任一实施方式所述的部署FreeSWITCH服务的方法。
本发明附图中的流程图和框图,示出了按照本发明公开的各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或者代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应该注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同附图中所标准的顺序发生。例如,两个连接地表示的方框实际上可以基本并行地执行,它们有时也可以按照相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或者流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本文中应用了具体实施方式对本发明的原理及实施方式进行了阐述,以上实施方式的说明只是用于帮助理解本发明的方法及其核心思路,并不用于限制本发明。对于本领域的技术人员来说,可以依据本发明的思路、精神和原则,在具体实施方式及应用范围上进行改变,其所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (7)

1.一种部署FreeSWITCH服务的方法,其特征在于,包括:
获取用于构建FreeSWITCH服务的业务镜像的Dockerfile文件、所述FreeSWITCH服务的配置文件和所述FreeSWITCH服务的脚本文件,其中所述配置文件包含业务配置文件和环境变量文件;
基于所述Dockerfile文件创建包含所述业务镜像的容器;
在所述容器中挂载基于所述脚本文件生成的脚本数据卷和基于所述业务配置文件生成的业务配置数据卷;
基于所述环境变量文件生成所述容器的环境变量;
还包括:
在操作系统镜像中安装FreeSWITCH服务的源代码以构建FreeSWITCH服务的源镜像;
基于所述源镜像编译所述源代码以构建FreeSWITCH服务的基础映像;
基于所述基础映像创建FreeSWITCH服务的业务镜像;
基于所述业务镜像生成所述Dockerfile文件;
将所述Dockerfile文件发送到代码仓库;
获取所述Dockerfile文件包括:经由Jenkins从所述代码仓库获取所述Dockerfile文件。
2.根据权利要求1所述的部署FreeSWITCH服务的方法,其特征在于,还包括:
将所述配置文件和所述脚本文件发送到所述代码仓库;
其中在配置主目录下的、对应于业务配置的子目录中存储所述业务配置文件,在所述配置主目录下存储所述环境变量文件,在脚本主目录下存储所述脚本文件;
获取所述配置文件和脚本文件包括:经由Jenkins从所述配置主目录中获取所述环境变量文件,从所述子目录中获取所述业务配置文件以及从所述脚本主目录中获取所述脚本文件。
3.根据权利要求1所述的部署FreeSWITCH服务的方法,其特征在于,所述基于所述环境变量文件生成所述容器的环境变量包括:
基于所述环境变量文件,以docker-compose编排工具生成所述容器的环境变量。
4.根据权利要求1所述的部署FreeSWITCH服务的方法,其特征在于,所述业务配置文件包含呼叫计划配置文件或号码管理配置文件;所述环境变量文件包含会话初始协议端口、外部端口、内部端口或认证密码;所述脚本文件包括所述FreeSWITCH服务的附加业务逻辑。
5.一种部署FreeSWITCH服务的装置,其特征在于,包括:
获取模块,用于获取用于构建FreeSWITCH服务的业务镜像的Dockerfile文件、所述FreeSWITCH服务的配置文件和所述FreeSWITCH服务的脚本文件,其中所述配置文件包含业务配置文件和环境变量文件;
创建模块,用于基于所述Dockerfile文件创建包含所述业务镜像的容器;
挂载模块,用于在所述容器中挂载基于所述脚本文件生成的脚本数据卷和基于所述业务配置文件生成的业务配置数据卷;
生成模块,用于基于所述环境变量文件生成所述容器的环境变量;还包括:
发送模块,用于在操作系统镜像中安装FreeSWITCH服务的源代码以构建FreeSWITCH服务的源镜像;基于所述源镜像编译所述源代码以构建FreeSWITCH服务的基础映像;基于所述基础映像创建FreeSWITCH服务的业务镜像;基于所述业务镜像生成所述Dockerfile文件;将所述Dockerfile文件、所述配置文件和所述脚本文件发送到代码仓库;其中在配置主目录下的、对应于业务配置的子目录中存储所述业务配置文件,在所述配置主目录下存储所述环境变量文件,在脚本主目录下存储所述脚本文件;
所述获取模块,用于经由Jenkins从所述代码仓库获取所述Dockerfile文件,从所述配置主目录中获取所述环境变量文件,从所述子目录中获取所述业务配置文件,从所述脚本主目录中获取所述脚本文件。
6.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被处理器执行时可实现权利要求1-4任一项所述的部署FreeSWITCH服务的方法的步骤。
7.一种电子设备,其特征在于,该电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现权利要求1-4任一项所述的部署FreeSWITCH服务的方法。
CN202111331132.9A 2021-11-11 2021-11-11 部署FreeSWITCH服务的方法、装置、电子设备及存储介质 Active CN114124739B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111331132.9A CN114124739B (zh) 2021-11-11 2021-11-11 部署FreeSWITCH服务的方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111331132.9A CN114124739B (zh) 2021-11-11 2021-11-11 部署FreeSWITCH服务的方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN114124739A CN114124739A (zh) 2022-03-01
CN114124739B true CN114124739B (zh) 2024-02-27

Family

ID=80378327

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111331132.9A Active CN114124739B (zh) 2021-11-11 2021-11-11 部署FreeSWITCH服务的方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114124739B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115048153A (zh) * 2022-06-21 2022-09-13 湖南快乐阳光互动娱乐传媒有限公司 一种网页应用的处理方法、装置、存储介质及电子设备
CN116405598B (zh) * 2023-03-06 2024-04-05 贝壳找房(北京)科技有限公司 电话部署方法、装置和电子设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1738243A (zh) * 2004-08-16 2006-02-22 梁松 搜索引擎呼叫通讯系统及方法
CN101415048A (zh) * 2008-12-09 2009-04-22 中国电信股份有限公司 一种呼叫中心系统
CN101807987A (zh) * 1997-07-10 2010-08-18 阿尔卡塔尔公司 提供窄带和宽带服务的电信系统
CN105577779A (zh) * 2015-12-21 2016-05-11 用友网络科技股份有限公司 一种容器化部署大企业私有云的方法和系统
CN107454149A (zh) * 2017-07-13 2017-12-08 江苏汇环环保科技有限公司 基于Docker+微服务技术的污染源在线监控系统
CN111147677A (zh) * 2018-11-05 2020-05-12 马上消费金融股份有限公司 一种呼叫中心系统
CN111399865A (zh) * 2020-04-21 2020-07-10 贵州新致普惠信息技术有限公司 一种基于容器技术自动构建目标文件的方法
CN111858370A (zh) * 2020-07-28 2020-10-30 浪潮云信息技术股份公司 DevOps的实现方法、装置、计算机可读介质
CN112882726A (zh) * 2021-01-26 2021-06-01 西安建筑科技大学 基于Hadoop和Docker的环境系统的部署方法
CN113067950A (zh) * 2021-03-17 2021-07-02 杭州元声象素科技有限公司 一种智能讯呼平台

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9774687B2 (en) * 2014-07-07 2017-09-26 Twilio, Inc. System and method for managing media and signaling in a communication platform
US10652305B2 (en) * 2018-08-17 2020-05-12 PrimeVOX Communications, LLC High availability voice over internet protocol telephony

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101807987A (zh) * 1997-07-10 2010-08-18 阿尔卡塔尔公司 提供窄带和宽带服务的电信系统
CN1738243A (zh) * 2004-08-16 2006-02-22 梁松 搜索引擎呼叫通讯系统及方法
CN101415048A (zh) * 2008-12-09 2009-04-22 中国电信股份有限公司 一种呼叫中心系统
CN105577779A (zh) * 2015-12-21 2016-05-11 用友网络科技股份有限公司 一种容器化部署大企业私有云的方法和系统
CN107454149A (zh) * 2017-07-13 2017-12-08 江苏汇环环保科技有限公司 基于Docker+微服务技术的污染源在线监控系统
CN111147677A (zh) * 2018-11-05 2020-05-12 马上消费金融股份有限公司 一种呼叫中心系统
CN111399865A (zh) * 2020-04-21 2020-07-10 贵州新致普惠信息技术有限公司 一种基于容器技术自动构建目标文件的方法
CN111858370A (zh) * 2020-07-28 2020-10-30 浪潮云信息技术股份公司 DevOps的实现方法、装置、计算机可读介质
CN112882726A (zh) * 2021-01-26 2021-06-01 西安建筑科技大学 基于Hadoop和Docker的环境系统的部署方法
CN113067950A (zh) * 2021-03-17 2021-07-02 杭州元声象素科技有限公司 一种智能讯呼平台

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
企业开发、测试环境快速部署方案的设计与实现;徐星;李银桥;刘学锋;毛建华;;工业控制计算机(第03期);全文 *
基于freeswitch平台实时融屏算法的研究与实现;罗文;《中国硕士学位论文全文库》;全文 *

Also Published As

Publication number Publication date
CN114124739A (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
US10528617B2 (en) Porting virtual images between platforms
CN110413288B (zh) 应用部署方法、装置、服务器及存储介质
US20150254096A1 (en) Management of inter-dependent configurations of virtual machines in a cloud
US10223074B2 (en) Determining the identity of software in software containers
US8892945B2 (en) Efficient application management in a cloud with failures
US20130227563A1 (en) Mechanism for Creating and Maintaining Multi-Tenant Applications in a Platform-as-a-Service (PaaS) Environment of a Cloud Computing System
US9245111B2 (en) Owner command execution in a multi-tenant cloud hosting environment
CN114124739B (zh) 部署FreeSWITCH服务的方法、装置、电子设备及存储介质
CN103795759B (zh) 一种虚拟机镜像文件的调度方法和系统
US20160147558A1 (en) Virtual machine disk image installation
US8806475B2 (en) Techniques for conditional deployment of application artifacts
CN111026414B (zh) 一种基于kubernetes的HDP平台部署方法
CN108132826B (zh) 跨云服务器的镜像管理方法、装置及服务器
US10901700B2 (en) Automatic generation of container image in a runtime environment
US20170249127A1 (en) Add-On Image for a Platform-as-a-Service System
US9507748B2 (en) Platform runtime abstraction
CN113760306B (zh) 安装软件的方法、装置、电子设备及存储介质
US9733918B2 (en) Using cloud patterns for installation on unmanaged physical machines and appliances
CN112286633A (zh) 基于CloudStack平台的虚拟机创建方法、装置、设备及存储介质
CN117112122A (zh) 一种集群部署方法和装置
CN103473113A (zh) 一种通用的虚拟机收养方法
WO2022100439A1 (en) Workflow patching
US11010149B2 (en) Shared middleware layer containers
US10564950B1 (en) Disassembly code generation during debugging
Wang et al. Reg: An ultra-lightweight container that maximizes memory sharing and minimizes the runtime environment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant