Here's the script I was using for my diverter, sans the toll-free restriction and suicide hotline blacklist. Give it a couple of sounds and a provider to work with, and you should be set. Just be aware that SetCallerID() was deprecated in 1.6, so you'll have to modify that bit unless you're using 1.4/1.2 .
There's a couple of free DID providers. If you're on the west coast,
http://www.ipkall.com should work better for you, or
http://www.ipcomms.net if you're in the East. It doesn't make much difference, you can still use both; it's just if you use one on the opposite side of the country, you'll get a lot more delay on your call.
[tf-aniset]
exten => 1,1,Background(callingfrom3)
exten => 1,2,Waitexten(6)
exten => 1,3,Background(callingfrom3)
exten => 1,4,Waitexten(6)
exten => 1,5,Background(callingfrom3)
exten => 1,6,Waitexten(15)
exten => 1,7,Hangup()
exten => *67,1,SIPAddHeader(Privacy: id)
exten => *67,2,Playback(okay2)
exten => *67,3,Goto(1,1)
exten => 1138,1,Goto(tf-after38,1,1)
exten => *38,1,Goto(tf-after38,1,1)
exten => 1167,1,SIPAddHeader(Privacy: id)
exten => 1167,2,Playback(okay2)
exten => 1167,3,Goto(1,1)
exten => _XXXXXXXXXX,1,SetCallerID(+1${EXTEN})
exten => _XXXXXXXXXX,2,Goto(tfspoof,1,1)
exten => _1XXXXXXXXXX,1,SetCallerID(+${EXTEN})
exten => _1XXXXXXXXXX,2,Goto(tfspoof,1,1)
exten => i,1,Playback(prompt3)
exten => i,2,Playback(notvalid)
exten => i,3,Goto(1,1)
[tf-after38]
exten => 1,1,Background(bong)
exten => 1,2,Waitexten(6)
exten => 1,3,Background(bong)
exten => 1,4,Waitexten(6)
exten => 1,5,Background(bong)
exten => 1,6,Waitexten(15)
exten => _1XXXXXXXXXX,1,SIPAddHeader(Diversion:<tel:+${EXTEN}>\;reason=user-busy\;screen=no\;privacy=off)
exten => _1XXXXXXXXXX,2,Playback(okay2)
exten => _1XXXXXXXXXX,3,Goto(tf-aniset,1,1)
exten => _XXXXXXXXXX,1,SIPAddHeader(Diversion:<tel:+1${EXTEN}>\;reason=user-busy\;screen=no\;privacy=off)
exten => _XXXXXXXXXX,2,Playback(okay2)
exten => _XXXXXXXXXX,3,Goto(tf-aniset,1,1)
exten => i,1,Playback(prompt3)
exten => i,2,Playback(notvalid)
exten => i,3,Goto(1,1)
[tfspoof]
exten => 1,1,Background(tocall)
exten => 1,2,Waitexten(6)
exten => 1,3,Background(tocall)
exten => 1,4,Waitexten(6)
exten => 1,5,Background(tocall)
exten => 1,6,Waitexten(15)
exten => 1,7,Hangup()
exten => _1XXXXXXXXXX,1,Playback(prompt2)
exten => _1XXXXXXXXXX,2,Playback(silence/1|noanswer)
exten => _1XXXXXXXXXX,3,dial(SIP/${EXTEN}@provider)
exten => _1XXXXXXXXXX,4,Hangup()
exten => _XXXXXXXXXX,1,Playback(prompt2)
exten => _XXXXXXXXXX,2,Playback(silence/1|noanswer)
exten => _XXXXXXXXXX,3,dial(SIP/1${EXTEN}@provider)
exten => _XXXXXXXXXX,4,Hangup()
exten => i,1,Playback(prompt3)
exten => i,2,Playback(notvalid)
exten => i,3,Goto(1,1)