void RecordSession(ISession session, bool callee)
        {
            var extension_info = callee ? ShouldRecordCallee(session) : ShouldRecordCaller(session);

            if (extension_info == null)
            {
                return;
            }

            lock (recording_sync)
            {
                try
                {
                    var recording_context = new RecordingContext(session, SettingsHelper.RecordingFileFormat, extension_info.PhoneNumber);
                    recording_contexts.Add(recording_context);
                    recording_context.StartRecording();
                }
                catch (Exception ex)
                {
                    view.ShowError(ex);
                }
            }
        }
        static string[] GetFilenames(ListViewItem item)
        {
            var info   = (ExtensionInfo)item.Tag;
            var folder = Path.Combine(SettingsHelper.RecordingPath, item.Text);

            RecordingContext.CreateFolderIfNecessery(folder);

            var fileNames = Directory.GetFiles(folder, "*.mp3").ToList();

            fileNames.AddRange(Directory.GetFiles(folder, "*.wav"));

            return(fileNames.ToArray());
            //var filenames = Directory.GetFiles(folder, String.Concat(info.PhoneNumber, "_*.", SettingsHelper.RecordingFileFormat));
            //var callee_filenames = Directory.GetFiles(folder, String.Concat("*_", info.PhoneNumber, "_*.", SettingsHelper.RecordingFileFormat));

            //var old_length = filenames.Length;
            //Array.Resize(ref filenames, filenames.Length + callee_filenames.Length);
            //for (var i = old_length; i < filenames.Length; i++)
            //{
            //    filenames[i] = callee_filenames[i - old_length];
            //}
            //return filenames;
        }
        void RecordSession(ISession session, bool callee)
        {
            var extension_info = callee ? ShouldRecordCallee(session) : ShouldRecordCaller(session);
            if (extension_info == null) return;

            lock (recording_sync)
            {
                try
                {
                    var recording_context = new RecordingContext(session, SettingsHelper.RecordingFileFormat, extension_info.PhoneNumber);
                    recording_contexts.Add(recording_context);
                    recording_context.StartRecording();
                }
                catch (Exception ex)
                {
                    view.ShowError(ex);
                }
            }
        }