I'm not going to mince words here: I can't stand telemarketers. I don't care whether they are charities, political organisations or just run-of-the-mill salespeople, I simply have neither the time, interest nor will to waste my own neurons talking to them. It particularly infuriates me that technology - auto-diallers and voice-over-IP - combined with minimum wage staff, has made it so easy for telemarketers to misuse my time, while making a fortune from it. Even being on a do-not-call list hasn't fixed the problem completely; there's so many exemptions that I still find I get unsolicited calls far too often.
Of course, technology can be fought with more technology, and fortunately those of us who move in the free-software sphere have been graced with the marvelous gift of
Asterisk, which presents many opportunities to waste the time of these people, as they try to waste ours. The equipment needed to run this is all fairly basic, by today's standards: I have a Snom-300 IP phone on my desk, a Linksys SPA-3000 adaptor to connect my PSTN line into my household ethernet (and can also drive a standard PSTN phone) and finally an old-whitebox PC as my Asterisk server.
So if you're being driven insane by students reading from canned scripts wanting your money, here's five ways to use Asterisk to get rid of them and maybe even slow them down in the process...
1: The never-ending on-hold
Sick of justifying yourself to telemarketers about why you don't want to talk to them? Do you worry that you don't sound all that convincing when you tell them that you're too busy to talk? Never fear, you can now dispense with your annoying telemarketer and sound professional about it too, with just these two words: "Please hold".
It works like this: you answer the phone, and you hear the familiar sounds of a telemarketer starting off their scripted spiel. Before giving them a chance to finish, you tell them to hold for a moment and then transfer them off to a music-on-hold session that never ends. Add this dialplan to your
extension.conf file:
exten => 5666,1,Answer()
exten => 5666,2,Wait(2)
exten => 5666,3,Playback(tt-allbusy)
exten => 5666,n,SetMusicOnHold(default)
exten => 5666,n,WaitMusicOnHold(60)
exten => 5666,n,Goto(default,5666,3)
You'll also need to make sure that music-on-hold is configured. Something like this in
musiconhold.conf should be sufficient:
[default]
mode=quietmp3
directory=/usr/share/asterisk/mohmp3
Then drop all your favourite mp3s into
/usr/share/asterisk/mohmp3 and bingo, you can get rid of anyone you don't wish to talk to in a matter of seconds. Just press your phone's transfer button and dial 5666.
2: No caller-ID? No soup for you!
Telemarketers almost never use caller-ID - they don't want hoards of angry households calling them up to complain. You can use this to your advantage: if your asterisk box doesn't see a caller-ID number, then have it send them straight to voicemail.
exten => 2100,1,Answer()
exten => 2100,n,GotoIf($["${CALLERID(num)}" = ""]?nocid)
exten => 2100,n,Dial(SIP/your.phone.host.name,20) ; <-- insert the hostname/ip address of your sip phone here
exten => 2100,n,Hangup()
exten => 2100,n(nocid),Voicemail(u2100)
exten => 2100,n,Hangup()
...of course, replace '2100' in your dialplan with whatever number you use to dial your phone extension.
3: The technical glitch
Asterisk has a built-in echo application; whatever it hears, it can play back to the caller. So, the moment you hear a telemarketer on the line, transfer them off to an a number you've pre-defined for this purpose, and they'll just assume that something went wrong with the line - and as an added bonus, they will get to hear just how annoying their own voice really is:
exten => 5900,1,Answer()
exten => 5900,n,Echo()
exten => 5900,n,Hangup()
4: It's dinner time. Let me eat!
Telemarketers love to call at dinner time - there's a good chance you'll be home, and you won't yet be too tired to slam the phone down on them. And, of course, there's always that
one person in your household who just
has to answer a ringing phone, no matter what they're doing. So rather than have your family dinner time interrupted, have your system automatically divert all calls to voicemail between 6pm and 7.30pm:
exten => 2100,1,Answer()
exten => 2100,n,Wait(1)
exten => 2100,n,GotoIfTIme(18:00-19:30|*|*|*?dinner)
exten => 2100,n,Dial(SIP/your.phone.host.name,20) ; <-- insert the hostname/ip address of your sip phone here
exten => 2100,n,Hangup()
exten => 2100,n(dinner),Voicemail(u2100)
exten => 2100,n,Hangup()
5: Zap telemarketers before they even get to you
Often I find that even the interruption of a ringing phone is enough to disrupt my workflow, but I still need to be able to take legitimate calls, even from numbers without caller-id.
It's rare that the telemarketing staff in a call-centre ever do their own dialing. Generally, calls are made by an automatic dialler, and then when a household picks up their phone, the auto-dialer passes the call onto the next available employee.
Asterisk has a handy little function called Zapateller, which plays a
SIT tone - three notes, which indicate that a number isn't in use. You will probably have heard this tone if you've ever dialled an incorrect number. Now, when an auto-dialler hears the SIT tone, it assumes it has dialled a disconnected line and immediately hangs up. Furthermore, some telemarketers will then even remove the number that they dialled from their lists.
Using Zapateller is easy; just drop it into your dialplan in-between where your call is picked up and where asterisk dials your handset. Here's how I use it:
exten => 2100,1,Answer()
exten => 2100,n,Zapateller()
exten => 2100,n,Wait(1)
exten => 2100,n,Dial(SIP/your.phone.host.name,20) ; <-- insert the hostname/ip address of your sip phone here
I've inserted a one second delay after the Zapateller function; this gives the auto-dialler a little bit of time to hang up, so that hopefully they will be gone before my telephone even starts to ring. It's not actually long-enough really, and I've found that my phone tends to ring anyway - but at least the telemarketer has gone by that time. You can increase the delay, but remember that real callers will also hear the SIT tone, and the longer the delay before it starts ringing, the greater the chance they will think that they've dialled the wrong number too.
Zapateller can be given the argument 'nocallerid', in which case it will only play the sound if there is no caller-id information available.