Long delay on IVR

Ok here is my problem…

I have an IVR which answers an incoming call, it says press 1… press 2… then when pressing the relevant digit, there is a long silence ( maybe 2 or 3 seconds) and then you hear rining on the phone and it connects the call… What could be causing this… I have had alot of people phone in and put the phone down thinking nothing is happening… A copy of some of my dial plan is below, if there are any other suggestions on how it can be done or how to fix the problem, it would be really appreciated…

exten => s,1,Answer
exten => s,2,Wait(1)
exten => s,3,Background(bab-welcome)
exten => s,4,Background(bab-automated)
exten => s,5,Background(bab-press-one)
exten => s,6,Background(bab-press-two)
exten => s,7,Background(bab-press-three)
exten => s,8,Background(bab-press-four)
exten => s,9,Background(/var/lib/asterisk/sounds/silence/7)
exten => s,10,Hangup

exten => 1,1,Answer
exten => 1,2,GotoifTime(08:00-13:59|mon-fri||?bab,330,1)
exten => 1,3,GotoifTime(14:00-17:00|mon-fri||?ed,351,1)
exten => 1,4,GotoifTime(17:01-07:59|mon-fri||?ed,351,1)
exten => 1,5,GotoifTime(|sat-sun||*?ed,351,1)

exten => 2,1,Goto(bab,335,1)

exten => 3,1,Goto(bab,333,1)

Thanks
SuperX

Chances are that is not your entire dialplan.

Say I have:

[context1]
exten => 1,1,something
exten => 2,1,something
exten => 3,1,something
exten => 4,1,something
exten => 11,1,something
exten => 12,1,something
exten => 21,1,something
exten => 22,1,something

[context2]
(other stuff)

If I push 1 or 2, it will wait several seconds to see if I am going to push something else (it doesnt know if I want 11/12 or just 1). Same thing with 2. But if I push 3 or 4, there is nothing else for me to dial so it will connect me immediately.

Either your IVR context or something included in it is offering more options… asterisk is waiting to see if you will take one of them.