Microsoft Word - 可管理的电话会议系统开发从入门到精通.doc

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Microsoft Word - 可管理的电话会议系统开发从入门到精通.doc"

Transcription

1 可管理的电话会议系统开发从入门到精通 1

2 深圳市开源通信有限公司 OpenVox-BestCostEfectiveAsteriskCards 联系方式 : 广东省深圳市福田区滨河路上沙创新科技园 14 栋 2 楼电话 : 传真 : 业务邮箱 技术支持邮箱 上班时间是周一至周五早上 9:00- 下午 6:00, 节假日除外 (GMT+8 北京时间 ) ThankYouforChoosingOpenVoxProducts! 2

3 目录 前言可管理 开放源码的电话会议系统... 4 第一章硬件介绍... 5 第二章软件介绍... 7 第三章安装及配置... 7 第四章测试系统 第五章参考

4 前言可管理 开放源码的电话会议系统 本文面向的对象 : 电话会议系统的技术开发人员 ; 电信市场研究人员 ; 基于以下关键词 : 开放源代码 : 包括操作系统在内, 全部采用开放源代码的软件 可管理 : 通过 Web 页面对会议进行调度 管理 统计 ; 直观 可视 易用 IP 接入 : 不仅支持普通电话线路接入, 也支持 IP 接入, 包括 SIP,H323 等协议 会议录音 : 对会议进行录音, 通过配置大容量硬盘, 可以实现长期保存 从入门到精通 : 这是一个从 A 到 Z 的介绍文章, 无需读者具有计算机或者通信方面的知识 电话会议系统, 或者叫做电话会议桥, 相当于一个虚拟的会议室, 让许多用户可以通过 通讯和音频终端 ( 如 : 电话 手机 会议电话机 麦克风等 ) 一起参加会议 目前市面上常用的电话会议桥具有价格高 使用不便 难管理等问题, 已经成为政府机 关和企事业单位使用电话会议的障碍 也就是说, 即便买了 Polycom 会议电话, 如果没有好 的电话会议桥, 也用的不顺手 OpenVox 本身并不制造电话会议桥 电话会议系统 多方通话设备等 采用 OpenVox 的板卡, 加上开放源代码的软件 Asterisk 1, 以及一些同样是开放源代码的应用软件, 技术工 程师可以制造出非常专业的电话会议系统 在下面的举例中, 会用到 OpenVox 的 A1200P, 一款 12 线的模拟接口语音卡, 最多可 以支持 12 路普通电话接入, 您也可以根据需要选用 4,8,12,24 线的接口卡, 或者单机 多卡, 以适应不同线路规模的需要 关于成本, 市面上常见的电话会议桥是按照会议方数 ( 端口数 ) 来报价, 每方 元, 以一个 8 方的电话会议桥为例, 价格大概为 3.2 万 -6.4 万元之间 采用本文介绍的方 案, 成本大概是 0.4 万元 : 部件 说明 价格 工控机箱 4U ATX 工控机箱 300 元 长城电源 ATX400P4 三年质保 150 元 Intel 主板 D945GCLF 主板带 ATOM 270CPU 一年质保 460 元 希捷硬盘 320G SATAII 五年质保 370 元 金士顿内存 2G DDRII 800 五年质保 280 元 A800 接口卡 OpenVox 模拟接口 8 线语音卡五年质保 2430 元 CentOS 操作系统 Linux 0 Asterisk 软件 驱动程序, 通讯程序 0 MySQL 软件 数据库 0 其他应用软件 WEB 服务 FOP 面板等 0 合计 3990 元 注 1. Asterisk 是 Digium 公司的注册商标 4

