These are examples written by Bret McDanel <trixter AT 0xdecafbad.com>
In general, web apps are written in PHP, event socket apps are written
in perl.  The perl examples use FreeSWITCH::Client which is located in
svn root scripts/socket.  

Most of these examples are not useful in their current state, and require
some modification to make them useful.  They are to provide implementation
references for various tasks.  For example, xml-cdr will read the CDR records
from FreeSWITCH[tm] but does not process them because there is no way to
know how you will want them stored.  You would be required to implement
whatever database system (mysql, flat file, CSV, etc) and store the records
yourself, but it shows how you can receive the CDR records and manipulate 
them.


== LICENSE ==
All of these scripts are licensed under a public domain license unless
otherwise stated within the individual files.  What this means that I 
still maintain the copyright but you are totally free to do whatever 
with the programs whether commercial or FOSS.



== 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
	the ones you did not

validate-ivr.pl
	Perl app that does not connect to FreeSWITCH[tm] in any way
	but will walk through the IVR xml.  This lets you debug them
	with only a text based display (ssh, cmd.exe, whatever) and
	see what is going on.  Timeouts are honored as are all other
	flags and variables in the XML.  Its really only useful for
	debugging existing IVR menus and ensuring that it will do 
	what you want.

	usage:  validate-ivr.pl ivr.conf.xml main
	where the first arg is the xml file and the 2nd arg is the menu name

asyncsock.pl
	Perl app utilizing EVENT SOCKET that will bind to a port and 
	is called via the dialplan 'socket' application.  It will read
	DTMF building a string of DTMF after an interdigit timeout or
	total timeout.


callcredit.pl
	Perl app utilizing EVENT SOCKET that pings a webserver for each
	call in progress checking to see if credit still remains.  Can
	form the basis for a prepaid calling platform where instead of 
	reserving large amounts of credit, not allowing credit updates
	mid-call, or allowing customers to go negative by placing multiple
	concurrent calls.


calls.pl
	Perl app utilizing EVENT SOCKET that relays new call and hangup
	events to a webserver so that you can monitor in realtime calls
	that are active on a given switch.  All properties are relayed.


conf-dtmf.pl
	Perl app that will read DTMF events from a conference and play 
	a sound file.  Could be used as the basis for advanced custom
	menus from within a conference.  You need to bind the DTMF key
	to 'event' within conference.conf.xml to be sent to event socket.
	uses EVENT SOCKET


disa.js
	Javascript app that will enable DISA functionality
	with black/white lists, pins and other goodies


faxlib.jm
	Javascript class that integrates faxing - DEPRECATED
	this has litle use now that dptools has a fax detect and transfer
	to a given extension app


call-progress.pl
	PERL app utilizing EVENT SOCKET that will monitor RING/ANSWER/HANGUP
	events and issue a command at that time.


makecombinedfsxml.pl
	PERL app that makes freeswitch-combined.xml from a freeswitch.xml


regexptest.pl
	PERL app that tests regexps in CLI mode


softphone.pl
	PERL/TK app that functions like a softphone which lets you place
	calls from port audio.  Uses EVENT SOCKET


xml-cdr
	PHP xml-cdr web app that receives CDR entries enabling a web based
	CDR tracking facility in realtime


xml-curl
	PHP xml-curl web app that will deliver configuration files, dialplans
	and other goodies to FreeSWITCH[tm]


xml-rpc
	PHP xml-rpc web app that will let you monitor calls, confs and execute
	some commands to control conference members


vile
	This is vile's stuff, he didn't have his own directory when they were
	added and they are not yet moved into his repository
