Bot fails to join the meeting when admitted by the host.
Describe the issue Bot fails for joining the meeting after the host admit. ( Status shows "Leaving" and stays ) I cannot find the debugging point on this code and feels like I'am on the big-wall. Seems the api cannot correctly parsing the teams-endpoint after signal-channel make a connection.
Code Snippet fail: EchoBot.Bot.BotMediaLogger[0] [AvMP][AppId:7dad7050-d982-418c-a16c-9d21a920868e][vm-aiarch-hdbot] TL_ERROR(TF_COMPONENT) [vm-aiarch-hdbot]12232.33::03/16/2025-23:48:11.024.00000001 (MPAZAPPHOST,LogError:AzAppMPHostLogger.cs(39)) TL_ERROR(TF_COMPONENT) [vm-aiarch-hdbot]12232.33::03/16/2025-23:48:11.023.00000072 (AVMP,GetAllChannelsQoe:Context.cs(7036)) ([cid:33fc2580-8215-4066-b318-2c0e9d031c17])[MP] GetAllChannelsQoe: context[3f0230e4-3444-43b2-910f-689f14535004] Endpoints not found
Expected behavior Bot comes into the meeting after the host admits the request to participation
Graph SDK (please complete the following information): PS C:\Users<>\workspace\microsoft-graph-comms-samples\Samples\PublicSamples\EchoBot\src\EchoBot> dotnet list package | findstr Microsoft.Graph
Microsoft.Graph.Communications.Calls 1.2.0.10563 1.2.0.10563
Microsoft.Graph.Communications.Calls.Media 1.2.0.10563 1.2.0.10563
Microsoft.Graph.Communications.Core 1.2.0.10563 1.2.0.10563
Call ID Response Status Code: 200 Response Body: {"callId":"09008880-0b82-479e-a1ca-81814018e84b","scenarioId":"c409dd50-7ec7-4c3a-b1c8-4acd11dc925f","threadId":"19:meeting_YTJjYmFkM2UtNWVhZi00NjU4LWIzZjgtYjU2YTJmMzVjMDc3@thread.v2","port":"443"} 11:47:57 PM ( KST ) / 2:47:57 PM ( UST)
Logs fail: EchoBot.Bot.BotMediaLogger[0] [AvMP][AppId:7dad7050-d982-418c-a16c-9d21a920868e][vm-aiarch-hdbot] TL_ERROR(TF_COMPONENT) [vm-aiarch-hdbot]12232.33::03/16/2025-23:48:11.024.00000001 (MPAZAPPHOST,LogError:AzAppMPHostLogger.cs(39)) TL_ERROR(TF_COMPONENT) [vm-aiarch-hdbot]12232.33::03/16/2025-23:48:11.023.00000072 (AVMP,GetAllChannelsQoe:Context.cs(7036)) ([cid:33fc2580-8215-4066-b318-2c0e9d031c17])[MP] GetAllChannelsQoe: context[3f0230e4-3444-43b2-910f-689f14535004] Endpoints not found
debug output ( vscode )
Application Insights Telemetry (unconfigured): {"name":"AppTraces","time":"2025-03-17T02:01:44.9702466Z","tags":{"ai.cloud.roleInstance":"vm-aiarch-hdbot","ai.internal.sdkVersion":"il:2.22.0-997"},"data":{"baseType":"MessageData","baseData":{"ver":2,"message":"[AvMP][AppId:7dad7050-d982-418c-a16c-9d21a920868e][vm-aiarch-hdbot] TL_ERROR(TF_COMPONENT) [vm-aiarch-hdbot]12484.24::03/17/2025-11:01:44.965.00000001 (MPAZAPPHOST,LogError:AzAppMPHostLogger.cs(39)) TL_ERROR(TF_COMPONENT) [vm-aiarch-hdbot]12484.24::03/17/2025-11:01:44.964.00000073 (AVMP,GetAllChannelsQoe:Context.cs(7036)) ([cid:fc39a2ab-5bf6-4d46-9707-c1ba0d9fab1d])[MP] GetAllChannelsQoe: context[85ecb464-59fd-4dbb-b946-e2ca8af2e326] Endpoints not found","severityLevel":"Error","properties":{"OriginalFormat":"[AvMP][AppId:7dad7050-d982-418c-a16c-9d21a920868e][vm-aiarch-hdbot] TL_ERROR(TF_COMPONENT) [vm-aiarch-hdbot]12484.24::03/17/2025-11:01:44.965.00000001 (MPAZAPPHOST,LogError:AzAppMPHostLogger.cs(39)) TL_ERROR(TF_COMPONENT) [vm-aiarch-hdbot]12484.24::03/17/2025-11:01:44.964.00000073 (AVMP,GetAllChannelsQoe:Context.cs(7036)) ([cid:fc39a2ab-5bf6-4d46-9707-c1ba0d9fab1d])[MP] GetAllChannelsQoe: context[85ecb464-59fd-4dbb-b946-e2ca8af2e326] Endpoints not found","CategoryName":"EchoBot.Bot.BotMediaLogger"}}}}
Additional context the test is being done on azure cloud vm with 4vcpu ( 2cores) and SSL certificates are created using certbot ( linux) and converted / stored on windows certstore. Granted persmissions are follows.
- Calls.JoinGroupCall.All
- Calls.JoinGroupCallAsGuest.All
- Calls.AccessMedia.All
- User.Read
Tcp ports are tested and open ( 8445 and ngrok forwarded ports too. )
I have some updates,
- Misconfigured on azure bot teams configurations ( channel ), so I changed it to
https://
/api/calling/notification.
- Testing Direct Call ( call button to registered bot app on teams ) works
- joinCall on Meeting without lobby acceptance works ( allow anyone with a link can join meeting without acceptance ) -> Still Endpoint not found (avmp ) shows at the initial joini setup. I'am not sure this is transient one or not.
I verified that bot invited on meeting echo my voice ( through azure vm deployed rdp audio out).
However, I still need to turn off lobby acceptance for bot to be able to join meeing. I would appreciate if you could give me some guide on how to troubleshoot this.
Minimal reproduction code would be useful
Hi @wiseosho I'll try to follow-up on this issue with our calling team, something is amiss during the lobby transfer. Could you please try a test (involving lobby transfer) with a brand-new meeting instance and provide a call-id/scenario-id/participant-id? Thanks.
Hi, Thank you for the support. below are response I get after make a request for /Calls api
# Define the request payload
payload = {
"joinURL": url, # Ensure this is correctly formatted
"displayName": "jyson"
}
# Define headers
headers = {
"Content-Type": "application/json"
}
# Send the POST request
response = requests.post(api_endpoint, headers=headers, data=json.dumps(payload))
Fail when lobby permission
Response Status Code: 200 Response Body: {"callId":"07008780-eca9-4999-b30f-edde830db949","scenarioId":"f1d0bcdd-13c3-425a-8180-13d4c1eb8ca1","threadId":"19:meeting_NTE4NGRjYjEtMTcxNi00NTE3LThmYmMtZmIyMWNlY2U4M2I4@thread.v2","port":"443"}
when lobby permission turned off ( everyone ) ─╯
Response Status Code: 200 Response Body: {"callId":"18008880-80ad-4511-8ba9-c808d908106f","scenarioId":"52134b93-42dc-49f1-a44d-62c4f6e523aa","threadId":"19:meeting_NTE4NGRjYjEtMTcxNi00NTE3LThmYmMtZmIyMWNlY2U4M2I4@thread.v2","port":"443"}
I screenshot recorded and think it could be helpful https://drive.google.com/file/d/1MLGfUrI4_zc7tMMfL2tKt648WDvEDZ8D/view?usp=drivesdk
Thank you @InDieTasten , I just uploaded code to my repo, please have a look.
https://github.com/wiseosho/msgraph-echobot/commit/3ff0ff4552abc2b9cf5d16b3b81cefc6b4b84dad#diff-76561333ff3331d37c44d45adba121d1524e26573f230a9b6867e4c9d007bab8
Code looks unsuspicious in my eyes. I won't have time repro this myself though. Let's see what the calling team identifies. The recording/screenshots link is broken for me btw.
@ssulzer @wiseosho
We're facing the same problem currently. Have you found any solution?
After pressing "Allow" for the bot to let bot out of the lobby, graph sends "Deleted" event and "Terminated" call status with result info "@odata.type": "#microsoft.graph.resultInfo", "code": 580, "subcode": 5426, "message": "Did not receive valid response for JoinCall request from call modality controller.."
Then proceeds to get stuck on "Leaving..."
Nope, we haven't found the solution yet. Further development is transferred and I'am participating another project. No updates since then.
Hope you found the solution by the way.
Tried debugging this issue again, still no idea what to do about it
Here's how it goes:
-
The bot is doing joinCall into a lobby-protected call:
-
The call fires: [15:01:44.581 INF] Call status updated to Establishing, prev: Establishing [15:01:46.425 INF] Call status updated to Established, prev: Establishing (for some reason the e.NewResource.ResultInfo is always null in this case, which doesn't exactly help in detecting the state)
-
ParticipantsOnUpdated is fired We check the ICollection<IParticipant> eventArgs info, it has only the bot inside it
- identity?.Application?.DisplayName is ok
- identity?.Application?.Id is also ok
- participant.Resource?.IsInLobby returns FALSE for some reason, despite bot being clearly stuck in a lobby alone
-
The organizer admits the bot into the call
-
New event fires: [15:01:57.022 INF] Call status updated to Established, prev: Established (this is very weird)
-
ParticipantsOnUpdated fires again At this point ICollection<IParticipant> contains all call participants except the bot
-
ParticipantsOnUpdated fires again for the second time, now it has 0 participants
-
Call is getting terminated by Teams [15:01:57.502 INF] Call status updated to Terminated, prev: Established e.NewResource.ResultInfo = "Did not receive valid response for JoinCall request from call modality controller.. DiagCode: 580#5426.@"
Why would IsInLobby return False?
Maybe there is something we need to do when we receive Estabilished->Estabilished update to avoid this? But what?
Just in case, if it may give you some idea what might have gone wrong
@ssulzer @InDieTasten
Hi, post here to follow the change. We encountered the exact same issue. The bot joins the meeting fine if it’s not put into the lobby. If it’s in the lobby, the bot leaves immediately after being admitted. The errors and library versions are the same as the original posting.
@yfengcs Can you provide a call-id please. Also, can you please confirm that given a brand new meeting (not reusing a one that the bot had previously joined), the very first time the bot attempts to join, the transfer/admittance from the lobby fails? Thanks.
@ssulzer Here’s the call ID, it was from yesterday’s log CallId: 05005d80-dcbe-4965-9e1e-1121b1c76777. Yes, it is a brand new meeting and it’s the very first time the bot attempts to join. The bot was in the lobby, but terminated immediately after being admitted. Thanks!
@yfengcs I'll pass this on to our calling folks. I did see another instance of the same bot in the same meeting instance a few minutes earlier. It's Graph CallId was 19005d80-3b7a-44fb-aa6d-ef5fda9a0589 (participant-id 8ef4e033-e88d-4170-9f23-feccbd5396ac). It joined the meeting directly without going into the lobby. That bot participant then left before the subsequent lobby join attempt (CallId: 05005d80-dcbe-4965-9e1e-1121b1c76777).
Even before that there was another attempt of the bot to join from the lobby which also failed (Graph CallId: 12005680-a98b-4d51-846a-e155e5021add).
@ssulzer thanks! Yes, those were from my testing as well. I was testing different scenarios. I had log files auto cleared when running a new test so only one call ID was submitted. Good that you found others.