ติดตั้ง Asterisk 1.6.2.0 บน CentOS 5.4 ตอนที่ 1

Asterisk Opensource IP Pbx

ติดตั้ง Asterisk 1.6.2.0 บน CentOS 5.4 ตอนที่ 1

โพสต์โดย voip4share » 30 ม.ค. 2010 09:58

ดาวน์โหลดบทความ Install Asterisk 1.6.2 ในรูปแบบไฟล์ PDF

วิธีการคอมไพล์ Asterisk 1.6.2.0 บน Linux CentOS 5.4 ให้รองรับฟีเจอร์ DAHDI, SNMP, Radius, H.323, MySQL, T.38 Fax

Note!
1 คำสั่งที่ต้องพิมพ์อยู่ในกรอบสี่เหลี่ยม "โค๊ด" นะครับ
2 บางทีต้องมีการแก้ไขไฟล์ก็ใช้โปรแกรม Text Editor บน CentOS เช่น vi ทำนะครับ

ก่อนอื่นทางที่ดีควรปิดเซอร์วิสนี้บน CentOS ก่อนนะครับนั่นคือเซอร์วิสที่ชื่อ yum-updatesd พิมพ์คำสั่งนี้
โค้ด: เลือกทั้งหมด
chkconfig --level 2345 yum-updatesd off

เพื่อไม่ให้ CentOS อัพเดทตัวเองโดยที่เราไม่รู้เนื้อรู้ตัว อัพเดทโปรแกรมอื่นคงไม่เป็นไร แต่ถ้าอัพเดท Kernel หล่ะยุ่งแน่ครับ ถึงกับต้องคอมไพล์ DAHDI ใหม่เชียวนะครับ

อีกอย่างหนึ่งที่ควรปิดคือ SeLinux ครับ เพราะมันสร้างปัญหามากมายต่อการติดตั้งโปรแกรม
โค้ด: เลือกทั้งหมด
vi /etc/selinux/config

เช็คบรรทัดนี้นะครับ ถ้าไม่เป็น disabled ก็แก้ให้เป็น disabled
SELINUX=disabled
เซฟไฟล์แล้วออกจากโปรแกรม

การติดตั้งโปรแกรมบน Linux บางทีเราก็ติดตั้งจากแพ็กเก็ตที่มีคนทำไว้ให้เราเรียบร้อยแล้ว ง่ายแต่บางทีก็ไม่ยืดหยุ่น บางทีเราก็ต้องคอมไพล์โปรแกรมด้วยตัวเอง แต่ก็ไม่ใช่ว่านึกจะคอมไพล์ก็ทำได้เลยนะครับเพราะบางทีก็ต้องติดตั้งโปรแกรมอื่นๆที่มันต้องการก่อน ไม่อย่างนั้นจะติดตั้งไม่ได้คอมไพล์ไม่ผ่าน นี้คือธรรมดชาติและเสน่ห์ของ Linux (มั้ง) ครับ

ก่อนติดตั้ง (คอมไพล์) Asterisk เราควรติดตั้งโปรแกรมต่อไปนี้ก่อนครับ วิธีการติดตั้งผมจะใช้แบบผสมคือใช้แพ็กเก็ตสำเร็จรูปและคอมไพล์เองด้วย ดังต่อไปนี้

1 ติดตั้ง C/C++ คอมไพล์เลอร์ เพื่อให้คอมไพล์ Asterisk และโปรแกรมอื่นๆได้
2 ติดตั้ง kernel-devel, kernel-header เพื่อให้ติดตั้ง DAHDI ได้
3 ติดตั้ง radiusclient-ng เพื่อให้ Asterisk ทำงานเป็น Radius Client ได้
4 ติดตั้ง MySQL และ MySQL-Devel เพื่อให้ Asterisk ทำงานร่วมกับดาต้าเบส MySQL ได้
5 ติดตั้ง spandsp และ libtiff เพื่อให้ Asterisk รับส่ง T.38 แฟ็กซ์ได้
6 ติดตั้ง pwlib, openh323 เพื่อให้ Asterisk รองรับโปรโตคอล H.323