5 第一章硬件介绍 1. 硬件组成 电话会议系统的硬件组成包括 :1 台普通 PC 机或工控机 ;1 片电话接口卡 A1200P 2.A1200P 是什么 A1200P 系列板卡是模块化的 PCI 总线的模拟电话接口产品, 最多可以支持 12 路普通电话和线路接入 卡上可以根据需要配置 1-12 个模块, 以支持 1-12 线接入 红色模块为 FXO 模块, 也叫外线模块, 用来接电话线 绿色模块为 FXS 模块, 也叫内线模块, 用来接电话机 这是 A1200P 的 RJ45 口的线路组合方式 : 用红框标出的这几个 PC 电源插口就是 A800P /A1200P 的电源插口, 对应的上图所标出的电源插口 5

6 这几个白色的插槽就是主板上的 PCI 插槽,A800P /A1200P 就是插入这种插槽 这个黑色的盒子就是分线器, 负责把 RJ45 口出来的线路分成四路 RJ11 口电话, 线路的顺序和通道的顺序一致 6

7 第二章软件介绍 可管理的电话会议系统开发从入门到精通 1. 操作环境 : CentOS 需要安装的软件 zaptel asterisk asterisk-addons libpri MySQL PHP GD PHP-Pear http Web-MeetMe FOP(Flash Operator Panel) 3. 应用软件介绍 WebMeetme Web-MeetMe 是一类 PHP 页面, 我们可以在页面上很方便的进行 asterisk 电话会议安排和管理 我们可以设置好电话会议将会议时间, 会议密码以邮件的形式通知参加会议者 FOP(FlashOperatorPanel) FOP 是 AsteriskPBX 的一种电话交换台应用, 它运行在嵌入 flash 的网页上 它能实时的显示你的 PBX 活动状态, 我们可以让一个服务器端运行, 其它多个客户端同时显示 进入界面, 我们可以看到哪个电话线路是忙或空闲状态, 电话会议总人数, 排队状态 ( 等电话的人的个数 ) 等等 在界面上, 我们可以通过拖动图标转移电话, 双击挂断电话, 单击按钮 mute 用户等等 第三章安装及配置 一. 把 A1200P 的卡插入 PCI 插槽, 插好电源 启动 CentOS 5.3, 进入系统, 在命令行下输入 lspci v, 如图 : 7

8 检查输出结果, 查看系统是否识别 A1200P, 如下图红框标出表示识别 : 检查安装 asterisk 所必备的软件包, 如图 : 以上输出表示系统没有安装这个软件包, 用 yum install xxxx 命令安装, 如图 : 安装 asterisk 所必需的软件包总共有十一个, 如下分别用 rpm q xxxx 命令检查 : rpm -q bison rpm -q bison-devel rpm -q ncurses 8

9 rpm -q ncurses-devel rpm -q zlib rpm -q zlib-devel rpm -q openssl rpm -q openssl-devel rpm -q gnutls-devel rpm -q gcc rpm -q gcc-c++ 如果遇到没有安装便如上图所示使用 yum install xxxx 命令安装即可, 确保以上所列 出的安装包都要装上 //xxxx 代表对应包 接下来就是要下载 zaptel,libpri,asterisk 以及 asterisk-addons 用 firefox 打开 下载相同版本的 zaptel 和 asterisk, 建议是 1.4 的版本 下载 libpri 和 asterisk-addons, 这里下载的是 1.4 的版本 下载方法一 : 1) 进入网页, 如图 : 2) 找到网页上的 [http] 这个下载标志, 图中用红框标出 : 点击进入, 找到 zaptel,libpri,asterisk 和 asterisk-addons 文件夹, 分别点击进去下载所对应版本的包到 9

10 /usr/src/ 目录下, 如图 : 下载后的包, 如图 : 下载方法二 : 在命令行中输入 cd /usr/src 进入 src 目录下, 在输入 wget + 文件地址即可下载 src]#wget tar.gz 编译 zaptel,libpri,asterisk 和 asterisk-addons, 具体操作如下 : zaptel 需要修改几个地方 : 请按下面的网址下载这个文件到 /usr/src 目录下 : src]# wget 2. 解压刚下载下来的数据包 cd /usr/src tar -xvzf zaptel-xxxx // 解压包 xxxx 代表对应的版本号 tar -xvzf libpri-xxxx // 解压包 xxxx 代表对应的版本号 10

