How to wait for user to dial an extension

I’m new to FreePBX but have used asterisk for years. My question is, how can I make the dialplan wait for the caller to enter an extension? Then ether jump to the extension (if it matches) or play an error if no such extension?

I’ve been through the list of modules/destinations but can’t see something like that

An IVR will do this for you.

If I have 20 extensions, does that mean I have to add all 20 to the IVR as options (IVR Options)? Doesn’t feel right (are you sure this is the right way to do the main wait for extension)?

Did you read the wiki on ivrs yet?

Yes - I read this:
but it doesn’t clearly answer my question. Do you have a specific page of the wiki you are referring to? (or is this just a general RTFM)

Pretty general. One option is to listen for an extension. You should probably say yes to that.

I don’t see the option to listen for an extension. Can you tell me exactly where that is? (Screenshot)

You realize you have not even told us the version of FreePBX you are running?

The option is direct dial. You can hover over the quick tip for an explanation of any field in FreePBX.

Page three of the IVR User’s Guide.