コード例 #1
0
 private void WybierzDomyslnySprzet()
 {
     while (Microphone.GetDevicesCount() == 0)
     {
         if (MessageBox.Show("Brak wejściowego urządzenia audio, bez odpowiedniego sprzętu aplikacja nie będzie działać. Podłącz mikrofon i naciśnij Tak, aby kontynuować. Jeśli naciśniesz Nie aplikacja zostanie zamknięta.", "Brak odpowiedniego sprzętu", MessageBoxButton.YesNo, MessageBoxImage.Error) == MessageBoxResult.No)
         {
             Environment.Exit(0);
         }
     }
     while (Speaker.GetDevicesCount() == 0)
     {
         if (MessageBox.Show("Brak wyjściowego urządzenia audio, bez odpowiedniego sprzętu aplikacja nie będzie działać. Podłącz głośniki lub słuchawki i naciśnij Tak, aby kontynuować. Jeśli naciśniesz Nie aplikacja zostanie zamknięta.", "Brak odpowiedniego sprzętu", MessageBoxButton.YesNo, MessageBoxImage.Error) == MessageBoxResult.No)
         {
             Environment.Exit(0);
         }
     }
     if (System.Windows.Application.Current.Properties["WejscieAudio"] == null)
     {
         System.Windows.Application.Current.Properties["WejscieAudio"] = Microphone.GetDefaultDevice();
     }
     if (System.Windows.Application.Current.Properties["WyjscieAudio"] == null)
     {
         Speaker glosnik = Speaker.GetDefaultDevice();
         glosnik.Volume = 1;
         System.Windows.Application.Current.Properties["WyjscieAudio"] = glosnik;
     }
 }
コード例 #2
0
        /// <summary>
        /// Initializes the audio handlers (microphone, speaker, DTMF player etc.).
        /// </summary>
        private void InitAudio()
        {
            // ----- CREATE -----
            // devices
            Microphone = Microphone.GetDefaultDevice();
            Speaker    = Speaker.GetDefaultDevice();

            // audio processors
            if (Microphone == null)
            {
                AudioEnhancer = new AudioQualityEnhancer(new AudioFormat());
            }
            else
            {
                AudioEnhancer = new AudioQualityEnhancer(Microphone.MediaFormat);
            }
            AudioEnhancer.SetEchoSource(Speaker);
            _dtmfPlayer = new DtmfEventWavePlayer();

            // ringtones
            var ringbackStream = LoadRingbackStream();
            var ringtoneStream = LoadRingtoneStream();

            _ringtonePlayer = new WaveStreamPlayback(ringtoneStream, true, false);
            _ringbackPlayer = new WaveStreamPlayback(ringbackStream, true, false);

            // mixers
            //outgoingDataMixer = new AudioForwarder();
            //speakerMixer = new AudioForwarder();
            //recordDataMixer = new AudioForwarder();

            // phone handlers
            _phoneCallAudioSender   = new PhoneCallAudioSender();
            _phoneCallAudioReceiver = new PhoneCallAudioReceiver();


            // ----- CONNECT -----
            // connect outgoing
            //audioConnector.Connect(AudioEnhancer, outgoingDataMixer);
            //audioConnector.Connect(outgoingDataMixer, phoneCallAudioSender);
            //audioConnector.Connect(outgoingDataMixer, recordDataMixer);
            _audioConnector.Connect(AudioEnhancer, _phoneCallAudioSender);
            if (Microphone != null)
            {
                Microphone.LevelChanged += (Microphone_LevelChanged);
                _audioConnector.Connect(Microphone, AudioEnhancer);
            }

            // connect incoming
            if (Speaker != null)
            {
                Speaker.LevelChanged += (Speaker_LevelChanged);
                _audioConnector.Connect(_phoneCallAudioReceiver, Speaker);
                _audioConnector.Connect(_ringtonePlayer, Speaker);
                _audioConnector.Connect(_ringbackPlayer, Speaker);
                _audioConnector.Connect(_dtmfPlayer, Speaker);
            }
        }
