Dial application and incomplete numbers

We have an IVR menu using for a calling card application. Here is some pseudo code:-

exten => 0800123456,1,Noop(playback message and wait for digits etc…)
exten => 0800123456,n,Dial(DAHDI/g1/${number})

What we are finding is that if the person using the service enters a phone number to be dialed which is too short the Dial command tries to dial it but gets indication that the number is incomplete and so waits for DTMF digits to be entered again and then retries.
However when more digits are entered say for example ‘78’ the Dial command effectively does a ‘Goto(080012345678,1)’ which of course is liable to break things.

Is there an option to make the Dial command never wait for additional digits if it receives an incomplete number?

This is implemented at the PBX level (main/pbx.c) not the Dial level (apps/app_dial.c). The trigger is an invalid number format response from the channel driver.

There is an assumption that the extension bears some relation to what actually gets dialled. I suspect using a goto may help in that respect. Normally number length validation, or at least minimum length checking, would be done by the dialplan logic, without invoking the channel driver, however this sort of behaviour is needed for dahdi to dahdi calls when dealing with international numbers, as it is not possible to know the correct length for any number and people prefer not to have to wait for a timeout before a call is attempted.

You might want to look at the overlap dialling option, but I don’t know that this will help.