深入理解elastix-2.5之整体架构
2017-04-27 08:58
253 查看
本文是在Elastix-2.5(基于CentOS-5.1 Final)上做的笔记,仅供参考。
Elastix-2.5系统大量的使用了PHP编写程序,尤其是使用面向对象的思想:类,继承等概念。
一、Elastix框架
Elastix 由操作系统和硬件平台、通信层、额外配置、服务/软件补充、第三方插件以及管理网站接口六部分组成。
![](https://img-blog.csdn.net/20170427085041225?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVlc2ljaGl1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
( 1) 基于CentOS 的平台包括各种板卡,虚拟机支持等。
( 2) 通信层以Asterisk PBX 为内核,实现了VOIP、网络传真、Email、即时通信等功能,通信层是Elastix 的核心。
( 3) 额外配置是用户可选的包括客户管理模块、电话卡管理模块等。
( 4) 服务/软件补充包括终端管理、DHCP( 动态主机设置) 以及更新引擎等。
( 5) 第三方插件是其他机构开发的,Elastix 管理员可以安装和管理的模块,如呼叫中心功能模块。
2、Elastix中的Dahdi和Asterisk简要框图
![](https://img-blog.csdn.net/20170427085558743?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVlc2ljaGl1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
二、系统目录结构
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、示意图
![](https://img-blog.csdn.net/20170427085756681?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVlc2ljaGl1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
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脚本,主要用于呼叫时检查拨号方案的状态
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脚本,主要用于呼叫时检查拨号方案的状态
相关文章推荐
- 深入理解bootstrap框架之第二章整体架构
- 深入理解elastix-2.5之Web重要PHP头文件库函数
- 深入理解bootstrap框架之第二章整体架构
- 由装饰者模式来深入理解Java I/O整体框架
- 深入理解ARM体系架构(S3C6410)---UART实例
- 从服务端架构设计角度,深入理解大型APP架构升级
- 深入理解Java SOA 架构Dubbo系列—— 第一回 结缘
- 找回对计算机操作系统架构的深层理解——深入体验世界上最强大,最稳定的操作系统AIX UNIX
- 《深入理解Nginx-模块开发与架构解析》
- 深入理解ARM体系架构(S3C6410)---UART实例
- 深入理解openstack网络架构(4)-----连接到public network
- 深入理解Symbian控件架构
- 深入理解spark之架构与原理
- 深入理解Symbian控件架构
- 深入学习理解 RESTful Web 服务架构
- 深入理解ARM体系架构(S3C6410)---rtc实例
- 深入理解 Tomcat (二) 从宏观上理解 Tomcat 组件及架构
- 深入理解Symbian控件架构
- 深入理解Symbian控件架构
- 深入理解openwrt架构(一)--安装准备和目录分析