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)); }
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)); Callback(channel => channel.CallStatusChanged()); }
void fillCallStatus(MyPhonePlugins.CallStatus source, CallStatus target) { target.CallID = source.CallID; target.Incoming = source.Incoming; target.IsHold = (bool)getValueFildDynamicObjectByName(source, "IsHold"); target.IsMuted = (bool)getValueFildDynamicObjectByName(source, "IsMuted"); target.Originator = source.Originator; target.OriginatorName = source.OriginatorName; target.OriginatorType = source.OriginatorType.ToString(); target.OtherPartyName = source.OtherPartyName; target.OtherPartyNumber = source.OtherPartyNumber; target.State = source.State.ToString(); target.Tag3cx = (string)getValueFildDynamicObjectByName(source, "tag3cx"); //if (target.State == "Connected") //{ // Thread.Sleep(150); //} //var debugCount = 0; //if (target.State == "Connected") //{ // var sw = Stopwatch.StartNew(); // while (true) // { // debugCount++; // if (RecordsList != null) // { // var callID = GetPart(":" + target.CallID, ':', ':'); // for (var i = 0; i < RecordsList.Count; i++) // { // var recID = GetPart(RecordsList[i].FileName, '(', ')'); // if (callID == recID) // { // target.DisplayDate = RecordsList[i].DisplayDate; // target.FileName = RecordsList[i].FileName; // break; // } // } // } // var ms = sw.ElapsedMilliseconds; // if (ms > 100) // { // break; // } // Thread.Yield(); // } //} //var recordsList = GetRecordsList(); if (target.State == "Connected") { SearchRecordFile(target); if (target.FileName == null && !RecordsListConfirm.Contains(target.CallID + target.OtherPartyNumber)) { Thread.Sleep(150); RecordsList = GetRecordsList(); RecordsListConfirm.Add(target.CallID + target.OtherPartyNumber); SearchRecordFile(target); } } }