コード例 #3
0
ファイル: frmSoftphone.cs プロジェクト: rosauceda/Softphone-1
 private void StartMicro()
 {
     _microphone = Microphone.GetDefaultDevice();
     if (_microphone != null)
     {
         _microphone.Start();
         InvokeGUIThread(() => { lb_Log.Items.Add("Microphone Started."); });
     }
 }
コード例 #4
0
 public void OzekiInitialization()
 {
     softphone     = SoftPhoneFactory.CreateSoftPhone(5000, 10000);
     microphone    = Microphone.GetDefaultDevice();
     speaker       = Speaker.GetDefaultDevice();
     mediaSender   = new PhoneCallAudioSender();
     mediaReceiver = new PhoneCallAudioReceiver();
     connector     = new MediaConnector();
 }
コード例 #5
0
ファイル: frmTelefono.cs プロジェクト: Mbmaldon/LxJuridico
 private void frmTelefono_Load(object sender, EventArgs e)
 {
     //Inicializa los componentes para las llamadas
     _microphone    = Microphone.GetDefaultDevice();
     _speaker       = Speaker.GetDefaultDevice();
     _connector     = new MediaConnector();
     _mediaSender   = new PhoneCallAudioSender();
     _mediaReceiver = new PhoneCallAudioReceiver();
     InitializeSoftphone();
 }
コード例 #6
0
        /// <summary>
        /// Default constructor, initalizes the softphone with deafult parameters.
        /// </summary>
        public Softphone()
        {
            _softphone = SoftPhoneFactory.CreateSoftPhone(5000, 10000);

            _microphone    = Microphone.GetDefaultDevice();
            _speaker       = Speaker.GetDefaultDevice();
            _connector     = new MediaConnector();
            _mediaSender   = new PhoneCallAudioSender();
            _mediaReceiver = new PhoneCallAudioReceiver();
        }
コード例 #7
0
        /// <summary>
        /// Handler of making call and receiving call
        /// </summary>
        /// <param name="registerName">The SIP ID what will registered into your PBX</param>
        /// <param name="domainHost">The address of your PBX</param>
        public CallHandlerSample(string registerName, string domainHost)
        {
            microphone    = Microphone.GetDefaultDevice();
            speaker       = Speaker.GetDefaultDevice();
            connector     = new MediaConnector();
            mediaSender   = new PhoneCallAudioSender();
            mediaReceiver = new PhoneCallAudioReceiver();

            InitializeSoftPhone(registerName, domainHost);
        }
コード例 #8
0
        public Softphone()
        {
            softphone     = SoftPhoneFactory.CreateSoftPhone(5000, 10000);
            microphone    = Microphone.GetDefaultDevice();
            speaker       = Speaker.GetDefaultDevice();
            connector     = new MediaConnector();
            mediaSender   = new PhoneCallAudioSender();
            mediaReceiver = new PhoneCallAudioReceiver();

            incomingCall = false;
        }
コード例 #9
0
ファイル: Home.cs プロジェクト: pawlikx/VoiceCommunicator
 static void OzekiInit()
 {
     //softphone = SoftPhoneFactory.CreateSoftPhone(6000, 6200);
     softphone = SoftPhoneFactory.CreateSoftPhone(5000, 10000);
     //Console.WriteLine("OZEKI: CreatedSoftPhone");
     microphone    = Microphone.GetDefaultDevice();
     speaker       = Speaker.GetDefaultDevice();
     mediaSender   = new PhoneCallAudioSender();
     mediaReceiver = new PhoneCallAudioReceiver();
     connector     = new MediaConnector();
 }
コード例 #10
0
ファイル: PhoneForm.cs プロジェクト: WereDouglas/Casepro
        public PhoneForm()
        {
            InitializeComponent();
            softphone = SoftPhoneFactory.CreateSoftPhone(5000, 10000);

            microphone    = Microphone.GetDefaultDevice();
            speaker       = Speaker.GetDefaultDevice();
            mediaSender   = new PhoneCallAudioSender();
            mediaReceiver = new PhoneCallAudioReceiver();
            connector     = new MediaConnector();
        }
コード例 #11
0
ファイル: Form1.cs プロジェクト: meps1211/test
        void form_CallAssistant_Load(object sender, EventArgs e)
        {
            _microphone    = Microphone.GetDefaultDevice();
            _speaker       = Speaker.GetDefaultDevice();
            _connector     = new MediaConnector();
            _mediaSender   = new PhoneCallAudioSender();
            _mediaReceiver = new PhoneCallAudioReceiver();

            _databaseManager = new DatabaseManager();

            InitializeSoftphone();
        }
