วันนี้นำเสนอเทคนิคการจำกัดช่วงเวลาการโทรออก (time based) นะครับ
ยกตัวอย่างต้องการจะจำกัดช่วงเวลาการโทรออกผ่าน Trunk อันใดอันหนึ่งที่เราไปเหมาๆไว้ เขาจำกัดช่วงเวลาการโทรไว้ ให้โทรได้ช่วง 09:00 - 17:59 วันจันทร์ถึงศุกร์ จะไม่คิดเงินเพิ่ม เพราะเหมาไว้แล้ว ถ้าโทรนอกช่วงเวลานี้ก็จะเสียเงินเพิ่ม ประมาณนี้ครับ
ไฟล์ /etc/asterisk/extensions.conf
[from-internal]
; โทรออกสายนอก ให้โทรไม่ได้ช่วง 18:00 เป็นต้นไป และเริ่มโทรได้เวลา 09:00
exten => _0X.,1,GotoIfTime(18:00-08:59|mon-fri|1-31|jan-dec?out-of-time|s|1)
exten => _0X.,n,Dial(SIP/${EXTEN}@trunk-true,60)
exten => _0X.,n,Hangup
; โทรภายในระหว่างเบอร์ extension ด้วยกัน ไม่เช็คเวลา
exten => _1XX.,1,Dial(SIP/${EXTEN},60,tT)
exten => _1XX.,n,Hangup
[out-of-time]
exten => s,1,Playback(prepaid-sorry-out-of-time)
exten => s,n,Hangup
โดยที่ Asterisk จะเล่นไฟล์เสียง prepaid-sorry-time-out บอกว่า "ขออภัยค่ะ ท่านไม่สามารถใช้บริการในช่วงเวลานี้ได้" แล้วตัดสายไป ดาวน์โหลดไฟล์เสียงนี้
จะโทรออกทาง trunk-true ได้แค่ช่วงเวลา 09:00 - 17:59 ของวัน monday ถึง friday ของวันที่ 1 ถึง 31 ของเดือน january ถึง december หรืออาจจะเขียนแบบนี้ก็ได้
18:00-07:59|mon-fri|*|*
หมายถึงช่วงเวลาตั้งแต่ 18:00 เรื่อยไปจนถึง 07:59 ของวัน monday ถึง friday ทั้งเดือน ทั้งปี
18:00-07:59|*|*|*
หมายถึง ทุกวัน ทั้งเดือน ทั้งปี
พอเป็นไอเดียครับ อ่อ ก่อนใช้งานก็อย่าลืมเช็ควัน เวลา ในเครื่องเซอร์เวอร์ก่อนนะครับว่าเวลาตรงมั๊ย
บทความที่เกี่ยวข้อง
เทคนิคการจำกัดช่วงเวลาการโทรออกบน Elastix, FreePBX โดยคอนฟิกผ่านหน้าเว็บ