On Sun, 1 Apr 2007, Dovid B wrote:

You can try putting out a bounty to make a new app in asterisk or set a
variable in the asterisk db.

Why a new app? That way you get "forced" into doing it the app way, (like FollowMe in 1.4 which, if I understand the wiki page on it, doesn't do anything remotely like what I want out of a FollowMe, which I've written for my own system entirly in dialplan) or write your own - and if you're writing your own anyway then ...

And as there appears to be sounds-files in the sound add-ons package for speed-dialling, I'm guessing that more than one person has done this in the past ...

So here's a quick & dirty personal (per extension) speed-dial system, independant of what phone you are using (which I'm not claiming any originality for as I got the idea from somewhere else, just altered it for my own system) It's trivial to alter for a company-wide system too - (I use *1x and *2x to implement 20 system-wide speed-dials) slightly harder to put a web front-end on it (but not impossible as I'm in the process of testing that for me), and with that, then you can use incoming caller-id to associate a name to a number, if they are in the speed-dial list (just like most phones do with their own personal phone-book)

;======================================================================
; Personal speed-dial:
;       Let the extension user assign a personal speed dial code
;       From *00 through *09
;======================================================================

;    Setup: *0 then a single digit 0-9 then the phone number to store at that 
location

exten => _*0X.,1,Answer()
exten => _*0X.,n,Set(me=${CALLERID(num)})
exten => _*0X.,n,Set(pos=${EXTEN:2:1})
exten => _*0X.,n,Set(num=${EXTEN:3})
exten => _*0X.,n,Set(DB(${me}/sd${pos})=${num})
exten => _*0X.,n,SayDigits(${num})
exten => _*0X.,n,Playback(at)
exten => _*0X.,n,Playback(position)
exten => _*0X.,n,SendText(*0${pos}=${num})
exten => _*0X.,n,SayDigits(${pos})
exten => _*0X.,n,Macro(starAck)

;    List:              *0X*

exten => _*0X*,1,Answer()
exten => _*0X*,n,Set(me=${CALLERID(num)})
exten => _*0X*,n,Set(pos=${EXTEN:2:1})
exten => _*0X*,n,Set(num=${DB(${me}/sd${pos})})
exten => _*0X*,n,GotoIf(${num}?:noNum)
exten => _*0X*,n,SendText(*0${pos}=${num})
exten => _*0X*,n,SayDigits(${num})
exten => _*0X*,n,Playback(at)
exten => _*0X*,n,Playback(position)
exten => _*0X*,n,SayDigits(0${pos})
exten => _*0X*,n,Hangup()
exten => _*0X*,n(noNum),Playback(that-number)
exten => _*0X*,n,Playback(is-not-in-the)
exten => _*0X*,n,Playback(speed-dial)
exten => _*0X*,n,Playback(system)
exten => _*0X*,n,Hangup()

;    Recall and dial:   *0X

exten => _*0X,1,Answer()
exten => _*0X,n,Set(me=${CALLERID(num)})
exten => _*0X,n,Set(pos=${EXTEN:2:1})
exten => _*0X,n,Set(num=${DB(${me}/sd${pos})})
exten => _*0X,n,GotoIf(${num}?:noNum)
exten => _*0X,n,SendText(Calling: ${num})
exten => _*0X,n,Goto(${num},1)
exten => _*0X,n(noNum),Playback(that-number)
exten => _*0X,n,Playback(is-not-in-the)
exten => _*0X,n,Playback(speed-dial)
exten => _*0X,n,Playback(system)
exten => _*0X,n,Hangup()


And in Dial Plan
exten => _77.,1,Dial(SIP/${DB(speeddial/${EXTEN:2})[EMAIL PROTECTED]) ; Dials 
the speed dial

If you just "Goto" the speed-dial, then, assuming you have dial-out in the same context it will dial then number for you - which would be an internal extension, or be dialled out by whatever out-dialling rules you have - eg. least cost routing, etc.

However with the Goto system, it's possible to really screw up your system with a cleverly dialled speed-dial, but I'll leave that as an excercise to the reader ;-)

Enjoy!
Gordon
_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to