首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >asterisk服务器phpagi脚本中的递归

asterisk服务器phpagi脚本中的递归
EN

Stack Overflow用户
提问于 2015-01-14 19:05:04
回答 1查看 619关注 0票数 0

我在执行phpagi脚本的扩展文件中使用了这个:-

代码语言:javascript
复制
exten => s,n,Read(NUMBER,,4)
exten => s,n,agi(a.php,${CALLERID(num)},${NUMBER})

在我的phpagi脚本中:-

代码语言:javascript
复制
#!/usr/bin/php -q 
<?php
require('phpagi.php');
$agi = new AGI();
$NUMBER = $argv[1];
$SSnNUMBER = $argv[2];
 ------Some Processing----------
$ttresult = $agi->get_data("beep",30000,4); 
$ttssn = $ttresult['result']; 
$agi->say_digits($ttssn); 
$agi->exec("AGI","a.php",$agi->request['agi_callerid'],"$ttssn");
?>

您可以看到我在phpagi脚本中使用了递归,但每次都会失败。CLI脚本中存在错误:-

AGI脚本a.php已完成,返回%4

EN

回答 1

Stack Overflow用户

发布于 2015-01-15 18:14:42

你不能在AGI中启动AGI。

原因: AGI是简单的stdin/stdout接口(请参阅文档)

因此,首先AGI连接到asterisk,从STDIN读取信息,发送到STDOUT。

你怎么期待它里面的启动脚本呢?

在您的例子中,您还可以使用GOTO并为新脚本设置变量。

代码语言:javascript
复制
exten => s,n(repeat),agi(a.php,${CALLERID(num)},${NUMBER})
exten => s,n,GotoIF($[ "${REPEAT}" == "YES" ]?repeat)

将脚本更改为

代码语言:javascript
复制
#!/usr/bin/php -q 
<?php
require('phpagi.php');
$agi = new AGI();
$NUMBER = $argv[1];
$SSnNUMBER = $argv[2];
 ------Some Processing----------
$ttresult = $agi->get_data("beep",30000,4); 
$ttssn = $ttresult['result']; 
$agi->say_digits($ttssn); 
$agi->set_variable("NUMBER","$ttssn");
$agi->set_variable("REPEAT","YES");
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27941411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档