public void DidChangeRoute(ARDVideoCallView view)
        {
            var @override = AVAudioSessionPortOverride.None;

            if (_portOvveride == AVAudioSessionPortOverride.None)
            {
                @override = AVAudioSessionPortOverride.Speaker;
            }

            RTCDispatcher.DispatchAsyncOnType(RTCDispatcherQueueType.AudioSession, () =>
            {
                var session = RTCAudioSession.SharedInstance;
                session.LockForConfiguration();
                session.OverrideOutputAudioPort(@override, out NSError error);

                if (error == null)
                {
                    _portOvveride = @override;
                }
                else
                {
                    Console.WriteLine("Error overriding output port:{0}", error.LocalizedDescription);
                }
                session.UnlockForConfiguration();
            });
        }
 public virtual void DidSwitchCamera(ARDVideoCallView view)
 {
     if (_fileCaptureController != null)
     {
         _fileCaptureController.Toggle();
         return;
     }
     SwitchCamera();
 }
        public override void LoadView()
        {
            base.LoadView();



            _videoCallView          = new ARDVideoCallView(CGRect.Empty, !IsSimulator);
            _videoCallView.Delegate = this;

            View = _videoCallView;
        }
 public void DidEnableStats(ARDVideoCallView view)
 {
 }
 public void DidHangup(ARDVideoCallView view)
 {
     Disconnect();
 }