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

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


providers:black_list

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
providers:black_list [2020/04/05 14:53]
127.0.0.1 внешнее изменение
providers:black_list [2022/07/13 14:27] (текущий)
Портнов Алексей
Строка 3: Строка 3:
 [[faq:​|Обратно к инструкциям]] [[faq:​|Обратно к инструкциям]]
  
-Периодически каждая компания сталкивается с проблемой поступления «спам» звонков. В связи с этим возникает потребность блокировки определенных номеров,​ чтобы звонки с этих номеров не поступали. В инструкции приведем пример,​ как для определенного провайдера (Zadarma) заблокировать все входящие звонки с номера 74952293042+Периодически каждая компания сталкивается с проблемой поступления «спам» звонков. В связи с этим возникает потребность блокировки определенных номеров,​ чтобы звонки с этих номеров не поступали. ​
  
-1. Перейдите в web-интерфейс MikoPBX ​в раздел **Маршрутизация** ​-> **Провайдеры телефонии**. Перейдите в учетную запись провайдера,​ для которого будем блокировать звонки через определенные номера. В нашем примере эта учетная запись провайдера Zadarma. \\ \\  +  - Создайте новое "​[[:​dialplan-applications|Приложение диалплан]]" 
-2. В **Дополнительные ​параметры** добавьте следующие строки:\\ +  - Укажите произвольное название, к примеру **Blacklist** 
-<​code>​ +  - Выберите ​"**Тип кода**" - "**PHP AGI Скрипт**"  
-context=miko-black-list +  - Укажите короткий номер ​для ​приложенияк примеру 99 
-setvar=MIKO_PROVIDER_CONTEXT=SIP-PROVIDER-08625B6F7DE7550A2574AC2FEE5C3425-incoming +  - На вкладке ​"**Программный код**" ​вставьте: <​code><?​php 
-</​code>​ +require_once('​Globals.php'​);​ 
-  * **miko-black-list** - мы переопределяем контекст для входящих звонков, все входящие звонки сначала будут попадать в этот ​контекст  +use MikoPBX\Core\Asterisk\AGI;​ 
-  ​* **MIKO_PROVIDER_CONTEXT** - переменная,​ которая хранит наименование контекста входящих звонков для данного провайдера по умолчанию+use MikoPBX\Core\System\Processes;​
  
-{{ :providers:2018-12-11_165629.png |}}\\ \\  +$agi        = new AGI(); 
-3. Перейдите в раздел **Система** -> **Кастомизация системных файлов**,​ откройте для редактирования файл **extensions.conf**. \\  +$isTransfer = !empty($agi->​get_variable('​ISTRANSFER',​ true)); 
-{{ :​providers:​2018-12-11_170112.png |}}\\ \\  +$number ​    = substr($agi->​request['​agi_callerid'​],​-10);​ 
-4. Выберите режим **"​Добавлять в конец файла"​**,​ внизу в черное поле для редактирования вставьте следующие строки:​\\  + 
-<​code>​ +$agi->​verbose('​new call from '​.$agi->​request['​agi_callerid'​],​ 1); 
-[miko-black-list+ 
-exten => _.!,1,ExecIf$["​${CALLERID(num)}" ​== "​74952293042"​]?​Hangup()+$filename = '/​storage/​usbdisk1/​mikopbx/​custom_modules/​balcklist.txt';​ 
-    same => n,Goto(${MIKO_PROVIDER_CONTEXT},​${EXTEN},​1) +$result ​  = Processes::mwExec("/​usr/​sbin/​grep '​$number'​ < $filename"​);​ 
-</​code>​ +if($isTransfer && $result !==0 ){ 
-Определяем контекст ​**miko-black-list** для входящих звонков,​ где указываем,​ что все входящие звонки с номера **74952293042** ​мы завершаем **Hangup()**. Если в "чёрный" ​список ​необходимо добавить несколько ​номеров, то код будет выглядеть следующим образом:\\  +    $agi->​verbose('​Add number to black list', 1); 
-<code+    // Номер не найден в черном списке. 
-[miko-black-list] +    file_put_contents($filename,​ $number.PHP_EOL,​ FILE_APPEND);​ 
-exten => _.!,​1,​ExecIf( $["​${CALLERID(num)}"​ == "​74952293042"​]?​Hangup()) +    $agi->​answer();​ 
-    same => n,ExecIf( $["​${CALLERID(num)}"​ == "​74952293044"​]?​Hangup()) +    $agi->​hangup();​ 
-    same => n,​Goto(${MIKO_PROVIDER_CONTEXT},​${EXTEN},​1) +}elseif($result === 0){ 
-</​code>​ +    // Номер найден. 
-{{ :providers:​2018-12-11_170322.png ​|}} +    $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**" - это идентификатор приложения 
 +  - Сохраните изменения! 
 + 
 +<note important>​Черный список ​телефонов будет храниться в файле: \\ "​**/​storage/​usbdisk1/​mikopbx/​custom_modules/​balcklist.txt**"​  
 +\\ \\ Для ​добавления номера в черный список просто **выполните переадресацию на номер 99** (слепуюбез консультации **99)</note
 + 
 + 
 +[[faq:|Обратно к инструкциям]]
  
  
providers/black_list.1586098387.txt.gz · Последние изменения: 2020/04/05 14:53 — 127.0.0.1