ถ้าเราสั่งรัน Asterisk ตอนนี้มันจะรันด้วย User=root และ Group=root ซึ่งไม่ใช่ความคิดที่ดีสักเท่าไหร่นะครับ ผมจะให้มันรันด้วย User=asterisk และ Group=asterisk นะครับ ซึ่งขั้นตอนก็ง่ายๆครับ ดังต่อไปนี้
9.1 เปิดไฟล์ /etc/passwd
- โค้ด: เลือกทั้งหมด
vi /etc/passwd
เพิ่มบรรทัดนี้เข้าไป
asterisk:x:62:62:Asterisk User:/etc/asterisk:/sbin/nologin
เช็คก่อนนะครับว่าตัวเลข 62 มีอยู่ในบรรทัดอื่นแล้วหรือยัง ถ้ามีแล้วก็เปลี่ยนไปเป็นค่าอื่น (แนะนำว่าไม่ควรเกิน 100 นะครับ)
9.2 เปิดไฟล์ /etc/group
- โค้ด: เลือกทั้งหมด
vi /etc/group
เพิ่มบรรทัดนี้เข้าไป
asterisk:x:62:
ตัวเลขต้องเหมือนกับในข้อ 9.1 นะครับ
9.3 ก๊อปไฟล์ Init Script ของ Asterisk
ลองเช็คในไดเร็คตอรี่ /etc/init.d ก่อนนะครับว่ามีไฟล์ asterisk หรือยัง ถ้ามีแล้วก็ไม่ต้องทำขั้นตอนนี้
- โค้ด: เลือกทั้งหมด
cp /usr/src/asterisk-1.6.2.0/contrib/init.d/rc.redhat.asterisk /etc/rc.d/init.d/asterisk
chmod 755 /etc/rc.d/init.d/asterisk
9.4 เปิดไฟล์ /etc/init.d/asterisk
- โค้ด: เลือกทั้งหมด
vi /etc/init.d/asterisk
แก้ 2 บรรทัดนี้ (เอาเครื่องหมาย # ออก)
เดิม
#AST_USER="asterisk"
#AST_GROUP="asterisk"
ใหม่
AST_USER="asterisk"
AST_GROUP="asterisk"
ซึ่ง AST_USER คือยูสเซอร์ที่จะใช้รัน Asterisk นะครับ ต้องชื่อเดียวกับข้อ 9.1 ส่วน AST_GROUP คือกรุ๊ปที่จะใช้รัน Asterisk ต้องชื่อเดียวกับข้อ 9.2 ครับ
9.5 เปลี่ยน Owner ไดเร็คตอรี่เหล่านี้
จาก root เป็น asterisk เพื่อให้ Asterisk เขียนข้อมูลในไดเร็คตอรี่เหล่านั้นได้
- โค้ด: เลือกทั้งหมด
chown -R asterisk:asterisk /etc/asterisk
chown -R asterisk:asterisk /usr/lib/asterisk
chown -R asterisk:asterisk /var/lib/asterisk
chown -R asterisk:asterisk /var/spool/asterisk
chown -R asterisk:asterisk /var/run/asterisk
chown -R asterisk:asterisk /var/log/asterisk
ซึ่ง asterisk ตัวหน้าคือยูสเซอร์และตัวหลังคือกรุ๊ป
10. ขั้นตอนนี้ไม่ต้องทำก็ได้นะครับ มันแค่เก็บ CDR ไว้ใน Radius ซึ่งก็ต้องติดตั้ง Radius Server อีก
แก้ไขไฟล์ /etc/asterisk/cdr.conf ให้ Asterisk รู้จักที่เก็บไฟล์คอนฟิกของ radiusclient-ng (ถ้าติดตั้ง)
- โค้ด: เลือกทั้งหมด
vi /etc/asterisk/cdr.conf
แก้ไขข้อมูลในไฟล์ดังต่อไปนี้
[general]
enable=yes
unanswered=yes
[csv]
usegmtime=yes
loguniqueid=yes
loguserfield=yes
[radius]
usegmtime=yes
loguniqueid=yes
loguserfield=yes
radiuscfg => /etc/radiusclient-ng/radiusclient.conf
บันทึกไฟล์
11. ทำให้ Asterisk รันแบบเป็นเซอร์วิสหนึ่งใน CentOS
- โค้ด: เลือกทั้งหมด
chkconfig --level 35 asterisk on
12. การ Start/Stop/Restart Asterisk
- โค้ด: เลือกทั้งหมด
service asterisk start
ข้อความที่ปรากฏ
Starting asterisk: [ OK ]
- โค้ด: เลือกทั้งหมด
service asterisk stop
ข้อความที่ปรากฏ
Stopping safe_asterisk: [ OK ]
Shutting down asterisk: [ OK ]
- โค้ด: เลือกทั้งหมด
service asterisk restart
ข้อความที่ปรากฏ
Stopping safe_asterisk: [ OK ]
Shutting down asterisk: [ OK ]
Starting asterisk: [ OK ]
- โค้ด: เลือกทั้งหมด
service asterisk status
ข้อความที่ปรากฏ
asterisk (pid 549) is running...
หมายความว่าตอนนี้ Asterisk กำลังทำงานอยู่ และมีค่า Process ID คือ 549
13. ดูโพรเซสของ Asterisk ขณะที่ทำงาน
- โค้ด: เลือกทั้งหมด
ps -ef
14. ลองเข้า Asterisk Console ดู
ที่ Linux Prompt พิมพ์คำสั่งว่า asterisk -r แล้วกด Enter จะเห็น Asterisk Prompt ดังรูปครับ
- โค้ด: เลือกทั้งหมด
asterisk -r
เป็นการยืนยันอีกแรงครับว่าเราติดตั้ง Asterisk ได้สำเร็จ
ติดตั้ง Asterisk + CentOS ตอนที่ 2
ติดตั้ง Asterisk + CentOS ตอนที่ 4