Transfer a Call But continue to listen the caller

General discussions about Asterisk.

Moderators: Moderator, Support

Transfer a Call But continue to listen the caller

Postby stuartalt » Thu Dec 10, 2015 2:36 pm

Hello,
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.
stuartalt
Newsterisk
 
Posts: 11
Joined: Thu Dec 10, 2015 2:29 pm

Re: Transfer a Call But continue to listen the caller

Postby ambiorixg12 » Sun Dec 13, 2015 10:12 pm

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

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.)


https://tools.ietf.org/html/rfc5589#page-24
ambiorixg12
Astmaster
 
Posts: 967
Joined: Sun Mar 04, 2007 9:32 pm
Location: Dominican Republic

Re: Transfer a Call But continue to listen the caller

Postby david55 » Mon Dec 14, 2015 4:18 am

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.
david55
Moves Like Spencer
 
Posts: 12570
Joined: Fri Sep 26, 2008 5:03 am

Re: Transfer a Call But continue to listen the caller

Postby stuartalt » Fri Jan 08, 2016 2:47 pm

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})

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

Regards.
stuartalt
Newsterisk
 
Posts: 11
Joined: Thu Dec 10, 2015 2:29 pm


Return to Asterisk General

Who is online

Users browsing this forum: Yahoo [Bot] and 8 guests