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

เทคนิคการเซ็ตค่าตัวแปรใน PHP-AGI แล้วเอามาใช้ใน Dial Plan

โพสต์โพสต์แล้ว: 28 ก.พ. 2020 01:59
โดย nuiz
บทความนี้ผมจะแนะนำการส่งตัวแปรและค่าของมัน ส่งจาก AGI ไปยัง Dial Plan ครับ โดยที่ใน Dial Plan ผมเรียกใช้ AGI เพื่อให้มันไปเช็คนู่นนี่นั่นตามที่ผมต้องการ แล้วคืนค่ากลับมายัง Dial Plan เพื่อที่ผมจะเอาไปทำงานต่อครับ

ปล. ที่ผมต้องใช้ PHP-AGI เพราะเคยใช้งานมาก่อนครับ และที่สำคัญก็คือ มันสามารถโต้ตอบเป็นเสียงได้ด้วยนะ ผมต้องการแบบนี้แหล่ะ

ส่วนของ Dial Plan ครับ มีการเรียกไฟล์ test.php แล้วเอาค่าตัวแปร ${LET_CALL_OUT} มาเช็ค ถ้าค่าเป็น 0 จะ Hangup แต่ถ้าไม่จะ Dial ครับ

[let-call-out]
exten => _1.,1,AGI(test.php)
exten => _1.,n,NoOp(XXX=${LET_CALL_OUT})
exten => _1.,n,ExecIf($["${LET_CALL_OUT}" = "0"]?Goto(drop-call,s,1))
exten => _1.,n,Dial(SIP/${EXTEN})

[drop-call]
exten => s,1,Hangup


ส่วนไฟล์ /var/lib/asterisk/agi-bin/test.php เฉพาะส่วนที่กำหนดค่าตัวแปร ${LET_CALL_OUT} ครับ
#!/usr/bin/php -q
<?php
...
//ตั้งตัวแปร LET_CALL_OUT และกำหนดค่าให้เท่ากับตัวแปร $value 1 ซึ่งตัวแปร $value นี้เราอาจจะไป Query จากดาต้าเบสมาก็ได้ครับ
$value=1;
$agi->set_variable(LET_CALL_OUT, $value);
// ออกจาก AGI กลับไปยัง Dial Plan
$agi>return;
...

?>


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