من با dailplanمتغیرا رو به php پاس میدم بعد تو php که میگیرم فقط یکی رو میگیره get_variableدومو که میذارم ارور میده.تابع دیگه ای نیست که بتونم همه متغییرامو بگیرم:221:
اطلاعیه
بستن
هنوز اطلاعیه ای در دست نیست.
گرفتن متغییر در php agi
بستن
این موضوع بسته شده است.
X
X
-
این روش شما رو هم امتهان کردم ولی نتونستم میشه بیشتر توضیح بدین؟
من متغیرو داخل دایل پلن ست میکنم بعد به همراه تماس به phpagiمیره اونجا هم با get_variable میگیرم ولی فقط یکی رو میگیره.دومی رو که میذارم برنامه اجرا نمیشه.same =>n,set(num=${CALLERID(num)})
same =>n,set(address=/var/lib/asterisk/sounds/custom/${CALLERID(num)}/${UNIQUEID:5:4})
$test = $agi->get_variable("address");
$test = $test['data'];
$id = get_variable("CALLERID(num)");
$id = $id['data'];
کامنت
-
سلام
من هم تو این قضیه مشکل دارم، کجای کار اشتباه بوده؟
محتویات dial plan:کد:[test_2] exten => 300,1,Answer() exten => 300,n,Set(code=1111) exten => 300,n,AGI(test.php,${code}) exten => 300,n,Dial(sip/${code}) exten => 300,n,Hangup()
کد PHP:#!/usr/bin/php -q
<?
ob_implicit_flush(false);
set_time_limit(6);
$stdin = fopen('php://stdin', 'r');
$stdlog = fopen('my_agi.log', 'w');
$debug = false;
/* Read input from Asterisk and output via $astOutput */
function astRead()
{
global $stdin, $debug, $stdlog;
$astOutput = str_replace("\n", "", fgets($stdin, 4096));
if ($debug) fputs($stdlog, "read: $input\n");
return $astOutput ;
}
/* Write AGI command to Asterisk */
function astWrite($agiCommand)
{
global $debug, $stdlog;
if ($debug) fputs($stdlog, "write: $agiCommand\n");
echo $agiCommand."\n";
}
/* Handling execution input from Asterisk */
$agivar = array();
while (!feof($stdin))
{
$temp = fgets($stdin);
$temp = str_replace("\n","",$temp);
$s = explode(":",$temp);
$agivar[$s[0]] = trim($s[1]);
if ($temp == "")
{
break;
}
}
/* Say the number 123456 */
astWrite("SAY DIGITS 123 #");
astRead();
$code-new = $argv[1];
/* Finalization of AGI script and clean-ups */
fclose ($stdin);
fclose ($stdlog);
exit(0);
?>
کامنت
-
در بالا توضیح دادم 2 بار این هم دفعه سوم
فرستادن از dialplan به php agi
کد PHP:same => n,AGI(checkexist.php,${code1},${code2})
کد PHP:$code1-new = $argv[1];
$code2-new = $argv[2];
کد PHP:$agi->set_variable('status',"${variable}");
کامنت
-
با گرفتن داده مشکلی ندارد ولی نمی تواند دستور فرستادن به dialplan را بخواند:
کد PHP:$newcode1 = $argv[1];
$newcode1 = $newcode1-1011;
astWrite("SAY DIGITS ${newcode1} #");
$agi->set_variable('code',"${newcode1}");
astWrite("SAY DIGITS 54321 #");
کد PHP:require('phpagi.php');
کامنت
کامنت