コード例 #12
0
ファイル: App.cs プロジェクト: Nedvid/BlaBla
        //OZEKI
        void Ozeki()
        {
            softphone = SoftPhoneFactory.CreateSoftPhone(6000, 6200);

            microphone    = Microphone.GetDefaultDevice();
            speaker       = Speaker.GetDefaultDevice();
            mediaSender   = new PhoneCallAudioSender();
            mediaReceiver = new PhoneCallAudioReceiver();
            connector     = new MediaConnector();

            var config = new DirectIPPhoneLineConfig(local_ip, 5060);

            phoneLine = softphone.CreateDirectIPPhoneLine(config);
            phoneLine.RegistrationStateChanged += line_RegStateChanged;
            softphone.IncomingCall             += softphone_IncomingCall;
            softphone.RegisterPhoneLine(phoneLine);
        }
コード例 #13
0
        /// <summary>
        /// Default constructor, initalizes the softphone with deafult parameters.
        /// </summary>
        public SoftPhone()
        {
            //you can specify the User-Agent of the softphone
            string userAgent = "ORX SoftPhone";

            _softphone     = SoftPhoneFactory.CreateSoftPhone(5000, 10000, userAgent);
            _microphone    = Microphone.GetDefaultDevice();
            _speaker       = Speaker.GetDefaultDevice();
            _connector     = new MediaConnector();
            _mediaSender   = new PhoneCallAudioSender();
            _mediaReceiver = new PhoneCallAudioReceiver();

            _incomingCall = false;

            MediaHandlers = new MediaHandlers();
            InitMedia();
        }
コード例 #14
0
ファイル: Program.cs プロジェクト: papillon88/SIP_project
        static void Main(string[] args)
        {
            microphone     = Microphone.GetDefaultDevice();
            speaker        = Speaker.GetDefaultDevice();
            connector      = new MediaConnector();
            audioProcessor = new AudioQualityEnhancer();

            audioProcessor.NoiseReductionLevel = NoiseReductionLevel.Medium;
            audioProcessor.SetEchoSource(speaker);

            connector.Connect(microphone, audioProcessor);
            connector.Connect(audioProcessor, speaker);

            microphone.Start();
            speaker.Start();

            Console.ReadLine();
        }
コード例 #15
0
        static void Main(string[] args)
        {
            microphone     = Microphone.GetDefaultDevice();
            speaker        = Speaker.GetDefaultDevice();
            connector      = new MediaConnector();
            audioProcessor = new AudioQualityEnhancer();

            audioProcessor.AcousticEchoCancellation = true; // acoustic echo cancellation is enabled
            audioProcessor.SetEchoSource(speaker);          // sets the speaker to be the source of the echo

            connector.Connect(microphone, audioProcessor);  // voice data is being sent through the enhancer
            connector.Connect(audioProcessor, speaker);

            audioProcessor.Start();
            microphone.Start();
            speaker.Start();

            Console.ReadLine();
        }
コード例 #16
0
        static void Main(string[] args)
        {
            microphone     = Microphone.GetDefaultDevice();
            speaker        = Speaker.GetDefaultDevice();
            connector      = new MediaConnector();
            audioProcessor = new AudioQualityEnhancer();

            audioProcessor.AutoGainControl = true;            //enable
            audioProcessor.GainSpeed       = 12;
            audioProcessor.MaxGain         = 30;

            connector.Connect(microphone, audioProcessor);
            connector.Connect(audioProcessor, speaker);

            microphone.Start();
            speaker.Start();

            Console.ReadLine();
        }
コード例 #17
0
        public MainWindowPresenter(IMainWindow my_view, IOPSClient my_client)
        {
            view   = my_view;
            client = my_client;

            client.ErrorOccurred += ClientOnErrorOccured;

            microphone = Microphone.GetDefaultDevice();
            if (microphone != null)
            {
                microphone.Start();
            }

            speaker = Speaker.GetDefaultDevice();
            if (speaker != null)
            {
                speaker.Start();
            }

            client.SessionCreated    += ClientOnSessionCreated;
            client.SessionCompleted  += ClientOnSessionCompleted;
            client.PhoneBookChanged  += ClientOnPhoneBookChanged;
            client.StatisticsChanged += ClientOnStatisticsChanged;
        }
