首页 > 代码库 > CentOS 5.8+Asterisk-11.0.1+FreePBX ——支持蓝牙,AMR-NB audio codec

CentOS 5.8+Asterisk-11.0.1+FreePBX ——支持蓝牙,AMR-NB audio codec

CentOS 5.8+Asterisk-11.0.1+FreePBX

——支持蓝牙,AMR-NB audio codec

配置前的软件包列表以及下载(或者到我个人的百度云网盘下载也可)

网盘地址:http://pan.baidu.com/s/1o6iaIFK

软件

版本

文件名称

备注

 

CentOS

5.8

CentOS-5.8-i386-bin-DVD-1of2.iso

CentOS-5.8-i386-bin-DVD-2of2.iso

 

 

Asterisk

11.0.1

 

 

 

 Asterisk 运行需求(列表即是按照顺序,可选安装根据个人需求而定)

dahdi(1.6版本前名称为zaptel,如果安装1.6前的版本,电话驱动应为zaptel)

2.10.0.1

dahdi-linux-complete-2.10.0.1+2.10.0.1.tar.gz

 

libpri

1.4.10.1

libpri-1.4.10.1.tar.gz

(使用1.4.10.1或1.4.11.4均可)

ISDN PRI library

spandsp

0.0.2pre25

spandsp-0.0.2pre25.tar.gz

fax-t3支持

asterisk

11.0.1

asterisk-11.0.1.tar.gz

 

asterisk-addons

1.6.1.2

asterisk-addons-1.6.1.2.tar.gz

 

asterisk-sounds

1.2.1

asterisk-sounds-1.2.1.tar.gz

 

FreePBX

2.11.0.40

freepbx-2.11.0.40.tar.gz

FreePBX 是一个最强大的 GUI(基于网页的)配置Asterisk的工具(有汉化版本,目前使用英文版)

 

 

VMware

10

 

 

 

说明:本文档中所有黑体均表示CentOS下的相关终端命令。

1.    下载CentOS 5.8

       国内高速下载

       http://mirrors.163.com/centos/5.8/isos/i386/CentOS-5.8-i386-bin-DVD-1of2.iso

       http://mirrors.163.com/centos/5.8/isos/i386/CentOS-5.8-i386-bin-DVD-2of2.iso

2.    Windows XP/2003/Win7上用VMware 10安装CentOS虚拟机

()

3.    下载 Asteriskdahdilibprilibsrtp

切换至文件目录存放目录 /usr/src/

su –

cd /usr/src

4.    下载Asterisk 11.0.1

wgethttp://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-11.0.1.tar.gz

5.    下载dahdi

wget http://downloads.Asterisk.org/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.10.0.1+2.10.0.1.tar.gz

6.       下载libpri

wgethttp://downloads.Asterisk.org/pub/telephony/libpri/releases/libpri-1.4.11.4.tar.gz

7.       下载libsrtp

wget http://sourceforge.net/projects/srtp/files/srtp/1.4.4/srtp-1.4.4.tgz/download

8.       安装相关的依赖软件

       yum-y install kernel-devel gcc make gcc-c++ libxml2-devel pkgconfigzlib-devel 

       yum-y install openssl-devel ncurses-devel autoconf automake libtool zip unzip

9.       tar -xzvf asterisk-11.0.1.tar.gz

10.   tar –xzvf dahdi-linux-complete-2.10.0.1+2.10.0.1.tar.gz

11.   tar -xzvf libpri-1.4.11.4.tar.gz

12.   tar -xzvf srtp-1.4.4.tgz

13.   编译srtpdahdilibpriAsterisk (注意编译的顺序)

------------------------------------------------------------------------------------------------------------------------------------------------

编译srtp

cd /usr/src/srtp

CFLAGS="-Wall -O4 -fexpensive-optimizations-funroll-loops -fPIC"

./configure --prefix=/usr

make

