/// <summary> /// This method Notifies Desktop about call ringing /// </summary> /// <param name="message"></param> public void NotifyCallRinging(IMessage message) { Settings setting = Settings.GetInstance(); try { if (message != null) { if (message != null && message.Name == EventRinging.MessageName && DesktopMessenger.communicateUI != null) { DesktopMessenger.midHandler = null; DesktopMessenger.communicateUI.NotifyMIDState(false, null); } callData.EventMessage = message; callData.MediaType = MediaType.Voice; newCallDataProvider.NewCallData(callData); } } catch (Exception generalException) { _logger.Error("NotifyCallRinging" + generalException.ToString()); } }
public void InitializeIntegration(ConfService confProtocol, string applicationName, System.Collections.Generic.Dictionary <string, bool> integrationMediaList = null) { Thread newThread = new Thread(() => { _logger.Info("**********************************************************************************************************************"); _logger.Info("Pointel.Integration.Core :" + Assembly.GetExecutingAssembly().GetName().Version); _logger.Info("***********************************************************************************************************************"); _logger.Info("Retrieving Values from Application third party integration start."); ReadApplication readApplication = new ReadApplication(); Settings settings = Settings.GetInstance(); try { readApplication.ReadIntegrationDecisionKeyCollections(); callData = readApplication.ReadFileIntegrationKeyCollections(confProtocol, applicationName); readApplication.ReadApplicationValue(confProtocol, applicationName); newCallDataProvider = new CallDataProviders(); if (settings.EnableFileCommunication) { InitFileIntegration(); } else { _logger.Warn("File Communication Disabled"); } if (settings.EnablePortCommunication) { try { portSubscriber = new PortSubscriber(); portSubscriber.Subscribe(newCallDataProvider); callData.PortData.Decision = IntegrationAction.Open; newCallDataProvider.NewCallData(callData); } catch (Exception ex) { _logger.Error("Error occurred while subcribe Port as " + ex.Message); } } else { _logger.Info("Port integration disabled."); } if (settings.EnablePipeCommunication) { InitPipeIntegration(); } else { _logger.Info("Pipe integration disabled."); } if (settings.EnableURLCommunication) { InitWebUrlIntegration(integrationMediaList); } else { _logger.Info("URL integration disabled."); } if (settings.EnableCrmDbCommunication) { try { crmDbSubscriber = new CrmDbSubscriber(); crmDbSubscriber.Subscribe(newCallDataProvider); } catch (Exception ex) { _logger.Error("Error occurred while subcribe DB Communication as " + ex.Message); } } else { _logger.Info("Database integration disabled"); } if (ConfigContainer.Instance().AllKeys.Contains("voice.enable.agent-activity-db-integration") && ConfigContainer.Instance().GetAsBoolean("voice.enable.agent-activity-db-integration")) { try { var agentActivitySubscriber = new AgentActivitySubscriber(); agentActivitySubscriber.Subscribe(newCallDataProvider); } catch (Exception ex) { _logger.Error("Error occurred while subcribe DB Communication as " + ex.Message); } } else { _logger.Info("Agent interaction activity disabled"); } ISoftphoneListener softSubscriber = new DesktopMessenger(); SoftPhone softPhone = new SoftPhone(); softPhone.Subscribe(softSubscriber, Softphone.Voice.SoftPhoneSubscriber.Integration); StartHIMMSIntegration(); } catch (Exception generalException) { _logger.Error("Error occurred while reading integration part from the application " + generalException.ToString()); } }); newThread.Start(); }