11 tar -xvzf asterisk-xxxx // 解压包 xxxx 代表对应的版本号 tar -xvzf asterisk-addons-xxxx // 解压包 xxxx 代表对应的版本号如图 : src]# tar -xvzf zaptel tar.gz src]# tar -xvzf libpri tar.gz src]# tar -xvzf asterisk tar.gz src]# tar -xvzf asterisk-addons tar.gz 输入 cp opvxa1200.c /usr/src/zaptel-xxxx/kernel/ 输入 vi /usr/src/zaptel-xxxx/makefile 找到 TOPDIR_MODULES= 开头的这一行, 添加 opvxa1200, 保存退出 再找到 ztmonitor.o:kernel/zaptel.h 这一行, 添加一行代码, 保存退出, 如下 : opvxa1200.o : kernel/zaptel.h kernel/wctdm.h 输入 vi /usr/src/zaptel-xxxx/zaptel.sysconfig 添加一行代码, 然后保存退出 : MODULES="$MODULES opvxa1200" # OPENVOX A1200P 11

12 3. 开始编译 zaptel, 输入 cd zaptel-xxxx./configure 如图 : 下图是./configure 运行正确完成的输出 : 输入 make 下图是 make 命令正确完成的输出 : 输入 make install 12

13 下图是 make install 命令正确完成的输出 : 输入 make config 4. 现在已经编译完 zaptel, 接下来开始编译 libpri, 命令和编译 zaptel 的基本一致 : 输入 cd /usr/src/libpri-xxxx //xxxx 代表对应的版本号输入 make 编译 输入 make install 安装 libpri-1.4.7]# cd libpri libpri-1.4.7]# make libpri-1.4.7]# make install 5. 现在已经编译完 libpri, 接下来开始编译 asterisk, 命令和编译 zaptel 的基本一致 : 输入 cd /usr/src/asterisk-xxxx //xxxx 代表对应的版本号./configure 下图是./ configure 命令正确完成的输出 : 13

14 输入 make 下图是 make 命令正确完成的输出 : 输入 make install 运行后得到的正确结果如图 : 14

15 输入 make samples 下图是 make samples 命令正确完成的输出 : 6. 现在已经编译完 asterisk, 接下来开始编译 asterisk-addons, 命令和编译 zaptel 的基本一致 : 输入 cd /usr/src/asterisk-xxxx //xxxx 代表对应的版本号./configure./configure 运行完正确的输出是 : 开源通信 src]# cd asterisk-addons asterisk-addons-1.4.7]#./configure 15

16 $.$..$$$7. $$$$7.7$$$..$$$ $$$$$$77$$$77$$$$$7. $$$, $$$~.7$$$$$$$$$$$$$7..$$$..$$7.7$$$$$$$7:?$$$. $$$?7$$$$$$$$$$I.$$$7 $$$.7$$$$$$$$$$$$$$$$ :$$$. $$$ $$$$$$7$$$$$$$$$$$$.$$$. $$$ $$$ 7$$$7.$$$.$$$. $$$$ $$$$7.$$$. 7$$$7 7$$$$ 7$$$ $$$$$ $$$ $$$$7. $$ (TM) $$$$$$$..7$$$$$$ $$ $$$$$$$$$$$$7$$$$$$$$$.$$$$$$ $$$$$$$$$$$$$$$$. configure: Package configured for: configure: OS type : Linux configure: Host CPU : i686 编译 asterisk-addons asterisk-addons-1.4.7]# make 编译后输出如下 : [LD] format_mp3.o mp3/common.o mp3/dct64_i386.o mp3/decode_ntom.o mp3/layer3.o mp3/tabinit.o mp3/interface.o -> format_mp3.so make[1]: Nothing to be done for `all'. make[1]: Nothing to be done for `all' Asterisk-Addons Build Complete Addons has successfully been built. + + If you would like to install it : make install + 安装 asterisk-addons asterisk-addons-1.4.7]# make install 安装正常输出如下 : 16

