Doug, Mike,
Bryan... thanks all... need to read more about
cron... each set, as well as the combined comments
helped me tremendously. I copied them here so I
can keep them together.
Thanks much!
Bob
kk6ecm
-----Original
Message-----
From: app_rpt-users-bounces@ohnosec.org
[mailto:app_rpt-users-bounces@ohnosec.org]
On Behalf Of Bryan D. Boyle
Sent: Sunday, March 09, 2014 9:30 AM
To: app_rpt mailing list
Subject: Re: [App_rpt-users] app_rpt script
execution
Read up on
the 'cron' command.
Use
asterisk to do what asterisk does (interface and
manage the radios).
Use the
operating system to do what operating systems do
(download
files,
manage network connections, disk I/O, etc.)
Write a
shell script that downloads the file on a regular
schedule and
save the
mp3 or wav or whathaveyou file to disk (wget/curl
is your friend).
Write a
shell script to play the script, assign it to a
dtmf command in
rpt.conf
use the
schedule stanza inside asterisk to execute the
dtmf command you
assigned to
the shell script at the requisite time.
Again, use
asterisk to do what aterisk does.
Use the OS
to do what it's supposed to do.
Simplifies
things immensely.
Bob,
The easiest way to execute scripts that command
app_rpt is outside of rpt.conf in this way....
Create a script and store it somewhere (example) -
#! /bin/bash
/usr/sbin/asterisk -rx "rpt fun 27225 *7128190"
sleep 10
/usr/sbin/asterisk -rx "rpt fun 27225 *7327133"
I call this script alaska_connect and it is in
/etc/asterisk/wa3dsp Make sure it s executable -
chmod 750 <filename>
Then create a cron job to tell when to execute it
-
44 12 * * 1-6 /etc/asterisk/wa3dsp/alaska_connect
This says execute
/etc/asterisk/wa3dsp/alaska_connect at 12:44 (PM
the clock is 24 hour) on Monday through Saturday
Use crontab -e to edit cron or crontab -l to
list what is there. Google cron or crontab to see
cron options.
As you can see this has nothing to do with
anything inside of rpt.conf Remove any scheduled
jobs in rpt.conf especially if they conflict with
doing it in this way externally.
The script can be any system command or anything
you could do from the command prompt, download a
file, reboot the system, send commands to app_rpt,
restart asterisk, whatever.
73 Doug
WA3DSP
http://www.crompton.com/hamradio
Some additional here bob...
I
did not read you message properly the first
time.
If
you are not sure where your script is running
from (like you installed something and do not
understand how it works) , it is probably being
executed from the system cron. /etc/crontab (do
not edit this file with a "windows" based
editor)
It
is probably calling a script file that you will
have to look in crontab to find what and where
it is.
So
if you are trying to change that to the app_rpt
system sched/macro, you will need to remove it
from crontab first.
Here
is some info on using the app_rpt macro/sched
Without
knowing the exact nature, I can give some
advice on this as I do run scripts from the
app_rpt sched over the use of system cron
and there are good and bad doing it that
way.
But
here is some guidance...
You
can put the scripts in the /etc/asterisk
folder (I use /etc/asterisk/scripts ) but
you need to make sure you set file
permissions to say 755 on the script file
and be sure to call them specifically from
their location or set a path to your
directory.
Also
note that any item you call in the script
would have the same permission/path problem
so do not assume you can run a file/command
(as you would from "root" command line)
without saying where it is with a path to it
in the command line. And having the
permissions set to run it.
If
you are trying to keep security on files,
you might run them as user: "asterisk".
Hope
that is of some value...
I’m
working on a node that downloads a
file from the internet weekly, but the
time seems to vary. I want to change
this to a specific day and time each
week, but cannot determine what is
activating the script. The script is
located in /etc/asterisk/. rpt.conf
uses the file per its [schedule]
stanza. I have two questions:
Does
the server only load/execute files in
/etc/asterisk each time asterisk is
started?
How
can I setup the system so it executes
this script at a given time each week?