[Freeswitch-svn] [commit] r13143 - freeswitch/trunk/scripts/contrib/trixter
FreeSWITCH SVN
trixter at freeswitch.org
Fri Apr 24 22:34:33 PDT 2009
Author: trixter
Date: Sat Apr 25 00:34:33 2009
New Revision: 13143
Log:
execute api commands from cron/windows scheduler/etc
Added:
freeswitch/trunk/scripts/contrib/trixter/apiexec.pl (contents, props changed)
Modified:
freeswitch/trunk/scripts/contrib/trixter/README
Modified: freeswitch/trunk/scripts/contrib/trixter/README
==============================================================================
--- freeswitch/trunk/scripts/contrib/trixter/README (original)
+++ freeswitch/trunk/scripts/contrib/trixter/README Sat Apr 25 00:34:33 2009
@@ -23,6 +23,9 @@
== FILE LIST ==
+apiexec.pl
+ Execute api commands from the console/cron/windows scheduler/etc
+
makemodconf.pl
This will create a modules.conf.xml from the build modules.conf
ideal for a new build to uncomment all modules you built and comment
Added: freeswitch/trunk/scripts/contrib/trixter/apiexec.pl
==============================================================================
--- (empty file)
+++ freeswitch/trunk/scripts/contrib/trixter/apiexec.pl Sat Apr 25 00:34:33 2009
@@ -0,0 +1,63 @@
+#!/usr/bin/perl
+# -*- mode:cperl; tab-width:4; c-basic-offset:4; c-indent-level:4; indent-tabs-mode:nil; -*-
+
+#
+# this script will execute api commands via xml-rpc. This can be handy if you have
+# some other program that needs to execute things but you dont have a need or ability
+# to write a full program. This makes it trivial to execute commands from cron/windows scheduler
+# or from some other interface, especially if you are not a developer.
+#
+# the api commands are just as you would type them in the CLI, the output is printed to STDOUT
+#
+# examples:
+# apiexec.pl -h
+# apiexec.pl status
+# apiexec.pl -p password -P 8021 -H 1.2.3.4 "originate sofia/mydomain.com/123\@10.0.0.1 &playback(/sounds/mysound.raw) XML default \"CID NAME\" \"12345678980\""
+
+use FreeSWITCH::Client;
+use Getopt::Std;
+
+
+# Default values
+my $password = "ClueCon"; # the password for event socket
+my $host = "localhost"; # the hostname to connect to
+my $port = 8021; # the port to connect to
+
+
+
+my %options=();
+my $fs;
+
+sub usage()
+ {
+ print "Usage: $0 [-p pass] [-P port] [-H host] [-h] <command>\n";
+ exit;
+ }
+
+
+ # this connects to the event socket
+ sub es_connect()
+ {
+ eval {
+ $fs = init FreeSWITCH::Client {-password => $password, -host => $host, -port => $port};
+ if(defined $fs) {
+ $fs->sendmsg({'command' => 'event plain'});
+ }
+ } or die "Error connecting: $!\n";
+ }
+
+
+ getopts("p:P:H:h",\%options);
+
+ usage() if(!$ARGV[0] || defined $options{h});
+ $password = $options{p} if defined $options{p};
+ $host = $options{H} if defined $options{H};
+ $port = $options{P} if defined $options{P};
+
+ es_connect();
+ my $reply = $fs->command($ARGV[0]);
+ if ($reply->{socketerror}) {
+ die "socket error";
+ }
+ print "$reply\n";
+
More information about the Freeswitch-svn
mailing list