จากบทความนี้นะครับ เทคนิคการสร้างและกำหนดค่าตัวแปรใน 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