0%

FreeSWITCH权威指南(三)

FreeSWITCH架构

FreeSWITCH由一个稳定的核心(Core)及一些外围模块组成。这些外围的模块根据其功能和用途的不同又分为Endpoint、Codec、Dialplan、Application等不同的类别。

FreeSWITCH是由一个稳定的核心及外围的可加载模块组成的。核心代码经过精心设计及严格测试,保证了它的稳定性。外围的模块则保证了它的可扩展性。核心与模块间通过Public API通信,而模块间通过事件系统(Event)通信,事件机制消除了模块间的耦合,进一步增加了其可伸缩性。

FreeSWITCH目录

在UNIX类系统上,FreeSWITCH默认的安装位置是/usr/local/freeswitch,在Windows上可能是C:\Programming Files\FreeSWITCH。目录结构

reloadxml报错时,可以查看log/freeswitch.xml.fsxml定位问题

var.xml

vars.xml主要通过X-PRE-PROCESS指令定义了一些全局变量,如:

1
2
3
4
5
6
7
<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"/>

全局变量以$${var}表示,临时变量以${var}表示

可以通过global_getvar命令来查看变量的值

1
2
freeswitch> global_getvar local_ip_v4
172.18.3.181

由于这些变量是在vars.xml加载前设置的,因而可以在varx.xml中覆盖它们,如:

1
<X-PRE-PROCESS cmd="set" data="local_ip_v4=192.168.1.123"/>

autoload_configs目录

autoload_configs目录下的各种配置文件会在系统启动时装入。一般来说都是模块级的配置文件,每个模块对应一个(注意,并不是所有的模块都有配置文件)。文件名一般以“模块名.conf.xml”的方式命名(模块名中不包含“mod_”,如sofia.conf.xml)。