If it CAN be done with SlyDial, which I think is a longshot, then you'd be looking at something like:
GoToRecord - First
Set Variable $number = filter(phonenumber; "0123456789" )
Set Variable $char = Length($number)
Dial Phone (slydial number)
Pause/Resume Script - x second duration
Set Variable $i = $i + 1
Set Variable $num = Middle($number ; $i ; 1)
If ($num = 1 )
Go To Field "global_tone1" - select/perform checked (I think select/perform checked will play a container, but it might be different)
Else if ($num = 2)
Go To Field "global_tone2" - select/perform checked
ETC... // FOR ALL 10 DIGIT TONES, stored as globals in ten separate containers.
Exit Loop if $i = $char
Go To Field "Message" - Select/Perform checked
Go To Record/Request - Next / exit after last
I've never heard of anyone using slydial, so I don't think there's a test, and you might be on your own to answer if it can be done.
If they had some sort of API that you could send a number and a file to, then it might be a lot easier and more possible. However I didn't see anything mentioned.
Also, SlyDial is listed as a consumer grade product, not as an enterprise product. You might be breaking their Terms of Service by trying to use it this way.