private Plugin3CX(IMyPhoneCallHandler callHandler) { _callHandler = callHandler; callHandler.OnCallStatusChanged += callHandler_OnCallStatusChanged; _host = new ServiceHost(this); _host.AddServiceEndpoint(typeof(IMakeCallService), new NetNamedPipeBinding(NetNamedPipeSecurityMode.None), "net.pipe://localhost/MakeCallService"); _host.Open(); _incomingCallChannelFactory = new ChannelFactory <IIncomingCallService>(new NetNamedPipeBinding(NetNamedPipeSecurityMode.None), "net.pipe://localhost/IncomingCallService"); IIncomingCallService incomingCallService = _incomingCallChannelFactory.CreateChannel(); incomingCallService.Hello(); incomingCallService.StatusChanged(Status()); }
private void callHandler_OnCallStatusChanged(object sender, CallStatus callinfo) { IIncomingCallService incomingCallService = _incomingCallChannelFactory.CreateChannel(); //MessageBox.Show(callinfo.State.ToString()); incomingCallService.StatusChanged(new CRMCallStatus(callinfo.CallID, callinfo.State)); if (callinfo.State != CallState.Ringing) { return; } incomingCallService.IncomingCall(callinfo.OtherPartyNumber); //if (!callinfo.Incoming || callinfo.State != CallState.Ringing) return; //MessageBox.Show(callinfo.CallID); //MessageBox.Show(callinfo.Originator); //MessageBox.Show(callinfo.OriginatorName); //MessageBox.Show(callinfo.OtherPartyNumber); //MessageBox.Show(callinfo.OtherPartyName); //IIncomingCallService callbackChannel = OperationContext.Current.GetCallbackChannel<IIncomingCallService>(); //callbackChannel.IncomingCall(callinfo.OtherPartyNumber); }