17 make[1]: Nothing to be done for `all'. make[1]: Nothing to be done for `all' Asterisk-Addons Installation Complete Addons has successfully been installed. + + If you would like to install the sample + + configuration files (overwriting any + + existing config files), run: + 输入 make samples asterisk-addons-1.4.7]# make samples 7. 编译完上述两个文件之后, 再运行下面的命令 : cd /usr/src/zaptel-xxxx/kernel/xpps/utils //xxxx 代表对应的版本号./genzaptelconf -sdvm ( 运行这个命令后, 如果上面有报 error, 请认真查看报错的具体信息, 系统会自动给出解决问题的命令, 用户可以根据该命令进行解决, 然后再次运行./genzaptelconf -sdvm, 如无报错, 则可进行下一步 ) 这个命令会自动生成 /etc/zaptel.conf 和 /etc/asterisk/zapata-channels.conf 文件 zapata.conf, zapata-channels.conf, extensions.conf 三者的关系图 : 17

18 zapata.conf #include zapata-channels.conf zapata-channels.conf zapata-channels.conf 中指明了每个通道在 extensions.conf ( 拨号规则的配置文件 ) 中所对应的 context, 如左图所示的关系 [from-interal] exten => 600,1,Dial(zap/5) exten => 600,2,Hangup() [from-pstn] exten => s,1,answer() exten =>s,2,playback(xx) extensions.conf zaptel.conf 文件如下 : # Span 1: OPVXA1200/0 "OpenVox A1200P/A800P Board 1" (MASTER) fxoks=1 fxoks=2 fxoks=3 fxoks=4 fxoks=5 fxoks=6 fxoks=7 fxoks=8 # Global data 18

19 loadzone = us defaultzone = us "zaptel.conf" 23L, 369C 6. 检查自动生成的文件配置是否和自己的 A1200P 的卡一致, 如果不一致的话要进行修改, 注意 FXS 口用 FXO 信令 下图为运行上述命令的输出, 从输出我们可以发现一个问题,( 使用本文的所用的软件版本可能会出现的一个问题, 其他的版本不一定会出现 ),/etc/asterisk/zapata-channels.conf 没有被包含进 /etc/asterisk/zapata.conf, 解决办法是 : 在 zapata.conf 文件的最后加一句 : #include zapatal-channels.conf 即可 : 输入 cd /etc/asterisk/ vi zapata.conf 在文件最后添加一句 : #include zapata-channels.conf 19

20 7. 接下来输入以下命令 : modprobe zaptel // 加载 zaptel 模块 modprobe wctdm // 加载 wctdm 模块 ztcfg -vvvvv 上面的输出表示 A1200P 的通道都已识别, 驱动安装成功 ( 本文用的是 8 个 FXS 口, 上面的 channel 01 到 channel 08 是 FXs 口, 后面的 FXO 表示它们使用的是 FXO 的信令, 并不是表示它们是 FXO 口, 这一点大家应该注意 ) 8. 启动 asterisk, 运行下面命令 : asterisk -vvvvvvvgc ( 如果 asterisk 已启动, 可输入 asterisk -r ) 进入 CLI 后输入 zap show channels, 如果能看到模块表示安装已基本完成 : 20

