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

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


providers:black_list

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
providers:black_list [2020/05/20 07:05]
Портнов Алексей
providers:black_list [2022/07/13 14:27] (текущий)
Портнов Алексей
Строка 3: Строка 3:
 [[faq:​|Обратно к инструкциям]] [[faq:​|Обратно к инструкциям]]
  
-Периодически каждая компания сталкивается с проблемой поступления «спам» звонков. В связи с этим возникает потребность блокировки определенных номеров,​ чтобы звонки с этих номеров не поступали. В инструкции приведем пример,​ как для определенного провайдера (Zadarma) заблокировать все входящие звонки с номера 74952293042+Периодически каждая компания сталкивается с проблемой поступления «спам» звонков. В связи с этим возникает потребность блокировки определенных номеров,​ чтобы звонки с этих номеров не поступали. ​
  
-1. Перейдите в web-интерфейс MikoPBX ​в раздел **Маршрутизация** ​-> **Провайдеры телефонии**. Перейдите в учетную запись провайдера, для которого будем блокировать ​звонки через ​определенные номера. В нашем примере эта ​учетная запись провайдера Zadarma. \\ \\  +  - Создайте новое "​[[:​dialplan-applications|Приложение диалплан]]"​ 
-2. Скопируйте ID провайдера {{ :​providers:​2018-12-11_165629_png_i_zagruzki.png |}}\\ \\  +  - Укажите произвольное название, к примеру ​**Blacklist** 
-3. Перейдите в раздел ​**Система** -> **Кастомизация системных файлов**, откройте для редактирования ​файл **extensions.conf**. \\  +  - Выберите ​"​**Тип кода**" ​"**PHP AGI Скрипт**"  
-{{ :​providers:​2018-12-11_170112.png |}}\\ \\  +  ​Укажите ​короткий номер для ​приложения, к примеру 99 
-4. Выберите режим **"​Добавлять в конец файла"**, внизу в черное поле для ​редактирования ​вставьте ​следующие строки:<​code>​ +  - На вкладке "**Программный ​код**" ​вставьте:​ <​code>​<?php 
-[PROVIDER-ID-incoming-custom]+require_once('​Globals.php'​);​ 
 +use MikoPBX\Core\Asterisk\AGI;​ 
 +use MikoPBX\Core\System\Processes;​
  
-exten => _.!,​1,​ExecIf( ​$["​${CALLERID(num)}" ​== "​495793XXXX"​]?​Hangup()) +$agi        ​new AGI(); 
-    ​same ​=> n,Return() +$isTransfer ​!empty($agi->get_variable('​ISTRANSFER',​ true)); 
-</code>, где **PROVIDER-ID** - замените на идентификатор провайдера. ​+$number ​    = substr($agi->request['​agi_callerid'​],-10);
  
-Если у вас несколько учетных записей одного провайдера подключено к Askozia, то имя контекста будет отличатьсяК примеру IP 10.20.20.30  порт 5060тогда имя контекста примет вид ​ 102020305060. Строки хост и порт соединяются и остаются только буквы и цифры. Опишите дополнительно и этот контекст:​+$agi->​verbose('​new call from '.$agi->​request['​agi_callerid'​]1);
  
-<​code>​ +$filename = '/​storage/​usbdisk1/​mikopbx/​custom_modules/​balcklist.txt';​ 
-[102020305060-incoming-custom]+$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();​ 
 +}</​code>​ 
 +  - Сохраните изменения и скопируйте идентификатор приложения из адресной строки браузера 
 +  - Перейдите в раздел **Система** -> **Кастомизация системных файлов**,​ откройте для редактирования файл **extensions.conf** {{ :​providers:​2018-12-11_170112.png |}} 
 +  - Выберите режим **"​Добавлять в конец файла"​**,​ внизу в черное поле для редактирования вставьте следующие строки:​<​code>​ 
 +[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()</​code>,​ где "​**DIALPLAN-APP-BE22D80F2A270C0020A1192B001A665**"​ - это идентификатор приложения 
 +  - Сохраните изменения!
  
-exten =_.!,1,ExecIf( $["${CALLERID(num)}" == "​495793XXXX"​]?​Hangup()) +<note important>Черный список телефонов будет храниться в файле: \\ "​**/​storage/​usbdisk1/​mikopbx/​custom_modules/​balcklist.txt**" ​ 
-    same => n,Return() +\\ \\ Для добавления номера в черный список просто **выполните переадресацию на номер 99** (слепуюбез консультации **99)</note>
-</code>+
  
  
-Сохраните изменения! 
 [[faq:​|Обратно к инструкциям]] [[faq:​|Обратно к инструкциям]]
  
  
providers/black_list.1589958340.txt.gz · Последние изменения: 2020/05/20 07:05 — Портнов Алексей