Open Reza-Noei opened 2 years ago
Why StreamsRunning does not equal with long time establish call?
Did you see CallState.StreamsRunning
?
CallState.Connected solved my problem but I've got another problem. in the below line at InCall.xaml.cs is called on each call (incoming/outgoing):
LinphoneManager.Instance.CallStateChangedEvent += CallStateChanged;
And registers CallStateChanged method as a handler for this event. LinphoneManager.Instance is a singleton object and after the second call we will have double, triple, ... CallStateChanged calls on every single call state change. It may leads us into memory leakage problems and performance issues.
You must unregister it in OnNavigatingFrom
to prevent multiple registration and memory leaks
This is bug in this repo, and must be fix it.
I try to resolve it in BSVN fork
I create https://github.com/BSVN/linphone-windows10/issues/12 for resolving this issue
@julonexus Did you want to I make a PR for this repo too?
@julonexus ?
Hi, I'm using a database to storing call detail records. In CallControllerListener interface (which is implemented by App.xaml.cs) there are some methods which are called right after specific events. e.g. CallIncoming, NewCallStarted, CallEnded, ...
I want to know whether this call is established or its being declined either by caller or callee. I tried to check several points in InCall.xaml.cs but there is nothing clear to me. Only difference was in call state transition (OutgoingEarlyMedia -> Error means callee refused, OutgoingEarlyMedia -> Connected means call established). but its not a good smell. And I can't predict exceptions. Please add new events or something more clear to catch. thanks.
Another thing i got from my test cases was duplication on triggering CallStateChanged event (InCall.xaml.cs). as you can see in below logs each event raised about 4 times instead of 1. I don't know if it leads us into a serious condition or not.
LinphoneManager.Instance.CallStateChangedEvent += CallStateChanged;