[sip-comm-dev] Call Recording UI


#1

Hi,

I've been doing UI for call recording options. You can take a look at
the screenshot to see it's current form. Some notes about it:
- I placed it in a separate "Calls" options entry because I didn't
find a suitable place for it. Maybe it's better to just make a tab in
"Audio".
- Supported formats combo is supposed to list all available formats
the calls can be saved in.
- The default directory to save calls to is set to
.sip-communicator/calls. When the user changes it, he is asked if he
wishes to move all files from the old directory to the new one.
- I didn't find any better way than just to name the calls based on
the current date.
- The calls table is sorted from the newest to the oldest call.
- Play button currently only plays .wav files. I'm using
AudioNotifierService.createAudio (just like in "Events") to play the
files, but if it's not a .wav I get an exception:
impl.neomedia.notify.PortAudioClipImpl.runOnceInPlayThread().215
Unsupported format of audio stream
javax.sound.sampled.UnsupportedAudioFileException: could not get audio
input stream from input URL

Any feedback appreciated, especially about the playback issue.

Cheers,
Dmitri


#2

Hey Dmitri,

На 26.07.10 22:30, Dmitri Melnikov написа:

Hi,

I've been doing UI for call recording options. You can take a look at
the screenshot to see it's current form. Some notes about it:
- I placed it in a separate "Calls" options entry because I didn't
find a suitable place for it.

I am wondering whether we really need the "management" interface.
Listing recorded calls, being able to play and delete them are all
features that users would probably be more comfortable doing through
applications they already know (e.g. VLC, iTunes, Windows Media Player,
etc.)

I think all we need in the configuration form would be the possibility
to pick a default location for the records and specify whether calls
should always go there (rather than having to pop a file chooser).
Pretty much the same way firefox lets you configure downloads.

Maybe it's better to just make a tab in "Audio".

Oh ... wouldn't it be cool to one day add video recording too :slight_smile:

Anyways, until then, the whole thing (i.e. the location specifier) would
probably hold in General. If not, we could also add it as one of the
options in "Advanced" for the time being.

- Supported formats combo is supposed to list all available formats
the calls can be saved in.

OK that one could also make sense in case user chooses to save in a
default location. Just saving them in a wav format would also be fine
for starters.

- The default directory to save calls to is set to .sip-communicator/calls.

This would indeed make sense in case we have our own playback and record
management GUI but if we are to remove it, we should probably choose a
more popular location like the desktop, my documents, or the downloads
directories. You may want to have a look at our file transfer feature to
see how we handle directories there.

When the user changes it, he is asked if he
wishes to move all files from the old directory to the new one.

- I didn't find any better way than just to name the calls based on
the current date.

That's ok I guess. My personal preference would go for a format that
would make them appear in a chronological order when shown within a file
navigator. Something like:

filename = YYYY-MM-DD.hh:mm:ss.<NAME>.wav
NAME = confcall | <contact-name>

The exact format is of course not that important so feel free to change
things like the separators for example.

- The calls table is sorted from the newest to the oldest call.
- Play button currently only plays .wav files. I'm using
AudioNotifierService.createAudio (just like in "Events") to play the
files, but if it's not a .wav I get an exception:
impl.neomedia.notify.PortAudioClipImpl.runOnceInPlayThread().215
Unsupported format of audio stream
javax.sound.sampled.UnsupportedAudioFileException: could not get audio
input stream from input URL

That's one thing we don't need to worry about with the simplified interface.

How about the call window btw? Starting a record is obvious of course.
Things become trickier when users continue clicking on the record button
after it was once pressed. We need to be careful not to overwrite an
existing file if the user clicks disables en re-enables a recording
within the same second. In this case we need to decide whether we'll be
trying to add to a previous file or simply start a second one (after
making sure that we have a unique name). Feel free to choose whatever
looks easier to you.

Cheers,
Emil

···

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#3

I guess Java Sound doesn't support the format of the audio file. Which
isn't to be unexpected since the file wasn't created using Java Sound
but using JMF. So my presumption is that such a file is more likely to
be successfully played back by JMF.