21 二. 安装 WebMeetMe 安装 webmeetme 之前, 我们需要安装 mysql,php,gd, 配置数据库和建立表格 1. 安装 MySQL 用 yum 安装 mysql 和 ~]# mysql-devel, yum install 命令如下 mysql : ~]# yum install mysql-devel 2. 安装 PHP: 用 yum 安装 php-mysql,php-dba,php-gd, 命令如下 : ~]# yum install php-mysql ~]# yum install php-dba ~]# yum install php-gd 3. 安装 GD 用 yum 安装 gd, 命令如下 : ~]# yum install gd 4. 配置 pear 用 yum 安装 php-pear, 用 pear 安装 DB, 命令如下 : ~]#yum install php-pear ~]# pear install DB 5. 数据库配置 1) 首先我们要初始化 MySQL 在根目录下输入如下命令 : ~]# mysql_install_db 2) 然后我们要启动 MySQL 服务在根目录下输入如下命令 : ~]# service mysqld start 21

22 3) 为数据库 root 用户设置一个密码 mysqladmin -u root password XXXXXXXX ( 密码 ), 我们这里设置密码为 命令如下 : ~]# mysqladmin -u root password ) 接下来, 我们要连接 MySQL 服务并设置数据库输入命令 mysql ph 回车, 提示输入密码, 密码为上一步我们设置的密码, 这里是 , 详细命令如下 : ~]# mysql p Enter password ( 输入设置的密码 ) 成功登入后输出为 : Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> 5) 我们依次创建数据库 meetme, 创建用户 meetme, 并设置 meetme 的密码, 详细命令以及正确输出如下 : mysql> CREATE DATABASE meetme; Query OK, 1 row affected (0.00 sec) mysql> USE meetme; Database changed mysql> GRANT ALL on meetme.* to IDENTIFIED BY '111111'; Query OK, 0 rows affected (0.00 sec) 6) 现在我们从新连接到 MySQL service, 我们以刚刚创建的用户 meetme 登入 : 输入命令如下 : ~]# mysql -u meetme -p Enter password: 注意 : 这里输入的密码是上一步设置的密码, 这里设的是 成功登入正确输出如下 : Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. 22

