Block Attended on Ringing / Semi-Attended Transfers at FreeSWITCH Level

Is it possible to block ‘Attended on Ringing’ or ‘Semi-Attended’ Transfers (whatever you choose to call it) at FreeSWITCH level. I know it can be restricted at a SIP handset level (Polycom Snom, Yealink) but it can’t on a number of other providers. Is it at all possible to carry this out in FreeSWITCH.

In an ideal world i would like it to mimic the behaviour of the SIP Handsets where

User A calls User B, User B Attended Transfers to User C

The way the SIP Handsets block it i believe is by ensuring the Attended Transfer Leg (User B to User C) has received a 200OK and is not in a Ringing state before allowing the transfer to complete.

Just to be clear this is not an attended transfer it is ‘Attended on Ringing’ or ‘Semi-Attended’ Transfers where while User B is calling User C and User C is in a ringing state User B completes the transfer and bridges User A to User C during ringing.

Version 1.10.9 FreeSWITCH, Calls via an ESL App

1 Like

I posted this back in early June Slack and this Forum but didn’t get anything back. Having an ongoing issue with this feature where Blind Transfer works, Attended Transfer works but if during an Attended Transfer (while the Party C is ringing) the Transfer is completes (So Attended on Ringing / Semi Attended) the leg to Party C is cleared down and a new originate is sent out. On a SIP Phone the 1st call clears and the 2nd call comes in on Line 2, On a Mobile / PSTN the first call clears and leaves a missed call then another ones comes straight in.

The Transfers are being handled using mod_commands like originate , uuid_answer , uuid_break , uuid_bridge , uuid_kill , uuid_media_reneg , uuid_park , uuid_setvar etcand all of this is via an ESL App.

Anyone any experience of making this a smoother experience? Attended and Blind Transfer work perfectly it’s just this Attended on Ringing and it’s worse when the Party A is a SIP Device making an outbound call and then Transferring it to another Party.

We go Attended on Ringing / Semi Attended working for anyone following this. The issue was timing after rereading the RFC we re worked it and it works as expected now.