====== Здесь соберу то, что можно сделать с Астериск, хотя вряд ли кому-то это понадобится ====== ===== Слушаем радио через АТС ===== Команда 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}}