ACS transfer to call fails after the transferee receives "transferRequested" and invokes 'accept' on it

Josie Everson 26 Reputation points
2022-05-03T01:00:34.863+00:00

Hi there,

Currently we are reviewing Azure communication service(ACS), in particular interop with Teams. We are trying to do a consultation transfer scenario using an ACS user with a teams identity and fails:

Here is the setup and scenario:

  • Transferee(Caller): a standard teams user logged in on Teams app. =>"Test1 user"
  • Transferor(Called): a ACS user logged in as a teams user. =>""Test2 user"
  • Transfer destination(Consultation call called): a standard teams user logged in on Teams app. =>"Test3 user"
    1. ""Test1 user" calls "Test2 user" from Teams client.
    2. "Test2 user" accepts the call from my test web client. The call is connected.
    3. "Test2 user" puts the call on hold from my test web client.
    4. "Test2 user" make a consultation call to "Test3 user" from my test web client.
    5. "Test3 user" answers the call from Teams client. The consultation call is connected.
    6. "Test2 user" issues "Transfer" command using transfer to call option "TransferToCallLocator" from my test web client and it fails.

The failing point is at making outbound call to the transfer destination "Test3 user" from the transferee "Test1 user" after it receives the "TransferRequest" from the transferor "Test2 user". Here is error log in Teams debug log file from "Test1 user":

2022-05-02T22:40:31.488Z Err callingService: Could not complete scenarios [incoming_transfer_request] because call 784afaa7-1e7f-456b-908d-fe599f1c0dcb
was terminated with reason: 48
with following diagnostics data: Diagnostics information for all 1 participants in the call:
scrubbedParticipantId=8:orgid:06e58f11-9d71-4d0b-951a-633f2f1237d7, callControllerCode=500, callControllerSubCode=10046
[call][callId=784afaa7-1e7f-456b-908d-fe599f1c0dcb][terminatedReason=48][callType=1][scenarioName=inco...

The code for transfer scenario:

On both calls, I attached event handlers for them:

const callTransferApi = call.feature(Features.Transfer);
callTransferApi.on('transferRequested', args => {
console.log(Receive transfer request: ${args.targetParticipant});
args.accept();
});
const callTransferApi = call2.feature(Features.Transfer);
callTransferApi.on('transferRequested', args => {
console.log(Receive transfer request: ${args.targetParticipant});
args.accept();
});

code to complete transfer after we have 2 calls: one hold and the other connected:

async function handleCompleteXfer(event) {
event.preventDefault();
try {
const callTransferApi = call.feature(Features.Transfer);
// call transfer API
const transfer = callTransferApi.transfer({ targetCallId: call2.id });
transfer.on('stateChanged', () => {
console.log(Transfer state: ${transfer.state});
if (transfer.state === 'Transferred') {
call.hangUp();
}
});
}
catch (error) {
console.error('handleCompleteXfer: ${error}');
}
}

Log and test web client is available if it is required.

Any help is appreciated!

Josie

Microsoft Teams
Microsoft Teams
A Microsoft customizable chat-based workspace.
9,257 questions
Azure Communication Services
Azure Communication Services
An Azure communication platform for deploying applications across devices and platforms.
713 questions
Microsoft Teams Development
Microsoft Teams Development
Microsoft Teams: A Microsoft customizable chat-based workspace.Development: The process of researching, productizing, and refining new or existing technologies.
2,921 questions
{count} votes

1 answer

Sort by: Most helpful
  1. Grmacjon-MSFT 16,771 Reputation points
    2022-05-04T17:43:54.227+00:00

    Hi @Josie Everson ,

    Thanks for bringing this to our attention. It looks like you tried to transfer a call to another "group" call which isn't currently supported in ACS. App can transfer 1:1 call only to another 1:1 call. transfer of group call/meeting to/from another group/call meeting is not possible.
    The ACS engineering team is now aware of this and will update the docs to reflect this limitation.

    Hope that helps. Please let us know if you have further questions

    Thanks,
    Grace

    ------------------------------------------------------------------------------------------------------------------------------

    --If the reply is helpful, please Upvote and Accept as answer--