2024年5月1日发(作者:)

Elastix1.5.2-2源码分析(一)

1 Elastix介绍

Elastix 是一种应用软件,它整合了适用于那些基于 Asterisk 的 PBX 的最好工具,

并将它们集成为单一的、易用的接口。同时,它增加了自己的工具集,以及允许创建第三

方模块来使 Elastix 成为开源电话通信最好的软件包。

Elastix 的目标是可靠性、模块化及易于使用。这些特性加上强大的报告功能,使之成

为实现基于 Asterisk 的 PBX 的最好选择。Elastix不但整合了PBX,而且也提供了强大

的工具集。它集合了如电子邮箱、语音留言、传真、即时工具、日程安排、报表功能、第

三方模块加载及一些服务器信息查看控制的功能。

2 系统特性分析

2.1 系统目录结构

Elastix 系统的主目录下主要有两个子目录 html 和 db ,其中 html 目录下存放了

系统除数据库之外的所有 PHP 文件和 PHP 脚本用到的配置文件,而 db 目录内存放的

是 SQLite 文件支持的数据库文件。

默认情况下 db 目录下的数据文件包括: 、 、 、

、 、 、 address_、、、

和。这些数据库中保存了系统使用到的重要数据,如系统用户信息、系统的菜

单信息、系统地址簿系统基本设置信息及其他信息。

html 目录内包含的子目录和文件。有的子目录是系统的一个模块,如 a2billing 、

crm 、 vtigercrm 等等;有的子目录是包含了系统的某些配置特性,如lang、themes、

images等等;有些子目录包含对了系统收到的文件,如收到的传真文件存放在 faxes 目

录中;有的存放了系统依赖的库文件,如 libs 目录里存放了许多类的声明和一些系统可调

用的接口。

a2billing 目录里存放的是电话卡模块的内容; backup 目录里存放的是elastix系统

的备份文件,这些文件可以在恢复的时候使用; configs 目录里存放了系统的一些配置文

件,这些文件中包含了系统全局信息, PHP 文件中包含这些配置文件即可使用里面的变

量; crm目录存放了crm模块的所有框架及内容;faxes目录存放了经由系统发送和接收

的传真文件,这些文件都是以pdf格式存放的;help目录里存放了整个系统的帮助文档结

构及内容;images目录里存放了系统使用的图标及图像信息,以及一些模块帮助文档中

使用到的图片;includes目录里包含了系统中某些模块使用的功能实现,如播放通话录音

等;lang目录里存放了默认情况下系统支持的本地化语言包,有23个lang文件;libs目

录里存放了系统使用的库文件,主要是一些函数的实现和类的定义;mail目录里存放了

RoundCube模块的内容;modules目录里存放了系统中所有类型为module的模块的内

容;panel存放了FOP模块的内容,可通过FOP监控通话情况;static目录里存放了系统

中使用的静态页面,有介绍传真工具的页面、软电话工具的页面以及即时消息的页面;

themes目录里存放了系统主框架的集中显示样式及所使用的smarty模板文件;var目录

里保存了系统的缓存文件及系统使用的临时文件;vtigercrm目录里存放了vtigercrm 模

块的所有内容。

子目录 modules 中包含了系统中类型为 module 的模块,每个模块独立为一个子

目录。