microsoftgraph / microsoft-graph-comms-samples

Microsoft Graph Communications Samples
MIT License
206 stars 221 forks source link

Unexpected IncomingCalls behaviour....More of a question #322

Open andir78 opened 4 years ago

andir78 commented 4 years ago

Describe the issue When making a Teams call between two users where one of the users has the recording policy applied, it appear that the graph framework sends multiple messages to the PlatformCallController on the “api/calling” endpoint. The call IDs of the calls all differ within every received message. This behaviour results in multiple firing of the CallsOnUpdated() within bot.cs whereby callhandlers are instantiated (and disposed) for what appears to be phantom calls.

Code Snippet N/A

Expected behavior When receiving a incoming call notification I expect ALL messages to pertain to a single call. Meaning that the call ID and other info is identical in all subsequent resends. Therefore meaning the repeated resends are done with a perspective as being synonymous with a ringing phone, i.e. happens for approx. 15 seconds before forwarding to voicemail..

So the question…………why am I seeing this behaviour? What’s the significance of the changing call ID’s from the series of incoming call requests?

andir78 commented 3 years ago

thought i'd add some more info i have just noticed. In an example i'm debugging whilst i type this i have 5 calls handlers within the CallHandlers concurrentDictionary where each element has a differing call Id but all have the same correlation Id. what is an effective way of identifying the 'real' one? Because as present 4 of those 5 will trigger call termination events and i find this misleading behaviour.

vonguyen1982 commented 3 years ago

i got that error too

tares003 commented 3 years ago

thought i'd add some more info i have just noticed. In an example i'm debugging whilst i type this i have 5 calls handlers within the CallHandlers concurrentDictionary where each element has a differing call Id but all have the same correlation Id. what is an effective way of identifying the 'real' one? Because as present 4 of those 5 will trigger call termination events and i find this misleading behaviour.

I am seeing the exact same behavior although I only had one call in place. I also noticed because of multiple connections in concurrentDictionary I get 2 different audio as an output. Any solution?