====== Здесь соберу то, что можно сделать с Астериск, хотя вряд ли кому-то это понадобится ======
===== Слушаем радио через АТС =====
Команда MP3Player позволяет воспроизводить в канале звуковые файлы, а также звуковой поток с указанного ей URL.
Добавляем в диалплан следующие строки:
exten => 111,1,Answer()
exten => 111,n,MP3Player(http://live.borneo.ru:8888/64)
Теперь набрав номер 111 на телефоне можно услышать вещание [[https://www.borneo.ru/|радио "Борнео"]].
===== Фильтрация недопустимых символов в переменных =====
Чтоб быть уверенным, что в переменную не попадут ненужные символы (пробелы, переводы строк, знак плюс и т.п.) можно воспользоваться функцией FILTER:
exten => s,n,Set(var=${FILTER(0-9,${strange_var})})
===== Антиспам =====
Делаем блокировку звонков по списку нежелательных номеров 71111111111 и 72222222222
[sub-antispam]
exten => s,1,NoOp(Spam Checking for ${CALLERID(num)})
exten => s,n,gotoif($[${CALLERID(num)} = 71111111111]?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()
===== Антиспам по списку из файла =====
Антиспам выше требует перезагрузки диалплана при изменении списка блокируемых номеров и может сильно загромождать диалплан, если номеров очень много.
Вот вариант построчно читающий номера из файла /etc/asterisk/spamers.txt и сверяющий с ними номер звонящего:
[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(spam),Verbose(!!!!!!!!!!!!!!!!!!!!!!SPAAAAAAAAAAM ${CALLERID(num)} !!!!!!!!!!!!!!!)
exten => s,n,Hangup()
{{tag>asterisk}}