ติดตั้ง Asterisk 1.6.2.0 บน CentOS 5.4 ตอนที่ 3
โพสต์แล้ว: 30 ม.ค. 2010 10:07
9 รัน Asterisk ด้วย User/Group อื่นที่ไม่ใช่ Root
ถ้าเราสั่งรัน Asterisk ตอนนี้มันจะรันด้วย User=root และ Group=root ซึ่งไม่ใช่ความคิดที่ดีสักเท่าไหร่นะครับ ผมจะให้มันรันด้วย User=asterisk และ Group=asterisk นะครับ ซึ่งขั้นตอนก็ง่ายๆครับ ดังต่อไปนี้
9.1 เปิดไฟล์ /etc/passwd
เพิ่มบรรทัดนี้เข้าไป
asterisk:x:62:62:Asterisk User:/etc/asterisk:/sbin/nologin
เช็คก่อนนะครับว่าตัวเลข 62 มีอยู่ในบรรทัดอื่นแล้วหรือยัง ถ้ามีแล้วก็เปลี่ยนไปเป็นค่าอื่น (แนะนำว่าไม่ควรเกิน 100 นะครับ)
9.2 เปิดไฟล์ /etc/group
เพิ่มบรรทัดนี้เข้าไป
asterisk:x:62:
ตัวเลขต้องเหมือนกับในข้อ 9.1 นะครับ
9.3 ก๊อปไฟล์ Init Script ของ Asterisk
ลองเช็คในไดเร็คตอรี่ /etc/init.d ก่อนนะครับว่ามีไฟล์ asterisk หรือยัง ถ้ามีแล้วก็ไม่ต้องทำขั้นตอนนี้
9.4 เปิดไฟล์ /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 เขียนข้อมูลในไดเร็คตอรี่เหล่านั้นได้
ซึ่ง asterisk ตัวหน้าคือยูสเซอร์และตัวหลังคือกรุ๊ป
10. ขั้นตอนนี้ไม่ต้องทำก็ได้นะครับ มันแค่เก็บ CDR ไว้ใน Radius ซึ่งก็ต้องติดตั้ง Radius Server อีก
แก้ไขไฟล์ /etc/asterisk/cdr.conf ให้ Asterisk รู้จักที่เก็บไฟล์คอนฟิกของ radiusclient-ng (ถ้าติดตั้ง)
แก้ไขข้อมูลในไฟล์ดังต่อไปนี้
[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
12. การ Start/Stop/Restart Asterisk
ข้อความที่ปรากฏ
Starting asterisk: [ OK ]
ข้อความที่ปรากฏ
Stopping safe_asterisk: [ OK ]
Shutting down asterisk: [ OK ]
ข้อความที่ปรากฏ
Stopping safe_asterisk: [ OK ]
Shutting down asterisk: [ OK ]
Starting asterisk: [ OK ]
ข้อความที่ปรากฏ
asterisk (pid 549) is running...
หมายความว่าตอนนี้ Asterisk กำลังทำงานอยู่ และมีค่า Process ID คือ 549
13. ดูโพรเซสของ Asterisk ขณะที่ทำงาน
14. ลองเข้า Asterisk Console ดู
ที่ Linux Prompt พิมพ์คำสั่งว่า asterisk -r แล้วกด Enter จะเห็น Asterisk Prompt ดังรูปครับ
เป็นการยืนยันอีกแรงครับว่าเราติดตั้ง Asterisk ได้สำเร็จ
ติดตั้ง Asterisk + CentOS ตอนที่ 2
ติดตั้ง Asterisk + CentOS ตอนที่ 4
ถ้าเราสั่งรัน 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