深入理解elastix-2.5之整体架构
本文是在Elastix-2.5(基于CentOS-5.1 Final)上做的笔记,仅供参考。Elastix-2.5系统大量的使用了PHP编写程序,尤其是使用面向对象的思想:类,继承等概念。一、Elastix框架Elastix 由操作系统和硬件平台、通信层、额外配置、服务/软件补充、第三方插件以及管理网站接口六部分组成。( 1) 基于CentOS 的平台包括各种板卡,虚拟机支
本文是在Elastix-2.5(基于CentOS-5.1 Final)上做的笔记,仅供参考。
Elastix-2.5系统大量的使用了PHP编写程序,尤其是使用面向对象的思想:类,继承等概念。
一、Elastix框架
Elastix 由操作系统和硬件平台、通信层、额外配置、服务/软件补充、第三方插件以及管理网站接口六部分组成。
( 1) 基于CentOS 的平台包括各种板卡,虚拟机支持等。
( 2) 通信层以Asterisk PBX 为内核,实现了VOIP、网络传真、Email、即时通信等功能,通信层是Elastix 的核心。
( 3) 额外配置是用户可选的包括客户管理模块、电话卡管理模块等。
( 4) 服务/软件补充包括终端管理、DHCP( 动态主机设置) 以及更新引擎等。
( 5) 第三方插件是其他机构开发的,Elastix 管理员可以安装和管理的模块,如呼叫中心功能模块。
2、Elastix中的Dahdi和Asterisk简要框图
二、系统目录结构
Elastix 系统的主目录下主要有两个子目录 html 和 db ,其中 html 目录下存放了系统除数据库之外的所有 PHP 文件和 PHP 脚本用到的配置文件,而 db 目录内存放的是 SQLite 文件支持的数据库文件。
默 认情况下 db 目录下的数据文件包括: acl.db 、 calendar.db 、endpoint.db 、 menu.db 、 samples.db 、 trunk.db 、 address_book.db、email.db、fax.db、rate.db和settings.db。这些数据库中保存了系统使用到的重要数据, 如系统用户信息、系统的菜单信息、系统地址簿系统基本设置信息及其他信息。
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 模块的所有内容。
三、Elastix系统使用的数据库技术
Elastix使用两种类型的数据库: SQLite 和 MySQL 。系统在使用非PBX功能时使用的数据库引擎是SQLite,而与PBX相关的功能使用的数据库引擎是 MySQL。
1、SQLite数据库
SQLite 文件支持的数据库文件。默 认情况下/var/www/db 目录下的数据文件包括: acl.db calendar.db endpoint.db 、menu.db 、samples.db 、trunk.db 、address_book.db、email.db、fax.db、rate.db和settings.db。这些数据库中保存了系统使用到的重要数据, 如系统用户信息、系统的菜单信息、系统地址簿系统基本设置信息及其他信息。
2、MySQL数据库
与PBX相关的功能需要使用MySQL。在Elastix系统使用FreePBX+MySQL+Web来管理Asterisk配置文件。
3、如何访问这两种类型的数据库?
/var/www/html/libs/paloSantoNavigation.class.php。该文件中定义了一个名为 paloDB 的类。该类封装了一些数据库操作的方法,为用户访问数据提供了接口。该类的方法支持对 sqlite 和 MySQL 两种数据库类型的操作。
四、FreePBX内部运作
FreePBX是Asterisk配置文件软件,主要用于由用户通过web接口生成Asterisk配置文件。目前已集成进Elastix发行版中。
1、示意图
2、功能
- 配置Web(添加/删除)并将配置结果写入MySQL Database
- 调用retrieve_conf生成Asterisk配置文件(将存储的MySQL Database的数据转换成Asterisk配置文件)
3、主配置文件/etc/amportal.conf
/etc/amportal.conf由FreePBX读取,包含通用配置信息。在这个文件中记录web用户的数据库访问(用户名/密码)和授权类型。
4、主要工具
- ·retrieve_conf 拨号方案的生产工具
- dialparties.agi PHP编写的AGI脚本,主要用于呼叫时检查拨号方案的状态
更多推荐
所有评论(0)