การใช้งาน Busy Call Forward บน Asterisk

Asterisk Opensource IP Pbx

การใช้งาน Busy Call Forward บน Asterisk

โพสต์โดย nuiz » 26 ส.ค. 2010 18:05

บทความก่อนผมได้แนะนำวิธีการเซ็ต Unconditional Call Forward บน Asterisk ไปแล้ว บทความนี้ผมจะแนะนำวิธีการเซ็ต Busy Call Forward ครับ ซึ่งจะทำงานเมื่อเบอร์ Extension ของเราสายไม่ว่าง
ผมเตรียมเบอร์ 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
** หากมีปัญหากับอุปกรณ์ที่ซื้อมาเองหรือบริการที่ทำขึ้นมาเอง ให้โพสต์ถามในเว็บบอร์ดนี้นะครับ **
** งานเร่งด่วนติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ไลน์ NuizVoip ครับ **
nuiz
Diamond Member
 
โพสต์: 6995
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33

ย้อนกลับไปยัง Asterisk SIP Server

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และ บุคคลทั่วไป 0 ท่าน

cron