Hi,
We see some strange things with attended transfer feature.
We have multiple servers, some are migrated from FreePBX 15 to FreePBX 17. Some are fresh installs on FreePBX 17. All are Asterisk 20. On all the servers we use the same modules and module versions.
On some migrated machines as well fresh installed machines the attended transfer feature is broken.
On some migrated machines this feature works fine however we have a few machines where it works fine but the initial CallerID is not shown on extension B after transfer completed (but this is another issue).
Problem: External call > extension A answers and is performing an attended transfer to extension B. Extension B answers and extension A is completing the transfer. After this, the call to B is stopped, as well the call on A. However the external caller is still âin a call with nowhereâ.
Every server has a custom ringback context that we are using as TRANSFER_CONTEXT variable:
TRANSFER_CONTEXT = blindxfer_ringback
[blindxfer_ringback]
exten => _.,1,NOOP(entering user defined context [custom-transfer-ringback] in extensions_custom.conf)
exten => _.,n,ExecIf($[${LEN(${ORIGINAL_PAI})}] > 6?Set(HASH(__SIPHEADERS,P-Asserted-Identity)=${ORIGINAL_PAI}))
exten => _.,n,set(timeoutd=30) ; hard set timeout in seconds
;exten => _.,n,Macro(blkvm-set,) ;block vm
exten => _.,n,dial(local/${EXTEN}@from-internal,${timeoutd})
; BLINDTRANSFER variable is of the form technology/xxxx-yyyyyy we need only xxxx
exten => _.,n,Noop(Returning call to channel: ${BLINDTRANSFER})
; cut everything after the - character
exten => _.,n,set(foo=${CUT(BLINDTRANSFER,-,1)})
; cut everything before the / character
exten => _.,n,set(cb_exten=${CUT(foo,/,2)})
exten => _.,n,Gotoif($["${DIALSTATUS}" = "ANSWER"]?hangup)
exten => _.,n,Set(CALLERID(name)=RB:${CALLERID(name)}) ; prefix CID name with RB to indicate it is a ringback
exten => _.,n,dial(local/${cb_exten}@from-internal)
exten => _.,n(hangup),Hangup()
exten => _*.,1,dial(local/${EXTEN}@from-internal,15)
exten => _*.,n,Hangup()
I collected the logs on both of machines, working and non working. Tried to compare but I do not see the reason.
On the problematic servers (fresh install) I see the call is entering the blindxfer_ringback context (for no reason? on working servers no enter to this context) and then bad things happen
Working server:
extension A - 2222
extension B - 1093
Part 1: 2025-01-30 15:39:16] VERBOSE[1693605][C-00002ad8] pbx.c: Executing [INBOUND_ROUT - Pastebin.com
Part 2: [2025-01-30 15:39:24] VERBOSE[1693632][C-00002ada] pbx.c: Executing [1093@from-i - Pastebin.com
Non working server:
extension A - 1300
extension B - 1301
Part 1: [2025-01-30 16:54:57] VERBOSE[2862706][C-000000f4] pbx.c: Executing [INBOUND_ROU - Pastebin.com
Part 2: [2025-01-30 16:54:57] VERBOSE[2862706][C-000000f4] pbx.c: Executing [INBOUND_ROU - Pastebin.com
Maybe someone has any idea whatâs going on here? And why the call is entering blindxfer_ringback? Or maybe someone has any idea how to check further?
Thanks!!