[App_rpt-users] Access Command Mode With A Macro
Tim Sawyer
tim.sawyer at me.com
Thu Aug 1 03:43:03 UTC 2013
For this sort of functionality (and more) check out https://github.com/tsawyer/allmon
--
Tim
:wq
On Jul 31, 2013, at 7:09 PM, Bryan D. Boyle <bdboyle at bdboyle.com> wrote:
> On 7/31/2013 9:41 PM, Bryan D. Boyle wrote:
>> simply, no
>
> That being said...there's lots of tricks you can do. For instance, if
> you have a web server open on the same lan segment or subnet accessible
> from the asterisk box, you can make sure the manager function is
> open...and, using a script (I have no idea where it came from, so, if
> anyone claims authorship...that's fine, I got it from Paul KC2VRJ)
> called newcontrol.php, and a web page that posts values to it, you can
> pretty much control your repeater from a web page (put some
> authentication around it, ok?)
>
> And, oh, you'll have to pick up the StarAstAPI.php script that's
> distributed under the GNU Lesser license.
> Note, this also happens over a clear channel by default, so, you
> probably don't want to do this across the net...better, perhaps to stand
> up a simple web server on the asterisk box itself and use the looparound
> address to talk to it...
>
> --
> <?php
>
> # Title: newcommand.php
> # Author: Unknown, but provided to me by Paul Nannery KC2VRJ
> # Full credit acknowledged if original author ID'd
> # Mods by: Bryan Boyle WB0YLE
> # Date: 8 December 2012
> #
> # This bit of php script takes two values:
> # the first being the node to talk to,
> # and the second, the DTMF command that's being sent
> # and echoing it out.
> #
>
> if ($_POST) {
> $node = $_POST['node'];
> $cmd = $_POST['cmd'];
> }
> else {
> $node = $argv[1];
> $cmd = $argv[2];
> echo "Command $cmd is being sent to $node\n\n";
> }
> # Include StarAstAPI:
>
> require_once './StarAstAPI.php';
>
> # Connect and log in:
> #
>
> $ami = new AstClientConnection();
>
> #
> # Login is from the /etc/asterisk/manager.conf credentials as
> # configured in your base directory on your system.
> # user password ast system port
> # vv vv vv vv
>
> if ($ami->Login( 'admin', 'changeme', 'asteriskboxIPAddress', 5038 )) {
> $rp = $ami->GetResponse('1');
> //echo $rp->ToString();
> } else {
> exit(1);
> }
> # Send the following packet:
> # ACTION: Command
> # command: rpt fun $node# $command
> #
>
> $data = new AstPacketData;
> $data->AddKVPair( 'Action' , 'Command' );
> $data->AddKVPair( 'command' , "rpt fun $node $cmd" );
> $packet = new AstPacket;
> $packet->SetAstPacketType( 'Action' );
> $packet->SetAstPacketData( $data );
> $ami->SendPacket( $packet );
>
> #
> # Log out -- not strictly necessary, but cleaner:
> #
>
> $ami->Logoff();
>
> #
> # Unfortunately, StarAstAPI isn't totally discreet.
> # It does this:
> # echo "Logoff Called from somewhere ...";
> # socket_close($this->mSocket);
> #
>
> echo "\n";
> ?>
> --
>
> Sample page that calls this script with pull-down values (not totally
> HTML compliant, I just did the bare minimum with the header values...):
>
> <html>
> <head>
> <title>Test Control Form</title>
> </head>
> <body>
>
> <h3>Node Control</h3>
> <form target="_self" method="post" action="newcontrol.php">
> <table border="0">
> <tr>
> <td>Node Number:</td>
> <td>
> <select name="node">
> <option value="XXXXX">220 Machine</option>
> <option value="XXXXX">900 Machine</option>
> <option value="XXXXX">Bucks Hub</option>
> <option value="XXXXX">440 Machine</option>
> <option value="XXXXX">R&D/Development Hub</option>
> <option value="XXXXX">144 Machine</option>
> </select>
> </td>
> </tr>
> <tr>
> <td>Command to run:</td>
> <td>
> <select name="cmd">
> <option value="*XXXX">Play Weather (220)</option>
> <option value="*XXXX">Play Forecast (220)</option>
> <option value="*XXXX">W3SK Connect</option>
> <option value="*XXXX">W3SK Disconnect</option>
> </select>
> </td>
> </tr>
> <tr><td></td>
> <td>
> <input type="submit" value="Transmit" />
> </td>
> </tr>
> </table>
> </form>
> <div id="response"></div>
> </body>
> </html>
>
> ----
>
> Note, these are just a proof of concept/hacked together page...the
> option values for the select name="cmd" in the web page are the DTMF
> commands that call the function stanza for the node in question. SO,
> while all my nodes may have a common *1XXXX disconnect sequence (bing
> connected to the same hub in question, they can either 1) send directly
> a DTMF sequence to a node, 2) call a cmd,script to run a shell script,
> or 3) call a cmd,shell/executable program to do something.
>
> Improvements are left as an exercise to the reader. Note, these ideas
> are so primitive, they really need to be tweaked. But some more grist
> for the mill.
>
> BB
>
>
> _______________________________________________
> App_rpt-users mailing list
> App_rpt-users at ohnosec.org
> http://ohnosec.org/cgi-bin/mailman/listinfo/app_rpt-users
More information about the App_rpt-users
mailing list