Changes to QuickPage from v3.2 to v3.3 --------------------------------------- - Building QuickPage has been greatly simplified by GNU autoconf. All you need to do is unpack the tar file, type "./configure" and then type "make". It's that simple. - QuickPage now has builtin support for Wietse Venema's "tcp_wrappers" package. See the INSTALL guide for more information. - In the configuration file, groups and pagers are no longer permitted to have the same names. Every group and pager entry must have a unique name. This should help administrators detect configuration errors more easily. - When invoking sendmail to sending status notifications, the end of the message is now signified by closing standard input to the child instead of writing the . sequence. This should allow QuickPage to work with programs other than sendmail (such as the qmail). - Null characters received from the remote paging service are now ignored. - QuickPage now gives up after 5 attempts when trying to log into the paging service. Previous versions used to retry forever or until the remote modem disconnected. - An initial carriage return is sent, followed by a 1 second delay, before sending the initialization string to the modem. Without this, the initialization command sometimes failed on some modems due to unclean disconnects from previous connections. - Multiple modems are supported. A new "modem" keyword in the configuration file allows modem-specific initialization and dialing commands to be associated with each modem. A paging service may include references to multiple modem definitions. This does not mean pages will be processed in parallel--see the man page for details. - A new "synchronous" major keyword specifies whether new pages should be processed immediately or whether the server should wait until the normal sleep time (-q argument) as expired. The default is true (process new pages immediately). - A new "lockdir" major keyword can be used to override the compiled in lock directory. - A new "pidfile" major keyword causes the server to write its process ID to the specified file. - A new "sigfile" major keyword specifies an alternate signature to be used in e-mail status notification messages. - A new "initcmd" minor keyword is allowed in the modem and service specifications. - A new "phone" minor keyword is allowed in the service specification. If present, the value of this keyword will be appended to the dialcmd when dialing the modem. - A new "msgprefix" minor keyword is allowed in the service specification to indicate whether the sender's name is prefixed to each message segment. - The "dialcmd" minor keyword used for service definitions is now obsolete. It is still supported in this release for backward compatibility, but it will not be supported in future releases. Instead, use the new "phone" keyword in combination with a modem specification. - Better error checking is done when the configuration file is being read. - A "default" paging service now always exists, even if it is not specified in the configuration file. Compiled in default settings for the default service may be overridden in the configuration file. - The configuration file now supports the "include" keyword to specify the name of another configuration file that should be inserted at that point. This allows the administrator to split the configuration file into multiple files if desired. - The page queue is locked during queue runs so that only one child can process the queue at a time. - Bad pages are renamed to Bxxxxxxx to make it easier for administrators to locate and examine/remove them. - Lock files are now created with mode 666, regardless of the umask in effect when QuickPage is started. - Previous versions read the configuration file many times (for each SNPP connection, each queue run, etc.). Now, the configuration file is only read during startup and on receipt of SIGHUP. - A new SNPP command, XWHO, can be used by clients to determine which pagers are supported by the server. This command is not part of the official SNPP protocol as specified in RFC-1861 and it is only implemented here to overcome the current protocol's deficiency. If the protocol is ever revised in the future to include this functionality, support for the XWHO command will be dropped in favor of whatever facilities are specified at that time. Do not consider XWHO a stable command. It may go away in a future version of QuickPage without notice. - The modem, service, pager, and group major keywords now allow a "text" minor keyword that can be used to associate an arbitrary text string with each of these entries. Any pager or group entry that contains a text string will be shown by the SNPP "XWHO" command (not an official command specified by RFC-1861). - Previous versions forked two daemon processes, one to handle incoming SNPP connections and another one to process the page queue. Starting with v3.3, QuickPage only uses one main daemon process which forks short-term child processes when necessary. - The return code of the client now correctly reflects whether the page was successfully transmitted to the server. - Characters are stripped to 7 bits before transmitting them to the paging service. Also, control characters are escaped by first sending 0x1A and then sending the ASCII character obtained by adding 0x40 to the ASCII value of the control character. This is required by the IXO/TAP protocol. - When using interactive mode with the -i flag, page groups are now expanded correctly. - QuickPage now prints an error message if the -C option is specified on the client side. - Root privileges are always dropped, even during interactive mode. Too many people were being confused when QuickPage worked with the -i flag but failed in normal client/server mode. - If standard input is not a tty, QuickPage assumes it is reading input from a pipe and it will not print any input prompts. - A negative argument to the -q flag on the command line will start an SNPP daemon without doing any queue processing. Incoming pages will be queued and will not be forwarded to a paging service. This is not very useful but it may come in handy during debugging. - A zero argument to the -q flag (i.e. -q0) will cause QuickPage to process the queue one time and exit. This can be handy for forcing queue runs without enabling SNPP services. - A year-2000 bug was fixed. Prior to v3.3, if the -a option was used on the command line to specify a hold time after Dec 31 23:59:59 1999, the time was transmitted to the server incorrectly, causing the server to reject the page. - Many minor bug fixes are included. Changes to QuickPage from v3.1 to v3.2 --------------------------------------- - The QuickPage source is totally lint free (at least when compiled on Solaris 2.x systems). - An ANSI compiler (such as gcc) is now required for building QuickPage. I really didn't want to do this, but one of my goals was to make QuickPage "lint free" and I just couldn't do that with varargs without making the function declarations ANSI compliant. I apologize for any hardships this may cause. However, I suspect most people are using ANSI compilers anyway, this hopefully won't be much of a problem. - The long awaited "e-mail status notification" is here. Pages submitted with a high priority (i.e. level 0) cause e-mail to be sent to the submitter whenever a page succeeds or fails. - A new keyword ("administrator") can be used in the configuration file to notify the QuickPage administrator of failed pages. - Page groups are now supported. A new keyword ("group") can be used in the configuration file to specify page groups. Group members can have optional duty schedules so they won't be paged unless they're on duty. - A new -P option like was added which works exactly like the existing -p option, with the exception that any -a, -c, and -l options are not reset to their default values. - A bug in previous versions of QuickPage required the "password" keyword in a service specification to start with "1" in order to comply with the IXO/TAP protocol specification. This typo has been fixed and a service password is no longer required. Any "password=1" entries in qpage.cf should be removed unless you know for a fact your service requires them. - Pages now have unique message IDs which can be used to track status via syslog messages. - The -d flag now keeps the daemon in the foreground and prints messages to stderr instead of logging them via syslog(). - Using the -i flag as root now prints a warning message telling the user that daemon mode may behave differently since it doesn't run as root. - A new -Q flag can be used on the QuickPage server to list all pages currently in the page queue. - Queue files now contain the submitter's hostname. - A "client only" version is now supported which should compile on just about every platform. - Previously, if a page to multiple recipients failed for one recipient, everyone would get a another copy on successive retries. This has been fixed. - The "goodtries" counter was written to the queue file correctly but it was ignored when the file was read. This caused pages to be retried forever, regardless of the "maxtries" setting in the configuration file. This has been fixed. - It is no longer a fatal error for the client if the SNPP server refuses to accept CALLerid information. - Use 8-bit bytes if not using parity. - Service names are included in log messages. - The QuickPage source code is now more compatible with other operating systems. - The code which parses e-mail messages (the -m option) is now more robust. - The SEND command now performs a RESEt before returning. - The LEVEl command now returns a valid response code. Changes to QuickPage from v3.0 to v3.1 --------------------------------------- - A new -m option tells the client to read an e-mail message from standard input. Apparently lots of people wanted this even though it goes against the intent of RFC-1861. - Multiple SNPP servers are permitted for redundancy. - The argument to the -a option can now be specified either as YYMMDDHHMMSS or by using the previous syntax. - The time specified by the HOLDuntil command is now computed correctly when a timezone is supplied. - Some of the messages returned by the SNPP server are now slightly more intuitive. - Whitespace in the CALLerid argument is now preserved. - Pages longer than 1024 bytes are now handled correctly.