Joseph wrote:
Can you please share more details, is it done via dial plan?

We use extension 2000.


You'll need to added the 'check_blacklist' sub-routine to the inbound parts of your dial plan.


[tele_torture]

exten => 2000,1,GotoIf($["${CALLERID(number)}" = "0"]?7:2)
exten => 2000,n,Gosub(todays_date,s,1)
exten => 2000,n,Gosub(tele_query,s,1)
exten => 2000,n,NoOP(${torture.calls})
exten => 2000,n,GosubIf($["${torture.calls}" = "1"]?tele_insert,s,1)
exten => 2000,n,GosubIf($["${torture.calls}" = "2"]?tele_blacklist,s,1)


;*Death to telemarketers
exten => 2000,n,Answer()
exten => 2000,n,Set(CDR(userfield)=Torture)
exten => 2000,n,SetMusicOnHold(conference)
exten => 2000,n,WaitMusicOnHold(30)
exten => 2000,n,Wait(1.5)
exten => 2000,n,Playback(pls-hold-while-try)
exten => 2000,n,Ringing()
exten => 2000,n,Wait(25)
exten => 2000,n,Goto,10

[tele_query]

exten => s,1,Set(torture.calls=0)
exten => s,n,MYSQL(Connect connid localhost username 'password' torture)
exten => s,n,GosubIf($["${MYSQL_STATUS}" = "-1"]?mysql_failed,s,6)
exten => s,n,MYSQL(Query resultid ${connid} SELECT phone \, calls \, name FROM 
Facility WHERE phone = "${CALLERID(number)}")
exten => s,n,MYSQL(Fetch fetchid ${resultid} torture.phone torture.calls 
torture.name)
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,Set(torture.calls=${IF($[ ${torture.calls} = 1]?2:1)})
exten => s,n,Return()

[tele_insert]

exten => s,1,MYSQL(Connect connid 192.168.104.122 username 'password' torture)
exten => s,n,GosubIf($["${MYSQL_STATUS}" = "-1"]?mysql_failed,s,6)
exten => s,n,MYSQL(Query resultid ${connid} INSERT INTO Facility set 
phone="${CALLERID(number)}" \, calls="${torture.calls}" \, 
name="${CALLERID(number)}" \, time_date="${TODAY}")
exten => s,n,MYSQL(Disconnect ${connid})

exten => s,n,System(/usr/local/bin/scripts/add_watchlist_email.sh 
[email protected] ${CALLERID(number)} ${TODAY})
exten => s,n,Return()

[tele_blacklist]

exten => s,1,MYSQL(Connect connid 192.168.104.122 username 'password' 
blacklisted)
exten => s,n,GosubIf($["${MYSQL_STATUS}" = "-1"]?mysql_failed,s,6)
exten => s,n,MYSQL(Query resultid ${connid} INSERT INTO Facility set 
phone="${CALLERID(number)}" \, flag="YES" \, note="Blacklisted by Tele-Torture 
- ${TODAY}")
exten => s,n,MYSQL(Disconnect ${connid})

exten => s,n,System(/usr/local/bin/scripts/add_blacklist_email.sh 
[email protected] ${CALLERID(number)} ${TODAY})
exten => s,n,Return()

[check_blacklist]

exten => s,1,GotoIf($["${CALLERID(num)}" = "" ]?2:3)
exten => s,n,Set(CALLERID(all)=Restricted <0>)
exten => s,n,MYSQL(Connect connid localhost username 'password' blacklisted)
exten => s,n,GosubIf($["${MYSQL_STATUS}" = "-1"]?mysql_failed,s,6)
exten => s,n,MYSQL(Query resultid ${connid} SELECT flag \, note FROM Facility 
WHERE phone = ${CALLERID(num)})
exten => s,n,MYSQL(Fetch fetchid ${resultid} results note)
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,Set(BLACKLISTED=${results})
exten => s,n,GotoIf($["${BLACKLISTED}" = "YES"]?blacklisted,s,1)
exten => s,n,NoOP(Caller not blacklisted)
exten => s,n,Return

[blacklisted]

exten => s,1,NoOP(Caller: ${CALLERID(num)} is on the black list)
exten => s,n,NoOP(NOTE: ${note})
exten => s,n,Set(CDR(userfield)=Blacklisted)
exten => s,n,Zapateller(answer)
exten => s,n,Hangup(2)
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
               http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to