(* Started from an idea found here: http://www.macmerc.com/articles/Pro_Pod_Power_Tips/363 I repurposed code written by Mark Hunte from a hint found here: http://www.macosxhints.com/article.php?story=20060108061523521 dial tones found here: http://www.mediacollege.com/audio/tone/dtmf.html Script assumes you have downloaded these dial tones and made a play list called "Phone" It also relies on the track order of the play list being such that track 1 is dial tone '0' track 2 is dial tone '1' etc. *) -- set this to number used to dial out. Set to empty ("") if you don't use a number to dial out. property dialout : "9" using terms from application "Address Book" on action property return "phone" end action property on action title for p with e return "Dial using iTunes" end action title on should enable action for p with e return true end should enable action on perform action for p with e set phone_num to the value of e -- See if number already starts with '+' if phone_num starts with "+" then -- If not, prepend "0" to the number and remove the +44 set phone_num to "0" & characters 4 thru -1 of phone_num end if dial_via_iTunes(phone_num) end perform action end using terms from on dial_via_iTunes(phone_num) set phone_num to dialout & "-" & phone_num tell application "Finder" display dialog phone_num & return & "Hold phone to speaker then click \"OK\" " buttons {"Cancel", "OK"} default button 2 end tell set AppleScript's text item delimiters to "" set the number_list to every text item of phone_num tell me set number_list to numbersOnly(number_list) end tell tell application "iTunes" activate set sound volume to 100 repeat with i from 1 to number of items in number_list set this_item to item i of number_list as number --display dialog this_item set this_item to this_item + 1 as number play track this_item of playlist named "Phone" with once delay 0.25 end repeat set sound volume to 40 end tell end dial_via_iTunes on numbersOnly(number_list) -- Clean up the number from any extraneous characters set temp_number_list to {} repeat with i from 1 to number of items in number_list set this_item to item i of number_list --48-57 = 0-9 set temp_item to ASCII number of this_item if temp_item is greater than 47 and temp_item is less than 58 then set temp_number_list to temp_number_list & this_item end if end repeat return temp_number_list end numbersOnly