Asterisk@Home Handbook Speed Dials

Asterisk @ Home systems come with a system-wide speed dial, shared between all users.

Speed dials are set by dialing 3003XXX., where an example would be 300 301 8005551212. This would define speed dial 301 to call 8005551212.

To use the speed dial, any user would dial 301 from their phone.

If a user is unsure of what a speed dial points to, they can dial *301 to have Alison say the number.


When I first found this feature, I was surprised, as I don't think I've read anything about it in the handbook. I decided to read the entire dialpan to look for more surprises. I discovered that there was nothing setup for personal/user speed dials, so with a bit of modification, I quickly added some. the 5xx range seems to be more or less free so I added similar functionality to the context to allow users to store individual speed dial in this range.


Setting up personal speed dials:

Using the code below, if a user on extension 200 sets a personal speed dial on 510, and the user on extension 201 sets a different speed dial on 510, they will not conflict.

This modification will also work in cases were you have your users configured to login to their phones vs statically configured to a phone.


modify extensions_custom.conf

[custom-speed-dial]
exten => _3005XX.,1,Macro(user-callerid)
exten => _3005XX.,2,DBput(Speed${CALLERIDNUM}/${EXTEN:3:3}=${EXTEN:6})
exten => _3005XX.,3,goto(custom-speed-dial,3003${EXTEN:4},2)

exten => _5XX,1,Macro(user-callerid)
exten => _5XX,2,DBget(speedref=Speed${CALLERIDNUM}/${EXTEN})
exten => _5XX,3,goto(custom-speed-dial,3${EXTEN:1},2)

exten => _*5XX,1,Macro(user-callerid)
exten => _*5XX,2,Answer
exten => _*5XX,3,DBget(speedref=Speed${CALLERIDNUM}/${EXTEN:1})
exten => _*5XX,4,SetVar(speedreflocation=${EXTEN:1})
exten => _*5XX,5,goto(custom-speed-dial,*3${EXTEN:2},4)



;Speed dialing record
exten => _3003XX.,1,DBput(SysSpeed/${EXTEN:3:3}=${EXTEN:6})
exten => _3003XX.,2,SayDigits(${EXTEN:6})
exten => _3003XX.,3,playback(at)
exten => _3003XX.,4,playback(position)
exten => _3003XX.,5,SayDigits(${EXTEN:3:3})
exten => _3003XX.,6,Hangup

;Speed dialing recall and dial
exten => _3XX,1,DBget(speedref=SysSpeed/${EXTEN})
exten => _3XX,2,playback(pls-wait-connect-call)
exten => _3XX,3,Goto(customer,${speedref},1)
exten => _3XX,102,playback(that-number)
exten => _3XX,103,playback(is-not-in-the)
exten => _3XX,104,playback(speed-dial)
exten => _3XX,105,playback(system)
exten => _3XX,106,playback(pls-try-again)
exten => _3XX,107,playback(goodbye)
exten => _3XX,108,Macro(hangupcall)

;Speed dialing recall and tell caller what it is, part one
exten => _*3XX,1,Answer
exten => _*3XX,2,DBget(speedref=SysSpeed/${EXTEN:1})
exten => _*3XX,3,SetVar(speedreflocation=${EXTEN:1})
exten => _*3XX,4,Goto(menu-SysSpeed,s,1)
exten => _*3XX,102,playback(speed-dial)
exten => _*3XX,103,playback(num-not-in-db)
exten => _*3XX,104,playback(pls-try-again)
exten => _*3XX,105,playback(goodbye)
exten => _*3XX,106,Macro(hangupcall)



Asterisk @ Home systems come with a system-wide speed dial, shared between all users.

Speed dials are set by dialing 3003XXX., where an example would be 300 301 8005551212. This would define speed dial 301 to call 8005551212.

To use the speed dial, any user would dial 301 from their phone.

If a user is unsure of what a speed dial points to, they can dial *301 to have Alison say the number.


When I first found this feature, I was surprised, as I don't think I've read anything about it in the handbook. I decided to read the entire dialpan to look for more surprises. I discovered that there was nothing setup for personal/user speed dials, so with a bit of modification, I quickly added some. the 5xx range seems to be more or less free so I added similar functionality to the context to allow users to store individual speed dial in this range.


Setting up personal speed dials:

Using the code below, if a user on extension 200 sets a personal speed dial on 510, and the user on extension 201 sets a different speed dial on 510, they will not conflict.

This modification will also work in cases were you have your users configured to login to their phones vs statically configured to a phone.


modify extensions_custom.conf

[custom-speed-dial]
exten => _3005XX.,1,Macro(user-callerid)
exten => _3005XX.,2,DBput(Speed${CALLERIDNUM}/${EXTEN:3:3}=${EXTEN:6})
exten => _3005XX.,3,goto(custom-speed-dial,3003${EXTEN:4},2)

exten => _5XX,1,Macro(user-callerid)
exten => _5XX,2,DBget(speedref=Speed${CALLERIDNUM}/${EXTEN})
exten => _5XX,3,goto(custom-speed-dial,3${EXTEN:1},2)

exten => _*5XX,1,Macro(user-callerid)
exten => _*5XX,2,Answer
exten => _*5XX,3,DBget(speedref=Speed${CALLERIDNUM}/${EXTEN:1})
exten => _*5XX,4,SetVar(speedreflocation=${EXTEN:1})
exten => _*5XX,5,goto(custom-speed-dial,*3${EXTEN:2},4)



;Speed dialing record
exten => _3003XX.,1,DBput(SysSpeed/${EXTEN:3:3}=${EXTEN:6})
exten => _3003XX.,2,SayDigits(${EXTEN:6})
exten => _3003XX.,3,playback(at)
exten => _3003XX.,4,playback(position)
exten => _3003XX.,5,SayDigits(${EXTEN:3:3})
exten => _3003XX.,6,Hangup

;Speed dialing recall and dial
exten => _3XX,1,DBget(speedref=SysSpeed/${EXTEN})
exten => _3XX,2,playback(pls-wait-connect-call)
exten => _3XX,3,Goto(customer,${speedref},1)
exten => _3XX,102,playback(that-number)
exten => _3XX,103,playback(is-not-in-the)
exten => _3XX,104,playback(speed-dial)
exten => _3XX,105,playback(system)
exten => _3XX,106,playback(pls-try-again)
exten => _3XX,107,playback(goodbye)
exten => _3XX,108,Macro(hangupcall)

;Speed dialing recall and tell caller what it is, part one
exten => _*3XX,1,Answer
exten => _*3XX,2,DBget(speedref=SysSpeed/${EXTEN:1})
exten => _*3XX,3,SetVar(speedreflocation=${EXTEN:1})
exten => _*3XX,4,Goto(menu-SysSpeed,s,1)
exten => _*3XX,102,playback(speed-dial)
exten => _*3XX,103,playback(num-not-in-db)
exten => _*3XX,104,playback(pls-try-again)
exten => _*3XX,105,playback(goodbye)
exten => _*3XX,106,Macro(hangupcall)



Created by: nmemon, Last modification: Fri 05 of Nov, 2010 (09:32 UTC) by admin
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+