หน้า 1 จากทั้งหมด 1

เทคนิคการใช้งานคำสั่ง NoCDR ใน Asterisk Dialplan ครับ

โพสต์โพสต์แล้ว: 04 มี.ค. 2020 16:05
โดย nuiz
จากบทความนี้นะครับ เทคนิคการสร้างและกำหนดค่าตัวแปรใน PHP-AGI เพื่อนำมาใช้ใน Asterisk Dialplan

มี Case หนึ่งครับ ผมเขียน Script ดักจับเบอร์ปลายทางไว้ ให้เช็คว่าเบอร์ปลายทางนี้โทรได้หรือไม่ได้ ซึ่งสคริปต์มันก็ทำงานได้ตามปกตินะครับ แต่พอสคริปต์มันบล๊อคไม่ให้โทรออก ใน Reports > CDR Reports บน Issabel มันแสดงเบอร์ปลายทางเป็น chkcall ตามรูปนี้ครับ

รูปภาพ

ผมอยากจะไม่ให้ Asterisk สร้าง CDR กรณีที่เบอร์ถูกบล๊อค ผมต้องใช้คำสั่ง NoCDR() ครับ ด้านล่างนี้เป็นตัวอย่างการใช้งานครับ

สคริปต์ผมจะสร้างตัวแปร LET_CALL_OUT ถ้ามีค่าเป็น 0 แสดงว่าไม่ให้โทรครับ (บล๊อค) ต่อมาก็สร้าง Dial Plan


[from-internal]
...
exten => chkcall,n,ExecIf($["${LET_CALL_OUT}" = "0"]?Macro(outisbusy-2,))
...

ถ้าเบอร์ถูกบล๊อคก็จะไม่มี CDR แล้วครับ

เพิ่มเติมครับ... ผมว่าเบอร์ที่ถูกบล๊อคน่าจะโชว์ใน CDR ด้วยครับ โดยอาจจะส่ข้อความ blocked ไว้ในฟิลด์ที่ว่างๆอยู่ อย่างเช่นฟิลด์ "Accountcode" ครับ ไว้เป็นเฟสต่อไปครับ
[macro-outisbusy-2]
...
exten => s,n,NoCDR
exten => s,n,Hangup
...


เทคนิคการใช้งาน Issabel
เทคนิคการใช้งาน Elastix
เทคนิคการใช้งาน Asterisk
เทคนิคการใช้งาน FreePBX
เทคนิคการคอนฟิก Elastix/Issabel ให้ทำงานเป็น Time Server
ตัวอย่างการใช้งาน Action URL บน Grandstream IP Phone
รวมเทคนิคการใช้งาน PHP-AGI