[英]Asterisk Run Script When Call Is Answered
我需要在每次接听电话时(由使用SIP电话的人)运行perl或php脚本。
我正在使用FreePBX,该系统将用于管理扩展,所以无论我做什么,我需要确保添加新的扩展或从FreePBX接口修改一个不会消除调用脚本的部分。
此人可以直接拨打分机,通过振铃组或IVR进入分机,或者他们可能已被转移。 脚本需要在所有情况下运行。
我知道我需要在其中一个配置文件中添加一行:
exten => s,n,System(myperlscript.pl“caller = $ {ARG1} exten = $ {ARG2} called = $ {ARG3}”)
这只是代码的一小部分,我很可能会弄清楚那一部分。
问题是我不知道要放入什么配置文件,或者将它放在该文件中的位置。
我想通了,所以我会把答案放在这里以防万一它可以帮助任何人。
在FreePBX Web管理员中有两个文件
/libararies/extensions.class.php /modules/core/functions.inc.php
在extensions.class.php中,我添加了以下类
class ext_crmagi extends extension {
var $pri;
var $ext;
var $context;
function ext_crmagi($pri, $ext = false, $context = false) {
if ($context !== false && $ext === false) {
trigger_error("\$ext is required when passing \$context in ext_crmagi::ext_crmagi()");
}
$this->pri = $pri;
$this->ext = $ext;
$this->context = $context;
}
function incrementContents($value) {
$this->pri += $value;
}
function output() {
return 'AGI(myphpscript.php, ${CALLERID(num)}, ${CALLERID(name)}, ${EXTEN}, ${SIPCALLID}, ${UNIQUEID})' ;
}
}
我添加了在functions.inc.php中
$ext->add('ext-local', $exten['extension'], '', new ext_crmagi('',''));
然后,只要您使用Web界面添加扩展,它也会添加到agi脚本中,允许您使用php与星号接口。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.