Michael Kamleitner
2008-Jan-17 20:15 UTC
[asterisk-users] buffer-issue when piping live-streams into musiconhold
Hi Folks, I'm currently trying to configure musiconhold (on a asterisk-1.4.17) for replaying a live mp3-stream (Icecast2). after reading the related material on voip-info and several other pages, I've successfully tried out mpg132, madplay and mplayer to pipe a stream into moh. however, there is one major problem involving some kind of buffer-issue. let me try to explain this problem using a timeline: 10:00 I'm calling the pbx, musiconhold starts correctly to play the live-stream (almost live, with very small delay) - that's OK. 10:01 I hangup. -- than I pause for 20 min -- 10:20 I'm calling a second time. However moh now doesn't stream live, but starts to continue playing the stream from 10:01. This goes on for about 30secs, then the replay stops for a second and continues at the correct position (once again, rather "live"). along I get this message at the console: [Jan 17 20:37:15] NOTICE[6220]: res_musiconhold.c:544 monmp3thread: Request to schedule in the past?!?! [Jan 17 20:37:15] NOTICE[6220]: res_musiconhold.c:544 monmp3thread: Request to schedule in the past?!?! I've installed the ztdummy-module as I've read that the message "Request to schedule in the past?!?!" might have something to do with that, however this didn't help. It looks like there's some kind of buffering going on... Thanks a lot for any suggestions, at this point I'm rather clueless ;) regards, michael musiconhold.conf: [default] mode=custom application=/etc/asterisk/mohstream.sh mohstream.sh #!/bin/bash /usr/bin/wget -q -O - http://my.stream.com:8000 | /usr/bin/madplay -Q -z -o raw:- --mono -R 8000 -a -12 - -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20080117/bbaa0bf2/attachment.htm
Russell Bryant
2008-Jan-17 20:52 UTC
[asterisk-users] buffer-issue when piping live-streams into musiconhold
Michael Kamleitner wrote:> 10:00 I'm calling the pbx, musiconhold starts correctly to play the > live-stream (almost live, with very small delay) - that's OK. > 10:01 I hangup. > > -- than I pause for 20 min -- > > 10:20 I'm calling a second time. However moh now doesn't stream live, but > starts to continue playing the stream from 10:01. This goes on for about > 30secs, then the replay stops for a second and continues at the correct > position (once again, rather "live"). along I get this message at the > console:<snip>> musiconhold.conf: > > [default] > mode=custom > application=/etc/asterisk/mohstream.sh > > mohstream.sh > > #!/bin/bash > /usr/bin/wget -q -O - http://my.stream.com:8000 | /usr/bin/madplay -Q -z -o > raw:- --mono -R 8000 -a -12 -Most players don't work quite correctly with Asterisk MOH. For it to work the way you expect, the player you are using must throw away the audio when Asterisk isn't currently reading from the stream. There was a magic version of mpg123 (0.59r IIRC) that did that, and that is why it was the recommended version. If you're reading from a raw TCP stream, then you can use the small streamplayer utility included with Asterisk. Otherwise, I don't really have a good suggestion for you right now. I suppose that you could use some sort of hack to ensure that music on hold is always playing so that the stream is being serviced. extensions.conf: [moh_hack] exten => hack,1,Answer exten => hack,n,StartMusicOnHold(default) exten => hack,n,While(1) exten => hack,n,Wait(300) exten => hack,n,EndWhile() *CLI> originate Local/hack at moh_hack application Echo -- Russell Bryant Senior Software Engineer Open Source Team Lead Digium, Inc.