···

On Mon, Jul 26, 2010 at 11:30 PM, Dmitri Melnikov <dmitri807@gmail.com> wrote:

- Play button currently only plays .wav files. I'm using
AudioNotifierService.createAudio (just like in "Events") to play the
files, but if it's not a .wav I get an exception:
impl.neomedia.notify.PortAudioClipImpl.runOnceInPlayThread().215
Unsupported format of audio stream
javax.sound.sampled.UnsupportedAudioFileException: could not get audio
input stream from input URL

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#4

Hey all!

Just dropping in my 2 cents.

Hey Dmitri,

На 26.07.10 22:30, Dmitri Melnikov написа:
> Hi,
>
> I've been doing UI for call recording options. You can take a look at
> the screenshot to see it's current form. Some notes about it:
> - I placed it in a separate "Calls" options entry because I didn't
> find a suitable place for it.

I am wondering whether we really need the "management" interface.
Listing recorded calls, being able to play and delete them are all
features that users would probably be more comfortable doing through
applications they already know (e.g. VLC, iTunes, Windows Media Player,
etc.)

In my opinion, it is definitely not necessary, so it isn't needed that
"management interface"., but I think that it is desirable in the same way
that it is desirable to have a history of the existing logs. IMHO when one
would click play it should ask you to use an external program of your liking
and to that matter and/or adding at the listing of the calls a button that
opens the Windows Explorer/Finder/whatever on that directory would also be
nice to have. One thing that can be a plus regarding the simple listing of
the calls would be to add sortable columns to that list with the date on one
column and the name of the contact on the other.

Anyway, cool functionality! congrats!

···

On Mon, Jul 26, 2010 at 10:19 PM, Emil Ivov <emcho@sip-communicator.org>wrote:

I think all we need in the configuration form would be the possibility
to pick a default location for the records and specify whether calls
should always go there (rather than having to pop a file chooser).
Pretty much the same way firefox lets you configure downloads.

> Maybe it's better to just make a tab in "Audio".

Oh ... wouldn't it be cool to one day add video recording too :slight_smile:

Anyways, until then, the whole thing (i.e. the location specifier) would
probably hold in General. If not, we could also add it as one of the
options in "Advanced" for the time being.

> - Supported formats combo is supposed to list all available formats
> the calls can be saved in.

OK that one could also make sense in case user chooses to save in a
default location. Just saving them in a wav format would also be fine
for starters.

> - The default directory to save calls to is set to
.sip-communicator/calls.

This would indeed make sense in case we have our own playback and record
management GUI but if we are to remove it, we should probably choose a
more popular location like the desktop, my documents, or the downloads
directories. You may want to have a look at our file transfer feature to
see how we handle directories there.

> When the user changes it, he is asked if he
> wishes to move all files from the old directory to the new one.

> - I didn't find any better way than just to name the calls based on
> the current date.

That's ok I guess. My personal preference would go for a format that
would make them appear in a chronological order when shown within a file
navigator. Something like:

filename = YYYY-MM-DD.hh:mm:ss.<NAME>.wav
NAME = confcall | <contact-name>

The exact format is of course not that important so feel free to change
things like the separators for example.

> - The calls table is sorted from the newest to the oldest call.
> - Play button currently only plays .wav files. I'm using
> AudioNotifierService.createAudio (just like in "Events") to play the
> files, but if it's not a .wav I get an exception:
> impl.neomedia.notify.PortAudioClipImpl.runOnceInPlayThread().215
> Unsupported format of audio stream
> javax.sound.sampled.UnsupportedAudioFileException: could not get audio
> input stream from input URL

That's one thing we don't need to worry about with the simplified
interface.

How about the call window btw? Starting a record is obvious of course.
Things become trickier when users continue clicking on the record button
after it was once pressed. We need to be careful not to overwrite an
existing file if the user clicks disables en re-enables a recording
within the same second. In this case we need to decide whether we'll be
trying to add to a previous file or simply start a second one (after
making sure that we have a unique name). Feel free to choose whatever
looks easier to you.

Cheers,
Emil

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net