Voice changer app

I stumbled upon this little voice changer application and so far it’s give a number of people a good laugh. http://www.lobstertech.com/code/voicechanger/
The best part is that you can control the pitch of your voice in real time with the * and # keys.

It installs quite easily into asterisk and after playing around with it a little, I decided I wanted to set it up so that instead of dialing 9 for an external line, I could dial 8 and then the number and the call would be routed through the voice changer.

I couldnt work out how to do that though, so I came up with this:

[code:1]; Dial number using voice changer
; dial *23 then the number to dial
exten => *23,1,Answer()
exten => *23,n,Wait(1)
exten => *23,n,Read(numbertodial,pls-entr-num-uwish2-call,11)
exten => *23,n,VoiceChangeDial(Zap/g0/${numbertodial}|P(-5.0)|T(30)d)
exten => *23,n,Hangup()

This allows extrnal calls to be made by dialing a feauture code and then the phone number.

It works, but I know it can be improved. For example, it’s hardcoded to a single trunk and it does no number processing to add/remove area codes etc.

So, can this be done in freepbx more simply, can it be added as a module or can we work out how to improve my humble code?