我建了一个 Freeswitch 内核研究 交流群, 45211986, 欢迎加入, 另外,提供基于SIP的通信服务器及客户端解决方案。
比较零散,先放这留个脚印,慢慢添加整理。
1 .
freeswitch 分机号都保存在conf/directory 目录下系统启动时加载分机信息到内存,当收到注册包时在directory目录下的usr 被搜寻,搜寻依据是注册请求的to ,from 头域的域名为系统所在的域名,
分机配置文件的分级结构:
domain
groups
group
usr
usr
group
groups
domain
directory 目录下包含若干xml文件,可以每个用户一个xml profile,系统启动时动态加载,
除了通过文件方式配置用户外,可以通过 mod_xml_curl模块 访问web server, web server 在
访问数据库,实现大批量分机的添加。
可以在用户的配置文件中设置一些附加给此用户的变量。
directory 目录的内容加载后可以被系统的所有模块获取,这样减少数据冗余。
dialplan 全局变量 用 $${default_areacode}" 访问,通道变量用${default_areacode}"访问
conf/var.xml文件定义了系统的全局变量。
单个用户 的配置文件模板
<include>
<user id="1000"> //id 代表用户名,认证时用户名。
<params>
<param name="password" value="$${default_password}"/>
</params>
<variables>
<variable name="toll_allow value="domestic,international,local"/> //此用户的 channel会设置此变量,用户的权限
其她可设置的变量:
accountcode :用户账户,会出现在CDR中。
user_context: 用户打电话时走dialplan中context名为 user_context 的值
effective_caller_id_name: 呼叫其他用户时显示给对方的用户名,