Fully up to date PBXact, S500 and S505 phones.
My client really wants the following type of setup with their phones and I am not sure if its even possible, so just putting it out there to see if the way I am going is the best way to go about coding the solution.
A call comes in and whoever picks it up presses transfer and then the BLF button for the person they want to transfer it to. If they want to talk to the destinations first they wait for them to answer before transferring the call, but if they dont want to wait they can do the same BLF transfer but then hang up the call. If that call isnt answered at the destination (times out) it should ring back to the source extension with a prefix CID added of the Name of the timed out extension (not their extension number) in front of the calling in personal number.
I have tried giving them the BLF blind transfer with RB: ringback custom code but they ruled it out as they need to do attended transfers some of the time. They really dont want to learn extension numbers, just use the BLF keys.
I also tried using Long/Short BLF key presses but they are not designed for “in call” operations.
I currently have them setup with changing the extension timeout to ring back in the inbound route and manually inputting the CID prefix for each persons extension, but they really want it ringing back to the original extension sending the transfer.
I am now looking at https://wiki.asterisk.org/wiki/display/AST/Feature+Code+Call+Transfers and attended transfer callbacks.
This description looks promising -
;atxfernoanswertimeout = 15 ; Timeout for answer on attended transfer default is 15 seconds. ;atxferdropcall = no ; If someone does an attended transfer, then hangs up before the transferred ; caller is connected, then by default, the system will try to call back the ; person that did the transfer. If this is set to "yes", the callback will ; not be attempted and the transfer will just fail. ; For atxferdropcall=no to work properly, you also need to ; define ATXFER_NULL_TECH in main/features.c.
If this code doesn’t work then I could look at trying to use custom destinations as an extension time out with some asterisk variables. (again im clutching at straws here but trying to look at every area to get a solution)
I’m starting to learn more about building custom dial plans, but any advice from more experienced coders would be greatly appreciated. Even good learning videos, guides, sites or books suggestions would help