Sending call my to initiator if busy

When I transfer a call and the extention is busy it goes to voicemail.No one like using voice mail, so I lose the call. Is there a way for a call, when transferred, be send back to the initator if busy or unavailable?

Using freePBX 2.2.1


There are two types of transfers: Attended and Blind. You are using the blind transfer and thus have no control over the call. If you use the attended transfer, you can drop the voice mail and return to the caller. Check you features page for the correct codes to use.

Thanks for quick reply. Howev I don’t see anything about blind or attend transfer. Do I need to install something seperate?

Look at the feature codes list under Core. You’ll see “In-Call Asterisk Attended Transfer” on the latest FreePBX release. If yours is older, you may have to manually edit the /etc/asterisk/features.conf file to see or change the codes.

You’ll see something like this in that file:

[applicationmap] #include features_applicationmap_additional.conf

blindxfer => ## ; Blind Transfer
disconnect => ** ; Disconnect Call
automon => *1 ; One Touch Record
;atxfer => *2 ; Attended Xfer

You can see in this file that the atxfer line is commented out but were it not, the code would be *2 in this instance. Removing the ; and setting the code to what you want should work. Alternatively, just upgrade your FreePBX to the latest 2.5 release and the feature codes can be set in the feature codes module.

How easy is it to upgrade, or do I need to resetup the whole box.

Thanks for your help.

I don’t want to be harsh, but if you are using FreePBX and don’t know how to upgrade it, you probably should not be trying to upgrade it without the appropriate research. It isn’t hard to do but you should have a concept of what is changing, what dependencies are needed, etc.

There are upgrade instructions under documentation on this site but you need to fully understand what version you are currently using and how to get to the newer version(s).

Start your research here:

You can also add this to extensions_custom.conf. This code pulls a blind transfer back to the originator if it times out or is busy. You need to set the timeout on this to less than the timeout to your voicemail.

exten => _x.,1,set(__TRANSFER_CONTEXT=custom-test_transfer|${EXTEN}|1)

exten => _X.,1,NOOP(entering custom-test_transfer)
exten => _X.,n,set(timeoutd=10) ; set timeout in seconds
exten => _X.,n,set(extLeng=${LEN(${EXTEN})})
exten => _X.,n,noop(the extenlength is ${extLeng})
exten => _x.,n,dial(local/${EXTEN}@from-internal,${timeoutd})
exten => _X.,n,Gotoif($["${DIALSTATUS}" = “ANSWER”]?hangup,callback)
exten => _X.,n,Set(CALLERID(name)=RB:${CALLERID(name)})
exten => _X.,n(callback),dial(local/${BLINDTRANSFER:4:${extLeng}}@from-internal)
exten => _X.,n(hangup),hangup()
exten => _*X.,1,dial(local/${EXTEN}@from-internal,15)
exten => _*X.,n,hangup()