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

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


asterisk:bespoleznye_no_interesnye_veschi

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
asterisk:bespoleznye_no_interesnye_veschi [2023/01/26 14:56] – [Слушаем радио через АТС] sanasterisk:bespoleznye_no_interesnye_veschi [2023/01/26 15:15] (текущий) – [Слушаем радио через АТС] san
Строка 10: Строка 10:
 </code> </code>
 Теперь набрав номер 111 на телефоне можно услышать вещание [[https://www.borneo.ru/|радио "Борнео"]].  Теперь набрав номер 111 на телефоне можно услышать вещание [[https://www.borneo.ru/|радио "Борнео"]]. 
 +===== Фильтрация недопустимых символов в переменных =====
 +
 +Чтоб быть уверенным, что в переменную не попадут ненужные символы (пробелы, переводы строк, знак плюс и т.п.) можно воспользоваться функцией FILTER:
 +
 +<file ini>
 +exten => s,n,Set(var=${FILTER(0-9,${strange_var})})
 +</file>
  
 ===== Антиспам ===== ===== Антиспам =====
Строка 20: Строка 27:
 exten => s,n,gotoif($[${CALLERID(num)} = 71111111111]?spam) exten => s,n,gotoif($[${CALLERID(num)} = 71111111111]?spam)
 exten => s,n,gotoif($[${CALLERID(num)} = 72222222222]?spam) exten => s,n,gotoif($[${CALLERID(num)} = 72222222222]?spam)
 +
 +exten => s,n(notspam),Return()
 +
 +exten => s,n(spam),Verbose(!!!!!!!!!!!!!!!!!!!!!!SPAAAAAAAAAAM ${CALLERID(num)} !!!!!!!!!!!!!!!)
 +exten => s,n,Hangup()
 +</file>
 +===== Антиспам по списку из файла =====
 +Антиспам выше требует перезагрузки диалплана при изменении списка блокируемых номеров и может сильно загромождать диалплан, если номеров очень много.
 +
 +Вот вариант построчно читающий номера из файла /etc/asterisk/spamers.txt и сверяющий с ними номер звонящего:
 +<file ini>
 +[sub-antispam]
 +exten => s,1,NoOp(Spam Checking for ${CALLERID(num)})
 +
 +exten => s,n,Set(spamcnt=${FILE_COUNT_LINE(/etc/asterisk/spamers.txt)})
 +exten => s,n,Set(i=0)
 +
 +exten => s,n,While($[${i} < ${spamcnt}])
 +exten => s,n,Set(spamlist=${FILTER(0-9,${FILE(/etc/asterisk/spamers.txt,${i},1,l)})})
 +exten => s,n,gotoif($[${CALLERID(num)} = ${spamlist}]?spam)
 +exten => s,n,Set(i=$[${i} + 1])
 +exten => s,n,EndWhile
  
 exten => s,n(notspam),Return() exten => s,n(notspam),Return()
asterisk/bespoleznye_no_interesnye_veschi.1674734207.txt.gz · Последнее изменение: 2023/01/26 14:56 — san

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki