microsoftgraph / microsoft-graph-comms-samples

Microsoft Graph Communications Samples
MIT License
211 stars 236 forks source link

Adding a participant using replacesCallId, who was in another call to the current, show flaky behaviour. #783

Open bfany365 opened 3 weeks ago

bfany365 commented 3 weeks ago

Describe the issue There is an incoming call handled by bot, accepted. Then bot calls a user of the same tenant, if the user picks up the call (Lets call it Agent), bot Invites agent to the incoming call, using replacesCallId. Most of the time, caller and agent can only hear each other with a delay, also in this case I see that in Teams client, the agent is not show as third participant, however in cases that Agent is show as third participant, there is no delay.

Code Snippet

var teamsCall = new Call {
  TenantId = _endpoint.TenantId.ToString(),
  MediaConfig = new ServiceHostedMediaConfig(),
  RequestedModalities = [Microsoft.Graph.Models.Modality.Audio],
  Targets = [
  new InvitationParticipantInfo {
    Identity = agentId,
  },
  ]
};

CallToAgent = await teams.Calls().AddAsync(teamsCall, cancellationToken: cancellationToken);

var x = await incomingCalll.Participants.InviteAsync(new List < InvitationParticipantInfo > () {
  new InvitationParticipantInfo() {
    ReplacesCallId = CallToAgent.Id,
    Identity = agentId,
  }
});

Expected behavior Caller and Agent should hear each other and all parties should appear in Teams.

Graph SDK (please complete the following information): Azure.Identity:1.12.0 Microsoft.Graph:5.38.0 Microsoft.Graph.Communications.Calls:1.2.0.10563 Microsoft.Graph.Communications.Client:1.2.0.10563 Microsoft.Graph.Communications.Common:1.2.0.10563 Microsoft.Graph.Communications.Core:1.2.0.10563 Microsoft.Graph.Core:3.1.3 Microsoft.IdentityModel.Clients.ActiveDirectory:3.19.8 Microsoft.IdentityModel.Protocols.OpenIdConnect:6.7.1

Call ID UTC Time: 15:00 2c003680-b133-4686-89ff-64e58213a02f 00003b80-aafe-45ed-8f88-16649c5938e3