In Elastix, we can perform blind transfer and ring back us if the transferee does not answer. Note that here assumes you are transferring call using Asterisk feature, not the IP phone's own transfer function.
Firstly, we have to setup a TRANSFER_CONTEXT. Dialplan execution will jump to here on transfer.
/etc/asterisk/globals_custom.conf
TRANSFER_CONTEXT = blindxfer_ringback
Next, we make use of the BLINDTRANSFER variable to ring back in the context [blindxfer_ringback]
/etc/asterisk/extensions_custom.conf
[blindxfer_ringback]
; the destination ext should not have vm enabled
exten => _X.,1,NOOP(${BLINDTRANSFER})
exten => _X.,n,set(timeoutd=15) ; set timeout in seconds to dial the transferee
exten => _X.,n,set(extLeng=${LEN(${EXTEN})})
exten => _x.,n,dial(local/${EXTEN}@from-internal,${timeoutd})
exten => _X.,n,Gotoif($["${DIALSTATUS}" = "ANSWER"]?hangup:callback)
; strip the 'SIP/' and ring back
exten => _X.,n(callback),dial(local/${BLINDTRANSFER:4:${extLeng}}@from-internal,,tr)
exten => _X.,n(hangup),hangup()
How does it work
- During a conversation, when you want to transfer caller, you press '##' followed by the transferee extension and '#'.
- You can hangup your phone.
- The caller now hears music while being connected to the transferee.
- If the transferee does not answer, Asterisk will ring back you.
The '##' is the key sequence to initiate blind transfer in Asterisk. You can verify the actual sequence defined in your Elastix.
- PBX>PBX Configuration>Feature Codes
- Or you can check it in CLI.
Builtin Feature Default Current
--------------- ------- -------
Pickup *8 *8
Blind Transfer # ##