microsoftgraph / microsoftgraph/microsoft-graph-comms-samples
If I connect the call with the recording participant with another call, notification about participants of the resulting group call is missing
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 253
- Forks
- 275
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 1
Description
Describe the issue
I have a problem with this scenario:
Two peer-to-peer calls are connected to the bot application (Call1:PSTN<->Bot, Call2:Bot<->TeamsParticipant) and I want to join them in one group call using the method Call.Participants.InviteAsync (where "replacesCallId" is set to Call1 Id)
If TeamsParticipant is recorded participant (has a Teams recording policy set), calls connected as expected, but there is no notification about the new GroupCall with participants (Bot, TeamsParticipant1, TeamsParticipant2), the bot application only receives information about the completion of the invite operation.
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "deleted",
"resource": "/app/calls/431f5d00-e8ac-43da-b555-3b51a6a4577b/operations/e5b00028-ccfb-42dd-9c38-1044302094f3",
"resourceUrl": "/communications/calls/431f5d00-e8ac-43da-b555-3b51a6a4577b/operations/e5b00028-ccfb-42dd-9c38-1044302094f3",
"resourceData": {
"@odata.type": "#microsoft.graph.inviteParticipantsOperation",
"participants": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"phone": {
"@odata.type": "#microsoft.graph.identity",
"id": "+420(reducted)",
"displayName": "+420(reducted)"
}
},
"replacesCallId": "651f5f00-a103-48ea-b889-481455da8beb",
"participantId": "67312e5d-2d79-4607-bc3a-80a11f49368a"
}
],
"status": "completed",
"clientContext": "c76773cc-0c21-435a-90f1-a1ae6d61e2db",
"id": "e5b00028-ccfb-42dd-9c38-1044302094f3"
}
}
]
}
If I check the state of the Call2, the call appears as the original peer-to-peer call between Bot<->TeamsParticipant.
Call state information does not match the real call state and the bot application does not receive notifications about connected/removed participants, etc... and it is not possible correctly to end the call through the bot application (PSTN participant is still in the connected state and it is necessary to end the call using the phone manually)
Expected behaviour
Example of notifications if the TeamsParticipant is not recorded:
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "updated",
"resource": "/app/calls/401f5d00-10e5-40f1-b6b5-83ac2b74c79f/participants",
"resourceUrl": "/communications/calls/401f5d00-10e5-40f1-b6b5-83ac2b74c79f/participants",
"resourceData": [
{
"@odata.type": "#microsoft.graph.participant",
"info": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"applicationInstance": {
"@odata.type": "#microsoft.graph.identity",
"id": "5099f57d-2e7d-4dbe-9049-763ce40ed634",
"displayName": "(reducted)",
"tenantId": "(reducted)",
"identityProvider": "AAD"
}
},
"endpointType": "default",
"endpointId": "7c9e15ac-b8fa-4444-94ec-4911bdb4835d",
"clientVersion": "AtltelCallingBot (appid:d291dac4-1395-4384-8519-d991473a9e8a)",
"participantId": "6cfe2424-4886-46ce-bd63-181e0a36244e",
"replacementLink": "https://cc-ukso-05.cc.skype.com/cc/v1/callParticipant/0548470f-d852-4d3a-8b12-d9c992e49d0b/13/k3/111/replacement?rt=6cfe2424488646cebd63181e0a36244e&rc=eyJydGlkIjoiMjg6b3JnaWQ6NTA5OWY1N2QtMmU3ZC00ZGJlLTkwNDktNzYzY2U0MGVkNjM0In0%253d&i=75&e=638010357711187046"
},
"mediaStreams": [
{
"@odata.type": "#microsoft.graph.mediaStream",
"mediaType": "audio",
"label": "main-audio",
"sourceId": "1",
"direction": "sendReceive",
"serverMuted": false
}
],
"isMuted": false,
"isInLobby": false,
"publishedStates": [],
"meetingRole": "none",
"replacementLink": "https://cc-ukso-05.cc.skype.com/cc/v1/callParticipant/0548470f-d852-4d3a-8b12-d9c992e49d0b/13/k3/111/replacement?rt=6cfe2424488646cebd63181e0a36244e&rc=eyJydGlkIjoiMjg6b3JnaWQ6NTA5OWY1N2QtMmU3ZC00ZGJlLTkwNDktNzYzY2U0MGVkNjM0In0%253d&i=75&e=638010357711187046",
"isIdentityAnonymized": false,
"id": "6cfe2424-4886-46ce-bd63-181e0a36244e"
},
{
"@odata.type": "#microsoft.graph.participant",
"info": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "d3a9747d-013b-4ff0-b19c-ce2f4abd5fb1",
"displayName": "(Reducted)",
"tenantId": "(reducted)",
"identityProvider": "AAD"
}
},
"endpointType": "default",
"endpointId": "56c091a0-2374-466f-8ff7-5b6576bade8f",
"languageId": "en-US",
"clientVersion": "SkypeSpaces/1415/1.0.0.2022092126/os=windows; osVer=10; deviceType=computer; browser=chrome; browserVer=105.0/TsCallingVersion=2022.35.01.1/Ovb=6a9b21e1b3b69f752a08d70282466315610cff50",
"participantId": "106202c0-f36c-4f9b-a202-f98ec8a449c5",
"replacementLink": "https://cc-ukso-05.cc.skype.com/cc/v1/callParticipant/0548470f-d852-4d3a-8b12-d9c992e49d0b/27/k2/137/replacement?rt=106202c0f36c4f9ba202f98ec8a449c5&rc=eyJydGlkIjoiODpvcmdpZDpkM2E5NzQ3ZC0wMTNiLTRmZjAtYjE5Yy1jZTJmNGFiZDVmYjEiLCJydGxpIjoiZW4tVVMiLCJydHJzIjoiRW50ZXJwcmlzZVByb3h5In0%253d&i=75&e=638010357711187046"
},
"mediaStreams": [
{
"@odata.type": "#microsoft.graph.mediaStream",
"mediaType": "audio",
"label": "main-audio",
"sourceId": "14",
"direction": "sendReceive",
"serverMuted": false
},
{
"@odata.type": "#microsoft.graph.mediaStream",
"mediaType": "video",
"label": "main-video",
"sourceId": "15",
"direction": "receiveOnly",
"serverMuted": false
},
{
"@odata.type": "#microsoft.graph.mediaStream",
"mediaType": "videoBasedScreenSharing",
"label": "applicationsharing-video",
"sourceId": "25",
"direction": "receiveOnly",
"serverMuted": false
},
{
"@odata.type": "#microsoft.graph.mediaStream",
"mediaType": "data",
"label": "data",
"sourceId": "26",
"direction": "sendReceive",
"serverMuted": false
}
],
"isMuted": false,
"isInLobby": false,
"publishedStates": [],
"meetingRole": "none",
"replacementLink": "https://cc-ukso-05.cc.skype.com/cc/v1/callParticipant/0548470f-d852-4d3a-8b12-d9c992e49d0b/27/k2/137/replacement?rt=106202c0f36c4f9ba202f98ec8a449c5&rc=eyJydGlkIjoiODpvcmdpZDpkM2E5NzQ3ZC0wMTNiLTRmZjAtYjE5Yy1jZTJmNGFiZDVmYjEiLCJydGxpIjoiZW4tVVMiLCJydHJzIjoiRW50ZXJwcmlzZVByb3h5In0%253d&i=75&e=638010357711187046",
"isIdentityAnonymized": false,
"id": "106202c0-f36c-4f9b-a202-f98ec8a449c5"
},
{
"@odata.type": "#microsoft.graph.participant",
"info": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"phone": {
"@odata.type": "#microsoft.graph.identity",
"id": "+420(reducted)",
"displayName": "+420(reducted)",
"identityProvider": "None"
}
},
"endpointType": "default",
"endpointId": "3d817b4c-bcb1-4188-9f45-b38d45310b81",
"participantId": "82767ead-6e8a-4553-975f-4e55d22b4b6b",
"replacementLink": "https://cc-ukso-05.cc.skype.com/cc/v1/callParticipant/0548470f-d852-4d3a-8b12-d9c992e49d0b/1930/k2/2319/replacement?rt=82767ead6e8a4553975f4e55d22b4b6b&rc=eyJydGxicmMiOnsiaXBkaXRjIjpmYWxzZSwicHN0IjoiQ2FsbGluZ1BsYW5zIn0sInJ0aWQiOiI0Ois0MjA3MjUyMTAzNDQifQ%253d%253d&i=75&e=638010357711187046"
},
"mediaStreams": [
{
"@odata.type": "#microsoft.graph.mediaStream",
"mediaType": "audio",
"label": "main-audio",
"sourceId": "27",
"direction": "sendReceive",
"serverMuted": false
}
],
"isMuted": false,
"isInLobby": false,
"publishedStates": [],
"meetingRole": "none",
"replacementLink": "https://cc-ukso-05.cc.skype.com/cc/v1/callParticipant/0548470f-d852-4d3a-8b12-d9c992e49d0b/1930/k2/2319/replacement?rt=82767ead6e8a4553975f4e55d22b4b6b&rc=eyJydGxicmMiOnsiaXBkaXRjIjpmYWxzZSwicHN0IjoiQ2FsbGluZ1BsYW5zIn0sInJ0aWQiOiI0Ois0MjA3MjUyMTAzNDQifQ%253d%253d&i=75&e=638010357711187046",
"isIdentityAnonymized": false,
"id": "82767ead-6e8a-4553-975f-4e55d22b4b6b"
}
]
}
]
}
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "deleted",
"resource": "/app/calls/401f5d00-10e5-40f1-b6b5-83ac2b74c79f/operations/c0b3aeee-8b14-4524-820a-16d2da4a4a8a",
"resourceUrl": "/communications/calls/401f5d00-10e5-40f1-b6b5-83ac2b74c79f/operations/c0b3aeee-8b14-4524-820a-16d2da4a4a8a",
"resourceData": {
"@odata.type": "#microsoft.graph.inviteParticipantsOperation",
"participants": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"phone": {
"@odata.type": "#microsoft.graph.identity",
"id": "+420(reducted)",
"displayName": "+420(reducted)"
}
},
"replacesCallId": "581f5e00-5ed5-484e-94d1-360687247e57",
"participantId": "cf1f606b-992e-42a7-83ce-07e7096b1cf1"
}
],
"status": "completed",
"clientContext": "7bbdf6c8-ecfc-46a2-8e5a-253629a1ccd5",
"id": "c0b3aeee-8b14-4524-820a-16d2da4a4a8a"
}
}
]
}
Graph SDK:
- MS Graph SDK 4.43.0
- Microsoft.Graph.Communications.Calls 1.2.0.5304
Call ID
CallId: 431f5d00-e8ac-43da-b555-3b51a6a4577b
Aprox. 10/11/2022 11:35 AM UTC
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the two-call scenario with Call.Participants.InviteAsync and replacesCallId set to Call1. Compare the operation-completion notification with the expected participant notifications and verify Call2 state and participant removal; done means the resulting group call and its participant changes are reported consistently and can be ended through the bot.
Written by the indexing model from the issue text.
Assessment
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100