He’s trying to play on the destination channel, not the source channel. The problem is not the choice about the application but the misunderstanding that Dial returns on Answer, when it actually only returns on the hangup of one of the parties.
In what way doesn’t it work? That dialplan should say the digits towards the caller. If you want to say them to the callee, you must do that using options on the Dial application, as the call will no longer be up to the callee hen Dial exits.
You have already been told one Dial option that should be usable, for some cases. If you need to do something more general, you will need to use the goto, subroutine, or macro options on Dial.
If it is sending the message early on dahdi, it is because either the service provider isn’t providing answer supervision (quite likely) or Asterisk hasn’t been configured to wait for it (default setting, because of the former caveat).
Many analogue lines don’t tell the caller when a call has been answered. As such, unless told otherwise, Asterisk assumes such calls are answered immediately. If you are sure that your service provider reverses the battery on answer, you can tell Asterisk to wait for this. If they don’t actually do this, and you configure for it, the call will be assumed to have never been answered.