How hard would it be to implement a redial feature?

I have an old touchtone phone that only has 0-9,*,# keys. I’d like to be able to use a feature code like *1 to redial the last dialed number.

My phones connect to freepbx through a linksys PAP2t FXS.

You’d probably need to go to the extension’s settings and change the context from from-internal to a new context in extensions_custom.conf. There you’d need some logic to look at the number dialed, and if it was anything other than your redial code, store it in a variable in the database (I’m assuming there’s not already a variable that stores the last number called). If it is your redial code, then instead read the number from the database. Pass the result to from-internal. The idea would be conceptually similar to how *69 call return is implemented, except you’d be storing and using the last outgoing called number.

(And before anyone comments, I know that previous numbers called are stored in the CDR database, but I suspect that grabbing the number out of there would be a lot trickier than simply created a “last number called” variable for the purpose, but feel free to prove me wrong).

I know you probably wanted to hear that this was something already built into FreePBX, but no such luck (unless I missed it somehow). I can definitely understand the desire to keep using your old phone (those things were really built to last!) but much as I hate to say it, it might be time to get a new phone with a redial button.

Oh, and for an example of how to store and retrieve a variable from the database:

How to lock and unlock an extension using a passcode (example of setting/reading/deleting variable in MySQL database)