[asterisk-users] Match a Numer - then continue with dialplan

Andreas Sikkema andreas.sikkema at bbeyond.nl
Wed Dec 20 09:07:36 MST 2006


> [snip]
> > > 
> > > [coo1_CallStart]
> > > include => coo1_OnNet
> > > include => syst_OnNet
> > > include => syst_OffNet
> > 
> > Instead of including your system-wide logic for offnet calling,
> > introduce a per-company offnet and include that instead:
> > 
> > [coo1_CallStart]
> >  include => coo1_OnNet
> >  include => syst_OnNet
> >  include => coo1_OffNet 
> > 
> > [coo1_OffNet]
> > 
> > exten => _X.,1,Set(CALLERID(NUM)=3254000)
> > exten => _X.,2,Set(CALLERID(NUM)=Widgets Inc.)
> > exten => _X.,3,Goto(syst_OffNet,${EXTEN},1)
> 
> Bradley, If I do this, then I can no longer continue with 
> further extensions in my dialplan as Asterisk has already 
> matched a number. I still need to check black/white lists, 
> set pic codes and rate centers, 4 digit extensions etc within 
> the company context. I just need to set the caller id and 
> then move on. If I goto over to ${EXTEN} within syst_OffNet, 
> I'd have to put ALL this logic within that extension, which 
> would mean potentiall several hundred priorities. Asterisk 
> really does need a way to match a number, execute some code, 
> and then go back to looking for extensions.

Why not do something like this (in pseudo dialplan):

<matching and initial dialplan stuff>
<decide the outgoing callerid should change>
SetVar(outgoing_callerid=1234567)
<continue with dialplan and do all kinds of weird things>
Set(CALLERID(NUM)=${outgoing_callerid})
Dial(outgoing destination)

This will not screw up your extesnions matching, but you will 
need to check that outgoing_callerid has been filled before setting 
callerid (or make sure it is always filled with something sensible).

Check the variables page in the wiki on exact syntax ;-)

-- 
Andreas Sikkema                        BBeyond
Software Engineer                Planeetbaan 4
+31 (0)23 7074342            2132 HZ Hoofddorp  


More information about the asterisk-users mailing list