public PlantronicsManager(IStatusManager statusManager, IInteractionManager interactionManager, INotificationService notificationService, ITraceContext traceContext) { _statusManager = statusManager; _interactionManager = interactionManager; _traceContext = traceContext; _notificationService = notificationService; m_sessionComManager = new SessionComManagerClass(); m_sessionManagerEvents = m_sessionComManager as ISessionCOMManagerEvents_Event; m_comSession = m_sessionComManager.Register("Interaction Client Plantronics AddIn"); // Now check if our plugin session was created if (m_comSession != null) { // detect devices added/removed m_sessionManagerEvents.DeviceStateChanged += OnDeviceStateChanged; //Get current Device m_device = m_comSession.ActiveDevice; // if we have a device register for events if (m_device != null) { // Register for device events RegisterEvents(); } } }
private static void InitializePlantronics() { try { m_sessionComManager = new SessionComManagerClass(); Console.WriteLine("Session Manager created"); m_sessionManagerEvents = m_sessionComManager as ISessionCOMManagerEvents_Event; if (m_sessionManagerEvents != null) { m_sessionManagerEvents.DeviceStateChanged += m_sessionComManager_DeviceStateChanged; Console.WriteLine("Attached to session manager events"); } else { Console.WriteLine("Error: Unable to attach to session manager events"); } //////////////////////////////////////////////////////////////////////////////////////// // register session to spokes m_comSession = m_sessionComManager.Register("COM Session"); if (m_comSession != null) { // attach to session call events m_sessionEvents = m_comSession.CallEvents as ICOMCallEvents_Event; if (m_sessionEvents != null) { m_sessionEvents.CallStateChanged += m_sessionEvents_CallStateChanged; Console.WriteLine("Attached to session call events"); } else { Console.WriteLine("Error: Unable to attach to session call events"); } // Attach to active device and print all device information m_activeDevice = m_comSession.ActiveDevice; AttachDevice(); } else { Console.WriteLine("Error: Unable to register session"); } } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); Console.Read(); } }
private static void InitializePlantronics() { try { m_sessionComManager = new SessionComManagerClass(); Console.WriteLine("Session Manager created"); m_sessionManagerEvents = m_sessionComManager as ISessionCOMManagerEvents_Event; if (m_sessionManagerEvents != null) { m_sessionManagerEvents.DeviceStateChanged += m_sessionComManager_DeviceStateChanged; Console.WriteLine("Attached to session manager events"); } else { Console.WriteLine("Error: Unable to attach to session manager events"); } //////////////////////////////////////////////////////////////////////////////////////// // register session to spokes m_comSession = m_sessionComManager.Register("COM Session"); if (m_comSession != null) { // attach to session call events m_sessionEvents = m_comSession.CallEvents as ICOMCallEvents_Event; if (m_sessionEvents != null) { m_sessionEvents.CallStateChanged += m_sessionEvents_CallStateChanged; Console.WriteLine("Attached to session call events"); } else { Console.WriteLine("Error: Unable to attach to session call events"); } // Attach to active device and print all device information m_activeDevice = m_comSession.ActiveDevice; AttachDevice(); } else Console.WriteLine("Error: Unable to register session"); } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); Console.Read(); } }
/// <summary> /// Instruct Spokes object to connect to Spokes runtime engine and register itself /// so that it can begin to communicate with the attached Plantronics device. /// </summary> /// <param name="SessionName">Optional name of your appplication's session within Spokes runtime engine. If omitted it will default to "COM Session".</param> public bool Connect(string SessionName = "COM Session") { if (!IsSpokesInstalled()) { DebugPrint(MethodInfo.GetCurrentMethod().Name, "FATAL ERROR: cannot connect if Spokes COMSessionManager/SessionCOMManager class is not registered! Spokes not installed (or wrong major version installed for this Spokes Wrapper)!"); return false; // cannot connect if Spokes COM SessionManager class is not registered! Spokes not installed! } if (isConnected) return true; DeviceCapabilities = new SpokesDeviceCaps(false, false, false, false, false, false, false); // we don't yet know what the capabilities are OnCapabilitiesChanged(EventArgs.Empty); bool success = false; try { //////////////////////////////////////////////////////////////////////////////////////// // create session manager, and attach to session manager events m_sessionComManager = new SessionComManagerClass(); m_sessionManagerEvents = m_sessionComManager as ISessionCOMManagerEvents_Event; if (m_sessionManagerEvents != null) { m_sessionManagerEvents.CallStateChanged += m_sessionComManager_CallStateChanged; m_sessionManagerEvents.DeviceStateChanged += m_sessionComManager_DeviceStateChanged; } else success = false; //////////////////////////////////////////////////////////////////////////////////////// // register session to spokes m_comSession = m_sessionComManager.Register(SessionName); if (m_comSession != null) { // attach to session call events m_sessionEvents = m_comSession.CallEvents as ICOMCallEvents_Event; if (m_sessionEvents != null) { m_sessionEvents.CallRequested += m_sessionEvents_CallRequested; m_sessionEvents.CallStateChanged += m_sessionEvents_CallStateChanged; } else success = false; //////////////////////////////////////////////////////////////////////////////////////// // Attach to active device and print all device information // and registers for proximity (if supported by device) AttachDevice(); success = true; } } catch (System.Exception e) { success = false; throw new Exception("Failed to connect to Spokes", e); } return success; }