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

บทความเกี่ยวกับ PHPAGI ซึ่งจะทำให้เราเขียน PHP สั่งงาน Asterisk ได้ตามปรารถนา

Moderator: jubjang

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

โพสต์โดย nuiz » 28 ก.พ. 2020 01:59

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

ย้อนกลับไปยัง PHPAGI - Where PHP Connects To Asterisk

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

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

cron