Ticket #1833 (closed Feature Requests: wontfix)

Opened 5 years ago

Last modified 4 years ago

Callback on busy/unavailable when blind transfer

Reported by: francesco_r Assigned to: RobThomas
Priority: minor Milestone: 2.8
Component: Core - Users/Devices Version: 2.2.1
Keywords: Cc:
Confirmation: Unreviewed SVN Revision (if applicable):
Backend Engine: All Backend Engine Version:

Description

Would be great to implement an optional callback on blind transfer when an extension is busy or unavailable. Many cheap pbx and old ksu do this. Thank you.

Change History

03/12/07 04:55:17 changed by p_lindheimer

My suggestion: if user has voicemail, it should go there. If user has no voicemail, we might consider this a bug, we should do something with the call if it came from a blind transfer and no voicemail to take the call. Probably best to treat this similar to the Operator extension. Give 2 options configurable. Either send back to the channel that made the call, or send it to some defined 'operator' extension (or the defined operator extension).

(note - I don't think it should be an optino to avoid voicemail on busy during a blind transfer. If the user cares for it to not go to voicemail, they should do an attended transfer.)

11/05/07 03:38:19 changed by vieri

The suggestion sounds great (ie. if no vm and it's a blind transfer and ext is busy/unavail then call back extension that did the transfer OR send to a custom-context).

Are there any plans to implement this or are there any work-arounds already?

Thank you

11/06/07 06:33:19 changed by vieri

In extensions.conf I just tested the s,12 line below and defined a custom context and it seems to work fine for now. I'm sure that FreePBX can handle blind transfers a lot better.

[macro-dial]
exten => s,1,GotoIf($["${MOHCLASS}" = ""]?dial)
exten => s,2,SetMusicOnHold(${MOHCLASS})
exten => s,3(dial),AGI(dialparties.agi)
exten => s,4,NoOp(Returned from dialparties with no extensions to call and DIALSTATUS: ${DIALSTATUS})

exten => s,10,Dial(${ds})                               ; dialparties will set the priority to 10 if $ds is not null
exten => s,11,Set(DIALSTATUS=${IF($["${DIALSTATUS_CW}"!="" ]?${DIALSTATUS_CW}:${DIALSTATUS})})
exten => s,12,GotoIf($[${LEN(${BLINDTRANSFER})} > 0]?custom-MANAGE_LOST_TRANSFERS,s,1)

11/27/07 07:22:06 changed by vieri

A better solution which doesn't interfere with follow-me's is:

extensions.conf:

last lines of [macro-exten-vm]:

; Extensions with no Voicemail box reporting BUSY come here
exten => s-BUSY,1,NoOp(Extension is reporting BUSY and not passing to Voicemail)
; This should recover failed transfers.
exten => s-BUSY,n,GotoIf($[${LEN(${BLINDTRANSFER})} > 0]?custom-MANAGE_LOST_TRANSFERS,s,1)
exten => s-BUSY,n,Playtones(busy)
exten => s-BUSY,n,Busy(20)

; Anything but BUSY comes here
; This should recover failed transfers.
exten => _s-.,1,GotoIf($[${LEN(${BLINDTRANSFER})} > 0]?custom-MANAGE_LOST_TRANSFERS,s,1)
exten => _s-.,n,Playtones(congestion)
exten => _s-.,n,Congestion(10)

extensions_custom.conf:

[custom-MANAGE_LOST_TRANSFERS]
exten => s,1,Answer()
exten => s,n,Playback(please-wait-bouncing-back)
; Supposing there are 4-digit extensions here - no error checking
exten => s,n,Set(RETURN_EXT=${BLINDTRANSFER:4:4})
exten => s,n,Goto(from-internal,${RETURN_EXT},1)
exten => s,n,HangUp()

Would be nice to have something more robust within FreePBX.

07/06/08 15:40:12 changed by mbrevda

  • status changed from new to closed.
  • confirmation set to Unreviewed.
  • resolution set to wontfix.

continued in #1972

07/06/08 16:44:10 changed by p_lindheimer

  • component changed from - choose - to Core - Users/Devices.