コード例 #18
0
ファイル: Form2.cs プロジェクト: adriankubaszewski/TIP-Voiper
        void Glowna(string DocIP)
        {
            softphone = SoftPhoneFactory.CreateSoftPhone(5000, 10000);

            microphone    = Microphone.GetDefaultDevice();
            speaker       = Speaker.GetDefaultDevice();
            mediaSender   = new PhoneCallAudioSender();
            mediaReceiver = new PhoneCallAudioReceiver();
            connector     = new MediaConnector();

            DoceloweIP = DocIP;

            //Console.WriteLine("Please enter the IP address of your machine: ");
            //var ipAddress = LocalIP;
            var config = new DirectIPPhoneLineConfig(LocalIP, 5060);

            //var config = new DirectIPPhoneLineConfig(textBox1.Text, 5060);
            phoneLine = softphone.CreateDirectIPPhoneLine(config);
            phoneLine.RegistrationStateChanged += line_RegStateChanged;
            softphone.IncomingCall             += softphone_IncomingCall;
            softphone.RegisterPhoneLine(phoneLine);

            //Console.ReadLine();
        }
コード例 #19
0
 public WebCameraEngine(VideoDeviceInfo device)
 {
     _camera     = WebCamera.GetDevice(device);
     _microphone = Microphone.GetDefaultDevice();
 }
コード例 #20
0
        /// <summary>
        /// Creates a complex phone call listener, built up from microphone, speaker, waverecorder, waveplayer, dtmf and ringtone sounds.
        /// </summary>
        /// <returns>The media handler collection that represent the phone call listener.</returns>
        public MediaHandlerCollection CreateSoftPhoneCallListener()
        {
            var phoneCallAudioReceiver = new PhoneCallAudioReceiver();
            var phoneCallAudioSender   = new PhoneCallAudioSender();

            var microphone = Microphone.GetDefaultDevice();
            var speaker    = Speaker.GetDefaultDevice();


            var audioProcessor = new AudioQualityEnhancer();

            audioProcessor.SetEchoSource(speaker);   // Handles the audio that comes from the PhoneCallListener

            var outgoingDataMixer = new AudioMixerMediaHandler();
            var recordDataMixer   = new AudioMixerMediaHandler();
            var speakerMixer      = new AudioMixerMediaHandler();

            var dtmf      = new DtmfEventWavePlayer();
            var ringtones = new PhoneCallStateWavePlayer(
                commonWaveFormat,
                outGoingToneStreams,
                incomingToneStreams
                );


            if (microphone != null)
            {
                mediaConnector.Connect(microphone, audioProcessor);
            }
            mediaConnector.Connect(audioProcessor, outgoingDataMixer);
            mediaConnector.Connect(outgoingDataMixer, phoneCallAudioSender);
            // No WaveStreamPlayback (see CreateWaveStreamPlayback method)

            //mediaConnector.Connect(phoneCallAudioReceiver, speaker);
            mediaConnector.Connect(phoneCallAudioReceiver, speakerMixer);
            mediaConnector.Connect(dtmf, speakerMixer);
            mediaConnector.Connect(ringtones, speakerMixer);
            if (speaker != null)
            {
                mediaConnector.Connect(speakerMixer, speaker);
            }

            mediaConnector.Connect(phoneCallAudioReceiver, recordDataMixer);
            mediaConnector.Connect(outgoingDataMixer, recordDataMixer);



            // No WaveStreamRecorder (see CreateWaveStreamRecorder method)

            /*
             * Media Connections:
             *
             * +---------------------------------------------------------------+
             * |                           PhoneCall                           |**************
             * +---------------------------------------------------------------+  *          *
             *              ^^                              VV                    *          *
             *     +--------------------+             +----------------------+  +----+   +---------+
             *     |PhoneCallAudioSender|             |PhoneCallAudioReceiver|  |DMTF|   |Ringtones|
             *     +--------------------+             +----------------------+  +----+   +---------+
             *                ^^                            V              V       V          |
             *       +-----------------+              +---------------+   +------------+      |
             *       |OutgoingDataMixer|----- >> -----|RecordDataMixer|   |SpeakerMixer|--<<--/
             *       +-----------------+              +---------------+   +------------+
             *         ^^          ^^                       V                      |
             *+--------------+   +------------------+    +------------------+      |
             *|AudioProcessor|   |WaveStreamPlayback|    |WaveStreamRecorder|      V
             *+--------------+   +------------------+    +------------------+      V
             *        ^^                                                           |
             *    +----------+                                                 +-------+
             *    |Microphone|                                                 |Speaker|
             *    +----------+                                                 +-------+
             */
            var mediaHandlers = new Dictionary <string, VoIPMediaHandler>
            {
                { "AudioProcessor", audioProcessor },
                { "OutGoingDataMixer", outgoingDataMixer },
                { "RecordDataMixer", recordDataMixer },
                { "SpeakerMixer", speakerMixer },
                { "DTMF", dtmf },
                { "Ringtones", ringtones },

                { "AudioSender", phoneCallAudioSender },
                { "AudiReceiver", phoneCallAudioReceiver },
            };

            if (microphone != null)
            {
                mediaHandlers.Add("Microphone", microphone);
            }
            if (speaker != null)
            {
                mediaHandlers.Add("Speaker", speaker);
            }


            return(new MediaHandlerCollection(mediaConnector, mediaHandlers));
        }
