Skype Auto Recorder 1.2

The Skype Auto Recorder version 1.2 was released. It contains important bug fixes and finally can be treated as stable.

The source code is available on GitHub.

Fixed the issue when the application doesn't record MP3-file for some reason

It was difficult to find why sometimes application doesn't return an MP3-file. Furthermore, it even doesn't start merging WAV channels saved by Skype. So finally I figured out the cause of the problem: Skype sends the API message that the call has ended but still keeps output files locked. And looks like, it doesn't depend on the duration of the conversation. Locked files can't be read and the only way to handle such a situation is simply waiting when they are released.

There is no build-in .NET Framework method to check that some file is in use, so a small tip on how to do it:

try
{
    using (new FileStream(fileName, FileMode.Open))
    {
    }

    return false;
}
catch (IOException)
{
    return true;
}

This version was primarily aimed at fixing existing issues. There are still several features that I'm planning to implement in the next release: formats for placeholders, distribution to several locations from one filter, new icon, and images :) and some others.

From now Skype Auto Recorder waits for files before starting to process them.

Implemented handling of Skype disconnects and connection problems during a conversation

From now application handles such situations correctly and save already recorded conversation. The bad side of Skype API that there is no explicit message about disconnect or connection problems (or maybe I just haven't found it). The only way to react is to wait for an API message with text CALL <ID> STATUS UNPLACED.

Implemented suration placeholder

From now {duration} can be used in file names. It returns the duration of the recorded conversation in the format hh.mm.ss (for example, 00.23.45).

Improved settings loading

The application will not throw an exception if can't load settings (if the file is corrupted or outdated). In case of error it will simply use the default settings.

Several code improvements and refactorings

The format of the settings-file is still the same, so existing settings will be used correctly in the new version.

previous post: JIRA Story Print