Exemplo n.º 1
0
        void Session_SessionStateChanged(object sender, Ozeki.VoIP.VoIPEventArgs <OPSSDKCommon.Model.Session.SessionState> e)
        {
            Dispatcher.BeginInvoke(new Action(() => {
                try
                {
                    Logger.Log("Call state changed: " + e.Item);

                    var action = new Action(() =>
                    {
                        Logger.Log("Js notify call state changed: " + e.Item);
                        WebView.ExecuteJavascript("(function(){try{callStateChanged('" + e.Item.ToString() + "');}catch(err){}})()");
                    });
                    if (documentReady)
                    {
                        action();
                    }
                    else
                    {
                        Logger.Log("Js cannot be executed while document is not ready.");
                        AddPendingAction(action);
                    }
                }
                catch (Exception ex)
                {
                    Logger.Log(ex.Message);
                    Logger.Log(ex.StackTrace);
                }
            }));
        }
Exemplo n.º 2
0
        void call_CallStateChanged(object sender, Ozeki.VoIP.VoIPEventArgs <CallState> e)
        {
            if (e.Item.IsInCall())
            {
                if (firstInCall)
                {
                    try
                    {
                        entry.State           = WorkState.InProgress;
                        firstInCall           = false;
                        ringingTimer.Elapsed -= ringingTimer_Elapsed;
                        waveStreamPlayback    = new WaveStreamPlayback(entry.SoundPath);
                        call.ConnectAudioSender(waveStreamPlayback);

                        waveStreamPlayback.Stopped += waveStreamPlayback_Stopped;

                        waveStreamPlayback.StartStreaming();
                        progressTimer.Start();
                    }
                    catch (Exception ex)
                    {
                        OnWorkCompleted(WorkState.FileError);
                    }
                }
            }
            else if (e.Item.IsCallEnded())
            {
                OnWorkCompleted(WorkState.HungUpByRemote);
            }
        }
Exemplo n.º 3
0
        void Softphone_IncomingCall(object sender, Ozeki.VoIP.VoIPEventArgs <Ozeki.VoIP.IPhoneCall> e)
        {
            if (_currentModel == null)
            {
                return;
            }

            SoftPhone.SetModel(_currentModel.AudioSender, _currentModel.VideoSender);
        }
Exemplo n.º 4
0
 void call_CallErrorOccurred(object sender, Ozeki.VoIP.VoIPEventArgs <CallError> e)
 {
     if (e.Item == CallError.NotFound)
     {
         OnWorkCompleted(WorkState.NotFound);
     }
     else
     {
         OnWorkCompleted(WorkState.CallError);
     }
 }
Exemplo n.º 5
0
 static void client_SessionCreated(object sender, Ozeki.VoIP.VoIPEventArgs <ISession> e)
 {
     Console.WriteLine("SessionCreated.CallDirection: {0}", e.Item.CallDirection);
     Console.WriteLine("SessionCreated.CallerId: {0}", e.Item.CallerId);
     Console.WriteLine("SessionCreated.Destination: {0}", e.Item.Destination);
     Console.WriteLine("SessionCreated.DialedNumber: {0}", e.Item.DialedNumber);
     Console.WriteLine("SessionCreated.RingDuration: {0}", e.Item.RingDuration);
     Console.WriteLine("SessionCreated.SessionID: {0}", e.Item.SessionID);
     Console.WriteLine("SessionCreated.Source: {0}", e.Item.Source);
     Console.WriteLine("SessionCreated.StartTime: {0}", e.Item.StartTime);
     Console.WriteLine("SessionCreated.State: {0}", e.Item.State);
     Console.WriteLine("SessionCreated.StateDuration: {0}", e.Item.StateDuration);
     Console.WriteLine("SessionCreated.TalkDuration: {0}", e.Item.TalkDuration);
 }
Exemplo n.º 6
0
 static void opsClient_SessionCreated(object sender, Ozeki.VoIP.VoIPEventArgs <OPSSDK.ISession> e)
 {
     Console.Clear();
     Console.WriteLine("Source: " + e.Item.Source);
     Console.WriteLine("SessionID: " + e.Item.SessionID);
     Console.WriteLine("Call direction: " + e.Item.CallDirection);
     Console.WriteLine("Caller: " + e.Item.CallerId);
     Console.WriteLine("Callee: " + e.Item.DialedNumber);
     Console.WriteLine("Ring duration: " + e.Item.RingDuration);
     Console.WriteLine("State: " + e.Item.State);
     Console.WriteLine("State duration: " + e.Item.StateDuration);
     Console.WriteLine("Start time: " + e.Item.StartTime);
     Console.WriteLine("Talk duration: " + e.Item.TalkDuration);
     Console.WriteLine("Destination: " + e.Item.Destination);
 }
