MikoPBX
Модули
Перевод этой страницы:
MikoPBX
Модули
Это старая версия документа!
Периодически каждая компания сталкивается с проблемой поступления «спам» звонков. В связи с этим возникает потребность блокировки определенных номеров, чтобы звонки с этих номеров не поступали.
<?php require_once('Globals.php'); use MikoPBX\Core\Asterisk\AGI; use MikoPBX\Core\System\Processes; $agi = new AGI(); $isTransfer = !empty($agi->get_variable('ISTRANSFER', true)); $number = substr($agi->request['agi_callerid'],-10); $agi->verbose('new call from '.$agi->request['agi_callerid'], 1); $filename = '/storage/usbdisk1/mikopbx/custom_modules/balcklist.txt'; $result = Processes::mwExec("/usr/sbin/grep '$number' < $filename"); if($isTransfer && $result !==0 ){ $agi->verbose('Add number to black list', 1); // Номер не найден в черном списке. file_put_contents($filename, $number.PHP_EOL, FILE_APPEND); $agi->answer(); $agi->hangup(); }elseif($result === 0){ // Номер найден. $agi->verbose('The number was found in the blacklist. The call will be completed'); $agi->hangup(); }
[internal-transfer](+) exten => _99,1,Set(__ISTRANSFER=transfer_) same => n,Goto(internal,${EXTEN},1) [add-trim-prefix-clid-custom] exten => _[0-9*#+a-zA-Z][0-9*#+a-zA-Z]!,1,NoOp(start check blacklist) same => n,AGI(DIALPLAN-APP-BE22D80F2A270C0020A1192B001A6653.php) same => n,Return()
, где «DIALPLAN-APP-BE22D80F2A270C0020A1192B001A665» - это идентификатор приложения