예제 #1
0
        /// <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();
        }
예제 #2
0
        /// <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();
        }
예제 #3
0
        /// <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;
            }
        }