安装和配置Asterisk 1.6 + PostgreSQL以在Debian上管理CDR&RealTime配置
在本教程中,我将介绍如何在Debian系统上安装和配置Asterisk 1.6以使用PostgreSQL来管理CDR (呼叫详细记录)和实时配置 。
为此,我们将使用一个干净和最新的Debian Etch / Lenny系统; 第一步是使用一些新的参数重新配置内核,以便最佳地支持Asterisk。
apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential
cd /usr/src
下载内核源码,我将使用2.6.26:
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.8.tar.gz
tar xfv linux-2.6.26.8.tar.gz
ln -s /usr/src/linux-2.6.26.8 /usr/src/linux
cd /usr/src/linux
make clean && make mrproper
cp /boot/config-`uname -r` ./.config
make menuconfig
现在在内核配置中,我们选择这个:
Processor type and features >> [*]IRQ balancing
Processor type and features >> Timer frequency = 1000 Hz.
Processor type and features >> [*]High Resolution Timer Option
Processor type and features >> [*]HPET Timer Support
Device Drivers >> Character Devices >> [*]Enchanced Real Time Clock Support
Library Routines >> [*]CONFIG_CRC_CCITT
现在为内核编译并制作一个.deb
包:
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
我们现在可以安装内核如下:
cd /usr/src
dpkg -i *.deb
现在我们需要重新启动:
reboot -t now!
好的,现在我们已经通过VoIP完全优化了系统的最佳性能。 现在我们准备从源码编译Asterisk的机器:
apt-get install build-essential libcurl3-dev libvorbis-dev libspeex-dev unixodbc unixodbc-dev libiksemel-dev
apt-get install flex xsltproc odbc-postgresql libusb-dev libnewt-dev libxml2-dev bison
apt-get install linux-headers-`uname -r` g++ libncurses5-dev libnewt-dev libusb-dev subversion git-core
apt-get install postgresql-8.1 postgresql-contrib-8.1 postgresql-client-8.1 postgresql-dev
我们的系统已经准备好了,现在从svn repo下载Asterisk源码。 在Asterisk 1.6 Zaptel被重命名为DAHDI,我们为ISDN中继线添加mISDN:
cd /usr/src
mkdir asterisk
cd asterisk
svn co http://svn.digium.com/svn/asterisk/trunk asterisk
svn co http://svn.digium.com/svn/asterisk-addons/trunk asterisk-addons
svn co http://svn.digium.com/svn/dahdi/linux/trunk dahdi-linux
svn co http://svn.digium.com/svn/dahdi/tools/trunk dahdi-tools
svn co http://svn.digium.com/svn/libpri/branches/1.4 libpri
git-clone git://git.misdn.org/git/mISDN.git/
git-clone git://git.misdn.org/git/mISDNuser.git/
现在我们开始编译DAHDI模块,用于管理和控制Digium设备和其他模块:
cd /usr/src/asterisk/dahdi-linux
make && make install
现在DAHDI工具
cd /usr/src/asterisk/dahdi-tools
./configure
make menuselect
make
make install
make config
为了优化启动时间,我们卸载不必要的模块,因此编辑/ etc / dahdi / modules
并注释掉所有模块,除了您将使用的模块,例如,我有一个Digium TDM400P,所以我取消注释wctdm
。
现在我们构建libpri:
cd /usr/src/asterisk/libpri
make && make install
现在只有你有ISDN干线。 这一步是
**可选的**
cd /usr/src/asterisk/mISDN
make
make install
cd /usr/src/asterisk/mISDNuser
make && make install
mISDN scan
mISDN config
mISDN start
misdnportinfo
/usr/sbin/update-rc.d mISDN defaults 15 30
**结束可选**
现在我们编译Asterisk本身:
cd /usr/src/asterisk/asterisk
./configure
make menuconfig
make
make install
make samples
make config
asterisk -vvvc
Ctrl + C退出
所以我们有一个普通的Asterisk 1.6就像其他任何一样,但现在我们使它独特,并配置它实时工作。
首先我们需要数据库模式,Asterisk有一个,但是它是bug的,所以我使用我自己的数据库。
cd /usr/src/asterisk
wget http://coto.debianchile.cl/files/realtime_pgsql.sql
su - postgres
createuser -s -D -R -l -P -e asterisk
createdb -O asterisk -e asteriskDB
pgsql -U asterisk -h localhost -d asteriskDB < /usr/src/asterisk/realtime_pgsql.sql
允许星号
连接到PostgreSQL:
echo "local asteriskDB asterisk md5" >> /etc/postgresql/8.1/pg_hba.conf
现在我们在Asterisk中准备配置文件:
nano /etc/asterisk/cdr_pgsql.conf
[global] hostname=localhost port=5432 dbname=asteriskDB password=password user=asterisk table=cdr
nano /etc/asterisk/extconfig.conf
[settings] extensions => pgsql,asteriskDB,extensions_conf sipuser => pgsql,asteriskDB,sip_conf sippeers => pgsql,asteriskDB,sip_conf sipregs => pgsql,asteriskDB,sip_conf voicemail => pgsql,asteriskDB,voicemail_users queues => pgsql,asteriskDB,queue_table queue_members => pgsql,asteriskDB,queue_member_table
nano /etc/asterisk/res_pgsql.conf
[general] dbhost=127.0.0.1 dbport=5432 dbname=asteriskDB dbuser=asterisk dbpass=password requirements=warn
所有设置...我们准备好了,现在只需重新启动Asterisk。 恭喜!
/etc/init.d/asterisk restart如何到来... UpGrade正在进行中http://coto.debianchile.cl/asterisk/asterisk-postgresql/这是西班牙语,很快英文版,只在这里..在HowToForge!干杯,Coto Cisternas