microsoftgraph / microsoftgraph/microsoft-graph-comms-samples
EchoVoiceBot: bot never connects to call, with no error
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 253
- Forks
- 275
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 1
Description
We trying to run (locally) the EchoBot example (GitHub: microsoftgraph/microsoft-graph-comms-samples/Samples/PublicSamples/EchoBot/).
Our prerequisites:
- Windows 10;
- Visual Studio 2022 Community;
- .NET version 4.7.1.
- Ngrok free version
- When we run them bot from Visual Studio (as administrator) it sucessfully initialazing a bot and than runs it. There is only one fail:
fail: EchoBot.Services.Http.BotMediaLogger[0]
[SkypeBotsMediaPlatform][AppId:xxxxxxxxxxxxxxxxxxx] MediaPerf is not registered: no key found at SYSTEM\CurrentControlSet\Services\MediaPerf\Performance
But as i saw in issues its a kind of warning and it will be depreciated soon.
2. After setting up a bot we create a Post call to join call in Microsoft Teams in Postman.
localhost:9442/JoinCall
- Than we receiving these logs
info: EchoBot.Services.ServiceSetup.AppHost[0]
Listening on: http://+:9442/
info: EchoBot.Services.ServiceSetup.AppHost[0]
EchoBot: running
info: EchoBot.Services.Http.Controllers.JoinCallController[0]
JOIN CALL
info: EchoBot.Services.Bot.BotService[0]
AuthenticationProvider: Generating OAuth token.
info: EchoBot.Services.Bot.BotService[0]
AuthenticationProvider: Generated OAuth token. Expires in 59,9828372716667 minutes.
info: EchoBot.Services.Bot.BotService[0]
Call creation complete: xxxxxxxxxxxxxxxxxxxxxxx
Finally program reaches this Task:
private async Task StartAudioVideoFramePlayerAsync()
(line 162 in BotMediaStream.cs)
where gets method finally {} and stops, without any logs which can point on any issue
4. Important Note: I've checked whether tcp works. And according to my tests in wireshark all tcp calls work correctly. But despite that fact im not receiving notitfication calls and any logs from microsoft graph.
5. Ports that im using:
- "BotCallingInternalPort": "9442"
- "BotInternalPort": "9441"
- "MediaInternalPort": "8445"
- "MediaInstanceExternalPort" choosen automatically by ngrok
- My configuration of ngrok (MediaInstanceExternalPort) differs from given in tutorial.I don't use remote_host property in ngrok, as it is a paid feature, i set up a redirect on a remote host with my domain, using following configuration of nginx:
server {
listen 12152;
proxy_pass 0.tcp.ngrok.io:12152;
}
Where 12152 is my mediaInstanceExternalPort from ngrok tcp.
This setup successfully redirects tcp requests back to service, which can be checked from Wireshark.
And thats it, what can possibly be wrong and who have faced similar problems?
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 with the EchoBot JoinCall endpoint and BotMediaStream.cs at StartAudioVideoFramePlayerAsync, then compare the BotCallingInternalPort, BotInternalPort, MediaInternalPort, and MediaInstanceExternalPort settings with the nginx TCP proxy configuration. Reproduce the call and inspect the existing logs and network traffic; done means the bot connects to the Teams call and receives notification or media activity without silently stopping.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, nginx, postman
- Domain
- audio-video-rtc, backend, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100