bruce bruce wrote:
> I have a list of CLIDs prefixes that I want to use in a context.
>
> Basically, I want to do this but the list of prefix numbers is much
> longer. List of prefixes (556,557,557,989.....)
>
> [custom-inbound]
> exten => _556,1,answer
> exten => _556,n,playback(beep)
>
> exten => _557,1,answer
> exten => _557,n,playback(beep)
>
> exten => _558,1,answer
> exten => _558,n,playback(beep)
>
> exten => _989,1,answer
> exten => _989,n,playback(beep)
>
> If there are like 100s of different prefixes, this list gets really big.
> Not desired. How can I have a more efficient dialplan?
You could use a pattern match and then do a lookup in the database to see if
the
prefix exists:
[custom-inbound]
exten => _XXX,1,Verbose(2,Lookup prefix ${EXTEN})
exten => _XXX,n,Set(PREFIX=${EXTEN})
exten => _XXX,n,Set(PREFIX_EXISTS=${ODBC_GET_PREFIX(${PREFIX})})
exten => _XXX,n,GotoIf($["${PREFIX_EXISTS}" =
"1"]?prefixAllowed,1:prefixDisallowed)
exten => prefixAllowed,1,Verbose(2,Prefix ${PREFIX} Allowed)
exten => prefixAllowed,n,Playback(beep)
exten => prefixDisallowed,1,Verbose(2,Prefix ${PREFIX} Disallowed)
exten => prefixDisallowed,n,Congestion()
func_odbc.conf
[GET_PREFIX]
dsn=<something setup in res_odbc.conf)
readsql=SELECT 1 FROM prefix_table WHERE prefix = '${ARG1}'
Or something like that (untested).
Leif.
--
_____________________________________________________________________
-- 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