Hi all, A long time ago I built an Asterisk system that plays IceCast streams via moh.
extensions.conf: Exten => moh,1,Set(SIP_CODEC=ulaw) Exten => moh,2,Answer Exten => moh,3,MusicONHold(test_new) Exten => moh,4,Hangup musiconhold.conf ; test_new [test_new] mode=custom application=/etc/mystreams/test_new.sh test_new.sh #!/bin/bash wget -q -T 120 -O - 'http://myURL.com/my_test_stream' | /usr/local/bin/madplay -Q -o raw:- --mono -R 8000 -a -10 - Over all this does work good however: 1) I want to be able to add a few hundred streams per box. Not all streams are being listed to at once. Once you add a MOH class to musiconhold.conf it stays up forever (which I can understand why). When trying realtime madplay wont be loaded until it's called in the dial plan. After that it is in Asterisk until I restart asterisk. If we have 20-30 streams it's OK but once that grows it can bog down the machine. 2) I found that it for some reason the stream returns a 404 (it goes off line etc.) then 10-15% of one core gets locked up until the stream comes back online. The issue is that if a few streams have an issue then I am locking up one care. From debuging the scripts it seems Asterisk keeps calling my bash script over and over. In the full I get: [2016-03-14 06:39:23] WARNING[12534] res_musiconhold.c: poll() failed: Interrupted system call [2016-03-14 06:39:23] WARNING[12534] res_musiconhold.c: poll() failed: Interrupted system call I tried using realtime along with a script that would check each stream and if there was a 404 to delete it from MySQL. This did not help. Asterisk would keep repeating the above logs till Asterisk was restarted. Is there any way to have Asterisk remove a class if it's not in use? What would be the right way to go about building such a system? EDIT: I found that adding a simple sleep 2 to my bash script would slow things down and if a stream went down it would lower the CPU usage by a lot. TIA. Dovid
-- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users