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