コード例 #21
0
        public static void loadActions()
        {
            try
            {
                sipClient sipClient = (from p in Application.OpenForms.OfType <sipClient>() select p).FirstOrDefault();
                sipClient.answerPanel.Visible = false;
                sipClient.downloadBar.Visible = false;
                Screen myScreen = Screen.PrimaryScreen;
                Ozeki.VoIP.SDK.Protection.LicenseManager.Instance.SetLicense("OZSDK-DNA2CALL-151119-282F5AEA", "TUNDOjIsTVBMOjIsRzcyOTp0cnVlLE1TTEM6MixNRkM6MixVUDoyMDE2LjExLjE5LFA6MjE5OS4wMS4wMXxGdnd4ZEt6SnFRbzI1eXdvMmpVaVkrdVVscUpoRXg0OGNta2w4WDYzMGFJMENOWkx4dmtobXgrWURXMERaQjAwNHcvbE4xL25FYnpORGh2Qm5WUWdXZz09");
                sipClient.softphone         = SoftPhoneFactory.CreateSoftPhone(5000, 10000);
                sipClient.statusScreen.Text = "Started";
                sipClient.Height            = myScreen.WorkingArea.Height;
                sipClient.Location          = new Point(getStartPosition(sipClient.Width), 0);
                logAdd("", 1, "Application Started");
                bool result = registerToSIP();
                if (result == true)
                {
                    sipClient.phoneLine1.RegistrationStateChanged += sipClient.sipAccount_RegStateChanged;
                    sipClient.softphone.IncomingCall += sipClient.softphone_IncomingCall;

                    sipClient.sipMessageLogger = new SIPMessageLogger();
                    sipClient.sipMessageLogger.SIPMessageReceived += (sipClient.sipMessageLogger_SIPMessageReceived);

                    bool microphoneSuccess = false;
                    Microphone.GetDevices().ForEach(delegate(Ozeki.Media.Audio.DeviceInfo mic)
                    {
                        if (mic.ProductName.Contains(defMicrophone))
                        {
                            sipClient.microphone = Microphone.GetDevice(mic);
                            MessageBox.Show("Mikrofon seçildi = " + mic.ProductName.ToString());
                            microphoneSuccess = true;
                        }
                    });

                    bool speakerSuccess = false;
                    Speaker.GetDevices().ForEach(delegate(Ozeki.Media.Audio.DeviceInfo speaker)
                    {
                        if (speaker.ProductName.Contains(defSpeaker))
                        {
                            sipClient.speaker = Speaker.GetDevice(speaker);
                            MessageBox.Show("Kulaklık seçildi = " + speaker.ProductName.ToString());
                            speakerSuccess = true;
                        }
                    });

                    if (microphoneSuccess == false)
                    {
                        sipClient.microphone = Microphone.GetDefaultDevice();
                        main.errorModal("Daha önce seçtğiniz " + defMicrophone + " adlı cihaz şuan bu PC'ye bağlı değil. Bu sebeple varsayılan mikrofon seçildi.");
                    }
                    if (speakerSuccess == false)
                    {
                        sipClient.speaker = Speaker.GetDefaultDevice();
                        main.errorModal("Daha önce seçtğiniz " + defSpeaker + " adlı cihaz şuan bu PC'ye bağlı değil. Bu sebeple varsayılan kulaklık/hoparlör seçildi.");
                    }


                    sipClient.mediaReceiver = new PhoneCallAudioReceiver();
                    sipClient.mediaSender   = new PhoneCallAudioSender();
                    sipClient.connector     = new MediaConnector();
                    disableAllAudioCodecs();
                    disableAllVideoCodecs();
                    enableAudioCodec(defAudioCodec);
                    enableVideoCodec(defVideoCodec);
                    wsc.getAgentAnnounces();
                }
            }
            catch (Exception err) { errorModal("LoadActions: " + err.Message.ToString()); }
        }
