Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
qpage(1)		    General Commands Manual		      qpage(1)

       qpage  -	 SNPP  client/server  for sending messages to an alpha-numeric

       qpage [ -dhimQv ] [ -a [+][dd+]hhmm | -a	YYMMDDHHMMSS ] [ -c coverage ]
       [  -f from ] [ -l level ] [ -p pagerid ]	[ -P pagerid ] [ -s server ] [
       message ]

       qpage [ -d ] [ -C config	] -q interval

       QuickPage sends messages	to a paging terminal using the	SNPP  and  IXO
       (also  known  as	 TAP)  protocols.  It is normally used with no options
       other than a recipient and the message text, in which case the  message
       is  sent	to the SNPP server where it is submitted to a page queue to be
       sent by a separate daemon process.  Page	groups and duty	schedules  are
       supported.   Status  notification  messages  indicating	the success or
       failure of a page are sent via e-mail to	 submitters  of	 high-priority
       (level 0) pages.

       If  no  message	is specified on	the command line, the user is prompted
       for the message text.  Characters are read from standard	input until  a
       line  containing	 only  a period	is received, or	until EOF is received.
       All occurrences of whitespace within the	message	text are reduced to  a
       single space character.

       Messages	received by the	QuickPage daemon that are longer than the max-
       imum page length	(see below) are	split into multiple segments and  sent
       as  separate  pages.  Each message segment is prefixed with its segment
       number.	The maximum number of segments a into which a message will  be
       split  is  configurable.	 If a message exceeds this limit, the last al-
       lowed segment will be prefixed with 't',	indicating that	the message is
       truncated; otherwise, the last segment is prefixed with 'e' to indicate
       the end of the message.	Messages that fit into a single	page  are  not
       prefixed	 with segment numbers.	All message segments are prefixed with
       CALLerid	information (see RFC-1861), if available.

       The following options are supported:

       -a     Send the page at the specified time.  A time specification  pre-
	      fixed  with  a  plus sign	(+) is added to	the current time.  The
	      QuickPage	daemon will not	send any pages with a timestamp	 newer
	      than  the	 current  time.	 This feature may be used to provide a
	      simple alarm clock function for meeting  reminders,  etc.	  This
	      option  applies  only to the pagerid(s) specified	by the next -p
	      option.  If the specified	time is	in  the	 format	 YYMMDDHHMMSS,
	      the  two-digit  year  is interpreted as follows: if the last two
	      digits of	the specified year are in the range 00-49 and the last
	      two  digits  of  the current year	are in the range 50-99,	assume
	      the specified time is in the next	century.  Otherwise assume the
	      specified	time is	in the current century.

       -c     Use a different coverage area or paging service.	This option is
	      only useful if the recipient has more than one pager and/or more
	      than  one	 paging	 service.   This  option  applies  only	to the
	      pagerid(s) specified by the next -p option.

       -C     Specify an alternate configuration file.	This option  may  only
	      be used on the QuickPage server.

       -d     Debug  mode.   Very verbose and probably not interesting for the
	      normal user.  This option	is  provided  for  debugging  purposes

       -f     Specify  who  the	page is	from.  This option specifies the argu-
	      ment to the SNPP CALLerid	command.  Every	message	 segment  will
	      be  prefixed with	the value specified by this option unless dis-
	      abled by the msgprefix keyword in	 the  configuration  file.   A
	      null  argument ( -f "") may be specified to suppress the message
	      prefix for a particular message.	However, this will  also  sup-
	      press  e-mail status notification.  The default is the userid of
	      the person running QuickPage.

       -h     Help.  Print a brief summary of the command line options.

       -i     Use interactive mode.  The page is sent immediately and  summary
	      messages are printed during the course of	the transaction.  This
	      option may only be used on a machine with	a physically  attached
	      modem.   This option is intended for debugging purposes only and
	      should not be used in a production environment.  The -d  option,
	      when used	in conjunction with this option, can be	very effective
	      in troubleshooting problems between the SNPP server and the  re-
	      mote paging terminal.

       -l     Specify the service level	for this page.	The service level must
	      be a number between 0 and	11, inclusive.	The TME	protocol spec-
	      ifies service level as follows:

		     0 - Priority
		     1 - Normal	(default)
		     2 - Five minutes
		     3 - Fifteen minutes
		     4 - One hour
		     5 - Four hours
		     6 - Twelve	hours
		     7 - Twenty	Four hours
		     8 - Carrier specific '1'
		     9 - Carrier specific '2'
		     10	- Carrier specific '3'
		     11	- Carrier specific '4'

	      With the exception of level zero,	service	levels have no meaning
	      to QuickPage but they are	accepted for compatibility with	 other
	      programs.	  Any service level specified by the user is passed on
	      to the SNPP server.  For pages submitted with a service level of
	      zero,  the  QuickPage  daemon will send an e-mail	message	to the
	      submitter	notifying them whether the page	succeeded (i.e.	it was
	      successfully transmitted to the paging service) or failed.  This
	      option applies only to the pagerid(s) specified by the  next  -p

       -m     This option tells	QuickPage to read an e-mail message from stan-
	      dard input.  A page is constructed by  concatenating  the	 From:
	      header (XXX), the	Subject: header	(YYY), and lines from the mes-
	      sage body	(ZZZ) as follows:

		     XXX (Subj:	YYY) ZZZ ...

	      Minimal support is provided for multipart	 MIME  messages.   The
	      first part with a	Content-Type: of text/plain will be processed.
	      The remaining parts will be discarded.   This  will  reduce  the
	      problems associated with people accidentally mailing binaries to
	      their pagers.

	      The X-sun-attachment type	is not supported  and  should  not  be
	      used.  MIME is a documented standard.  The X-sun-attachment type
	      is neither documented nor	 standard.   However,  QuickPage  will
	      still  use  the  From:  and Subject: lines (but no message body)
	      from such	messages for those people who insist on	using it  any-

	      A	 line starting with two	dashes (--) in the message body	(or in
	      a	MIME text part)	is assumed to be the start of a	signature  and
	      will  cause  QuickPage  to stop processing the e-mail message at
	      that point.

       -p     Specify the pagerid of the intended recipient.  Multiple recipi-
	      ents  may	be specified by	separating their pager IDs with	commas
	      (e.g. pagerid1,pagerid2,pagerid3).  No spaces are	permitted  be-
	      tween  recipients	 and  the comma	separator characters.  Any -a,
	      -c, or -l	options	previously encountered on the command line are
	      reset  to	 their	default	values after this option is processed.
	      This option may occur multiple times on the command  line,  each
	      possibly preceded	by different -a, -c, or	-l options.

       -P     Like  -p but does	not reset -a, -c, or -l	options	previously en-
	      countered	on the command line.

       -q     Start a QuickPage	daemon.	 This option causes QuickPage  to  de-
	      tach  itself  from  the controlling terminal and run as a	daemon
	      process.	This option requires a numerical argument.  If the ar-
	      gument  is greater than zero, it specifies the number of seconds
	      QuickPage	should sleep between queue  runs.   An	argument  less
	      than  zero signals QuickPage to accept incoming SNPP connections
	      and write	new pages to the page queue, but to never process  the
	      page queue.  An argument of zero signals QuickPage not to	listen
	      for incoming SNPP	connections, but to process the	page queue one
	      time and then exit.  See the NOTES section below for more	infor-

       -Q     Print the	current	contents of the	page queue.  This  option  may
	      only be used on the QuickPage server.  Unless invoked by root or
	      DAEMONUSER, this option will probably fail because  of  insuffi-
	      cient permissions.

       -s     Specify  the  name(s) of the SNPP	server(s).  The	hostnames used
	      by a client to contact a server are determined by	 checking  the
	      following	in this	order:

		     the -s option
		     the environment variable SNPP_SERVER
		     the contents of the compiled in filename
		     the compiled in hostname

	      Multiple hostnames are permitted by separating them with commas.
	      If multiple servers are used, it is assumed that they  all  have
	      identical	copies of the configuration file.

       -v     Print the	version	of QuickPage and exit.

       The  QuickPage server requires a	configuration file.  This file is read
       one time	during startup and again upon receipt of SIGHUP.  The configu-
       ration  file  is	made up	of major and minor keyword=value pairs.	 Major
       keywords	must start at the beginning of a line.	 Minor	keywords  must
       contain	leading	whitespace.  All keywords must be immediately followed
       with an equal sign (=).	Spaces are permitted between  the  equal  sign
       and the value.  The value may not contain whitespace.  Keywords may ap-
       pear in any order with the following four exceptions:

	      Minor keywords must be grouped together under  their  respective
	      major keyword.

	      Modems must be defined before any	services that reference	them.

	      Services must be defined before any pagers that reference	them.

	      Pagers must be defined before any	groups that reference them.

       The major keywords are:

	      administrator  The  e-mail  address of the QuickPage administra-
			     tor.  If defined,	e-mail	notification  will  be
			     sent  to  the  QuickPage administrator whenever a
			     page fails	 (i.e.	when  maxtries	has  been  ex-
			     ceeded).  This address is also used in the	Reply-
			     To: header	for status notification	messages  sent
			     to	users who submit high-priority pages.

	      forcehostname  (true, false, or @mailhost) Force the destination
			     address to	be  qualified  with  a	hostname  when
			     sending  e-mail  status  notification  to	users.
			     This option can be	used when the QuickPage	daemon
			     is	 running on a machine that does	not handle un-
			     qualified e-mail  addresses  correctly.   If  the
			     value of this keyword starts with the '@' charac-
			     ter, it will be appended as-is to unqualified  e-
			     mail  addresses.  If the value of this keyword is
			     "true" then the submitter's hostname will be  ap-
			     pended  to	 such addresses.  The default is false
			     (do not append hostnames).

	      identtimeout   The number	of seconds to wait for a reply	before
			     giving  up	 on RFC-1413 queries.  An integer less
			     than or equal to zero disables ident  functional-
			     ity.  The default is 10 seconds.

	      include	     If	 present,  this	 keyword specifies the name of
			     another configuration file	that  should  be  pro-
			     cessed  at	this point.  Processing	of the current
			     file resumes after	the specified  file  has  been
			     processed.	 QuickPage makes no attempt to prevent
			     infinite recursion; do not	use  this  keyword  in
			     multiple files that point at each other.

	      pidfile	     If	 present,  this	 keyword specifies a file into
			     which the server should  write  its  process  ID.
			     The  file	is is not opened until after root per-
			     missions have been	dropped.  If DAEMONUSER	cannot
			     open  the	file  for writing (or if the file does
			     not exist and DAEMONUSER does not have permission
			     to	create it), this keyword is silently ignored.

	      sigfile	     If	 present,  this	 keyword specifies a file con-
			     taining an	 alternate  signature  that  QuickPage
			     should  append to e-mail status notification mes-
			     sages  sent  to  page   submitters.    Use	  sig-
			     file=/dev/null  to	 suppress  the	signature com-

	      synchronous    (true or false) Whether or	 not  queue  runs  are
			     synchronized  with	 new pages.  If	true, the sub-
			     mission of	a new page initiates a queue run with-
			     out  waiting for the normal sleep counter (set by
			     the -q option).  If false,	the page is queued and
			     the  server  waits	 for the time remaining	on the
			     sleep counter (if any)  before  starting  another
			     queue run.	 The default is	true.

	      lockdir	     The location of the lock directory.  This keyword
			     may be used to override the compiled in  location
			     of	 the lock directory.  It should	rarely be nec-
			     essary to specify this keyword.

	      snpptimeout    The number	of seconds to wait for an SNPP command
			     before  terminating  the connection.  The default
			     is	60 seconds.

	      queuedir	     The location of the page queue.  There is no  de-
			     fault queue directory; this option	must be	speci-
			     fied in the configuration file.

	      modem	     The start of a modem definition.  The argument to
			     this  keyword is the name of a modem device (e.g.
			     hayes).  This keyword  has	 the  following	 minor

			     text	    Optional text specified by the ad-
					    ministrator.  This	text  may  not
					    contain  whitespace.  However, un-
					    derscores are converted to	spaces
					    when  the value of this keyword is
					    read.  This	keyword	is not	inter-
					    preted  by	QuickPage  and is only
					    provided for  the  administrator's

			     device	    The	 name  of the device the modem
					    is physically connected  to,  such
					    as	/dev/cua/a.   There  is	no de-
					    fault device; this option must  be
					    specified	in  the	 configuration

			     initcmd	    The	 initialization	 command   for
					    this  modem.   The	initialization
					    command must cause	the  modem  to
					    respond with OK.  The default ini-
					    tialization	command	is ATZ.

			     dialcmd	    The	dial command for  this	modem.
					    The	 dial  command	specified here
					    should not include a phone number.
					    The	default	dial command is	ATDT.

	      service	     The  start	 of  a paging service definition.  The
			     argument to this keyword is the name of the  pag-
			     ing  service.  If a service named default exists,
			     the values	of its minor keywords are used as  de-
			     faults  for  all other service definitions.  This
			     keyword has the following minor keywords:

			     text	    Optional text specified by the ad-
					    ministrator.   This	 text  may not
					    contain whitespace.	 However,  un-
					    derscores  are converted to	spaces
					    when the value of this keyword  is
					    read.   This keyword is not	inter-
					    preted by QuickPage	 and  is  only
					    provided  for  the administrator's

			     device	    One	or more	names of modem defini-
					    tions.   Multiple  modems  may  be
					    specified by separating them  with
					    commas.    During	a  queue  run,
					    QuickPage will try each  modem  in
					    the	 list  until it	finds one that
					    can	be opened  successfully	 (i.e.
					    it	is not already being used by a
					    dialin  user  or  by  some	 other
					    process).  The remaining modems in
					    the	list will be ignored until the
					    next  queue	run when the list will
					    be searched	again.	 In  no	 event
					    will QuickPage ever	have more than
					    one	modem open at any given	 time;
					    pages  queued  for	different ser-
					    vices are  not  processed  concur-
					    rently.   For backward compatibil-
					    ity	 with  previous	 releases,   a
					    physical device path may be	speci-
					    fied here.	However, this will not
					    be	supported  in future releases.
					    Modem definitions should  be  used

			     dialcmd	    [obsolete]	The  command  that the
					    modem should use to	connect	to the
					    remote  paging service.  This key-
					    word is accepted for backward com-
					    patibility	and  will  not be sup-
					    ported  in	future	releases.   If
					    specified,	this keyword overrides
					    the	dialcmd	keyword	in  all	 modem
					    specifications  used  by this ser-

			     phone	    The	phone  number  of  the	paging
					    service.  The specified phone num-
					    ber	will be	appended  to  the  mo-
					    dem's  dialcmd  when  calling  the
					    paging service.

			     password	    The	password to use	 when  logging
					    into  the  remote  paging service.
					    The	IXO specification defines  the
					    password  as an optional six char-
					    acter alphanumeric	string.	  Most
					    paging   services  in  the	United
					    States do not require a  password.
					    The	 default  is  an  empty	string

			     baudrate	    The	speed to use while talking  to
					    the	 modem.	  The  default	is 300

			     parity	    The	parity to use (even,  odd,  or
					    none)  while talking to the	modem.
					    The	default	is even.

			     maxmsgsize	    The	maximum	number	of  characters
					    allowed  in	a single page segment.
					    This  size	includes  the  message
					    prefix  and	 9  bytes  of protocol
					    overhead.  The default is 80 char-

			     maxpages	    The	 maximum  number  of page seg-
					    ments to send when a  message  ex-
					    ceeds  maxmsgsize.	 The  value of
					    this option	must be	between	1  and
					    9,	inclusive.   The  default is 9
					    page segments.

			     maxtries	    The	number	of  times  to  attempt
					    sending  a	page before giving up.
					    If the modem is busy (i.e. tip  or
					    cu	is  currently  using it) or if
					    the	modem returns BUSY in response
					    to	the  dial command, the counter
					    is not incremented.	 Thus  a  busy
					    service  will  cause  QuickPage to
					    retry the page forever.   The  de-
					    fault is 6.

			     identfrom	    (true or false) This keyword spec-
					    ifies whether to use the ident re-
					    sponse as the message prefix if no
					    CALLerid SNPP command is received.
					    The	default	is true.

			     allowpid	    (true or false) This keyword spec-
					    ifies whether the QuickPage	daemon
					    will  accept  numeric pagerids for
					    pagers not specified in  the  con-
					    figuration file.  The default ser-
					    vice is used for such pagerids un-
					    less the user explicitly chooses a
					    different  service.	  The  default
					    for	this keyword is	false.

			     msgprefix	    (true or false) Whether to prepend
					    the	sender's  name	(the  CALLerid
					    information)  to  the beginning of
					    each page segment.	 This  keyword
					    should be set to false for service
					    definitions	  used	 for   numeric
					    pagers.  The default for this key-
					    word is true.

	      pager	     The start of a pager definition.  The argument to
			     this  keyword is the username associated with the
			     pager.  This username will	be specified by	the -p
			     option on the command line	when running QuickPage
			     in	client mode.  This keyword has	the  following
			     minor keywords:

			     text	    Optional text specified by the ad-
					    ministrator.  This	text  may  not
					    contain  whitespace.  However, un-
					    derscores are converted to	spaces
					    when  the value of this keyword is
					    read.  Pager  specifications  con-
					    taining   this   keyword  will  be
					    listed by the XWHO	SNPP  command.
					    See	 the  NOTES  section below for
					    more information.

			     pagerid	    The	pagerid	 sent  to  the	remote
					    paging service for this pager.

			     service	    The	 default  service  to  use for
					    this pager.

	      group	     The start of a group definition.  The argument to
			     this  keyword  is	the  name of a new page	group.
			     This keyword has the following minor keywords:

			     text	    Optional text specified by the ad-
					    ministrator.   This	 text  may not
					    contain whitespace.	 However,  un-
					    derscores  are converted to	spaces
					    when the value of this keyword  is
					    read.   Group  specifications con-
					    taining  this  keyword   will   be
					    listed  by	the XWHO SNPP command.
					    See	the NOTES  section  below  for
					    more information.

			     member	    A  member of this group.  The mem-
					    ber	must have a valid pager	 entry
					    before  this group definition.  An
					    optional duty schedule (see	below)
					    may	 be  specified.	  This keyword
					    may	appear multiple	times within a
					    single group.

       The service named "default" always exists (even if not specified	in the
       configuration file) and has the default values listed above.   However,
       the  default  service may be redefined in the configuration file	if de-

       Member definitions within a page	group have the syntax:


       Where the square	brackets indicate an optional duty schedule.  The duty
       schedule	 has the same syntax as	the Time parameter in the UUCP Systems
       file: Day is a list of case-sensitive weekday abbreviations  (e.g.  Mo-
       TuTh),  Start  is  the  start  time (e.g. 800), and End is the end time
       (e.g. 1700).  The word Any is synonymous	with SuMoTuWeThFrSa.  Midnight
       may  be	represented as either 0	or 2400.  The time range must not span
       across midnight.	 A slash is required to	 separate  the	duty  schedule
       from  the member	name.  Multiple	member definitions for the same	person
       with different duty schedules are permitted (see	 the  example  below).
       Overlapping  duty schedules for the same	person within a	group will not
       cause duplicate pages to	be sent	to that	person.	 See the following ex-
       ample configuration file:

	      #	QuickPage configuration	file


	      #	use the	S7 modem register to set a connection timeout








       The order of the	command	line options is	important.  The	-a, -c,	and -l
       options must precede the	pagerids they refer to.

       The -p option resets -a,	-c, and	-l to their default values after it is
       processed.  If this behavior is not desired, use	-P instead.

       All 8-bit characters are	stripped to 7 bits before they are transmitted
       to the paging service, regardless of the	parity setting defined in  the
       configuration file.  Also, all control characters (ASCII	values between
       0x00 and	0x20) are "escaped" as specified by the	IXO/TAP	protocol.  Es-
       caping is done by converting each control character into	two bytes con-
       sisting of a SUB	(0x1A) character followed by the printable ASCII char-
       acter  formed  by adding	0x40 to	the ASCII value	of the control charac-
       ter.  Thus, Ctrl-A is transmitted as the	two-byte sequence 0x1A,	0x41.

       The QuickPage daemon listens for	incoming SNPP connections and periodi-
       cally processes the page	queue.	A separate child process is created on
       demand to handle	each incoming request and each queue run.

       After a page is accepted, the child sends SIGUSR1 to its	parent forcing
       it to start a queue run immediately without waiting for the time	speci-
       fied by -q.  If desired,	this signal can	be suppressed using the	 "syn-
       chronous" keyword described above.

       The  page  queue	 is  locked during queue runs to prevent multiple pro-
       cesses from competing for modem resources.

       The QuickPage SNPP daemon supports a proprietary	XWHO command not docu-
       mented  in  the	official SNPP protocol as described in RFC-1861.  XWHO
       takes no	arguments and returns a	multi-line response of the form:

	      214 pager1 text1
	      214 pager2 text2
	      214 pager3 text3
	      214 pagerN textN

       where the first word after the 214 response code	is the name of a pager
       or  page	group, followed	by the value of	the corresponding text keyword
       (with underscores converted to spaces)  from  the  configuration	 file.
       Pager  and  group  specifications that do not have the text keyword de-
       fined in	the configuration file will not	be included in	the  XWHO  re-
       sponse.	 The  purpose  of the XWHO command is to allow SNPP clients to
       present users with a list of possible recipients	and their names	or de-
       scriptions.   XWHO  is supported	by QuickPage in	an attempt to overcome
       the current SNPP	protocol's deficiency.	If the protocol	 is  ever  re-
       vised 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.	 Software  developers  writing	their own SNPP clients
       should be advised that the XWHO command is not stable and  may  be  re-
       moved from future releases of QuickPage without notice.

       If  the	CALLerid information received by the QuickPage daemon contains
       the '@' character, it is	 truncated  at	that  character	 before	 being
       prepended  to  messages.	 However, it is	used as-is for the destination
       address when sending e-mail notification	for high-priority recipients.

       Due to the protocol limitations of SNPP,	QuickPage derives e-mail noti-
       fication	 addresses  from the CALLerid information.  Since the CALLerid
       information might be bogus, all e-mail notifications are	sent  using  a
       null  reverse path.  This will prevent error messages from being	gener-
       ated by the mail	system if a bogus address is used for e-mail notifica-

       If  the	server does not	receive	a CALLerid command (sent by the	Quick-
       Page client unless -f"" is specified on the command line)  notification
       messages	will not be sent, regardless of	the specified service level.

       When the	-m flag	is used	to send	a high-priority	page, the status noti-
       fication	is sent	to the return address in the original  e-mail  message
       unless overridden by the	-f option.

       The  length  of	SNPP  commands is limited only by the amount of	memory
       available to QuickPage.

       QuickPage uses a	timeout	of 255 seconds while waiting for a  connection
       from the	remote modem.  This allows the administrator to	specify	an ap-
       propriate timeout by setting the	modem's	S7 register in the  dial  com-

       The  modem  must	 control the CD	(carrier-detect) line.	Otherwise, the
       on/off hook status of the modem cannot be determined.   This  is	 espe-
       cially  important  if more than one paging service is used since	Quick-
       Page must be able to detect when	it's safe to send dial commands	to the



       Pages  are  not	queued on the client side.  As a result, if no servers
       are available to	the client at the time a page is submitted,  an	 error
       message is printed and the page is discarded.

       Pages  received after a queue run has started will not be processed un-
       til the following queue run.

       The default service requires a phone keyword (just like the rest	of the
       service	definitions),  even if no pager	entries	specifically reference
       the default service.

       Because QuickPage must read the configuration file to determine the lo-
       cation  of  the page queue, the -Q option will only work	for users with
       appropriate access to the modems, page queue, and lock directory.

       Please send additional bug reports to

       QuickPage was written by	Thomas Dwyer  III  <>  and  is
       provided	 to  the  internet community free of charge for	non-commercial
       use (i.e.  QuickPage may	not be used for	 profit	 in  any  way  without
       prior written permission.)

       Copyright (c) 1995-1999 Thomas Dwyer III

Thomas Dwyer III		   05/08/99			      qpage(1)


Want to link to this manual page? Use this URL:

home | help