/// <summary> /// Private helper method for the constructors /// </summary> private void initializeCallee() { conn = null; phone = null; pm = null; ll = null; recorder = null; calleeData = null; isRegistered = false; /** * Read the configuration params file and populate suitable parameters */ readConfigParams(); display("Configration file = " + inputParam.configFile); // this.numIterations = totalIter * totalSets; display("Extension = " + inputParam.myExtension); /** * Create an instance of prompt wait timer */ promptTimer = new System.Windows.Forms.Timer(); promptTimer.Enabled = false; promptTimer.Interval = promptWaitDuration * 1000; promptTimer.Tick += new System.EventHandler(promptTimer_Tick); missingHangupDetectionTimer = new System.Windows.Forms.Timer(); missingHangupDetectionTimer.Enabled = false; // Missing hangup detection timer is set to 5 times maximum call duration and wait time between calls missingHangupDetectionTimer.Interval = 5 * (maxCallDuration + waitTimeBetweenCalls) * 1000; missingHangupDetectionTimer.Enabled = false; missingHangupDetectionTimer.Tick += new System.EventHandler(missingHangupDetectionTimer_Tick); initializeVoiceDevice(); }
/// <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; } }