Exemplo n.º 7
0
        void Model_GetFilePath(object sender, Ozeki.VoIP.VoIPEventArgs <string> e)
        {
            InvokeGuiThread(() =>
            {
                if (SendCapturedFileEmailCheckBox.IsChecked != null && (bool)SendCapturedFileEmailCheckBox.IsChecked)
                {
                    Task.Factory.StartNew(SendEmailThread(e.Item));
                }

                if (UploadCapturedFileFtpCheckBox.IsChecked != null && (bool)UploadCapturedFileFtpCheckBox.IsChecked)
                {
                    Task.Factory.StartNew(UploadFtpThread(e.Item));
                }

                MessageBox.Show("Snapshot saved to " + e.Item, "Snapshot");
            });
        }
Exemplo n.º 8
0
 private void Mpeg4Recorder_MultiplexFinished(object sender, Ozeki.VoIP.VoIPEventArgs <bool> e)
 {
     _connector.Disconnect(_camera.AudioChannel, _mpeg4Recorder.AudioRecorder);
     _connector.Disconnect(_camera.VideoChannel, _mpeg4Recorder.VideoRecorder);
     _mpeg4Recorder.Dispose();
 }
Exemplo n.º 9
0
 static void client_SessionCompleted(object sender, Ozeki.VoIP.VoIPEventArgs <ISession> e)
 {
     Console.WriteLine("Call completed. Source: {0}, caller id: {1}, dialed number: {2}, destination: {3}", e.Item.Source, e.Item.CallerId, e.Item.DialedNumber, e.Item.Destination);
     Console.WriteLine();
     DisposeCallRecorder(e.Item);
 }
 void _recorder_MultiplexFinished(object sender, Ozeki.VoIP.VoIPEventArgs <bool> e)
 {
     _recorder.MultiplexFinished -= _recorder_MultiplexFinished;
     _recorder.Dispose();
 }
Exemplo n.º 11
0
        void call_DtmfStarted(object sender, Ozeki.VoIP.VoIPEventArgs <DtmfSignal> e)
        {
            string target = null;

            if (config.IVRSettings == null)
            {
                return;
            }

            var ivr = config.IVRSettings;

            switch (e.Item.Signal)
            {
            case DtmfNamedEvents.Dtmf0:
                target = ivr.ZeroRedirection;
                break;

            case DtmfNamedEvents.Dtmf1:
                target = ivr.OneRedirection;
                break;

            case DtmfNamedEvents.Dtmf2:
                target = ivr.TwoRedirection;
                break;

            case DtmfNamedEvents.Dtmf3:
                target = ivr.ThreeRedirection;
                break;

            case DtmfNamedEvents.Dtmf4:
                target = ivr.FourRedirection;
                break;

            case DtmfNamedEvents.Dtmf5:
                target = ivr.FiveRedirection;
                break;

            case DtmfNamedEvents.Dtmf6:
                target = ivr.SixRedirection;
                break;

            case DtmfNamedEvents.Dtmf7:
                target = ivr.SevenRedirection;
                break;

            case DtmfNamedEvents.Dtmf8:
                target = ivr.EightRedirection;
                break;

            case DtmfNamedEvents.Dtmf9:
                target = ivr.NineRedirection;
                break;
            }

            entry.PressedNumber = (int)e.Item.Signal;

            if (!string.IsNullOrEmpty(target))
            {
                call.BlindTransfer(target);
            }
        }
Exemplo n.º 12
0
 void streamer_ClientDisconnected(object sender, Ozeki.VoIP.VoIPEventArgs <IMJPEGStreamClient> e)
 {
     e.Item.StopStreaming();
 }
Exemplo n.º 13
0
 void server_IncomingCall(object sender, Ozeki.VoIP.VoIPEventArgs <ICall> e)
 {
     Console.WriteLine("Server Incoming call: {0}", e);
 }
Exemplo n.º 14
0
 void pgnotebook_IncomingCall(object sender, Ozeki.VoIP.VoIPEventArgs <ICall> e)
 {
     Console.WriteLine("pg notebook Incoming call: {0}", e);
 }