[asterisk-users] Routing incoming call based on caller id
John Novack
jnovack at stromberg-carlson.org
Fri Nov 6 13:53:02 CST 2009
Better be careful, or Steve will "un-top post" you!
Peg Leg O'Brien
Danny Nicholas wrote:
> Once again I've "fooled" you into a better suggestion :) I was actually
> going to suggest something like this, but hadn't had my second cup of
> coffee.
>
> -----Original Message-----
> From: asterisk-users-bounces at lists.digium.com
> [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Steve Edwards
> Sent: Friday, November 06, 2009 12:13 PM
> To: Asterisk Users Mailing List - Non-Commercial Discussion
> Subject: Re: [asterisk-users] Routing incoming call based on caller id
>
> Un-top-posting...
>
>
>> [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Lyle Giese
>>
>
>
>> Currently I have this in my extensions.conf for incoming calls on our
>> house phone line:
>>
>> [housemenu]
>> exten => s,1,GotoIF($["${CALLERID(num)}" = > "815xxxxxxx"]?s|12)
>> ; 815xxxxxxx is our home phone number, when caller id
>> fails or is missing that is what is recorded.
>>
>> I want to expand this from just branching on our home phone number to
>> include any toll free number, (800, 866, 877, etc) as a telemarketer
>> screening system. But I am not sure of the syntax here, but don't want
>> to add another line for each 8xx toll free npa either.
>>
>
> On Fri, 6 Nov 2009, Danny Nicholas wrote:
>
>
>> This might be the worst suggestion you'll get
>>
>
> Get's my vote :)
>
>
>> but it WILL work
>>
>> - exten => s,1,AGI(testval.agi,${CALLERID(num)})
>> - exten => s,2,Gotoif(${marketer})
>>
>> The AGI should read a variable from STDIN, evaluate the first 3 digits
>> and return variable marketer as TRUE or FALSE. You can do this in about
>> 30 lines of PERL/PHP.
>>
>
> Creating unnecessary processes, dragging a bajillion bytes of interpreter
> off disk and into memory, parsing and interpreting 30 lines of script* all
> to avoid 1/2 dozen lines of dialplan doesn't sound like the correct
> approach -- even though I am an AGI fanboy.
>
> [housemenu]
> exten = s,1, verbose(1,[${CONTEXT}:${EXTEN}])
> exten = s,n, set(NPA=${CALLERID(num):0:3})
> exten = s,n, gotoif($["800" = "${NPA}"]
> ?toll-free,s,1)
> exten = s,n, gotoif($["888" = "${NPA}"]
> ?toll-free,s,1)
> exten = s,n, gotoif($["866" = "${NPA}"]
> ?toll-free,s,1)
> exten = s,n, gotoif($["877" = "${NPA}"]
> ?toll-free,s,1)
>
> (untested, but should be close)
>
> Simple to maintain and obvious.
>
> *) If you decide to go the AGI route, it's not quite that simple. You have
> to follow the AGI protocol where the first thing you need to do is read
> the AGI environment passed to you by Asterisk on STDIN. You should use an
> established AGI library and use a "real" language like C -- (ducking
> quickly).
>
>
> ------------------------------------------------------------------------
>
>
>
> Checked by AVG - www.avg.com
> Version: 8.5.425 / Virus Database: 270.14.52/2483 - Release Date: 11/05/09 19:52:00
>
>
--
Dog is my co-pilot
More information about the asterisk-users
mailing list