Define an extension to answer

Ok, I am building an IVR - which works great!
However, How do I do the following:
Ring the line, in it does not answer, transfer it to the IVR?

I have:
[macro-from-pstn]
exten =>s,1,Answer
exten =>s,n,NoOp(CallerID is ${CALLERID})
exten =>s,n(dial),Dial($ARG1}|${FROM-PSTN-RING-SECONDS}|${FROM-PSTN-OPTIONS})
exten =>s,n,Voicemail(u${FROM-PSTN-GENERAL-MAILBOX})
exten =>s,dial+101,Voicemail(b${FROM-PSTN-GENERAL-MAILBOX})

So, I believe I need to have it, after the 3rd line, call an extension, but as that extension is not tied to a physical piece of equipment, nothing I have tried works.

Thanks

How about

exten =>s,n,Goto(ivrcontext,s,1)

I have the menu:
[IVR]
exten => 40,1,Answer
Exten => 40,n,SetMusicOnHold(default)
exten => 40,n,DigitTimeout,5
exten => 40,n,ResponseTimeout,10
exten => 40,n,Background(greeting)
then a list of extensions and what they dial

so I tried as the 4th line:
exten => s,n,Goto(40)

and
exten => s,n,Goto(IVR)

the first doesn’t come back with an error, it just hangs up
the second gives me an error:
pbx.c2326 __ast_pbx_run: Channel ‘Zap/6-1’ sent into invalid extension ‘s’ in context ‘IVR’, but no invalid handler

exten => s,n,GoTo(IVR,40,1)