question

JosieEverson-6032 avatar image
0 Votes"
JosieEverson-6032 asked Grmacjon-MSFT commented

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

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










office-teams-windows-itprooffice-teams-app-devazure-communication-services
· 8
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

More information on this topic:

I followed this doc: https://docs.microsoft.com/en-us/azure/communication-services/how-tos/calling-sdk/transfer-calls for the implementation.

0 Votes 0 ·

Hi @JosieEverson-6032

As we are mainly responsible for general question of Microsoft Teams, your question related to Teams script development is not supported by us. Someone checking office-teams-app-dev tag will give you more insights. Thanks for your understanding.

0 Votes 0 ·

Hi @JimmyYang-MSFT,

Thank you for the update!

I have figured out what the issue is: Base on the documentation, we need to generate a group chat thread id as it is required by 'StartCall" for a teams user when making consultation call. This was exactly what I did and what I observed is that now the consultation call is a teams group call after connected. If I do a "Transfer to call" on that, it fails as I described previously.

However, then I tried using Guid.Empty '00000000-0000-0000-0000-000000000000" as the thread id when StartCall, I found now we have a peer to peer call then "Transfer to Call" feature work. I really hope this is work as designed.

But it did highlight another issue, transfer to a group call(teams) or to a bot/teams channel does not work. Any chance to fix that?

Josie

0 Votes 0 ·

@JosieEverson-6032 - Are you developing any Teams app?

0 Votes 0 ·

Hi @Nivedipa-MSFT-6619,

Yes we are in dev right now. We have a mostly functioning solution built on Graph API. Currently we are looking into the feasibility to embed the customized teams user experience into our front end client app. We also are evaluating the possibilities of the guest user experience using ACS as a long term goal.

0 Votes 0 ·

Hi @JosieEverson-6032

We are working on a similar solution here in Denmark, and ran into exact same troubles as you mentioned :(
Did you guys find any solution on this problem?

Thanks,
Mark

0 Votes 0 ·
Show more comments

1 Answer

Grmacjon-MSFT avatar image
0 Votes"
Grmacjon-MSFT answered Grmacjon-MSFT commented

Hi @JosieEverson-6032,


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--

· 2
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

Hi @Grmacjon-MSFT,

Will this issue be in the backlog and addressed in the future? Further testing indicates that consultation transfer to a bot with a teams channel(which is a 1:1 call) does not work either failing on complete transfer.

Thanks,

Josie

0 Votes 0 ·
Grmacjon-MSFT avatar image Grmacjon-MSFT JosieEverson-6032 ·

Hi @JosieEverson-6032,

Apologies for the delayed response. Yes, this issue is on team's backlog

Best,
Grace


1 Vote 1 ·