When you transfer a call, the call drops.
The target recipient is left on hold.
The problem seems to be related to Consultative transfers.
How Microsoft Teams Works
When the initial call is established between party A and party B a direct link is created called a call leg.
When party B makes a consultative call (an enquiry call) to party C, part A is placed on hold.
The new call leg between party B & party C is established.
When the transfer key is pressed SIP messages are exchanged which advise all systems to join party A from call leg 1 to party C of call leg 2. This is done by creating a third call leg. Once established, call legs 1 and 2 are terminated.
So What's The Problem?
With party C connected to a single call leg (and talking to party B), they must be able to receive a second call invite (leg 3). This relies on party C being able to receive call waiting (a queued call) on their line which is not always possible, especially if party C is a regular PSTN user. If they cannot accept the new call before the other 2 call legs are dropped, then the final 3rd call leg cannot be created and the call will drop, possibly leaving 1 or more parties hanging.
How Can I Work Around This
We can modify how the SIP REFER message works, via a setting in the PBX/Trunk settings page in the portal:
This offers 2 options:
- PBX handles transfers will propagate received SIP REFER messages from Microsoft upstream to this service.
- Teams handles transfers will manage transfers bridged out as new calls.
Note: On the 2nd Gen OneClick Teams connector you should select 'PBX handles transfers' if you have users in a Call Center, but otherwise select 'Teams handles transfers' as this will allow consultative transfers to work better.