What is the practical limit of entries in IVR

I want to find a method of having an IVR with 10,000 plus entries.
I suspect that the standard IVR has a practical limit that is far short of this.
I would appreciate some guidance on how to approach this or assistance in writing a module that could achieve this.

This concept is to accept a 6 - 7 digit code look up a table and then dial the number that is returned. The number returned could be an extension, ring group or external telephone number.

You don’t want an IVR. You want an AGI script that will take user dtmf input and return a value. There is no native utility in FreePBX that can do this, you have to code it yourself. Sangoma paid support can assist or you can power through it yourself using examples in /var/lib/asterisk/agi-bin and on the 'net.

As an alternative I would suggest sending such calls to a context much like:-

[custom-lookup]
exten => s,1(start),read(lookup,please-enter-the&access-code&beep,7,2,2)
exten => s,n,set(result=${DB(lookup/${lookup})})
exten => s,n,gotoif($["${result}" = ""]?nogood:found)
exten => s,n(nogood),playback(sorry_login_incorrect)
exten => s,n,goto(start)
exten => s,n(found),SayDigits(${lookup})
exten => s,n,Playback(is-set-to&lookup/${lookup}&beep&silence/1)
exten => s,n,goto(from-internal,${result},1)

You can seed the lookup database tree where xxx is your 7digit key and yyy is the destination you want to goto with

rasterisk -x ‘database put lookup xxx yyy’

make a dir /var/lib/asterisk/sounds/lookup and create xxx.wav files to suit in there, it would tell the caller what she is being redirected to (all these files owned by asterisk)

The question that begs to be asked is “Could you do this with DISA?” You dial a number that connects you to the PBX, get a message, and dial an extension in the system. From there, you can go pretty much nutz.

Thanks Dicko

While I’m not (yet) familiar with the inner works of Asterisk, I can follow the concept you are suggesting.
I guess I need to study programming Asterisk.

What you have suggested looks like what I’m hoping to achieve.

Robert