コード例 #22
0
ファイル: MediaHandlers.cs プロジェクト: ttorok/secret-sensa
        /// <summary>
        /// Initializes the audio handlers (microphone, speaker, DTMF player etc.).
        /// </summary>
        private void InitAudio()
        {
            // ----- CREATE -----
            // devices
            Microphone = Microphone.GetDefaultDevice();
            Speaker    = Speaker.GetDefaultDevice();

            // audio processors
            AudioEnhancer = new AudioQualityEnhancer();
            AudioEnhancer.SetEchoSource(Speaker);
            dtmfPlayer = new DtmfEventWavePlayer();

            // ringtones
            var ringbackStream = LoadRingbackStream();
            var ringtoneStream = LoadRingtoneStream();

            ringtonePlayer = new WaveStreamPlayback(ringtoneStream, true, false);
            ringbackPlayer = new WaveStreamPlayback(ringbackStream, true, false);

            // mixers
            outgoingDataMixer = new AudioMixerMediaHandler();
            speakerMixer      = new AudioMixerMediaHandler();
            recordDataMixer   = new AudioMixerMediaHandler();

            // phone handlers
            phoneCallAudioSender   = new PhoneCallAudioSender();
            phoneCallAudioReceiver = new PhoneCallAudioReceiver();


            // ----- CONNECT -----
            // connect outgoing
            audioConnector.Connect(AudioEnhancer, outgoingDataMixer);
            audioConnector.Connect(outgoingDataMixer, phoneCallAudioSender);
            audioConnector.Connect(outgoingDataMixer, recordDataMixer);
            if (Microphone != null)
            {
                Microphone.LevelChanged += (Microphone_LevelChanged);
                audioConnector.Connect(Microphone, AudioEnhancer);
            }

            // connect incoming
            audioConnector.Connect(phoneCallAudioReceiver, speakerMixer);
            audioConnector.Connect(phoneCallAudioReceiver, recordDataMixer);
            audioConnector.Connect(ringtonePlayer, speakerMixer);
            audioConnector.Connect(ringbackPlayer, speakerMixer);
            audioConnector.Connect(dtmfPlayer, speakerMixer);
            if (Speaker != null)
            {
                Speaker.LevelChanged += (Speaker_LevelChanged);
                audioConnector.Connect(speakerMixer, Speaker);
            }

            // add to collection
            Dictionary <string, VoIPMediaHandler> collection = new Dictionary <string, VoIPMediaHandler>();

            collection.Add("AudioEnhancer", AudioEnhancer);
            collection.Add("DTMFPlayer", dtmfPlayer);
            collection.Add("OutgoingDataMixer", outgoingDataMixer);
            collection.Add("SpeakerMixer", speakerMixer);
            collection.Add("PhoneCallAudioSender", phoneCallAudioSender);
            collection.Add("PhoneCallAudioReceiver", phoneCallAudioReceiver);
            audioCollection = new MediaHandlerCollection(audioConnector, collection);
        }