本文是在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脚本,主要用于呼叫时检查拨号方案的状态
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