[asterisk-users] Dial Plan - Routing via Caller ID

Warren Selby wcselby at selbytech.com
Wed Apr 11 16:46:44 CDT 2012


On Wed, Apr 11, 2012 at 4:11 PM, <lists65 at gmail.com> wrote:

> Here is an example.****
>
> ** **
>
> Let’s say that I want to send all calls to a context that would answer the
> call via voicemail.****
>
> Let’s say that I want to only right a SIP phone if calls cam from a
> particular Area Code (maybe the Area Codes in your state).****
>
> Let’s say that I would want to send calls from a particular A/C and
> certain NNX’s to a particular sales group.****
>
> ** **
>
> Does that help define the purpose of directing calls **from** different
> Area Codes and NNX’s?****
>
>

You've got a few ways you can do this:

1 - In the dialplan with ex-girlfriend logic.  You should be able to use
patterns with your ex-girlfriend logic matches, as so:

exten => 15558675309/_255NXXXXXX,1,Verbose(Calls to 867-5309 from area code
255 end up here)
exten => 15558675309/_256123XXXX,1,Verbose(Calls to 867-5309 from phone
numbers 256123XXXX end up here)

etc.

2 - In the dialplan with GotoIf logic:

exten => 15558675309,1,Verbose(Call from ${CALLERID(num)} to 867-5309)
exten => 15558675309,n,GotoIf($["${CALLERID(num):1:3}"="255"]?areacode255)
exten => 15558675309,n,GotoIf($["${CALLERID(num):1:6}"="256123"]?num256123)
exten => 15558675309,n(areacode255),Verbose(Calls to 867-5309 from area
code 255 end up here)
exten => 15558675309,n(num256123),Verbose(Calls to 867-5309 from phone
numbers 256123XXXX end up here)

etc.

3 - Outside the dialplan with an AGI that allows you many more conditional
logic choices (plus keeps your dialplan nice and clean):

exten => 15558675309,1,Verbose(Call from ${CALLERID(num)} to 867-5309)
 same => n,AGI(route_by_clid)

In your AGI, you'll be most interested in the agi_callerid environment
variable and you can control where the call goes next using the SET CONTEXT
and SET EXTENSION agi commands, or simply EXEC a GoTo command (either way
works).

Ultimately, I would go with the AGI option, because that then allows you to
do things like use a database to store your routing information, use case
statements, create routing loops, etc.  It's up to you though.

-- 
Thanks,
--Warren Selby, dCAP
http://www.SelbyTech.com <http://www.selbytech.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20120411/206ca9c4/attachment.htm>


More information about the asterisk-users mailing list