# $Id: TODO,v 1.35 2002/03/24 17:48:35 nemies Exp $

Things that need to be done...


Needed For Fist Stable Release
-------------------------
*Code
- implement SNPP "HOLD" function
- have PCs shutdown on signal if active, but not sending a page.
*Docs
- finish sendpage-manual
- add info about "snpp-acl"
- find counting error for tempfail

Needed For Next Stable Release
------------------------------
- implement a list of addresses for SNPP server to listen on (for multihomed)
- do something so that queues that are waiting on a modem will run
  as soon as the modem is available.  How can I do this when there are
  multiple modems available?  Weird multi semaphore notifications queues
  based on modems?  Gah.  Strange.
- implement "dialretries" (attempt dialing again for PC)
- implement character-based translation tables
- create more fallback PC config options (temp-fail, etc)


Would Be Nice
-------------
*Code
- add warnings when seeing {0x00} chars in modem buffers.  Possible incorrect
  comm settings 8N1 vs 7E1, etc.
- do something about the 500 functions packed into "sendpage" instead of
  cleanly implemented in modules elsewhere.
- implement email notification fall-back for recips
- have all the conf files get handled by Makefile.PL  --  /etc dir?
- change PagingCentral module to deal with modems differently so we don't
  have to use a KeesConf object.
- change Recipient module to deal with macros differently so we don't
  have to use a KeesConf object.
- figure out how to do filelocking under Windows
- figure out what to replace my Syslog calls with under Windows
- add "include" verb to sendpage.cf for sucking in other files?  This allows
  for separate files for PCs and recip lists.
- implement "fieldsplits" (fields cannot be split across blocks for PC)
*Docs
- update API doc to reflect changes made for PageQueue, Page, and Recipient
- more general in-code commenting & documentation
- more API documentation for all the modules via POD
- write a data flow graph



Stuff I Thought Of, But Will Most Likely Never Need
---------------------------------------------------
- implement multiple TAP protocols? (are there real differences?  PG1, PG3, etc)
  I don't think I'll ever need this due to the "pc:fields", and "pc:proto"
  variables.


I'm Probably Never Going To Implement These Crazy Ideas
-------------------------------------------------------
- if you have A LOT of pages, you'd want multiple modems running for
  a single PC.  Since that would REALLY be a lot of pages, I'm going to
  leave out the idea of parallel tasking modems for the same PC.  That
  seems like insane overkill, but it's something that would be pretty
  cool for HIGH volume paging centers.  Some day, perhaps.
