เทคนิคการคอนฟิก Elastix/FreePBX ให้เป็น Fax-On-Demand Server
โพสต์แล้ว: 23 ก.พ. 2016 15:55
เกริ่นไว้เป็นเดือนแล้วครับว่าจะทำบทความนี้ วันนี้ได้ฤกษ์ทำซะที จะทำตามบทความนี้ได้ ท่านต้องเคย...
- คอนฟิก IVR บน Elastix/FreePBX
- ทำเสียงไว้ใช้กับ Asterisk
- รีโมทเข้า Elastix/FreePBX ด้วย Secure Shell
ลักษณะการใช้งาน
ลูกค้าโทรเข้าหมายเลขที่กำหนดไว้ ได้ยินเสียง IVR เลือกเอกสารที่ต้องการ แล้วกดปุ่ม Start บนเครื่องแฟ็กซ์เพื่อรับเอกสาร เอกสารจะถูกปริ้นท์ออกที่เครื่องแฟ็กซ์ของลูกค้า
มาเริ่มแปลง Elatix/FreePBX ให้กลายเป็น Fax-On-Demand Server ได้เลยครับ มีขั้นตอนดังนี้
1. สร้างโฟลเดอร์เก็บเอกสารแฟ็กซ์
ผมจะเก็บเอกสารแฟ็กซ์ไว้ในโฟลเดอร์นี้ เปลี่ยนได้ตามความต้องการครับ
2. อัพโหลดไฟล์ PDF หรือ TIFF ไปไว้ในโฟลเดอร์ /var/lib/asterisk/fod
อัพโหลดด้วยโปรแกรม WinSCP หรือโปรแกรมอื่นที่ถนัดๆก็ได้
3. แปลงไฟล์ PDF เป็น TIFF
หากอัพโหลดไฟล์ PDF ต้องแปลงเป็นไฟล์ TIFF ก่อน โดยรันคำสั่งนี้บนลินุกซ์พร้อมท์
ไฟล์อินพุตคือ Form7.pdf ส่วนไฟล์เอ๊าท์พุตคือ Form7.tif
แปลงทุกไฟล์ที่ต้องการ ข้อดีของการแปลงไฟล์ด้วยคำสั่ง gs คือหากไฟล์ PDF มีหลายหน้า จะได้ไฟล์ TIFF ไฟล์เดียวเท่านั้น
4. สร้าง Dialplan ไว้ในไฟล์ /etc/asterisk/extensions_custom.conf
เป็น Dialplan เพื่อโทรไปเรียกเอกสารแฟ็กซ์ครับ ตั้งเบอร์อะไรก็ได้ที่ไม่ซ้ำกับเบอร์ที่มีอยู่แล้ว สร้างไว้ใต้คอนเท็ก [from-internal-custom] เลยครับ ง่ายดี
ตัวอย่างเป็นการสร้างเบอร์ Extension 2 เบอร์คือ *201 และ *202 เพื่อเรียกใช้ฟังก์ชั่น SendFax ส่งแฟ็กซ์ไฟล์ CL_120.tif และ Form7.tif ไปยังเครื่องแฟ็กซ์ที่กดเรียกเข้ามา โดยจะได้ยินเสียงแจ้งว่า “กรุณากดปุ่มสตาร์ทบนเครื่องแฟ็กซ์ของท่าน”
เราสามารถสร้างเบอร์ Extensions ได้ไม่จำกัดแต่ต้องไม่ซ้ำกับเบอร์ที่มีอยู่แล้ว
5. แก้ไขไฟล์ /etc/asterisk/res_fax.conf
รีโหลดโมดูลแฟ็กซ์
6. สร้าง Misc Destination บนเมนู Elastix/FreePBX
เพื่อให้เรียกใช้เบอร์ Extensions แฟ็กซ์จากเมนู IVR ได้ สร้างให้ครบตามจำนวนเบอร์ Extensions
ใช้เมนู PBX -> Misc Destination -> Add Misc Destination
7. ออกแบบโฟลว์ของ IVR เพื่อนำลูกค้าเข้ามาสู่ Fax On Demand
ออกแบบตามความต้องการใช้งาน
8. สร้างและอัพโหลดไฟล์เสียงโต้ตอบลูกค้า
ไฟล์เสียงจะต้องอยู่ในรูปแบบ PCM, 8000 Hz, 16 Bit, Mono
อัพโหลดเข้า Elastix/FreePBX ใช้เมนู PBX -> System Recording
9. ทดสอบ
ลองโทรเข้าเบอร์ *201 หรือ *202 ดูครับ จะไม่ได้ยินเสียงปี๊ดของแฟ็กซ์นะครับ เพราะโมดูลที่ผมเลือกใช้คือ sendfax ไม่ใช่ iaxmodem อย่างที่ Elastix Fax ใช้ครับ แต่ถ้าจะให้ดีก็หาเครื่อง Fax มาต่อกับ VoIP ATA/Gateway เทสดูครับ โดยคอนฟิกแบบ SIP Trunk
10. คอนฟิกให้มีช่องทางให้ลูกค้าโทรเข้ามา
คอนฟิก Inbound Routes และ/หรือ Trunk ให้ลูกค้าโทรเข้ามาใช้บริการได้
ลองดูครับ เวอร์คจริง ผมทำให้ลูกค้าใช้งานแล้ว
- คอนฟิก IVR บน Elastix/FreePBX
- ทำเสียงไว้ใช้กับ Asterisk
- รีโมทเข้า Elastix/FreePBX ด้วย Secure Shell
ลักษณะการใช้งาน
ลูกค้าโทรเข้าหมายเลขที่กำหนดไว้ ได้ยินเสียง IVR เลือกเอกสารที่ต้องการ แล้วกดปุ่ม Start บนเครื่องแฟ็กซ์เพื่อรับเอกสาร เอกสารจะถูกปริ้นท์ออกที่เครื่องแฟ็กซ์ของลูกค้า
มาเริ่มแปลง Elatix/FreePBX ให้กลายเป็น Fax-On-Demand Server ได้เลยครับ มีขั้นตอนดังนี้
1. สร้างโฟลเดอร์เก็บเอกสารแฟ็กซ์
- โค้ด: เลือกทั้งหมด
mkdir /var/lib/asterisk/fod
ผมจะเก็บเอกสารแฟ็กซ์ไว้ในโฟลเดอร์นี้ เปลี่ยนได้ตามความต้องการครับ
2. อัพโหลดไฟล์ PDF หรือ TIFF ไปไว้ในโฟลเดอร์ /var/lib/asterisk/fod
อัพโหลดด้วยโปรแกรม WinSCP หรือโปรแกรมอื่นที่ถนัดๆก็ได้
3. แปลงไฟล์ PDF เป็น TIFF
หากอัพโหลดไฟล์ PDF ต้องแปลงเป็นไฟล์ TIFF ก่อน โดยรันคำสั่งนี้บนลินุกซ์พร้อมท์
- โค้ด: เลือกทั้งหมด
cd /var/lib/asterisk/fod
gs -q -dNOPAUSE -dBATCH -sDEVICE=tiffg4 -sPAPERSIZE=letter -sOutputFile=Form7.tif Form7.pdf
ไฟล์อินพุตคือ Form7.pdf ส่วนไฟล์เอ๊าท์พุตคือ Form7.tif
แปลงทุกไฟล์ที่ต้องการ ข้อดีของการแปลงไฟล์ด้วยคำสั่ง gs คือหากไฟล์ PDF มีหลายหน้า จะได้ไฟล์ TIFF ไฟล์เดียวเท่านั้น
4. สร้าง Dialplan ไว้ในไฟล์ /etc/asterisk/extensions_custom.conf
เป็น Dialplan เพื่อโทรไปเรียกเอกสารแฟ็กซ์ครับ ตั้งเบอร์อะไรก็ได้ที่ไม่ซ้ำกับเบอร์ที่มีอยู่แล้ว สร้างไว้ใต้คอนเท็ก [from-internal-custom] เลยครับ ง่ายดี
- โค้ด: เลือกทั้งหมด
[from-internal-custom]
…
; Fax On Demand
exten => *201,1,Playback(custom/fax-please-press-start)
exten => *201,n,SendFAX(/var/lib/asterisk/fod/CL_120.tif,d)
exten => *201,n,Hangup
exten => *202,1,Playback(custom/fax-please-press-start)
exten => *202,n,SendFAX(/var/lib/asterisk/fod/fod/Form7.tif,d)
exten => *202,n,Hangup
ตัวอย่างเป็นการสร้างเบอร์ Extension 2 เบอร์คือ *201 และ *202 เพื่อเรียกใช้ฟังก์ชั่น SendFax ส่งแฟ็กซ์ไฟล์ CL_120.tif และ Form7.tif ไปยังเครื่องแฟ็กซ์ที่กดเรียกเข้ามา โดยจะได้ยินเสียงแจ้งว่า “กรุณากดปุ่มสตาร์ทบนเครื่องแฟ็กซ์ของท่าน”
เราสามารถสร้างเบอร์ Extensions ได้ไม่จำกัดแต่ต้องไม่ซ้ำกับเบอร์ที่มีอยู่แล้ว
5. แก้ไขไฟล์ /etc/asterisk/res_fax.conf
- โค้ด: เลือกทั้งหมด
#include res_fax_custom.conf
minrate=4800
maxrate=14400
rxtxappnames = yes
statusevents = yes
ecm = yes
รีโหลดโมดูลแฟ็กซ์
- โค้ด: เลือกทั้งหมด
asterisk -rx "module reload res_fax.so"
6. สร้าง Misc Destination บนเมนู Elastix/FreePBX
เพื่อให้เรียกใช้เบอร์ Extensions แฟ็กซ์จากเมนู IVR ได้ สร้างให้ครบตามจำนวนเบอร์ Extensions
ใช้เมนู PBX -> Misc Destination -> Add Misc Destination
7. ออกแบบโฟลว์ของ IVR เพื่อนำลูกค้าเข้ามาสู่ Fax On Demand
ออกแบบตามความต้องการใช้งาน
8. สร้างและอัพโหลดไฟล์เสียงโต้ตอบลูกค้า
ไฟล์เสียงจะต้องอยู่ในรูปแบบ PCM, 8000 Hz, 16 Bit, Mono
อัพโหลดเข้า Elastix/FreePBX ใช้เมนู PBX -> System Recording
9. ทดสอบ
ลองโทรเข้าเบอร์ *201 หรือ *202 ดูครับ จะไม่ได้ยินเสียงปี๊ดของแฟ็กซ์นะครับ เพราะโมดูลที่ผมเลือกใช้คือ sendfax ไม่ใช่ iaxmodem อย่างที่ Elastix Fax ใช้ครับ แต่ถ้าจะให้ดีก็หาเครื่อง Fax มาต่อกับ VoIP ATA/Gateway เทสดูครับ โดยคอนฟิกแบบ SIP Trunk
10. คอนฟิกให้มีช่องทางให้ลูกค้าโทรเข้ามา
คอนฟิก Inbound Routes และ/หรือ Trunk ให้ลูกค้าโทรเข้ามาใช้บริการได้
ลองดูครับ เวอร์คจริง ผมทำให้ลูกค้าใช้งานแล้ว