vi /root/.bash_profile
修改PATH=$PATH:$HOME/bin  PATH=$PATH:$HOME/bin:.

       su-

       cd/usr/src/srtp

       否则make runtest报错:rtpw_test.sh:line 27: rtpw: command not found 

       makeruntest

       makeinstall
       make clean

       -----------------------------------------------------------------------------------------------------------------------------------------------

       编译dahdi

       cd../dahdi-linux-complete-2.5.0.2+2.5.0.2

       make all

      

       连接无法更新解决方案:

       sudo fc-cache -fv 2>&1 | grep failed| cut -f1 -d":" | xargs -i sudo touch {} && sudo fc-cache –fv

 

       出错处理:

       You do notappear to have the sources for the 2.6.18-308.el5 kernel installed.

       uname -r

       2.6.18-308.el5

       cd /lib/modules/

       看到下面有 2.6.18-308.11.1.el5  2.6.18-308.el5

       cd /lib/modules/2.6.18-308.el5

       重新创建build link

       rm build

       ln-s  ../../../usr/src/kernels/2.6.18-308.11.1.el5-i686/ build

      

       解决办法2

       yum -y install kernel-devel-`uname -r`

       makeinstall

------------------------------------------------------------------------------------------------------------------------------------------------

       安装dahdi-tools后方可执行26

       若出现提示:

       List ofdetected DAHDI devices:

       No hardwarefound

       则需要对应的硬件

       make config

 

       屏幕提示:

       /sbin/chkconfig--add dahdi

       DAHDI hasbeen configured.

       List ofdetected DAHDI devices:

       pci:0000:03:0c.0    wcfxo-       1057:5608 Wildcard X100P    --提示检测到硬件Wildcard X100P

       run‘dahdi_genconf modules‘ to load support for only

       the DAHDIhardware installed in this system.  By

       defaultsupport for all DAHDI hardware is loaded at

       DAHDI start.

       -----------------------------------------------------------------------------------------------------------------------------------------------

       编译libpri

       cd../libpri-1.4.11.4 

       make

       make install

       -----------------------------------------------------------------------------------------------------------------------------------------------

       编译Asterisk

       makemenuconfig前置包安装

       yuminstall ncurses-devel

       cdasterisk-11.0.1

       contrib/scripts/install_prereqinstall

 

       注意:如要mp3,需要执行下面操作

       yuminstall subversion 

       contrib/scripts/get_mp3_source.sh

 

       注意:如要ilbc codec,需要执行下面操作

       contrib/scripts/get_ilbc_source.sh

       cdcodec/ilbc/

       看到里面只有几个文件

       extract-cfile.awkrfc3951.txt

       拷贝 http://ilbcfreeware.org/documentation/extract-cfile.txt内容到extract-cfile.awk

       awk -f extract-cfile.awk rfc3951.txt

       这将在这个目录下面产生几十个文件。

       cd ../../

       ./configure--with-bluetooth

       makemenuconfig    

       (add-on 选择chan_mobile format_mp3 res_config_mysql EXTRAS-SOUNDS-EN-GSM )

      

       准备工作完成后进入asterisk正式编译步骤

       make

       makeinstall

       makeconfig

       makesamples

       (生成Asterisk相关的例子配置文件位于/etc/Asterisk/文件夹中)

-----------------------------------------------------------------------------------------------------------------------------------------------

14.  启动dahdi

       service dahdi restart

15.  启动asterisk

       service asterisk restart

16.  查看端口5060使用情况来判定asterisk服务是否已经启动

       netstat-na|grep 5060

       udp       0      0 0.0.0.0:5060               0.0.0.0:*

17.  添加AMR codec的支持

       开始配置Asterisk前,需要添加一些工具。用到工具有ARM-NB codec编码方式支持移动电话从而能得到最好的音质。

       先停止Asterisk服务

       service asterisk stop

       进入/usr/src文件夹,下载Asterisk-amr补丁。

       cd /usr/src/

       wgethttp://sourceforge.net/projects/asterisk-amr/files/1.8.0-rc2_asterisk_amr_patch.diff/download
       cd asterisk-11.0.1/ && patch -p2 <../1.8.0-rc2_asterisk_amr_patch.diff

       cd../asterisk-11.0.1/codecs/amr/

      

       3GPP网站下载AMR codec

       wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-700.zip

       unzip-j 26104-700.zip

       unzip-j 26104-700_ANSI_C_source_code.zip

 

       回到asterisk-11.0.1目录

       cd ../.. /..

       wgethttp://sourceforge.net/projects/asterisk-amr/files/1.8.0-rc2_crypto_offer.diff/download

       cd asterisk-11.0.1/&& patch -p2 < ../1.8.0-rc2_crypto_offer.diff      补丁未打成功

 

       切换至asterisk-11.0.1/目录

       cd asterisk-11.0.1

       重新编译asterisk-11.0.1

       make ; make install

 

       启动asterisk

       asterisk-rvvvvvvvvvvv

       coreshow codecs

       2048 (1<< 11) (0x800) audio g726 (G.726 RFC3551)

       4096 (1<< 12) (0x1000) audio g722 (G722)

       8192 (1<< 13) (0x2000) audio amr (AMR NB)

