Custom Call Screening

I came up with my own call screening process using the M() option of the Dial() function.

Inside the macro, I ask the person being called if they wish to accept the call or not. My problem is that when this happens, the ringing stops and the caller thinks that the call was hung up while the person being called hears the prompt.

Is there any way I can play a prompt to the caller as the call is being answered?


Here is a snippet from my dialplan

        same => n,Dial(SIP/${dialNumber}@baldwintelecom,25,rM(callScreening,${dialNumber})gL(180000:60000:30000))

exten => s,1,Answer()
        same => n,Set(dialNumber=${ARG1})
       ;;In this script, the person being called gets to choose to accept or deny the call
        same => n,AGI(agi://localhost/callScreening.agi?dialNumber=${dialNumber})

You could use the G option, then Bridge on acceptance or ChannelRedirect on rejection.