สวัสดีครับ หลังจากยุ่งกับเรื่องงานมาหลายวันก็มีโอกาสได้กลับมาเขียนตอนที่ 2 ต่อ ในตอนที่แล้วผมได้เขียนเกี่ยวกับ trixbox ซึ่งเป็น application ที่ใช้ในการทำ IP PBX และวิธีการติดตั้งไปแล้ว ในตอนนี้ผมจะขอพูดเกี่ยวกับการ config ค่าต่างของ trixbox ต่อ หลังจากที่เปิดเครื่อง server ขึ้นมาแล้วก็จะได้พบกับหน้าจอ log in ของ CentOS linux นะครับ ก็ให้เราทำการกรอก user name ลงไปเป็น root และ password ของ root ที่ตั้งเอาไว้ตอน install จากนั้นก็จะ log in เข้าสู่ asterisk server โดยอัตโนมัติครับ ก่อนอื่นเราต้องทำการ config ค่า network ของ server ก่อนเพื่อตั้ง ip address โดยการพิมพ์คำสั่ง netconfig นะครับ จากนั้นก็ตั้งค่า ip address, netmask, และ ip gateway ตามตามต้องการ
ตอนแรกที่ผมลองเล่นดูพอทำมาถึงตรงนี้ผมก็คิดว่าน่าจะต้อง reboot เครื่องก่อนซักรอบนึงหล่ะ ผมเลยทำการ reboot เครื่องโดยใช้คำสั่ง reboot ซึ่งทุกอย่างก็ดูปกติ มีการหยุด process ต่างๆเพื่อเตรียมจะ reboot แต่แล้วอยู่ดีๆการ reboot ก็มาสะดุดเมื่อมีการ kill process ของ zaptel เครื่องค้างไปซักพักนึงก่อนจะดีด Kernel Panic!!! ขึ้นมาโชว์บนหน้า console อย่างสวยงาม ทำเอาผมตกอกตกใจไปพอสมควรเลยทีเดียว ทั้งที่ตอนแรกก็ยังวิ่งดีๆอยู่ แต่ทำไม kernel ขวัญอ่อนไปซ่ะงั้น - -" ผมจึงตัดสินใจปิดเครื่องไปก่อนแล้วก็หาข้อมูลเรื่องนี้ทาง internet เพื่อหาทางแก้ไข ซึ่งก็ใช้เวลาอยู่หลายวันทีเดียว หลังจากหาข้อมูลจากเว็บไซต์ของ trixbox และบอร์ดต่างๆแล้ว ผมก็ได้มีโอกาสรู้จักกับพี่ชัย (www.hs0ukn.net) ซึ่งพี่เค้าเล่นอยู่บอร์ดของคนเล่น voip ครับ พอดีพี่เค้าใช้ trixbox อยู่เหมือนกัน จึงได้รับคำแนะนำถึงวิธีการแก้ไข kernel ขวัญอ่อนมาดังนี้ครับ ขั้นแรกให้เราทำการ edit file ของ zaptel ขึ้นมาก่อน (ใช้ editor ตัวไหนก็ได้นะครับ แต่หลักๆที่ใช้กันบ่อยๆก็ ไม่ nano ก็ vi ครับแล้วแต่ถนัดเลย) ผมใช้คำสั่ง
#nano /etc/init.d/zaptel
จากนั้นมองหาบรรทัดที่เขียนว่า #Unload drivers ครับ ถ้าเจอแล้วจะสังเกตเห็นว่ามันจะมีบรรทัดที่ตามมาอีกประมาณ 3-4 บรรทัด ให้แก้ใหม่โดยการเติม # ลงไปด้านหน้าครับ จะได้ดังนี้
# Unload drivers
#shutdown_dynamic # FIXME: needs test from someone with dynamic spans
#echo -n "Unloading zaptel hardware drivers:"
#unload_module zaptel
#RETVAL=$?
#echo "."
#[ $RETVAL -eq 0 ] && rm -f $LOCKFILE
เรียบร้อยแล้วก็ save เลยครับ จากนั้นทดลอง reboot เครื่องดูครับโดยใช้คำสั่ง #reboot จะพบว่าเราสามารถ reboot ได้แล้วโดยเครื่องไม่ค้าง ^^ ต้องขอบคุณพี่ชัย hs0ukn ด้วยนะครับที่แนะนำมา หลังจากจัดการกับปัญหาการ reboot ไม่ได้เรียบร้อยแล้ว คราวนี้ก็ถึงเวลาทดลองใช้ trixbox กันหล่ะ ตอนที่ผมลองเล่นผมใช้วิธีเอาเครื่องมาต่อใน network แบบง่ายๆครับโดยการต่อบน switch ตัวเดียวกัน (ง่ายสุดๆ) จากนั้นก็ทดลองเอาเครื่อง client ลอง config ผ่านทางเว็บดู โดยเปิด browser ที่เครื่อง client แล้วพิมพ์ IP address ของ trixbox ลงไปก็จะได้พบกับหน้าต้อนรับของ trixbox ครับแต่ว่าเป็นหน้าที่เรายังจัดการอะไรไม่ได้มากนัก ให้เราเปลี่ยนไป log in เป็น admin ของ trixbox ครับ โดยการกดปุ่ม switch (ขวาบนของหน้าเว็บ) จากนั้น trixbox ก็จะเด้ง box มาให้เรากรอก username กับ password ใส่ user เป็น maint และ password ใช้ว่า password (ตรงๆเลย) เราก็จะได้พบกับหน้า admin ของ trixbox ครับ ซึ่งก็จะมีหน้าจอที่บอก status ต่างๆของเครื่องเราไว้อย่างครบถ้วน ซึ่งถ้าเราดูจากหน้านี้ก็จะพบว่าบนเครื่องเรามีทั้ง asterisk ซึ่งเป็น SIP server รันอยู่ มี web server และ my sql รันอยู่ด้วย ขั้นตอนต่อไปก็จะเป็นการสร้าง extension หรือว่า account ที่จะใช้การคุยโทรศัพท์ผ่านเน็ตกันนะครับ โดยจากหน้า admin ให้คลิ๊ก menu Asterisk แล้วเลือก FreePBX เพื่อเรียกหน้า FreePBX config gui ขึ้นมาที่หน้า freePBX admin ให้คลิ๊กเลือก tab Setup ด้านซ้ายบน จากนั้นเลือก Extensions จะมี device ให้เลือกทั้ง SIP, IAX2 และ ZAP ก็ให้เราเลือกเป็น SIP ไปนะครับ กด submit ก็จะมีหน้า form เกี่ยวกับ extension นั้นขึ้นมาให้กรอก ซึ่งมีรายละเอียดเยอะมาก ในขั้นต้นให้เราลองกรอกแค่ User Extensions หรือเบอร์โทรศัพท์ที่จะใช้ ไม่ต้องใช้เบอร์ยากนะครับลองกรอกแค่ 101,102,103 อะไรแบบนี้ก็พอ (คล้ายกับ account msn ครับ) กรอก Display Name เป็นชื่อที่จะโชว์เวลาโทรคุยกัน (เหมือนชื่อ msn) ส่วนหมวด Extensions Options ให้เลือก Music On Hold เป็น default ไปก่อนก็ได้ครับ (เราสามารถทำ music on hold ได้ภายหลังโดยการอัพโหลดไฟล์เสียงขึ้นไป) ปรับ Ring Time เป็น Default ไปก่อน และ Call Waiting เลือกเป็น Enable ตรงหมวด Device Option ให้เลือก Secret ใส่ลงไป ตรงนี้จะเป็น password ของ account เรา ส่วนหมวด Fax, Privacy และ Recording ใส่เป็นค่า default ที่กำหนดมาให้ไปก่อนครับผมจะกล่าวถึงในภายหลัง ในหมวด Voicemail ให้ปรับ status ขึ้นเป็น Enable ไว้ เท่านี้ก็เป็นอันจบครับ กด submit ก็จะสร้าง extensions ขึ้นมา หลังจากเราสร้างการเปลี่ยนแปลงอะไรก็ตามใน freePBX จะเกิดแถบสีส้มขึ้นมาบริเวณด้านบนของเว็บเขียนว่า Apply Configuration Changes ก็ให้เราคลิ๊กไปนะครับแล้วก็จะถามว่าจะให้ Apply Change และ Reload ไหมก็ตอบ Continue ไปแล้วตัว server ก็จะ reload config ใหม่เอง สังเกตว่าบริเวณด้านขวามือจะมีแถบสีฟ้าที่แสงชื่อและเบอร์โทรของ account ที่เรา add ขึ้นมา ให้เรา add extensions ไว้ซัก 2 extensions นะครับเท่านี้ก็พร้อมจะทดสอบการโทรแล้ว ขั้นตอนต่อไปเราก็ต้องการเครื่องโทรศัพท์ก่อน โดย voip phone ทั่วๆไปจะมีสองแบบคือเป็น hard phone (โทรศัพท์ที่เป็นเครื่องจริงๆเลย) และ soft phone (เป็น software โทรศัพท์) แบบ hard phone จะมีให้เลือกหลายยี่ห้อเลยครับทั้งผู้ผลิตในค่าย Network Device และค่าย Telecom Device แม้แต่โทรศัพท์มือถือหลายๆยี่ห้อก็สามารถทำเป็น hard phone ได้นะครับ ไว้ผมจะอธิบายวิธีการทำในภายหลัง ในขั้นต้นนี้ผมจะแนะนำให้ทดสอบโดยใช้ soft phone ครับเพราะง่าย และไม่ต้องเสียเงินซื้อสามารถหาโหลดได้ใน internet ฟรีๆครับ สำหรับ soft phone เองก็มีหลายโปรแกรมที่น่าสนใจนะครับ ผู้ใช้ Windows จะมีโปรแกรมยอดนิยมตัวหนึ่งที่คนทำ VOIP นิยมใช้กันคือ X-Lite ของ CounterPath เป็น freeware ครับมี interface ที่สวยงามใช้งานง่ายแล้วก็มี function ครบเครื่อง มีทั้งในเวอร์ชั่น windows และ Linux ด้วยครับ นอกจากนี้ยังมี softphone ยอดนิยมอีกตัวสำหรับชาว Linux ก็คือ Ekiga Softphone เป็น open source softphone ที่ใช้งานง่ายไม่แพ้ X-Lite เลยครับ
X-Lite สามารถโหลดได้ที่ http://www.counterpath.com/x-lite.html
Ekiga สามารถโหลดได้ที่ http://ekiga.org/
ลำดับต่อไปหลังจากเราหา softphone ได้แล้ว สิ่งที่เราต้องการก็คือ computer อีกซัก 2 เครื่องที่มีไมค์และลำโพง หรือหูฟังก็ได้ครับ เพื่อทดลองคุยผ่าน SIP server ดู ซึ่งในการทดลองผมได้ต่อ computer ทั้งสองเครื่องอยู่บน switch ตัวเดียวกับเครื่อง server เลยครับเป็น local area network แบบง่ายๆ และตั้ง IP address ที่สอดคล้องกับ IP ของเครื่อง server และทำการลงโปรแกรม softphone บน computer ทั้งสองเครื่องด้วย หลังจากเปิดเครื่องทั้งหมดและเปิดโปรแกรม softphone ทั้งสองฝั่งแล้ว ก็ต้องทำการ set ค่าดังนี้ (ผมใช้ Ekiga ในการทดลอง) ที่หน้า interface ของ Ekiga คลิ๊กที่ Edit แล้วเลือก Accounts คลิ๊กที่ปุ่ม Add แล้วกรอกรายละเอียดลงไป ที่ช่อง Account Name ให้ใส่ Display Name ที่ใส่ใน FreePBX ลงไป ในช่อง Registrar ให้ใส่ IP address ของเครื่อง trixbox ลงไป ที่ช่อง User ใส่เบอร์ user extensions ของ FreePBX ที่ add ไว้ลงไปครับ แล้วก็ password ที่ตั้งเอาไว้ด้วย จากนั้นกด ok และติ๊กเครื่องหมายถูกหน้า account ครับ กดปุ่ม close หน้ากรอกรายละเอียดลงไปเป็นอันเสร็จ สังเกตว่าที่หน้าจอ interface ของ Ekiga จะต้องขึ้นว่า Standby และ Registered accounts : 1 แปลว่า Ekiga สามารถ registered อยู่บน FreePBX ได้แล้ว จากนั้นก็ให้เราไปกรอกรายละเอียดของอีก account หนึ่งบน Ekiga ที่คอมอีกเครื่องหนึ่งครับ จน Stanby mode ขึ้นก็เป็นอันเสร็จเรียบร้อย การทดลอง call ให้กดเบอร์ Extensions ของอีกเครื่องหนึ่งดูครับ เช่น คุณมี Extensions 100 กับ 200 ก็ลองให้เครื่อง 100 กดเบอร์ 200 ดู ถ้า call สำเร็จ ที่เครื่อง 200 จะมีเสียงโทรศัพท์ดังครับ (เสียงเป็นโทรศัพท์จริงๆเลย) กดรับโทรศัพท์แล้วก็ทดลองคุยผ่านไมค์กันดูครับ เนื่องจากผมทดลองใน local บน switch ตัวเดียวกันทำให้คุณภาพเสียงค่อนข้างสมบูรณ์มากครับ ถ้าคุณมี computer หลายๆเครื่องในบ้านหรือในออฟฟิตเล็กๆ ก็สามารถเอาไปทำเป็นโทรศัพท์ภายในได้เลยครับ trixbox ยังมีลูกเล่นอีกมากมายเช่นการทำ IVR การ fwd call และอื่นๆอีกมาก ซึ่งผมคงต้องเขียนถึงในบทต่อๆไป คราวหน้าผมจะเขียนถึงการเอา trixbox ไปต่อขึ้นบน internet และการ set trixbox ให้ผ่าน firewall และ NAT ครับ ขอให้ทุกท่านสนุกกับการทดลองทำ IP-PBX ส่วนตัวนะครับ
- overlord9999's blog
- Login or register to post comments

Sat, 09/02/2008 - 22:52
บทความเยี่ยมมากอ่านแล้วทำตามได้เลย :-) ตอนนี้สำเร็จแล้วแต่กำลังทำระบบ report อยากทราบว่า trixbox นี่เก็บ log เกี่ยวกับ session ของ user ที่ไหนคะ ลองดู db Asterisk แล้วก็ไม่มี และไม่แน่ใจว่า table Users ใน db Asterisk ตรง password นี่คือ secret ตอนที่ regist sip user หรือว่า password ของอะไร เพราะพอลองดูแล้วปรากฏว่าไม่ใช่ secret ค่ะ
Devilazia
Thu, 31/01/2008 - 21:40
ข้อมูลเขาดีจริง ๆ ครับผม อ่านแล้วสำหรับผู้อยากทดสอบทั้งหลายเชิญครับผม