/// <summary> /// Private helper method to initialize the CSTA voice device /// </summary> private void initializeVoiceDevice() { p = new Provider(inputParam.sipServerIP, new CredentialManager(inputParam.sipServerIP)); Phone cdsPhone = Utilities.GetPhone(inputParam.sipServerIP, Utilities.LocalMacAddresses[0], inputParam.myExtension); if (cdsPhone == null) { throw new ApplicationException("Cannot find phone owned by " + inputParam.myExtension + " on server"); } /** * To create an instance of VoiceDevice, use GenericInteractiveVoice as the flag. */ phone = p.GetDevice(inputParam.myExtension, Provider.DeviceCategory.GenericInteractiveVoice, cdsPhone.FunctionId) as VoiceDevice; /** * Setup event handler methods */ phone.Established += new EstablishedEventHandler(phone_Established); phone.ConnectionCleared += new ConnectionClearedEventHandler(phone_ConnectionCleared); phone.InfoEventReceived += new InfoEventHandler(phone_InfoEventReceived); phone.Originated += new OriginatedEventHandler(phone_Originated); phone.Delivered += new DeliveredEventHandler(phone_Delivered); phone.RegistrationStateChanged += new RegistrationStateChangedEventHandler(phone_RegistrationStateChanged); /** * Allocate a prompt */ pm = phone.AllocatePrompt("CalleePrompt"); pm.Started += new VoiceEventHandler(pm_Started); pm.Completed += new VoiceEventHandler(pm_Completed); pm.InterruptionDetected += new VoiceEventHandler(pm_InterruptionDetected); pm.VoiceErrorOccurred += new VoiceEventHandler(pm_VoiceErrorOccurred); prepareListener(); // Now prepare the recorder if (allowRecording == true) prepareRecorder(); }
/// <summary> /// Private helper method to initialize the CSTA voice device /// </summary> private void initializeVoiceDevice() { p = new Provider(inputParam.sipServerIP, new CredentialManager(inputParam.sipServerIP)); Phone cdsPhone = Utilities.GetPhone( inputParam.sipServerIP, Utilities.LocalMacAddresses[0], inputParam.myExtension); /** * To create an instance of VoiceDevice, use GenericInteractiveVoice as the flag. */ phone = (VoiceDevice) p.GetDevice(inputParam.myExtension, Provider.DeviceCategory.GenericInteractiveVoice, cdsPhone.FunctionId); /** * Setup event handler methods */ phone.Established += new EstablishedEventHandler(phone_Established); phone.ConnectionCleared += new ConnectionClearedEventHandler(phone_ConnectionCleared); phone.InfoEventReceived += new InfoEventHandler(phone_InfoEventReceived); phone.Originated += new OriginatedEventHandler(phone_Originated); phone.Delivered += new DeliveredEventHandler(phone_Delivered); phone.RegistrationStateChanged += new RegistrationStateChangedEventHandler(phone_RegistrationStateChanged); /** * Allocate a prompt */ pm = phone.AllocatePrompt("CallerPrompt"); pm.Started += new VoiceEventHandler(pm_Started); pm.Completed += new VoiceEventHandler(pm_Completed); pm.VoiceErrorOccurred += new VoiceEventHandler(pm_VoiceErrorOccurred); prepareListener(); // Create a recorder if recording was enabled try { if (allowRecording == true) { recorder = phone.AllocateRecorder(); recorder.Started += new VoiceEventHandler(recorder_Started); recorder.Completed += new VoiceEventHandler(recorder_Completed); recorder.VoiceErrorOccurred += new VoiceEventHandler(recorder_VoiceErrorOccurred); } } catch(Exception e) { Trace.WriteLine("Exception in creating recorder. Message: " + e.Message, "Info"); recorder = null; } }