|Summary:||ASTERISK-16926: [patch] Voicemail problems when using only ogg.|
|Date Opened:||2010-11-08 03:59:48.000-0600||Date Closed:||2012-02-14 13:11:19.000-0600|
|Environment:||Attachments:||( 0) ogg_vorbis_use_libvorbisfile.patch|
|Description:||If I use only ogg as output format in voicemail, playback is stopped after less than a second. It is 100% reproducable other using ODBC or storage for messages, and using conf or ODBC for mailboxes. Trying to track the problem down I implemented the missing seek() function of the ogg_vorbis module and this problem stopped, everything worked perfectly again. I don't know if there is another bug in the core that if seek() returns -1 it gets crazy.|
Also in the meta file of messages (msg000x.txt) the duration is always 0 for ogg files because the tell() function is not implemented. Implementing it duration works tha same as any other format.
I will provide soon the patch that fixes them.
|Comments:||By: sque (sque) 2010-11-08 04:26:40.000-0600|
In the attachment you will find, a patch for format_ogg_vorbis.c that drops the previous implementation and uses libvorbisenc for decoding (http://www.xiph.org/vorbis/doc/vorbisenc/overview.html#BBR). I did this because there was no meaning messing with low-level api and duplicating work that already exist with more features. As a result the seek() and tell() functions are now fully implemented in read mode.
In writing mode, it is impossible for me to create seeking for VBR formats. I just added a statistics value, for tracking written uncompressed pcm samples, so that tell() can report in writing mode and eventually work the duration in voicemail.
By: Leif Madsen (lmadsen) 2010-11-18 14:15:19.000-0600
Thanks for the patch!
By: Jeffrey C. Ollie (jcollie) 2011-11-17 15:15:15.877-0600
Even though I'm the original author or format_ogg_vorbis, I've forgotten everything I know about the ogg/vorbis libraries so I can't really comment on a technical level. I'd love to see this patch get merged though as having ogg/vorbis support is important IMHO.
This bug/patch is also the subject of a recent bug opened against the Fedora Asterisk package.
By: David Woodhouse (dwmw2) 2011-11-17 16:03:31.695-0600
I use voicemail with 'format=ogg|wav' and this always used to work fine in my ancient Asterisk 1.2 setup; sending Ogg files as attachments to voicemail notification emails. On upgrading to 1.8 I found that it broke in two ways. The attached files were extended and seemed to include a quiet copy of my "unavailable" or "busy" message before the actual incoming message, and playback through VoiceMailMain() played only the first couple of seconds.
The above patch applies cleanly to 126.96.36.199 and fixes both problems.