I am looking for some people willing to test out an updated process for streaming app_rpt out to Broadcastify (or anything else that reads audio from outstreamcmd=). I'm looking to introduce a process where outstreamcmd= is configured to use a small helper application rpt_audio_writer. This helper application takes the injected audio out of app_rpt and writes it non-blocking to a named pipe.
Other applications, notably in this use case the new asl-broadcastify, would read the audio from the named pipe and then stream it to the target. This would allow for restarting a failed stream without having to cycle all of asterisk.
If you're interested in testing, please do the following as root (i.e. sudo -s):
Change your repository to "devel" with asl-repo-switch -l devel
Update your apt cache with apt update
Run an upgrade - if you're current all you should get is asl3-3.18.2-1. Please note that with this test release, the asl3 package is changing from an "all architectures" to an architecture-specific package. Also node that 3.18.2 is identical to current 3.18 with only the changes below in it.
In /etc/asterisk/rpt.conf edit your outstreamcmd= to be something like:
In /etc/asterisk/broadcastify, copy 1999.conf.example to NODE.conf. In this example, the file would be 63001.conf.
Edit /etc/asterisk/broadcastify/63001.conf to match your Broadcastify channel information. This information is in your ezstream.xml file if you have one or is in the Broadcastify portal under your particular feed's "Feed Technical Details".
Enable the asl-broadcast unit template for your node. For example: systemctl enable asl-broadcastify@63001.
Start the unit - systemctl start asl-broadcastify@63001
Watch for your feed to turn green (again) in Broadcastify and then do some testing. You can check startup errors with journalctl -xeu asl-broadcastify@63001
With the unit templates, you can create an infinite number of streams for each node on a given server. Just repeat steps 4-11 for each node number.
Funny this is exteremely timely as I was about to go restart my node since Ezstream had crashed....
So yes I'd be more than happy to be a tester.
I've done what you said and it never went live. I've pulled the start up errors, from what I can interpret it looks like I don't have ffmpeg:
root@localhost:/etc/asterisk/broadcastify# journalctl -xeu asl-broadcastify@1501
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ The unit asl-broadcastify@1501.service has entered the 'failed' state with result 'exit-code'.
May 16 15:07:03 localhost systemd[1]: asl-broadcastify@1501.service: Scheduled restart job, restart counter is at 3.
░░ Subject: Automatic restarting of a unit has been scheduled
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ Automatic restarting of the unit asl-broadcastify@1501.service has been scheduled, as the result for
░░ the configured Restart= setting for the unit.
May 16 15:07:03 localhost systemd[1]: Stopped asl-broadcastify@1501.service - Broadcastify stream encoder for node 1501.
░░ Subject: A stop job for unit asl-broadcastify@1501.service has finished
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ A stop job for unit asl-broadcastify@1501.service has finished.
░░
░░ The job identifier is 107028 and the job result is done.
May 16 15:07:03 localhost systemd[1]: Started asl-broadcastify@1501.service - Broadcastify stream encoder for node 1501.
░░ Subject: A start job for unit asl-broadcastify@1501.service has finished successfully
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ A start job for unit asl-broadcastify@1501.service has finished successfully.
░░
░░ The job identifier is 107028.
May 16 15:07:03 localhost asl-broadcastify[222086]: /usr/bin/asl-broadcastify: line 52: exec: ffmpeg: not found
May 16 15:07:03 localhost systemd[1]: asl-broadcastify@1501.service: Main process exited, code=exited, status=127/n/a
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ An ExecStart= process belonging to unit asl-broadcastify@1501.service has exited.
░░
░░ The process' exit code is 'exited' and its exit status is 127.
May 16 15:07:03 localhost systemd[1]: asl-broadcastify@1501.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ The unit asl-broadcastify@1501.service has entered the 'failed' state with result 'exit-code'.
May 16 15:07:08 localhost systemd[1]: asl-broadcastify@1501.service: Scheduled restart job, restart counter is at 4.
░░ Subject: Automatic restarting of a unit has been scheduled
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ Automatic restarting of the unit asl-broadcastify@1501.service has been scheduled, as the result for
░░ the configured Restart= setting for the unit.
May 16 15:07:08 localhost systemd[1]: Stopped asl-broadcastify@1501.service - Broadcastify stream encoder for node 1501.
░░ Subject: A stop job for unit asl-broadcastify@1501.service has finished
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ A stop job for unit asl-broadcastify@1501.service has finished.
░░
░░ The job identifier is 107108 and the job result is done.
May 16 15:07:08 localhost systemd[1]: Started asl-broadcastify@1501.service - Broadcastify stream encoder for node 1501.
░░ Subject: A start job for unit asl-broadcastify@1501.service has finished successfully
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ A start job for unit asl-broadcastify@1501.service has finished successfully.
░░
░░ The job identifier is 107108.
May 16 15:07:08 localhost asl-broadcastify[222093]: /usr/bin/asl-broadcastify: line 52: exec: ffmpeg: not found
May 16 15:07:08 localhost systemd[1]: asl-broadcastify@1501.service: Main process exited, code=exited, status=127/n/a
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ An ExecStart= process belonging to unit asl-broadcastify@1501.service has exited.
░░
░░ The process' exit code is 'exited' and its exit status is 127.
May 16 15:07:08 localhost systemd[1]: asl-broadcastify@1501.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ The unit asl-broadcastify@1501.service has entered the 'failed' state with result 'exit-code'.
So I went ahead and got ffmpeg then installed it (version 5.1.9). Still seems like it isn't finding ffmpeg though.
root@localhost:~# systemctl start asl-broadcastify@1501
Job for asl-broadcastify@1501.service failed because the control process exited with error code.
See "systemctl status asl-broadcastify@1501.service" and "journalctl -xeu asl-broadcastify@1501.service" for details.
root@localhost:~# journalctl -xeu asl-broadcastify@1501
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ Automatic restarting of the unit asl-broadcastify@1501.service has been scheduled, as the result for
░░ the configured Restart= setting for the unit.
May 16 15:17:55 localhost systemd[1]: Stopped asl-broadcastify@1501.service - Broadcastify stream encoder for node 1501.
░░ Subject: A stop job for unit asl-broadcastify@1501.service has finished
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ A stop job for unit asl-broadcastify@1501.service has finished.
░░
░░ The job identifier is 390 and the job result is done.
May 16 15:17:55 localhost systemd[1]: Started asl-broadcastify@1501.service - Broadcastify stream encoder for node 1501.
░░ Subject: A start job for unit asl-broadcastify@1501.service has finished successfully
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ A start job for unit asl-broadcastify@1501.service has finished successfully.
░░
░░ The job identifier is 390.
May 16 15:17:55 localhost asl-broadcastify[764]: /usr/bin/asl-broadcastify: line 52: exec: ffmpeg: not found
May 16 15:17:55 localhost systemd[1]: asl-broadcastify@1501.service: Main process exited, code=exited, status=127/n/a
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ An ExecStart= process belonging to unit asl-broadcastify@1501.service has exited.
░░
░░ The process' exit code is 'exited' and its exit status is 127.
May 16 15:17:55 localhost systemd[1]: asl-broadcastify@1501.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ The unit asl-broadcastify@1501.service has entered the 'failed' state with result 'exit-code'.
May 16 15:18:00 localhost systemd[1]: asl-broadcastify@1501.service: Scheduled restart job, restart counter is at 5.
░░ Subject: Automatic restarting of a unit has been scheduled
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ Automatic restarting of the unit asl-broadcastify@1501.service has been scheduled, as the result for
░░ the configured Restart= setting for the unit.
May 16 15:18:00 localhost systemd[1]: Stopped asl-broadcastify@1501.service - Broadcastify stream encoder for node 1501.
░░ Subject: A stop job for unit asl-broadcastify@1501.service has finished
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ A stop job for unit asl-broadcastify@1501.service has finished.
░░
░░ The job identifier is 470 and the job result is done.
May 16 15:18:00 localhost systemd[1]: asl-broadcastify@1501.service: Start request repeated too quickly.
May 16 15:18:00 localhost systemd[1]: asl-broadcastify@1501.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ The unit asl-broadcastify@1501.service has entered the 'failed' state with result 'exit-code'.
May 16 15:18:00 localhost systemd[1]: Failed to start asl-broadcastify@1501.service - Broadcastify stream encoder for node 1501.
░░ Subject: A start job for unit asl-broadcastify@1501.service has failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ A start job for unit asl-broadcastify@1501.service has finished with a failure.
░░
░░ The job identifier is 470 and the job result is failed.
May 16 15:21:51 localhost systemd[1]: asl-broadcastify@1501.service: Start request repeated too quickly.
May 16 15:21:51 localhost systemd[1]: asl-broadcastify@1501.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ The unit asl-broadcastify@1501.service has entered the 'failed' state with result 'exit-code'.
May 16 15:21:51 localhost systemd[1]: Failed to start asl-broadcastify@1501.service - Broadcastify stream encoder for node 1501.
░░ Subject: A start job for unit asl-broadcastify@1501.service has failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ A start job for unit asl-broadcastify@1501.service has finished with a failure.
░░
░░ The job identifier is 936 and the job result is failed.
lines 140-220/220 (END)
That's what I had done earlier and it still didn't start, but just tried again and the log says that the service has started. The feed is not showing online though after waiting about 10 minutes
Try running it as bash -x /usr/bin/asl-broadcastify 1501 and paste in the output. Make sure you blank out the ICECAST_PASSWORD variable. You should be getting one line of output that says "Guessed Channel Layout....". The fact th at it's not means ffmpeg is silently crashing for you.