23 7) 现在我们来为 WebMeetme 创建数据库表 : 进入名为 meetme 的数据库, 命令和正确输出如下 : mysql> USE meetme; Database changed 创建下面四个表, 命令和成功创建输出如下 : 表一如下 : mysql> CREATE TABLE `booking` ( -> `bookid` int(10) unsigned NOT NULL auto_increment, -> `clientid` int(10) unsigned default '0', -> `roomno` varchar(30) default '0', -> `roompass` varchar(30) NOT NULL default '0', -> `silpass` varchar(30) NOT NULL default '0', -> `starttime` datetime NOT NULL default ' :00:00', -> `endtime` datetime NOT NULL default ' :00:00', -> `datereq` datetime NOT NULL default ' :00:00', -> `datemod` datetime NOT NULL default ' :00:00', -> `maxuser` varchar(30) NOT NULL default '10', -> `status` varchar(30) NOT NULL default 'A', -> `confowner` varchar(30) NOT NULL default '', -> `confdesc` varchar(100) NOT NULL default '', -> `aflags` varchar(10) NOT NULL default '', -> `uflags` varchar(10) NOT NULL default '', -> `sequenceno` int(10) unsigned default '0', -> `recurinterval` int(10) unsigned default '0', -> PRIMARY KEY (`bookid`) -> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=145 ; Query OK, 0 rows affected (0.00 sec) 表二如下 : mysql> CREATE TABLE `cdr` ( -> `bookid` int(11) default NULL, -> `duration` varchar(12) default NULL, -> `CIDnum` varchar(32) default NULL, -> `CIDname` varchar(32) default NULL, 开源通信 -> `jointime` datetime default NULL, -> `leavetime` timestamp NULL default NULL -> ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Query OK, 0 rows affected (0.00 sec) 23

24 表三如下 : mysql> CREATE TABLE `participants` ( -> `id` int(11) NOT NULL auto_increment, -> `user_id` int(11) NOT NULL default '0', -> `book_id` int(10) NOT NULL default '0', -> PRIMARY KEY (`id`) -> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=782 ; Query OK, 0 rows affected (0.00 sec) 表四如下 : mysql> CREATE TABLE `user` ( -> `id` int(11) NOT NULL auto_increment, -> ` ` varchar(100) NOT NULL default '', -> `password` varchar(25) default NULL, -> `first_name` varchar(50) default NULL, -> `last_name` varchar(50) default NULL, -> `telephone` varchar(15) default NULL, -> `admin` varchar(5) NOT NULL default 'User', -> PRIMARY KEY (`id`) -> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 ; 8) 安装 WebMeetme 到下面这个网站上去下载 Web-MeetMe-XXX 这里如果你不是用桌面登入系统, 建议在 XP 系统下下载, 然后用 SMB 服务共享到 Centos 系统 共享方法 : 编辑 smb.conf 文件进入 smb.conf, 命令如下 : ~]# cd /etc/samba/ samba]# vi smb.conf 找到下面两行 : security = user passdb backend = tdbsam 24

25 将其改为 : security = share passdb backend = tdbsam 转到最后一行, 在最后面加下面的配置命令 : [openvox] comment = openvox path = /home/openvox public = yes writable =yes 保存退出 在 /etc/samba/home/ 目录下创建 openvox 这个目录, 并设置权限, 最后重启 smb 服务, 具体命令如下 : samba]# cd /home/ home]# mkdir openvox home]# chmod 777 openvox home]# service smb restart 登入到 smb 服务器, 将 XP 里的 Web-MeetMe_v3.1.0.tgz 复制到 openvox 目录下, 然后再将 Web-MeetMe_v3.1.0.tgz 拷贝到 /var/www/html/ 目录下, 命令如下 : openvox]# cp Web-MeetMe_v3.1.0.tgz /var/www/html/ 9) 解压 Web-MeetMe 在 /var/www/html/ 目录下解压, 命令如下 : ~]# cd /var/www/html/ html]# tar -xvzf Web-MeetMe_v3.1.0.tgz 注意 :Web-MeetMe 只需解压就可以了, 不用安装 10) 编译和安装 CBMySQL 进入到 cbmysql 目录下, 命令如下 : ~]# cd /var/www/html/web-meetme/cbmysql 编译以及编译正常输出如下 : cbmysql]# make cc -pipe -I/usr/include/mysql -L/usr/lib/mysql -fpic -I/usr/src/asterisk -D_GNU_SOURCE -I/usr/include/mysql -c -o app_cbmysql.o app_cbmysql.c cc -shared -Xlinker -x -o app_cbmysql.so app_cbmysql.o -I/usr/include/mysql -L/usr/lib/mysql lmysqlclient 25

26 安装 cbmysql 安装命令和安装成功输出如下 : cbmysql]# make install for x in app_cbmysql.so; do install -m 755 $x /usr/lib/asterisk/modules ; done mkdir -p /var/lib/asterisk/sounds/conf-recordings 11) 配置 CBMySQL 将 cbmysql.conf 文件拷贝到 /etc/asterisk/ 目录下, 命令如下 : ~]# cp /var/www/html/web-meetme/cbmysql/cbmysql.conf 编辑 cbmysql.conf ~]# cd /etc/asterisk asterisk]# vi cbmysql.conf 分别找到下面三行 : password= user= sock=/tmp/mysql.sock 修改如下 : password= user=meetme sock==/var/lib/mysql/mysql.sock 保存退出 12). 配置 Web-MeetMe 编辑 defines.php 文件 ~]# vi /var/www/html/web-meetme/lib/defines.php 找到下面这行 define ("WEBROOT", " 26

