Dial() after Progress()

Hello!

I’m trying to make Asterisk to mimic a bit WatsApp in a way of sounds of call connecting.
Idea is to make some other ringback tone while other endopoint is not ringing, and change it to actually ring (or early media), when Asterisk will receive 180/183 from called endpoint.

I’m trying to make like

Progress()
Playtones(connecting)
Dial(PJSIP/${EXTEN}@trunk, 60)

But in this case, while there is no 180/183 from other side, I do receive silence (and, actually, according to traces, Asterisk not sending any RTP traffic to caller)
If I make something like


Progress()
Playtones(connecting)
Wait(5)
Dial(PJSIP/${EXTEN}@trunk, 60)

I can hear connecting tones for 5 seconds, but when Dial comes in - it’s silence.
There is option r(tone) in Dial, but it wouldn’t change if remote side will start early media (which could be some “out-of-network” message)
If I’m using just Dial() without Progress/Playtones - it’s working as expected, just I want to have custom ringback on connecting.

Am I missing something here?

Thanks in advance!

Okay, found a solution, but for me it looks like a bug.

Progress()
Playtones(connecting)
Dial(real_dest&Local/dummy@dummy)

[dummy]
exten => dummy,1,NoOp()

Asterisk needs a 2nd channel, otherwise it will stop Playtones().