ก่อนติดตั้ง Asteisk ควรอัพเดท CentOS ก่อนดีกว่าครับ ใช้คำสั่ง

โค้ด: เลือกทั้งหมด
yum -y update


1 ติดตั้ง C/C++ complier
ติดตั้งด้วยคำสั่ง yum ดังนี้ครับ

แบบ 64 บิต ใช้คำสั่ง
โค้ด: เลือกทั้งหมด
yum -y install gcc.x86_64 gcc-c++.x86_64 bison.x86_64 flex.x86_64 patch.x86_64 make.x86_64 ncurses.x86_64 ncurses-devel.x86_64 autoconf automake

แบบ 32 บิต ใช้คำสั่ง
โค้ด: เลือกทั้งหมด
yum -y install gcc gcc-c++ bison flex patch make ncurses ncurses-devel autoconf automake


2 อัพเดท CentOS และติดตั้ง kernel-devel, kernel-headers
แบบ 64 บิต ใช้คำสั่ง
โค้ด: เลือกทั้งหมด
yum -y install kernel-devel.x86_64 kernel-headers.x86_64

แบบ 32 บิต ใช้คำสั่ง
โค้ด: เลือกทั้งหมด
yum -y install kernel-devel kernel-headers

เสร็จแล้วรีสตาร์ท CentOS
โค้ด: เลือกทั้งหมด
reboot


3 ติดตั้ง radiusclient-ng