27 把 IP 地址改为本机的 IP 地址 : define ("WEBROOT", " 配置 Asterisk phpagi 把 /var/www/html/web-meetme/phpagi/ 目录下的 phpagi.example.conf 拷贝到 /etc/asterisk/phpagi.conf; 编辑 phpagi.conf 命令如下 : ~]# cp /var/www/html/web-meetme/phpagi/phpagi.example.conf /etc/asterisk/phpagi.conf ~]# vi /etc/asterisk/phpagi.conf 修改用户名和密码找到下面几行 #username for login username=me_and_only_me #password for login secret=i_am_not_telling 改为 : #username for login username=meetme #password for login secret= ) 配置 Asterisk Manager 编辑 manager.conf ~]# vi /etc/asterisk/manager.conf 分别找到下面这两行 enabled = no bindaddr = 改成如下 : enabled = yes bindaddr =

28 14 配置 database.php 编辑 database.php, 命令如下 : ~]# vi /var/www/html/web-meetme/lib/database.php 找到下面这行 $password = ''; 改为 : $password = '111111'; 15) 修改 php.ini ~]# vi /etc/php.ini 第 360 行, 找到 error_reporting = E_ALL 改为 : error_reporting = E_ALL & ~E_NOTICE 四安装 FOP(Flash Operator Panel) 在下面的网址下载 FOP 1. 下载和解压 FOP, 命令如下 : src]# wget src]# tar -xvzf op_panel-0.29.tar.gz 将 flash 里面的文件拷贝到 /var/www/html/panel 目录下, 命令如下 : src]# cd op_panel-0.29 op_panel-0.29]# cp flash/* /var/www/html/panel 将 op_server.cfg, op_server.pl, op_style.cfg, op_buttons.cfg op_lang_en.cfg 拷贝到 /var/www/html/panel 目录下, 命令如下 : op_panel-0.29]# cp op_buttons.cfg /var/www/html/panel op_panel-0.29]# cp op_server.cfg /var/www/html/panel op_panel-0.29]# cp op_server.pl /var/www/html/panel 开源通信 op_panel-0.29]# cp op_style.cfg /var/www/html/panel op_panel-0.29]# cp op_lang_en.cfg /var/www/html/panel 28

29 2. 配置 FOP's server 编辑 op_server.cfg ~]# cd /var/www/html/panel/ panel]# vi op_server.cfg 找到下面这行并加上注释, 如下 : use_amportal_conf=0; ;use_amportal_conf=0; 修改主机地址, 端口号, 用户名, 用户密码, 和 security_code, 如下 : manager_host= manager_port=5038 manager_user=myuser manager_secret= security_code= 修改 Manager.conf 编辑 manager.conf 转到最后面一行, 在最后面加上 [myuser] secret= deny= / permit= / read=system,call,log,verbose,command,agent,user write = system,call,log,verbose,command,agent,user 29

30 第四章测试系统 1. 首先我们将两个分路器接到 A1200P 卡上, 将八部电话接到分路器上 2. 接下来我们开始配置拨号规则, 在命令行中输入 : cd /etc/asterisk asterisk]# vi extensions.conf 跳转到 extensions.conf 的最后一行, 在最后面添加如下拨号方案 : [from-internal] exten =>121,1,MeetMeCount(900,CONFCOUNT) exten =>121,2,GotoIF($[${CONFCOUNT}<10]?3:100) exten =>121,3,Authenticate(123456) exten =>121,4,MeetMe(900,MD) exten =>121,100,Playback(demo-moreinfo) 此段拨号方案表示 : 参加会议者, 拨打 121, 系统计算会议人数并判断是否小于 10 个人, 如果是少于十个人, 系统提示输入认证密码, 若认证密码通过系统提示输入会议房间号 ; 如果会议多于 9 个人, 系统播放提示音 demo-moreinfo 3. 下面我们需要在 meetme.conf 这个文件中添加会议房间号编辑 meetme.conf 这个文件 ~]# cd /etc/asterisk/ asterisk]# vi meetme.conf 转到 meetme.conf 的最后一行, 在最后面添加如下代码 : [rooms] Conf => 用 webmeetme 添加会议, 登入 webmeetme 界面, 添加一个会议, 输入会议信息并将会议安排以邮件的形式发给被邀请参加会议的人 在浏览器里输入 前面的 ip 地址是自己主机的 ip 地址 ) 进入的页面如下 : 30

