Dial command with external command

I have a mobile phone number threw one SIP provider and I’m trying to forward that call to my cell phone number in USA.

This does not work. When I call my number I get busy signal (like someone rejected a phone call)
In asterisk console I see that the “SIP/+19175555555@voipdiscount” was dialed.

exten => 100,1,NoOp(call from: ${CALLERID(all)})
exten => 100,n,Dial(SIP/+19175555555@voipdiscount,40)
exten => 100,n,Macro(voicemail,100@home)

This works.

exten => 100,1,NoOp(call from: ${CALLERID(all)})
exten => 100,n,Espeak("please hold while your call is connected",any)
exten => 100,n,Dial(SIP/+19175555555@voipdiscount,40)
exten => 100,n,Macro(voicemail,100@home)

I would like the call forward to not be noticeable to the caller.
Version no1 works if I Dial a local extension
Any ideas what happens if I don’t use Espeak?

Espeak presumably answers the call. That starts charging for the caller, but does mean that the public network now allows you to transmit information to the caller. Answer() will probably do the same.

Note it is bad practice to answer the call to an unknown caller without making it clear that the call has been answered. It may even be illegal in Germany.

I would not like to answer a call until I pick up the
extension I’m calling :