Инструменты пользователя

Инструменты сайта


providers:black_list

Настройка "черного" списка в MikoPBX

Обратно к инструкциям

Периодически каждая компания сталкивается с проблемой поступления «спам» звонков. В связи с этим возникает потребность блокировки определенных номеров, чтобы звонки с этих номеров не поступали.

  1. Создайте новое «Приложение диалплан»
  2. Укажите произвольное название, к примеру Blacklist
  3. Выберите «Тип кода» - «PHP AGI Скрипт»
  4. Укажите короткий номер для приложения, к примеру 99
  5. На вкладке «Программный код» вставьте:
    <?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();
    }
  6. Сохраните изменения и скопируйте идентификатор приложения из адресной строки браузера
  7. Перейдите в раздел СистемаКастомизация системных файлов, откройте для редактирования файл extensions.conf
  8. Выберите режим «Добавлять в конец файла», внизу в черное поле для редактирования вставьте следующие строки:
    [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» - это идентификатор приложения

  9. Сохраните изменения!
Черный список телефонов будет храниться в файле:
«/storage/usbdisk1/mikopbx/custom_modules/balcklist.txt»

Для добавления номера в черный список просто выполните переадресацию на номер 99 (слепую, без консультации **99)

Обратно к инструкциям

providers/black_list.txt · Последние изменения: 2022/07/13 14:27 — Портнов Алексей