31 点击 Add Conference 进入如下页面, 设定会议基本信息 设定会议基本信息后, 点击下面的 Add Conference button, 页面如下 : 31

32 点击下面的 participants button, 输入 并发送可以通知参会者 5. 编辑 FOP 里面的 buttons 进入 buttons.cfg, 命令如下 : 给下面的这些行分别添加注释 [SIP/10] [SIP/11] [SIP/12] [_SIP/.*] [PARK/701] [SIP/16] [CAPI[contr1/NNNNNNNNN]] [SIP/17] [IAX2/3002] [901] 32

33 [902] [Zap/1] [Zap/2] [QUEUE/SALES] [QUEUE/SUPPORT] [IAX2/iaxtel] [SIP/provider] 在最后面加上 [900] Position=28 Label="Meetme Room 900" Extension=900 Context=from-internal Icon=9 [ZAP/1] Position=2-3 Label="1 Reception" Extension=900 Context=from-internal Icon=1 [ZAP/2] Position=5-6 Label="2 Reception" Extension=900 Context=from-internal Icon=2 [ZAP/3] Position=8-9 Label="3 Reception" Extension=900 Context=from-internal Icon=3 [ZAP/4] Position=11-12 Label="4 Reception" Extension=900 Context=from-internal Icon=4 33

34 [ZAP/5] Position=14-15 Label="5 Reception" Extension=900 Context=from-internal Icon=5 [ZAP/6] Position=17-18 Label="6 Reception" Extension=900 Context=from-internal Icon=6 [ZAP/7] Position=20-21 Label="7 Reception" Extension=900 Context=from-internal Icon=7 [ZAP/8] Position=23-24 Label="8 Reception" Extension=900 Context=from-internal Icon=8 6. 登入到 FOP 网页, 管理电话会议各通道. 启动 http,mysql 服务 ~]# service httpd start ~]# service mysqld start 在 /var/www/html/panel 目录下, 输入./op_server.pl, 命令如下 : ~]# cd /var/www/html/panel panel]#./op_server.pl 登入到如下网址 正确显示类似如下 : 34

35 Panel 上的 button, 背景颜色等属性可以在 buttons.cfg 文件里设置 启动 asterisk: ~]# cd /etc/asterisk asterisk]# asterisk vvgc *CLI> reload 分别拨通八部电话到电话会议, 这里拨打 121, 然后系统提示密码, 这里输入 , 最后系统提示输入会议房间号, 这里是 900 成功拨入后, 如果你是第一个进入会议的人, 系统会提示你是第一个人, 然后播放音乐, 直到下一位人到来, 音乐停止 接下来的人成功拨入会议后, 会听到一小段系统音乐, 然后听到会议 注意 : 这里输入的密码和房间号都要和 extensions.conf 文件里的拨号方案定的一致, 否则不能进入会议 下面是拨号过程中,asterisk 的输出 : 拨打 121 通过通道 5 计算人数 35

36 人数已满 认证成功 认证失败 输入会议房间号, 并成功进入会议 房间号错误 八部电话电话会议状态 FOP 显示如下图 : 36

37 单击 button 左上角的箭头, 可以将一个参会者 mute, 让他只能听会议不能说话, 双击小红圈, 可以 kick 一个参会者 另外最后那个 label 为 Meetme Room 900 的 button 能显示参加会议的总人数, 这里是七个 (kick 了第一个 ) 37

38 第五章参考 可管理的电话会议系统开发从入门到精通 =48924&group_id= 备注 : 1. 著作权 OpenVoxCommunicationColtd; 2. 版权 GPL; 38