Transfer a Call But continue to listen the caller

I need to know if it is possible to transfer a call but continue to listening the caller.

Here is the idea:

  1. A call arrives at the extension.
  2. Extension pick-up the call.
  3. The call is transfered for another extensions. (with attended transfer)
  4. The caller continue to listen the attended while he informs the person that the can is being transfered.

Is this possible and how could this be achived?

Thank you and regards.

This is not possible, this is the call flow for an Attended Transfer

[quote] Attended Transfer

The Transferor places the Transferee on hold, establishes a call with
the Transfer Target to alert them to the impending transfer, places
the target on hold, then proceeds with transfer using an escaped
Replaces header field in the Refer-To header. This is another common
service expected by current PBX and Centrex users.

The Contact URI of the Transfer Target SHOULD be used by the
Transferor as the Refer-To URI, unless the URI is suspected or known
to not be routable outside the dialog. Otherwise, the Address of
Record (AOR) of the Transfer Target SHOULD be used. That is, the
same URI that the Transferor used to establish the session with the
Transfer Target should be used. In case the triggered INVITE is
routed to a different User Agent than the Transfer Target, the
Require: replaces header field SHOULD be used in the triggered
INVITE. (This is to prevent an incorrect User Agent that does not
support Replaces from ignoring the Replaces and answering the INVITE
without a dialog match.)

Whilst I’d agree that there was no easy way of doing this, people asking about transfer usually fail to distinguish between SIP and features transfers, so this may be a features transfer. In this case, they haven’t even said that it is SIP.

Being an attended transfer eliminates one other possibility, which is that some SIP phones implement blind transfers with the attended transfer mechanism.

Thank you for the information.
I’m not sure if I was cleared enough.
Ayway, I developed my own code for this ‘feature’.

It is still in tests, but it seems to be working.

exten => 7000,1,Answer()
same => n,Set(CHANNEL(hangup_handler_push)=REMOVEPAUSA,s,1(args))
same => n,Set(CONTA=1)
same => n,Set(RAMALORIGEM=${CALLERID(num)})
same => n,Set(DESTINO=${CUT(BLINDTRANSFER,-,1)})
same => n,Set(DESTINO_PAUSA=${CUT(DESTINO,/,2)})
same => n,PauseQueueMember(,Local/${DESTINO_PAUSA}@from-queue/n,Atendimento_URA_CC)
same => n(entre),NoOp(########## ENTRE COM OS DIGITOS DO CARTAO ##########)
same => n,Set(CONTA=$[${CONTA}+1])
same => n,GotoIf($[${CONTA} > 4]?ccinvalido)
same => n,Playback(CC/digite_cartao&beep)
same => n,Read(CARTAOCREDITO,16,2,30)
same => n,Playback(CC/numero_digitados)
same => n,SayDigits(${CARTAOCREDITO})
same => n,Playback(CC/confirme_cartao&beep)
same => n,Read(OPCONFIRMA,1,2,1,10)
same => n,ExecIf($["${OPCONFIRMA}" = “2”]?GoTo(entre))
same => n,ExecIf($["${OPCONFIRMA}" = “1”]?GoTo(valido))
same => n(ccinvalido),NoOp(3 Tentativas sem sucesso. Cliente nao digitou um numero valido)
same => n,Playback(CC/3_tentativas)
same => n,UnPauseQueueMember(,${DESTINO},Atendimento_URA_CC)
same => n,Dial(${DESTINO},A(CC/cartao_invalido))
same => n(valido),UnPauseQueueMember(,Local/${DESTINO_PAUSA}@from-queue/n,Atendimento_URA_CC)
same => n,Set(RAMALOPERADOR=${CUT(DESTINO,/,2)})
same => n,set(CALLTIME=${STRFTIME(${EPOCH},%F %X)})
same => n,Dial(${DESTINO})

exten => s,1,UnPauseQueueMember(,Local/${DESTINO_PAUSA}@from-queue/n,Atendimento_URA_CC)