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 | <X-PRE-PROCESS cmd="set" data="domain=$${local_ip_v4}"/> |
全局变量以$${var}
表示,临时变量以${var}
表示
可以通过global_getvar命令来查看变量的值
1 | freeswitch> global_getvar local_ip_v4 |
由于这些变量是在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)。