Asterisk Flash Operator Panel
Copyright (c) 2006 Nicols Gudio.  All rights reserved.
http://www.asternic.org

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
For complete and up to date documentation, please visit the web page
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

What is Flash Operator Panel?
-----------------------------

The Flash Operator panel is a 'switchboard' application for the Asterisk PBX
system. It displays information about your Asterisk PBX activity in real
time via a standard web browser with Flash plugin. The display and button
layout is configurable, you can have more than a 100 buttons on the screen
at once. 

You can see at a glance:

   * What extensions are busy, ringing or available
   * Who is talking and to whom (clid, context, priority)
   * SIP registration status and reachability 
   * Meetme room status (number of users) in the room
   * Queue status (number of users waiting)
   * Parked extensions
   * Call duration Timers
   * Logged in Agents

You can perform these actions:

   * Hang-up a channel (double click the colored dot on the button)
   * Transfer a call leg via drag&drop (drag the phone icon on a button to
     another button)
   * Originate calls via drag&drop
   * Drag an available extension to an ongoing conversation and conference
     the three together. 
   * Change the callerid text to something meaningfull when transferring or
     originating a call
   * Mute/Unmute meetme participants

Requirements
------------

* You need PERL and basic knowledge on how to use Asterisk.

* You have to add a user to asterisk's manager.conf and reload asterisk for
  the changes to take effect.

* For the conference buttons, message waiting indication and automatic three
  way conferences, you need asterisk CVS-HEAD as of 5/25/2004

* You need flash player versions 7 and up

* You also need to define in your dialplan the conferences in a proper way 
  and in their own context, as explained in op_server.cfg comments.

* If you plan to use the "Info" box to set the callerid text when
  transferring or originating a call, you need to modify your dialplan. See
  extensions.conf.sample

* You also need to be wary, as English is not my first language.


Install
-------

1) Untar de package on a suiteable place, for example /usr/local
  (if you are reading this you probably already done that)

2) Copy the files in the 'flash' or 'dhtml' subdirectory to a suitable place 
   on your web server. If your web root is /var/www/html, you can create a 
   subdirectory 'panel' and copy the files there. The base files required
   for the flash client are index.html and operator_panel.swf, you can also
   copy the help files for your language.

   There are several ways (index files) to load the flash applet, try them
   out. You can modify the file help-xx.html files to your liking.

   The dhtml panel allows you to use javascript/dhtml to desing your own
   layout. But the client is limited to monitoring (you cannot perform
   actions yet)

3) Edit op_server.cfg and change the appropriate parameters for your setup. 

   "flash_dir" parameter must be the exact location of the directory where
   the html and swf files are placed (where you copied the files from step
   2 above)

   The rest of the parameters are well commented in the cfg file, basically
   you have to set the manager host, user and password. (Be sure to enable
   the manager in /etc/asterisk/manager.conf)

4) Edit op_buttons.cfg to suit your needs. The file is commented and its
   self explanatory.

5) Edit op_style.cfg to suit your needs. You can change the button size and
   colors, icon placement and size, etc. DO NOT modify the variable names,
   just the value after the equal sign and DO NOT use spaces. With proper
   adjusting, you can have more than a 100 buttons on the screen.

   You can change the toolbar layout by changing the number after the
   variable show_???. Each one represents a possible element in the toolbar.
   A value of 0 disables that element. A number represents the order in the
   toolbar it will be displayed, number one being the leftmost part of the
   toolbar. In the example configuration, all the toolbar elements are
   displayed in correlative order. Eg: if you do not want to display a DEBUG
   button, set the 'show_btn_debug' to 0. You can translate the text of the
   toolbar in the corresponding variables.

      --!! Please note !!---------------------------------------------------
      If you want to transfer an available channel to an already connected
      call, you have to configure your dialplan correctly and have the
      context properly defined, if you don't do that you will experience
      hanged channels and asterisk lockups. Thats because when you redirect
      a call within the asterisk manager with an incorrect contexts,
      asterisk does not handle the error gracefully.
       --!!-----------------------------------------------------------------


International Characters
------------------------

If you want to display foreign characters in button labels, you have to save
the configuration file with UTF-8 encoding. To convert the file to UTF-8
utilizing vi and the command line just perform:

vi -c ":wq! ++enc=utf8" op_buttons.cfg


Running
-------

The op_server.pl must run on the same computer as the web server, but not
necesarily on the machine where asterisk is installed.

When started, it writes the file 'variables.txt' to the http directory where
the flash applet is installed with configuration data. It must have
permissions to write to that directory.

You can run it daemonized using -d as its command line argument. There are
some example init scripts in the directory inits

If you want to start the server when the machine starts, you can add a line
similar to the following to your rc.local file (you have to replace the
values between '*' with the ones for your system, if you do not want to run
the op_server.pl as root, just su to that user:

(cd */path/*; su *operator-user* -c */path/*op_server.pl & )

Or better yet, use one of the init scripts provided.


Security
--------

Its not meant to be secure. You should take provisions yourself, like
limiting who can connect by means of .htaccess files, firewall rules, etc.
There is basic encryption for messages sent from the server to the client,
and the security code is sent with MD5. It will hide sensitive information
from the casual observer, but its not strong enough to send credit card
information. 


How to use it
-------------

Click the HELP button when running the Flash Operator Panel. Experiment.
Drag icons, move your mouse around. Click and double click when the arrow
turns into a hand.


Support
-------

For support or submitting bug reports, features requests, etc, please
subscribe to the mailing list by sending an empty email to
operator_panel-subscribe@lists.house.com.ar

Donations
---------

If you like the program, or have feature requests, you can contribute to the
cause by donating via paypal. Click the donate button on the webpage. You can
also contact me for custom works, or asterisk consultancy.

Thanks!


Credits
-------

MD5 Algorithm. Copyright:  
(C) 1991-2, RSA Data Security, Inc. Created 1991. All rights reserved.

TEA Encryption algorithm:  
Copyright (c) 2000, Peter J Billam c/o P J B Computing, www.pjb.com.au
