Open PBX TODO
-------------

Testing information has been moved to doc/testing.txt
key
===
[] => still to be done for this release
[x] => completed
[L] => to be done for next release

[] determine how to treat echo canceller
   + should be default on, api func to turn off?
   + cut thru, CPU load issues
   + API function to switch on/off?

[] hi side tone level
   + test on two different PBX ports
   + what about when connected at home
   + measure erl of station and trunk

[] heard noise when another port ringing on Adel PBX
   + due to card or wiring?

[] AA prompts
   + should main prompt not name just 2 people, makes us seem small
   time?

[] change all prompts to human voice, rather than machine
   + do we need more meaningful file names for prompts?
   + maybe derive a naming nomenclature?

[] should all text files (inc src) have no more than 80 cols?
   + I cant read many files with "more", and look funny in emacs

[] is OS6 conf file up to date?
   + has it been tested?

[] user documentation
   [] what form (docbook, text file?)
   [] how much effort?
   [] installation guide?
   [] who?  
   [] picture/diagram of menu options
   [] quality of doco will say a lot to end users - influence point
   [] brainstorm - doco available of web interface?
   [] howto type list, e.g. howto transfer etc

[] need pbx.conf to be extensively annotated - self documenting

Questions for Ben
  [] how do I shut down a port using control port?
     + worked example?
     + should doco be in doc directory or src?
  [] is forcing 3 digit numbers a good idea?
  [] is [dialmap] redundant given and [profiles] redundant, e.g. when looking up extension number?
  [] need example with and without voicemail
  [] should we go to vm if we dial our own number?
  [] station dp handling code doesnt handle next number in dp, only
     ever looks for first number 
  [] does "dial plan" work?  see comments around line 299 of
     station.pl
  [] how are we going to handle recording aa prompt by punters
     + menu
     + upload wave file from web?
     + doco?
  [] why do we need all the ifs at start of wait_for_event in
      CTPort.pm

[] define external line key (0 or 9) in conf file
[] who creates vociemail directories
   + do we check they exist or have to set them up manually?

[] check for memort leask with goto in station.pl
    - is there a better way to write this?

[] web manipulation of config file
   - how to prevent two people modifying file at same time?

[] how does start menu interact with all on hold?
   + could be some nasty fail states

[] some odd issues when perl restarted but ctserver isnt
   + empty + spurious messages

[] gotos in trunk.pl - will these cause problems?

[] user doc notes
   - if trunk call left on hold for 2 mins, will be hung up
   - command for external hook flash, flash-#, or flash-*-2
   - describe transfer, note cant do blind transfer yet
   - glossary, carefully describe terms
   - low tech user focus, avoid jargon
   - note that flash, recall, manual toggling of hook switch are the
   same thing, give a few examples

[] do menu prompts tell us how to exit, e.g. *,# or just hangup
[] does IVR menu offer "to reach a human option"
[] we need a complete set of consistent prompts, e.g. same speaker and
   US/Australian speaker, and a way of swapping with config file.
   Need same person saying numbers as other prompts.

[] need performance tests for voicemail, cycle thru menus,
   leave/delete messages etc
  
[] how do we notify some one they have mail?
   + verbal prompt when they pick up phone?

[] install info
   + need tone detect or loop drop for aussie hangup detect, vm, etc,
   provide specific set up intstructions
   + list of reasons why VM wont work, e.g. bad directories etc
   + how to find,  read/grep logs 

[] vmail noficiation
   + how do we tell people thay have vmail
   [] email
   [] funny dial tone
   [] ring every now and again

[] use cases
   + type up a couple of typical installs
   + make sure our design can handle them
   + set up config files and test
   + document in install doco

[] default vm greeting, if no file recorded
[] install doco - makes greeting file and vmail paths automatically if
dont exisit to simplify install

[] blind transfer perf tests, give it a good thrashing

[] doco how to change config file, then restart a script from cmd line

doco maxmsg - only applies if vmails arent deleted, otherwise no limit
smtp, other voceimail params

doco externallinekey

[] OS6 conf file and testing

Further Tasks
-------------

[L] blind transfers - trunk would need
    make-internal-call state, generate ringback etc, hangup detect 
    an issue	
[L] automated conf file/start up scripts for testing
    [L] auto detection of pass/fail
[L] a lot of repeated code in CTPort.pm playfile sync and async, refactor
[L] different log levels to reduce amount of data, ctserver.cpp and
    perl