-----------------------------------------------------------------------------------------------------------------------------------------------

18.  以下为可选步骤

19.  设置runlevel 3

       编辑/etc/inittab

       id:3:initdefault:

20.  安装vncserver

       yum install vnc

------------------------------------------------------------------------------------------------------------------------------------------------

       每小时reboot一次:

       cd /etc/cron.hourly/

       touchreboot

       chmod777 reboot

       #!/bin/sh

       /sbin/reboot

------------------------------------------------------------------------------------------------------------------------------------------------

       关闭Ubuntu防火墙

       # service iptables save

       #service iptables stop

       #chkconfig iptables off

------------------------------------------------------------------------------------------------------------------------------------------------

21.  启用amr codec

       vi sip_general_additional.conf

       修改

       disallow=all

       allow=ulaw

        allow=alaw

      

       allow=all

 

可选步骤到此为止

22.  重新启动Asterisk

Service asteriskrestart

 

23.  安装FreePBX-2.11.0

------------------------------------------------------------------------------------------------------------------------------------------------

1)    查看系统中是否缺少以下服务,缺少将用 ”yum install服务名来安装

        安装bindhttpdsendmailmysqlmysql-server

        yum install bind httpd sendmailmysql mysql-server

------------------------------------------------------------------------------------------------------------------------------------------------

2)    禁用Selinux

说明:这个是安全级别和防火墙的东西,启用的话会影响我们的freepbx的安装。

vi /etc/sysconfig/selinux
 
         SELINUX=enforcing 
 
改成      SELINUX=disabled 

保存:wq重启下
reboot 

3)    安装需要的扩展包

yum install e2fsprogs-develkeyutils-libs-devel krb5-devel libogg libselinux-devel libsepol-devellibxml2-devel 

yum install libtiff-devel gmp php-pearphp-pear-DB php-gd php-mysql php-pdo kernel-devel ncurses-develaudiofile-devel 

yum install libogg-devel openssl-develmysql-server mysql-devel zlib-devel perl-DateManip sendmail-cf sox

------------------------------------------------------------------------------------------------------------------------------------------------

4)    安装 phpmyadmin(可选)

说明:CentOS 5.8的php是5.1版本的(php-v),phpmyadmin 3版本需要php 5.2所以这里就用phpmyadmin 2.11

-------------------------------------------------------------------------------------------------------------------------------------------① 下载phpMyAdmin-2.11.11.2-english.zip

http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/

wget http://jaist.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/2.11.11/phpMyAdmin-2.11.11-english.zip

unzipphpMyAdmin-2.11.11-english.zip

mvphpMyAdmin-2.11.11-english  phpmyadmin

chownasterisk:asterisk -R phpmyadmin/

chmod777 -R phpmyadmin/

mvphpmyadmin /var/www/html

 

cd/var/www/html/phpmyadmin/libraries/

viconfig.default.php

$cfg[‘blowfish_secret‘]= ‘xxxx‘;

$cfg[‘Servers‘][$i][‘password‘]= ‘password‘;

 

servicemysqld start

mysqladmin-u root password "password"

 

vi/etc/httpd/conf/httpd.conf

加入 ServerName asterisk1101

修改

Userasterisk

Groupasterisk

 

chmod777 /var/lib/php/session/