Note!
1 Asterisk ใช้ Radius แค่เก็บ CDR (Call Detail Record) เท่านั้นนะครับ ดังนั้นถ้าไม่ต้องการเก็บ CDR ไว้ใน Radius Server ก็ไม่จำเป็นต้องติดตั้ง radiusclient-ng ก็ได้นะครับ
2 ต้องมี Radius Server ด้วยนะครับ เพราะว่า radiusclient-ng มันเป็น Client มันต้องติดต่อกับ Radius Server โปรแกรมที่นิยมนำมาทำเป็น Radius Server ก็ได้แก่ FreeRadius (http://www.freeradius.org)

โค้ด: เลือกทั้งหมด
cd /tmp
wget http://download.berlios.de/radiusclient-ng/radiusclient-ng-0.5.6.tar.gz
tar xzvf radiusclient-ng-0.5.6.tar.gz -C /usr/src/
cd /usr/src/radiusclient-ng-0.5.6
./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var
make && make install


หมายเหตุ
1 เว็บไซต์ของโปรแกรม radiusclient-ng คือ http://developer.berlios.de/project/sho ... up_id=1208 เผื่อมีเวอร์ชั่นใหม่กว่านี้ก็ใช้เวอร์ชั่นใหม่แทนครับ
2 ตอนแตกไฟล์ซอร์สโค๊ดก่อนคอมไพล์ผมชอบเอาไปไว้ที่ /usr/src ครับ ตอนแตกไฟล์ radiusclient-ng-0.5.6.tar.gz ผมก็เลยระบุ -C /usr/src เข้าไปด้วย
3 ตอน ./configure ผมใส่ออปชั่น --sysconfdir=/etc เพราะผมชอบติดตั้งไฟล์คอนฟิกไว้ใน /etc ครับ
4 ไฟล์คอนฟิกของ radiusclient-ng จะอยู่ที่โฟลเดอร์ /etc/radiusclient-ng นะครับ ไฟล์คอนฟิกจะมีชื่อว่า radiusclient-ng.conf

ในโฟลเดอร์ /etc/radiusclient-ng มีไฟล์ดังต่อไปนี้
dictionary เป็นไฟล์ดิกชันนารีของ radiusclient-ng
dictionary.ascend เป็นไฟล์ดิกชันนารีของอุปกรณ์ยี่ห้อ ascend
dictionary.compat เป็นไฟล์ดิชันนารีของอุปกรณ์ยี่ห้อ compat
dictionary.merit เป็นไฟล์ดิกชันนารีของอุปกรณ์ยี่ห้อ merit
dictionary.sip เป็นไฟล์ดิกชันนารีของโปรโตคอล SIP
issue
port-id-map เป็นไฟล์แม๊บพอร์ต /dev/tty* ในเครื่อง
radiusclient.conf เป็นไฟล์คอนฟิกของ radiusclient-ng
server เป็นไฟล์ที่เก็บรายชื่อ Radius Server ที่จะติดต่อด้วย

ภายในไฟล์ radiusclient-ng.conf มีข้อมูลดังนี้
# General settings

auth_order radius,local
login_tries 4
login_timeout 60
nologin /etc/nologin
issue /etc/radiusclient-ng/issue
authserver localhost
acctserver localhost
servers /etc/radiusclient-ng/servers
dictionary /etc/radiusclient-ng/dictionary
login_radius /usr/sbin/login.radius
seqfile /var/run/radius.seq
mapfile /etc/radiusclient-ng/port-id-map
default_realm
radius_timeout 10
radius_retries 3
bindaddr *
login_local /bin/login

ภายในไฟล์ server มีข้อมูลดังนี้
#Server Name or Client/Server pair Key
#---------------- ---------------
localhost secret_key

สำหรับการติดตั้ง Radius Server เช่น FreeRadius

4 ติดตั้ง mysql และ mysql-devel

แบบ 64 บิตใช้คำสั่ง
โค้ด: เลือกทั้งหมด
yum -y install mysql.x86_64 mysql-devel.x86_64 mysql-server.x86_64

แบบ 32 บิตใช้คำสั่ง
โค้ด: เลือกทั้งหมด
yum -y install mysql mysql-devel mysql-server


5. ติดตั้ง libtiff และ spandsp

5.1 ติดตั้ง libtiff, libtiff-devel
ใช้สร้างไฟล์เอกสารจากแฟ็กซ์ที่รับเข้ามา ติดตั้ง libtiff, libtiff-devel โดยใช้คำสั่ง yum

แบบ 64 บิต
โค้ด: เลือกทั้งหมด
yum -y install libtiff.x86_64 libtiff-devel.x86_64

แบบ 32 บิต
โค้ด: เลือกทั้งหมด
yum -y install libtiff libtiff-devel


5.2 ติดตั้ง spandsp

โค้ด: เลือกทั้งหมด
cd /tmp
wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.6pre17.tgz
tar xzvf spandsp-0.0.6pre17.tgz -C /usr/src
cd /usr/src/spandsp-0.0.6
./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var
make clean
make
make install


จะมีไฟล์ติดตั้งไว้ในโฟลเดอร์ /usr/include/spandsp และ /usr/lib

เว็บไซต์ของโปรแกรมคือ http://www.soft-switch.org/downloads/spandsp/ เผื่อมีเวอร์ชั่นใหม่

6. ติดตั้ง pwlib และ openh323

6.1 สร้างไฟล์ complier.h

โค้ด: เลือกทั้งหมด
vi /usr/include/linux/compiler.h

โค้ด: เลือกทั้งหมด
แล้วใส่บรรทัดนี้เข้าไป

#ifndef __LINUX_COMPILER_H
#define __LINUX_COMPILER_H
#define likely(x) __builtin_expect((x),1)
#define unlikely(x) __builtin_expect((x),0)
#endif /* __LINUX_COMPILER_H */

บันทึกไฟล์

6.2 ติดตั้ง pwlib
pwlib-v1_10_3-src-tar.gz
PwLib v1.10.3
(1.98 MiB) ดาวน์โหลด 331 ครั้ง

โค้ด: เลือกทั้งหมด
cd /tmp
wget http://www.voxgratia.org/releases/pwlib-v1_10_3-src-tar.gz
tar xvf pwlib-v1_10_3-src-tar.gz -C /usr/src
cd /usr/src/pwlib_v1_10_3
./configure --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc
make clean
make optshared
make install


6.3 ติดตั้ง openh323
openh323-v1_18_0-src-tar.gz
OpenH323 v1.18.0
(3.57 MiB) ดาวน์โหลด 296 ครั้ง

โค้ด: เลือกทั้งหมด
cd /tmp
wget http://www.voxgratia.org/releases/openh323-v1_18_0-src-tar.gz
tar xzvf openh323-v1_18_0-src-tar.gz -C /usr/src
cd /usr/src/openh323_v1_18_0

โค้ด: เลือกทั้งหมด
export PWLIBDIR=/usr/src/pwlib_v1_10_3
export OPENH323DIR=/usr/src/openh323_v1_18_0
export LD_LIBRARY_PATH=$PWLIBDIR/lib:$OPENH323DIR/lib

โค้ด: เลือกทั้งหมด
./configure --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc
make clean
make optshared
make install


7. ติดตั้ง net-snmp

แบบ 64 บิตใช้คำสั่ง
โค้ด: เลือกทั้งหมด
yum -y install net-snmp.x86_64 net-snmp-libs.x86_64 net-snmp-devel.x86_64 net-snmp-utils.x86_64 net-snmp-perl.x86_64

แบบ 32 บิตใช้คำสั่ง
โค้ด: เลือกทั้งหมด
yum -y install net-snmp net-snmp-libs net-snmp-devel net-snmp-utils net-snmp-perl


ติดตั้ง CentOS 5.4
ติดตั้ง Asterisk + CentOS ตอนที่ 2
voip4share
Administrator
 
โพสต์: 656
ลงทะเบียนเมื่อ: 18 พ.ย. 2009 11:26
ที่อยู่: รามคำแหง กรุงเทพฯ

Re: ติดตั้ง Asterisk 1.6.2.0 บน CentOS 5.4 ตอนที่ 1

โพสต์โดย haeha » 17 ก.พ. 2010 05:57

ขอความกรุณาช่วยแก้ error นี้ให้หน่อยครับ
ผมติดตั้งใน CentOs 5.4 Final Release ตามขั้นตอนข้างบนจนมาถึงขั้นตอนที่ 6.2

wget http://www.voxgratia.org/releases/openh ... src-tar.gz
tar xzvf openh323-v1_18_0-src-tar.gz -C /usr/src
cd /usr/src/openh323-v1_18_0
export PWLIBDIR=/usr/src/pwlib_v1_10_3
export OPENH323DIR=/usr/src/openh323-v1_18_0
export LD_LIBRARY_PATH=$PWLIBDIR/lib:$OPENH323DIR/lib
./configure --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc
make clean

พอมาถึง Step นี้
make optshared

เกิด error ดังนี้
In file included from ixjunix.cxx:491:
/usr/src/openh323_v1_18_0/include/ixjlid.h:277:28: error: linux/compiler.h: No such file or directory
make[2]: *** [/usr/src/openh323_v1_18_0/lib/obj_linux_x86_r/ixjunix.o] Error 1
make[2]: Leaving directory `/usr/src/openh323_v1_18_0/src'
make[1]: *** [opt] Error 2
make[1]: Leaving directory `/usr/src/openh323_v1_18_0'
make: *** [optshared] Error 2

พอทำ Step ต่อไป

make install
ก็มี error ต่อมาดังนี้

mkdir -p /usr//lib
rm -f /usr//lib/libh323_*_r.so*
/usr/bin/install -c -m 444 lib/libh323_linux_x86_r.so.1.18.0 /usr//lib
/usr/bin/install: cannot stat `lib/libh323_linux_x86_r.so.1.18.0': No such file or directory
make: *** [install] Error 1

ไม่ทราบว่าต้องแก้ไขยังไงเหรอครับ
http://www.irbeautina.biz
เว็ปขายสินค้าแบรนด์ไทยตั้งโดยโรงงานรับจ้างผลิต ที่สั่งสมประสบการณ์การผลิตเพื่อการส่งออกมากว่า 27 ปี
มีผลิตภัณฑ์หลากหลายอาทิ สินค้าด้านความงาม อาหารเสริม สปา บำรุงผิวพรรณ รักษาสิว ฝ้า น้ำหอม เครื่องประดับ
เปิดรับสมัครตัวแทนจำหน่ายอิสระ แฟรนไชส์
ภาพประจำตัวสมาชิก
haeha
Silver Member
 
โพสต์: 26
ลงทะเบียนเมื่อ: 12 ก.พ. 2010 07:41
ที่อยู่: บางแสน

Re: ติดตั้ง Asterisk 1.6.2.0 บน CentOS 5.4 ตอนที่ 1

โพสต์โดย voip4share » 17 ก.พ. 2010 09:36

โอเคครับ ผมพลาดอีกหล่ะ ที่คอมไพล์ไม่ผ่านเพราะว่ามันหาไฟล์ compiler.h ไม่เจอ ไฟล์นี้ต้องสร้างขึ้นมาครับ (ผมได้แก้ไขในบทความแล้ว)
โค้ด: เลือกทั้งหมด
vi /usr/include/linux/compiler.h

แล้วใส่บรรทัดนี้เข้าไป

โค้ด: เลือกทั้งหมด
#ifndef __LINUX_COMPILER_H
#define __LINUX_COMPILER_H
#define likely(x) __builtin_expect((x),1)
#define unlikely(x) __builtin_expect((x),0)
#endif /* __LINUX_COMPILER_H */


บันทึกไฟล์แล้วคอมไพล์ใหม่

ที่นี้ก็จะคอมไพล์ผ่านได้ และถ้าเจอ Error อีก ก็ให้สั่ง make optshared ซ้ำอีกรอบครับ หรือไม่ก็ลองดูข้อความที่เห็นบนหน้าจอ

การคอมไพล์โปรแกรมบน Linux ต้องทำเป็น step-by-step ครับ ขั้นตอนไหนทำไม่ผ่านก็ต้องแก้ไขจนผ่านครับ
voip4share
Administrator
 
โพสต์: 656
ลงทะเบียนเมื่อ: 18 พ.ย. 2009 11:26
ที่อยู่: รามคำแหง กรุงเทพฯ

Re: ติดตั้ง Asterisk 1.6.2.0 บน CentOS 5.4 ตอนที่ 1

โพสต์โดย SoNFaiYen » 19 ก.ค. 2011 21:08

ตรงข้อ 2 ที้ให้อัพเดท kernel 32 bit ผมลองตามนั้นแล้วมันขึ้นว่า No package kernel-header available
SoNFaiYen
Silver Member
 
โพสต์: 25
ลงทะเบียนเมื่อ: 14 ก.ค. 2011 08:10

Re: ติดตั้ง Asterisk 1.6.2.0 บน CentOS 5.4 ตอนที่ 1

โพสต์โดย nuiz » 20 ก.ค. 2011 08:49

โทษทีครับ จริงๆต้องเป็น kernel-headers ครับ มีตัว s ด้วย พอดีผมเขียนตกไป (แก้ไขในบทความแล้ว)
** หากมีปัญหากับอุปกรณ์ที่ซื้อมาเองหรือบริการที่ทำขึ้นมาเอง ให้โพสต์ถามในเว็บบอร์ดนี้นะครับ **
** งานเร่งด่วนติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ไลน์ NuizVoip ครับ **
nuiz
Diamond Member
 
โพสต์: 7069
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33

Re: ติดตั้ง Asterisk 1.6.2.0 บน CentOS 5.4 ตอนที่ 1

โพสต์โดย SoNFaiYen » 20 ก.ค. 2011 09:06

nuiz เขียน:โทษทีครับ จริงๆต้องเป็น kernel-headers ครับ มีตัว s ด้วย พอดีผมเขียนตกไป (แก้ไขในบทความแล้ว)


บทความที่ผมโหลดไปไมมีตัว S นะครับ คุณเขียนเอาไว้ว่า

yum -y install kernel-devel kernel-header
SoNFaiYen
Silver Member
 
โพสต์: 25
ลงทะเบียนเมื่อ: 14 ก.ค. 2011 08:10

Re: ติดตั้ง Asterisk 1.6.2.0 บน CentOS 5.4 ตอนที่ 1

โพสต์โดย nuiz » 20 ก.ค. 2011 09:18

ครับ ผมเพิ่งแก้ไขเมื่อตะกี้นี้ ขอบคุณครับที่แจ้งมา
** หากมีปัญหากับอุปกรณ์ที่ซื้อมาเองหรือบริการที่ทำขึ้นมาเอง ให้โพสต์ถามในเว็บบอร์ดนี้นะครับ **
** งานเร่งด่วนติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ไลน์ NuizVoip ครับ **
nuiz
Diamond Member
 
โพสต์: 7069
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33

Re: ติดตั้ง Asterisk 1.6.2.0 บน CentOS 5.4 ตอนที่ 1

โพสต์โดย SoNFaiYen » 20 ก.ค. 2011 10:29

ขอบคุณครับ
SoNFaiYen
Silver Member
 
โพสต์: 25
ลงทะเบียนเมื่อ: 14 ก.ค. 2011 08:10

Re: ติดตั้ง Asterisk 1.6.2.0 บน CentOS 5.4 ตอนที่ 1

โพสต์โดย kwanphon » 12 มิ.ย. 2013 11:40

รบกวนแนะนำด้วยครับ
สอบถามเกี่ยวกับการติดตั้ง pwlib ครับ เพราะติดตั้งถึง
Step นี้
make optshared

เกิด error ดังนี้
In file included from ixjunix.cxx:491:
/usr/src/openh323_v1_18_0/include/ixjlid.h:277:28: error: linux/compiler.h: No such file or directory
make[2]: *** [/usr/src/openh323_v1_18_0/lib/obj_linux_x86_r/ixjunix.o] Error 1
make[2]: Leaving directory `/usr/src/openh323_v1_18_0/src'
make[1]: *** [opt] Error 2
make[1]: Leaving directory `/usr/src/openh323_v1_18_0'
make: *** [optshared] Error 2

ซึ่งผมสร้างไฟล์ compiler.h แล้วตามที่แนะนำแล้วครับ แต่ยัง error อยู่

รบกวนช่วยแนะนำวิธีแก้ไขด้วยนะครับ
kwanphon
 
โพสต์: 3
ลงทะเบียนเมื่อ: 12 มิ.ย. 2013 09:23

Re: ติดตั้ง Asterisk 1.6.2.0 บน CentOS 5.4 ตอนที่ 1

โพสต์โดย nuiz » 13 มิ.ย. 2013 08:25

มันฟ้องว่า /usr/src/openh323_v1_18_0/include/ixjlid.h:277:28: error: linux/compiler.h: No such file or directory

แน่ใจว่าคุณสร้างไฟล์ดังกล่าวไว้ถูกไดเร็คตอรี่แล้ว ดับเบิ้ลเช็คอีกทีครับ
** หากมีปัญหากับอุปกรณ์ที่ซื้อมาเองหรือบริการที่ทำขึ้นมาเอง ให้โพสต์ถามในเว็บบอร์ดนี้นะครับ **
** งานเร่งด่วนติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ไลน์ NuizVoip ครับ **
nuiz
Diamond Member
 
โพสต์: 7069
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33

ต่อไป

ย้อนกลับไปยัง Asterisk SIP Server

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และ บุคคลทั่วไป 5 ท่าน

cron