示例#1
1
        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);
            }
        }
示例#2
1
 void call_CallErrorOccurred(object sender, Ozeki.VoIP.VoIPEventArgs<CallError> e)
 {
     if (e.Item == CallError.NotFound)
         OnWorkCompleted(WorkState.NotFound);
     else
         OnWorkCompleted(WorkState.CallError);
 }
        void recorder_MultiplexFinished(object sender, Ozeki.VoIP.VoIPEventArgs<bool> e)
        {
            Log.Write("recorder_MultiplexFinished() started");
              var mp4Recorder = sender as MPEG4Recorder;

              //connector.Disconnect(_camera.AudioChannel, recorder.AudioRecorder);
              //connector.Disconnect(camera.VideoChannel, recorder.VideoRecorder);
              mp4Recorder.MultiplexFinished -= recorder_MultiplexFinished;
              mp4Recorder.Dispose();
              //Task.Factory.StartNew(FtpUploadOnNewThread);
              Log.Write("recorder_MultiplexFinished() ended");
        }
示例#4
1
 static void client_SessionCreated(object sender, Ozeki.VoIP.VoIPEventArgs<ISession> e)
 {
     Console.WriteLine("Call created. Source: {0}, caller id: {1}, dialed number: {2}, destination: {3}", e.Item.Source, e.Item.CallerId, e.Item.DialedNumber, e.Item.Destination);
     CreateCallRecorder(e.Item);
 }
示例#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);
 }
示例#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);
 }
 public override void OnDataReceived(object sender, Ozeki.Media.VideoData data)
 {
     SendData(data);
 }
        /// <summary>
        /// Creates a phone line and adds it to the collection.
        /// </summary>
        public IPhoneLine AddPhoneLine(SIPAccount account, Ozeki.Network.TransportType transportType, NatConfiguration natConfig, SRTPMode srtpMode)
        {
            IPhoneLine line = softPhone.CreatePhoneLine(account, natConfig, transportType, srtpMode);
            SubscribeToLineEvents(line);

            // add to collection
            PhoneLines.Add(line);

            return line;
        }
        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);
                                                        }
                                                    }));
        }
 /// <summary>
 /// Creates a phone line and adds it to the collection.
 /// </summary>
 public IPhoneLine AddPhoneLine(SIPAccount account, Ozeki.Network.TransportType transportType, NatConfiguration natConfig, SRTPMode srtpMode)
 {
     var config = new PhoneLineConfiguration(account);
     config.TransportType = transportType;
     config.NatConfig = natConfig;
     config.SRTPMode = srtpMode;
     return AddPhoneLine(config);
 }
        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");
            });
        }
        void Softphone_IncomingCall(object sender, Ozeki.VoIP.VoIPEventArgs<Ozeki.VoIP.IPhoneCall> e)
        {
            if (_currentModel == null)
                return;

            SoftPhone.SetModel(_currentModel.AudioSender, _currentModel.VideoSender);
        }
 void server_IncomingCall(object sender, Ozeki.VoIP.VoIPEventArgs<ICall> e)
 {
     Console.WriteLine("Server Incoming call: {0}", e);
 }
 void pgnotebook_IncomingCall(object sender, Ozeki.VoIP.VoIPEventArgs<ICall> e)
 {
     Console.WriteLine("pg notebook Incoming call: {0}", e);
 }
示例#15
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);
        }