ผมเตรียมเบอร์ Extension ไว้ 3 เบอร์คือ *31* (โทรเข้าไปตั้งเบอร์ที่จะโอนไป), *32* (โทรเข้าไปยกเลิกการโอนสาย) และ *33* (โทรเข้าไปฟังดูว่าตอนนี้โอนสายไปเบอร์ไหนอยู่) มีเสียงบอกเบอร์ด้วยนะครับ ปรับเปลี่ยนเบอร์ได้ตามใจชอบครับ
วิธีการตั้ง Busy Call Forward ตามตัวอย่างนี้ก็โดยการกด *31* ตามด้วยเบอร์ที่จะโอนสายไปครับ เช่น *31*0851619439
[call-forward]
exten => _*31*X.,1,Answer
exten => _*31*X.,n,Set(DB(CFBS/${CALLERID(num)})=${EXTEN:4})
exten => _*31*X.,n,Playback(call-fwd-on-busy)
exten => _*31*X.,n,SayDigits(${EXTEN:4})
exten => _*31*X.,n,Hangup
exten => *32*,1,Answer
exten => *32*,n,Set(cfbs_cancel=${DB_DELETE(CFBS/${CALLERID(num)})})
exten => *32*,n,Playback(call-fwd-cancelled)
exten => *32*,n,Hangup
exten => *33*,1,Answer
exten => *33*,n,Set(cfbs_current=${DB(CFBS/${CALLERID(num)})})
exten => *33*,n,Playback(call-fwd-on-busy)
exten => *33*,n,SayDigits(${cfbs_current})
exten => *33*,n,Hangup
คอนเซ็ปต์การเซ็ตอัพ Call Forward ของ Asterisk ก็มีประมาณนี้นะครับ เรียกใช้งาน Asterisk Database โดยส่งข้อมูลไปเก็บไว้ให้อยู่ในรูปแบบ family/key ซึ่งในตัวอย่าง family คือ CFIM (น่าจะย่อมาจาก Call Forward Immediately เดาเอาหน่ะ) และ key คือ CALLERID(num) ซึ่งก็คือเบอร์ Extension ของเรานั่นเอง หลังจากนั้น Asterisk จะเอาไปเก็บไว้ที่ไฟล์ /var/lib/asterisk/astdb นะครับ เพื่อรอให้เราเรียกใช้งาน ไฟล์นี้เป็น binary เราเรียกดูตรงๆไม่ได้ ต้องใช้คำสั่งเรียกดูครับ เช่น บน Linux Prompt พิมพ์คำสั่ง asterisk -rx "database show" หรือบน Asterisk Prompt ก็พิมพ์คำสั่ง database show
- โค้ด: เลือกทั้งหมด
sip2*CLI> database show
/CFBS/80999 : 0851619439
มาดูตัวอย่างการเอาไปใช้งานนะครับ
** ปล. การเอาไปใช้งานผมยังไม่ได้เทสนะครับ ก๊อบมาจากเน็ต ส่วนข้างบนที่เซ็ตเบอร์นั้นเทสแล้วครับ เวอร์ค 100% **
[from-internal]
include => call-forward
exten => _1XX,1,Dial(SIP/${EXTEN},60) ; โทรไปยังเบอร์ Extension
exten => _1XX,2,Set(temp=CFBS/${CALLERID(num)}) ; ถ้าสาย busy และเซ็ต CFBS ไว้ ก็จะกระโดดไปยัง priority 103
exten => _1XX,3,Dial(SIP/${temp}@trunk) ; โทรไปยังเบอร์ที่เซ็ตไว้
; ถ้า Busy และไม่ได้เซ็ต CFBS ก็ส่งเข้า Voicemail ถ้าเซ็ตไว้
exten => _1XX,103,Busy
บทความที่เกี่ยวข้อง
การใช้งาน Unconditional Call Forward บน Asterisk