Asterisk 如何编写星号应用程序
我是freepbx和asterisk的新手 我需要知道如何编写一个应用程序来检查每个出站呼叫,看看该扩展是否有权限 例如,我有2个分机100200,每次分机中的一个尝试进行出站呼叫时,我需要检查我的数据库,看看他是否有该权限,如果没有阻止该呼叫Asterisk 如何编写星号应用程序,asterisk,freepbx,Asterisk,Freepbx,我是freepbx和asterisk的新手 我需要知道如何编写一个应用程序来检查每个出站呼叫,看看该扩展是否有权限 例如,我有2个分机100200,每次分机中的一个尝试进行出站呼叫时,我需要检查我的数据库,看看他是否有该权限,如果没有阻止该呼叫 对不起,我的英语不太好我假设您安装了星号,并且配置了SIP软电话的基本设置。 您可能需要将以下内容添加到/etc/asterisk/extensions.conf [internal] exten => _XXXXXXXXXX,1,Answer()
对不起,我的英语不太好我假设您安装了星号,并且配置了SIP软电话的基本设置。 您可能需要将以下内容添加到
/etc/asterisk/extensions.conf
[internal]
exten => _XXXXXXXXXX,1,Answer()
same => n,Set(callerid=${CALLERID(num)})
same => n,Verbose(Your Callerid is ${callerid})
same => n,Saydigits(${callerid})
same => n,AGI(check_callerid.php,${callerid})
;same => n,Hangup()
[welcome]
exten => s,1,Playback(welcome)
same => n,Verbose(Allowed to call)
;same => n,Dial(SIP/trunkname/${EXTEN})
[good_bye]
exten => s,1,Playback(goodbye)
same => n,Verbose(Not Allowed to call)
same => n,Hangup()
在此之后,重新加载星号:
asterisk -rvvvv
reload
下载phpagi库,在星号控制台上运行以下命令
cd /var/lib/asterisk/agi-bin
git clone https://github.com/welltime/phpagi
然后在/var/lib/asterisk/agi-bin
处创建检查\u callerid.php
脚本,并授予其完全权限。下面是您可以复制的脚本
#!/usr/bin/php
<?php
global $agi;
require 'phpagi/phpagi.php';
$agi = new AGI();
$agi->answer();
$callerid = $argv[1];
$agi->verbose("CallerID is: $callerid");
$check_in_db = checkDB($callerid); //check caller allowed to do call
if($check_in_db==1){$agi->exec("Goto","welcome,s,1");} //allowed to do call, go to dial plan
else{$agi->exec("Goto","good_bye,s,1");} //not allowed to do call, go to dial plan
function checkDB($callerid){
//check here callerid allowed to do call or not
return 1;
}
?>
#/usr/bin/php
现在,尝试从您的注册软电话中拨出您的呼叫将到达的任何10位数字号码
分机=>\uuxxxxxxxxx,1,Answer()
,在您的拨号计划中我假设您已安装星号,并且已配置SIP软电话的基本设置。
您可能需要将以下内容添加到/etc/asterisk/extensions.conf
[internal]
exten => _XXXXXXXXXX,1,Answer()
same => n,Set(callerid=${CALLERID(num)})
same => n,Verbose(Your Callerid is ${callerid})
same => n,Saydigits(${callerid})
same => n,AGI(check_callerid.php,${callerid})
;same => n,Hangup()
[welcome]
exten => s,1,Playback(welcome)
same => n,Verbose(Allowed to call)
;same => n,Dial(SIP/trunkname/${EXTEN})
[good_bye]
exten => s,1,Playback(goodbye)
same => n,Verbose(Not Allowed to call)
same => n,Hangup()
在此之后,重新加载星号:
asterisk -rvvvv
reload
下载phpagi库,在星号控制台上运行以下命令
cd /var/lib/asterisk/agi-bin
git clone https://github.com/welltime/phpagi
然后在/var/lib/asterisk/agi-bin
处创建检查\u callerid.php
脚本,并授予其完全权限。下面是您可以复制的脚本
#!/usr/bin/php
<?php
global $agi;
require 'phpagi/phpagi.php';
$agi = new AGI();
$agi->answer();
$callerid = $argv[1];
$agi->verbose("CallerID is: $callerid");
$check_in_db = checkDB($callerid); //check caller allowed to do call
if($check_in_db==1){$agi->exec("Goto","welcome,s,1");} //allowed to do call, go to dial plan
else{$agi->exec("Goto","good_bye,s,1");} //not allowed to do call, go to dial plan
function checkDB($callerid){
//check here callerid allowed to do call or not
return 1;
}
?>
#/usr/bin/php
现在,试着从您的注册软电话拨打您的呼叫将到达的任何10位数字号码
分机=>\uuxxxxxxxxx,1,Answer()
在您的拨号计划中THK您节省了我的一天THK您节省了我的一天