chmod777 -R /var/lib/php/session/*             ——有可能提示没有这个目录,不用理会

 

servicemysqld restart

/etc/init.d/httpdrestart

在浏览器中输入后面的网址http://asterisk1101/phpmyadmin/测试访问结果

 

排错:

Forbidden

You don‘t have permission toaccess /phpmyadmin/ on this server.

原因1:没有关闭SE Linux,或者关闭了SE Linux配置但是没有reboot Linux

原因2:phpmyadmin的owner不是asterisk,mode不是777

-------------------------------------------------------------------------------------------------------------------------------------------

② 安装lame

 wget http://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz/download

 或  http://nchc.dl.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz

 tarzxvf lame-3.99.5.tar.gz

 cdlame-3.99.5

./configure

make

makeinstall

-------------------------------------------------------------------------------------------------------------------------------------------

5)    安装FreePBX

这个必须在asterisk 完全安装后才能装

下载地址:http://www.freepbx.org(官方)

wget http://mirror.freepbx.org/freepbx-2.11.0.38.tgz

 tar-xvf freepbx-2.9.0.tar.gz

cdfreepbx-2.9.0

./start_asteriskstart

 

PS:必须吧mysql密码设置为空,方便运行以下命令(建立相关asterisk 数据库)

/etc/init.d/mysqldstart

mysql -uroot –p password

mysql> set password for root@localhost=password(‘‘);

mysql> exit;

 

mysql -uroot  (测试可以通过空口令登录)

mysqladmincreate asterisk 

mysqladmincreate asteriskcdrdb

mysqlasterisk < SQL/newinstall.sql

mysqlasteriskcdrdb < SQL/cdr_mysql_table.sql

 

mysql

mysql> GRANTALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY‘password‘;

mysql> GRANTALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY ‘password‘;

mysql>  flushprivileges;

mysql> quit;

 

把mysql密码设置不能为空

mysqladmin-u root password "password"

 

再运行以下命令

 ./install_amp--username=root --password=password         //这里我的mysql用名为root,密码是password

以下是终端的一些输出提示:

Checking for PEAR DB..OK

Checking for PEARConsole::Getopt..OK

Using username: root

Using password: ********

Checking user..OK

Checking if Asterisk isrunning..running with PID: 4173..OK

Checking for/etc/amportal.conf../etc/amportal.conf does not exist, copying defaultCreatingnew /etc/amportal.conf

Enter your USERNAME to connect tothe ‘asterisk‘ database:

 [root]Enter your PASSWORDto connect to the ‘asterisk‘ database:
 [passw0rd]
Enter the hostname of the ‘asterisk‘ database:
 [localhost]
Enter a USERNAME to connect to the Asterisk Manager interface:
 [admin]
Enter a PASSWORD to connect to the Asterisk Manager interface:
 [amp111]
Enter the path to use for your AMP web root:
 [/var/www/html]
Enter the IP ADDRESS or hostname used to access the AMP web-admin:
 [xx.xx.xx.xx] asterisk1101
Enter a PASSWORD to perform call transfers with the Flash Operator Panel:
 [passw0rd]
Use simple Extensions [extensions] admin or separate Devices and Users[devicean
duser]?
 [extensions]
Created /var/lib/asterisk/bin
Enter directory in which to store super-user scripts:
 [/usr/local/sbin]

#  echo "/usr/local/sbin/amportalstart" >> /etc/rc.local

chkconfighttpd on

chkconfigmysqld on

OK 安装完成重启

reboot

 

6)    后续一些权限修改

-------------------------------------------------------------------------------------------------------------------------------------------

chmod 777/var/www/html -R

cd/var/lib/asterisk/

chmod 777 bin

chmod -R 777bin/*

chmod 777/var/lib/php/session/

chmod 777 -R/var/lib/php/session/*

-------------------------------------------------------------------------------------------------------------------------------------------

登录至FreePBX测试

http://192.168.100.128(你的本机IP地址)

用户名:admin

口令:admin

 

第一次登陆管理界面,需要进行配置。

现在可以创建SIP号码。

-------------------------------------------------------------------------------------------------------------------------------------------

 

一些排错信息:

-------------------------------------------------------------------------------------------------------------------------------------------

日志:

tail -f /var/log/httpd/access_log 

tail -f /var/log/httpd/error_log

 

/var/log/mysqld.log

asterisk 日志

tail -f /var/log/asterisk/full

tail -f /var/log/asterisk/freepbx.log

-------------------------------------------------------------------------------------------------------------------------------------------

排错:检查数据访问

mysql -h localhost -u root -ppassword

use asterisk;

-------------------------------------------------------------------------------------------------------------------------------------------

 

排错:

http://192.168.158.134/phpmyadmin/

-------------------------------------------------------------------------------------------------------------------------------------------

提示:

/etc/amportal.conf

控制谁能用amp 管理协议访问asterisk服务器

/etc/asterisk/manager.conf

 

7)    FreePBX忘记口令

修改口令为freepbx后,登录FreePBX Administration页面并修改口令。

 

错误之处敬请之处!谢谢!

后续添加硬件测试IP电话通话,以及Extension.conf编程扩展!敬请关注!

CentOS 5.8+Asterisk-11.0.1+FreePBX ——支持蓝牙,AMR-NB audio codec