FreeSwitch配置文件简述(二)

FreeSwitch配置文件简述

前言

上篇文章简述了fs的作用和安装,本篇文章将继续介绍最重要的配置文件


一、简述

配置文件由许多 XML 文件组成。在系统装载时,XML解析器会将所有XML文件组织在一起,并读入内存,称为XML注册表。这种设计的好处在于其非常高的可扩展性。由于XML文档本身非常适合描述复杂的数据结构,在 FreeSWITCH 中 就可以非常灵活的使用这些数据。并且,外部应用程序也可以很简单地生成XML,FreeSWITCH 在需要时可以动态的装载这些 XML。另外,系统还允许在某些 XML 节点上安装回调程序(函数),当这些节点的数据变化时,系统便自动调用这些回调程序。

1.配置文件路径

安装路径下的 /conf 目录下

2.目录结构

在这里插入图片描述

最主要的配置文件为 freeswitch.xml,它是主配置文件,把所有配置文件“粘合”到一起,整个XML文件分为几个重要的部分:configuration (配置)、dialplan (拨号计划)、directory(用户目录)及phrase(分词)。

3. freeswitch.xml

默认XML:

<?xml version="1.0"?>

<document type="freeswitch/xml">
  <!--系统常量 -->
  <X-PRE-PROCESS cmd="include" data="vars.xml"/>
  <!--系统配置 -->
  <section name="configuration" description="Various Configuration">
    <X-PRE-PROCESS cmd="include" data="autoload_configs/*.xml"/>
  </section>
  <!--载入拨号规则配置 -->
  <section name="dialplan" description="Regex/XML Dialplan">
    <X-PRE-PROCESS cmd="include" data="dialplan/*.xml"/>
  </section>
  <!--聊天规则配置 -->
  <section name="chatplan" description="Regex/XML Chatplan">
    <X-PRE-PROCESS cmd="include" data="chatplan/*.xml"/>
  </section>

  <!-- 分机号和注册相关 -->
  <section name="directory" description="User Directory">
    <X-PRE-PROCESS cmd="include" data="directory/*.xml"/>
  </section>

  <!-- 语言类 -->
  <section name="languages" description="Language Management">
    <X-PRE-PROCESS cmd="include" data="lang/de/*.xml"/>
    <X-PRE-PROCESS cmd="include" data="lang/en/*.xml"/>
    <X-PRE-PROCESS cmd="include" data="lang/fr/*.xml"/>
    <X-PRE-PROCESS cmd="include" data="lang/ru/*.xml"/>
    <X-PRE-PROCESS cmd="include" data="lang/he/*.xml"/>
    <X-PRE-PROCESS cmd="include" data="lang/es/es_ES.xml"/>
    <X-NO-PRE-PROCESS cmd="include" data="lang/es/es_MX.xml"/>
    <X-PRE-PROCESS cmd="include" data="lang/pt/pt_BR.xml"/>
    <X-NO-PRE-PROCESS cmd="include" data="lang/pt/pt_PT.xml"/>
    <X-NO-PRE-PROCESS cmd="include" data="lang/sv/*.xml"/>
  </section>
</document>

freeswitch.xml的根是document,在根下有5个section,每个section对应一部分功能(上文已经进行简单注解),其中有一个X-PRE-PROCESS预处理指令,它的作用是把对应xml中的参数包含到本xml文件中。fs只是在加载阶段进行简单key-value进行赋值。

4. vars.xml

截取部分内容:

<include>
  <X-PRE-PROCESS cmd="set" data="default_password=1234"/>
</include>

vars.xml中存储的是系统变量(全局变量),在其他xml中可以使用 $${default_password} 来获取对应的1234这个值。这里面大部分变量均在在系统运行时自动获取,例如domain=$${local_ip_v4}即自动获取主机的ipv4地址。由于这些变量在加载的时候就载入内存中,因此我们可以手动改成我们需要的内容,也可以进行增加,实际生产中这样的操作是很常见的

  <X-PRE-PROCESS cmd="set" data="default_password=567"/>

5.autoload_configs目录

此目录下的配置文件大部分是每个模块一个,命名规则为 模块名.conf.xml,各个模块的配置文件各不相同。同时也包含一些其他的配置文件比如modules.conf.xml,这个配置文件配置启动freeswitch时需要加载那些模块

<configuration name="modules.conf" description="Modules">
  <modules>
    <!-- Loggers (I'd load these first) -->
    <load module="mod_console"/>
    <load module="mod_logfile"/>

    <load module="mod_enum"/>

    <!-- 想要开启mod_xml_rpc模块只要吧注释去掉即可! -->
    <!-- <load module="mod_xml_rpc"/> -->
     <load module="mod_xml_curl"/>    
  </modules>
</configuration>

这个配置文件比较简单,首先定义configuration标签,其中name是名字,description是简单描述。特别注意这个name,在启动时会向xml注册表中查找name为"Modules"的configuration,然后访问它的对应配置。

6.其它

前面我们说过一些配置文件,下面还要写比较重要的我们先列出来,后续我们会分章节详细讲解我们用的到的配置文件,下面简单介绍下

  1. dialplan目录
    此目录主要定义了拨号计划,它是电话的路由器,我们拨打给谁,由它的规则来确定

  2. ivr_menues目录
    此目录定义ivr的菜单,以及处理的方案

  3. directory目录
    此目录主要定义分机号,也就是哪些帐号可以注册到fs中,包括用户的分组等方案

  4. sip_profiles目录
    此目录主要是定义SIP配置文件,主要是配置sip帐号

引用

本文主要应用 http://www.freeswitch.org.cn/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值