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

            /**
             * 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;
            }
        }