private void callHandler_OnCallStatusChanged(object sender, MyPhonePlugins.CallStatus callInfo) { LogHelper.Log(Environment.SpecialFolder.ApplicationData, "CallTriggerCmd.log", String.Format("CallStatusChanged - CallID='{0}' - Incoming='{1}' - OtherPartyNumber='{2}' - State='{3}'", callInfo.CallID, callInfo.Incoming, callInfo.OtherPartyNumber, callInfo.State)); var onCallStatusChanged = new OnCallStatusChanged(); try { var _sender = sender as MyPhonePlugins.IMyPhoneCallHandler; fillCallHandler_1(_sender, onCallStatusChanged.CallHandler); fillCallStatus(callInfo, onCallStatusChanged.CallStatus); foreach (var call in _sender.ActiveCalls) { var newCall = new CallStatus(); fillCallStatus(call, newCall); onCallStatusChanged.CallHandler.ActiveCalls.Add(newCall); } foreach (var profile in _sender.Profiles) { var newProfile = new UserProfileStatus(); fillProfiles(profile, newProfile); onCallStatusChanged.CallHandler.Profiles.Add(newProfile); } } catch { onCallStatusChanged = null; } Callback(channel => channel.CallStatusChanged(onCallStatusChanged)); }
public void CallStatusChanged(OnCallStatusChanged onCallStatusChanged) { V8Context.CreateV8Context().AsyncEvent.ExternalEvent("3CXPhonePlugin", "OnCallStatusChanged", convertToJSON(onCallStatusChanged, typeof(OnCallStatusChanged))); }