FreeSWITCH配置文件详解

配置文件默认的目录是 /usr/local/freeswitch/conf 

一、freeswitch.xml

freeswitch.xml文件是所有XML文件的粘合剂,它没有特别的作用,主要就是将不同的配置文件包含到不同部分(Section)中,从而生成一个大的XML配置文件

二、vars.xml

vars.xml 主要通过 X-PER-PROCESS 指令定义了一些全局变量,全局变量使用 $${var} 表示,临时变量以 ${var} 表示,在实际使用中可以通过API命令来获取全局变量的值如:global_getvar local_ip_v4

<X-PRE-PROCESS cmd="set" data="domain=$${local_ip_v4}"/>
<X-PRE-PROCESS cmd="set" data="domain_name=$${domain}"/>
<X-PRE-PROCESS cmd="set" data="hold_music=local_stream://moh"/>
<X-PRE-PROCESS cmd="set" data="use_profile=internal"/>

#查看全局变量的值
freeswitch@internal> global_getvar local_ip_v4
192.168.17.16

#在vars.xml加载之前,FreeSWITCH就已经算出并设置了一些全局变量,但有的时候FreeSWITCH自动算出的变量可能不是
#你想要的,如local_ip_v4的值,在服务器有多个网卡的情况下,可能希望它能得到另外一个网卡的IP地址,这时候就可以
#通过手动方式设置该变量IP来实现
<X-PRE-PROCESS cmd="set" data="local_ip_v4=192.168.1.251"/>

 

三、autoload_configs目录

该目录下的各种配置文件会在系统启动的时候载入,一般来说都是模块级的配置文件,每个模块对应一个(主要并不是所有的模块都有配置文件),文件名一般以“模块名.confi.xml”的方式命名(模块名中不包含“mod_“),另外autoload_configs目录中有一个特殊的配置文件module.conf.xml,该文件决定了FreeSWITCH启动时加载那些模块,如果需要启动时加载某模块,在这里添加一行,如果不需要就注释或删除即可

 

五、ivr_memues目录

该目录下放了一些默认的IVR菜单的例子

 

六、directory目录

该目录中的配置文件决定了当FreeSWITCH作为注册服务器时,那些用户可以注册,即用于配置SIP用户

#默认的default.xml
<domain name="$${domain}">
    <params>
      <param name="dial-string" value="{^^:sip_invite_domain=${dialed_domain}:presence_id=${dialed_user}@${dia
led_domain}}${sofia_contact(*/${dialed_user}@${dialed_domain})}"/>
    </params>

    <variables>
      <variable name="record_stereo" value="true"/>
      <variable name="default_gateway" value="$${default_provider}"/>
      <variable name="default_areacode" value="$${default_areacode}"/>
      <variable name="transfer_fallback_extension" value="operator"/>
    </variables>
</domain>

params参数
#params中定义了该Domain中所有用户的公共参数,在这里只定义了一个 dial-string 这是一个至关重要的参数,在使用
#user/username 或 sofia/internal/username@domain 这样的呼叫字符串时,FreeSWITCH会根据username以及
#domain找到该dial-string,并最终扩展成用户实际的SIP地址

sofia_contact
#sofia_contact是一个API命令,它会根据用户的注册地址扩展成相应的呼叫字符串

variables
#variables定义了一些公共变量,在用户主叫或被叫时,这些变量会绑定到相应的Channel上形成Channel Variable

#在domain中还定义了许多组,组里面包含了很多用户
<group name="default">
  <users>
    <X-PRE-PROCESS cmd="include" data="default/*.xml"/>
  </users>
</group>

组名default
#在这里组名default并没有特殊意义

#如下,也可以定义其他组,组中的用户并不需要是完整的XML节点,也可以是一个指向已存在用户的指针,如下代码
#使用type="pointer"定义的指针
<group name="sales">
  <users>
	<user id="1000" type="pointer"/>
	<user id="1001" type="pointer"/>
	<user id="1002" type="pointer"/>
	<user id="1003" type="pointer"/>
	<user id="1004" type="pointer"/>
  </users>
</group>

#注意,使用组并不是必需的,如果不打算用组,可将用户节点直接放到 domain 的下一级也是可以的,但是使用组可以比较
#方便的支持像群呼、代接之类的业务,例如使用group_call可以同时或者顺序呼叫某个组的用户

#一个SIP用户1001的设置
<include>
  <user id="1001">
    <params>
      <param name="password" value="$${default_password}"/>
      <param name="vm-password" value="1001"/>
    </params>
    <variables>
      <variable name="toll_allow" value="domestic,international,local"/>
      <variable name="accountcode" value="1001"/>
      <variable name="user_context" value="default"/>
      <variable name="effective_caller_id_name" value="Extension 1001"/>
      <variable name="effective_caller_id_number" value="1001"/>
      <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
      <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
      <variable name="callgroup" value="techsupport"/>
    </variables>
  </user>
</include>

 

转载于:https://my.oschina.net/stache/blog/1524198

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值