Как избавиться от звонков коллекторов средствами asterisk

Избавляемся от звонков коллекторов средствами Asterisk

Не секрет, что долг платежем красен,  и иногда этот самый долг превращается в просрочку, а после и в надоедливые вызовы коллекторов, все чаще приходится менять  номер телефона с целью избавить себя от мата и грубости в свой адрес. В этой статье я покажу, что можно избавить себя от вызовов не меняя вашего номера телефона, а лишь заморозив его на незначительный промежуток времени, используя IP PBX Asterisk и простой скрипт-диалплан, при этом возможности выноса мозга абоненту просто безграничны, выбиватели долга сами будут мучаться от ответов нашего Asteriska.

Диалплан так и называется вынос мозга абоненту. Работает он следующим обраом: будем принимать входящий вызов, при этом нагло ответим “алло” имитируя этим, что вы ответили, дальше Asterisk просто молчит и записывает, что называется на пленку все, что нам сообщает вызывающая сторона, запись вызова происходит в один прием, то есть каждый вызов будем записывать отдельно.

Вот собственно и вся задача, но в нашем примере для удобства мы дополним диалплан возможностью набора секретной комбинации в диалплане с целью прослушивания всеx звонков с первого по n-ый, или сами сможем выбирать запись какого вызова мы хотим прослушать, и прослушаем вызов с нужным номером id.

Естественно план вызова можно дополнить, не только, чтобы избавиться от вызовов коллекторов, но и сообщить секретную комбинацию своим друзьям, при этом при наборе комбинации они смогут до вас дозвониться, но это лишь отступление от действительности которым можно легко укомплектовать план вызова, и в данном контексте он не реализован.

Итак, вот этот макрос способен избавить нас от звонков коллекторов. Применить его можно путем переадресации с вашего засвеченного номера телефона, на любой другой номер предоставляемый нам по sip.

Диалплан вынос мозга коллектору Asterisk

[mixrecord]

exten => 3499099,1,Goto(killer,s,1)

[killer]

exten => s,1,Set(per1="/var/lib/asterisk/sounds/ru/mixmonitor")
exten => s,n,Set(per9="/var/lib/asterisk/sounds/ru/mixmonitorrecord")
exten => s,n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-3499099)
exten => s,n,System(rm ${per1}/num*)
exten => s,n,System(rm ${per1}/rezult)
exten => s,n,System(rm ${per1}/summ)

exten => s,n,Wait(1)
exten => s,n,Answer()
exten => s,n,Background(${per9}/fater) /*Наше наглое "алло"
exten => s,n,Background(silence/2)
exten => s,n,Wait(2)
exten => s,n,MixMonitor(${per1}/${fname}.gsm)
exten => s,n,Wait(2500)
exten => s,n,Hangup()

exten => 99,1,System(ls ${per1}/* > ${per1}/number) /*Наша секретная комбинация - 99
exten => 99,n,System(rev ${per1}/number | cut -c 5- | rev > ${per1}/number1)
exten => 99,n,System(cat ${per1}/number1 | cut -c 40- > ${per1}/rezult)
exten => 99,n,System(rm ${per1}/num*)
exten => 99,n,System(cat ${per1}/rezult | wc -l > ${per1}/summ)
exten => 99,n,Set(koll=${FILE(${per1}/summ)})

exten => 99,n,Playback(${per9}/your_number_has_been_called1)
exten => 99,n,Wait(1)
exten => 99,n,SayNumber(${koll})

exten => 99,n,Set(i=0)
exten => 99,n,Set(k=1)
exten => 99,n,Playback(${per9}/dial_the_number_of_the_message_you_want)
exten => 99,n,Read(Secret)

exten => 99,n,GotoIf($[${Secret} != 0]?yes:no)
exten => 99,n(no),Playback(${per9}/all_entries_will_be_reproduced)
exten => 99,n,Macro(no1)
exten => 99,n(yes),Wait(1)
exten => 99,n,Macro(yes1,${Secret})
exten => 99,n,Hangup()

[macro-no1]
exten => s,1,While($[${i} < $[{koll}]])
exten => s,n,Playback(${per9}/listen_to_the_message_number)
exten => s,n,Wait(1)
exten => s,n,SayNumber(${k})
exten => s,n,Set(stroka=${FILE(${per1}/rezult,${i},1,l)})
exten => s,n,Background(${per1}/${stroka})
exten => s,n,Set(i=$[${i} + 1])
exten => s,n,Set(k=$[${k} + 1])
exten => s,n,EndWhile
exten => s,n,System(rm ${per1}/rezult)
exten => s,n,System(rm ${per1}/summ)
exten => s,n,Hangup()

[macro-yes1]
exten => s,1,Playback(${per9}/listen_to_the_message_number)
exten => s,n,Wait(1)
exten => s,n,SayNumber(${Secret})
exten => s,n,Set(chis=$[${Secret} - 1])
exten => s,n,Set(stroka=${FILE(${per1}/rezult,${chis},1,l)})
exten => s,n,Background(${per1}/${stroka})
exten => s,n,System(rm ${per1}/rezult)
exten => s,n,System(rm ${per1}/summ)
exten => s,n,Wait(2500)
exten => s,n,Hangup()

exten => t,1,MixMonitor(${per1}/${fname}.gsm)
exten => t,n,Wait(2500)
exten => t,n,Hangup()
exten => t,1,MixMonitor(${per1}/${fname}.gsm)
exten => t,n,Wait(2500)
exten => t,n,Hangup()

exten => i,1,MixMonitor(${per1}/${fname}.gsm)
exten => i,n,Wait(2500)
exten => i,n,Hangup()

 

Поделиться:

Добавить комментарий

+ 4 = 5
Решите простой математический пример. Например для "два плюс четыре =?" введите "6".