在UNIX类系统上,FreeSwitch 默认安装位置:/usr/local/freeswitch/;在Windows上,C:\Programming Files\FreeSwitch
目录结构
sounds:存放了各种声音文件。
en 表示英语、us表示美式英语、Callie 表示嗓音。
配置文件
配置文件由许多 XML 文件组成。
freeswitch.xml是最重要的配置文件,作用是将所有配置文件粘到一起。完整的 XML 文档包括:configuration(配置)、dialplan(拨号计划)、charplan(聊天计划)、directory(用户目录)、phrase(分词),每一部分又有不同的配置。
X-PRE-PROCESS是一个预处理命令。
编辑 vars.xml
如在调试阶段想把一条X-PRE-PROCESS指令注释掉:
当FreeSwitch预处理是,还没有到XMl解析阶段,会将预处理命令替换为以下:
由于XMl的注释不能嵌套,会产生错误的XML。解决办法:破坏预处理命令
由于FreeSwitch不认识xX-PRE-RPOCESS 和 XPRE-RPOCESS,会忽略该行。
vars.xml 主要通过X-PRE-PROCESS指令定义了一些局部变量,如:
系统自动设置的变量
查看这些变量的值:
autoload_configs 目录下的各种配置文件会在系统启动时装入。
例如:sofia.conf.xml
profiles 标签可通过X-PRE-PROCESS指令装入其他的配置文件。
aotoload_configs/modules.conf.xml 决定了freeswitch启动时自动加载那些模块。
dialplan目录:定义了xml拨号计划
ivr_menues目录:存放了默认的一些IVR菜单的例子
directory目录:决定了freeswitch作为注册服务器时,那些用户可以注册。
XML 用户目录
用户目录的默认文件:conf/directory/,系统自带的配置文件为 default.xml
该配置文件决定了那些用户能注册到freeswitch中。所有用户都属于一个domain。
在domain中定义了许多组(group),组里面包含很多用户(user)
使用type=“pointer”
显示Alice的设置
呼叫相关概念
如果Bob和Alice通话,典型的呼叫流程主要有以下两种:
来去话、Session、Channel与call
Bob 到 freeswitch 的通话称为来话;freeswitch 作为一个B2BUA在去呼叫Alice时,称为去话。
无论来话还是去话,对每一次呼叫,freeswitch都会启动一个session(会话),用于控制整个呼叫,会一直持续到通话结束。其中,每个session控制一个channel(通道、信道),channel是一对UA的实体。
通话时,freeswitch的作用是将两个channel桥接到一起,使得双方通话。这两路桥接的通话在逻辑上组成一个通话(call)。
回铃音与Early Media
A与B通过两天交换机通话
A呼叫B,B话机开始振铃,A端可听到回铃音(Ring Back Tone)。回铃音和彩铃是不收费的。这些回铃音就称为Early Media。
全局变量和局部变量
可以使用X-PRE-PROCESS在freeswitch中设置一些变量,后续使用$${var}的形式来引用。这些变量是全局有效的。
另外一些变量在Dialplan、app或directory中设置的,他们会影响呼叫流程且可以被动态改变。一般与一个channel有关,称为通道变量。可以以${var}形式引用,仅在channel的生命周期有效。