4. Data Block Description

4.1. Block Structure

Figure 3. More complex example MSC

A larger .pdf image is here.

The Block Check Character shall be the modulo 2 binary sum of the characters in the transmission block excluding the SOH, i.e., the longitudinal parity including the BCC shall be made even.


Note inevitably that you will sometimes see the ending RS ETX BCC because implementers get it wrong; Gordon


Note of course that the BCC could have the value of a Control Character but does not then mean it is that control character. Sadly implementors sometimes forget that; Gordon


A source code clip for BCC is in Appendix C; Gordon

4.2. Headers

The header specifies the type of block, i.e., the type of transaction.

The headers are defined in the following table:


Call to pager

Sent by a station in make a paging call; Gordon


Status Information

Response indicating call progress; Gordon


Status Request

Request for Status Information; Gordon


Use the same content details as for the original Call to enable call matching within the paging system.; Gordon


Call to subscriber line

Request from the paging system for a call to a PBX extenson or elsewhere.; Gordon


Usually used with two-way speech handsets to make a telephone call from the handset; Gordon


Other information (to be specified by the paging equipment manufacturer).


Probably that last type should read "to be agreed between the paging equipment manufacturer and the PBX or computer manufacturer". I don't know if anyone actually uses it; Gordon

4.3. Records

The contents and meaning of each record are defined in the following table. Note that data may have more characters, for example to indicate a type or subdivision in the data. In most cases, the character '0' is reserved for future expansion, e.g., '1' is not the same as '01' or '001' etc.


Ah, now I'm in trouble, no table support in SGMLtools, better use <screen> for now :-|

Record Type	     identifier		Data		Meaning
-----------	     ----------		----		-------
Call Address		'1'		max 16 char	Address of the pager or group
							of pagers.

Display message		'2'		max 128 char	The message to be displayed.

Beep coding		'3'		'0'		Reserved
					'1' to '9'	System dependent (But should
							all do something; Gordon)

Call type		'4'		'0'		Reserved
					'1'		Reset (cancel) call
					'2'		Speech call
					'3'		Standard call (Hmm, e.g. message,
							no speech; Gordon)
Number of Transm.	'5'		'0'		Reserved
					'1'		1 transmission
					'2'		2 transmissions
					etc.		etc.

Priority		'6'		'0'		Reserved
					'1'		Alarm (emergency)
					'2'		High
					'3'		Normal

Call status		'7'		'0'		Reserved
					'1'		Busy
					'2'		In Queue
					'3'		Paged
					'4'		Absent
					'5'		Call terminated
					'6'		Ack. from called party
					'7'		Speech channel open
					'71'		Speech channel open (paged)
					'72'		Speech channel open (absent)
					'8'		Fault indications

System status		'8'		'0'		Reserved
					'1'		Transmitter failure

A block consists of one or more of the above data, beginning with a "block type" header, with other data in any sequence separated by Record Separators)

In most systems, many of the above data have predetermined default values. In these cases, only the information which is required to be different from the default value need be transferred, e.g., for a standard priority call there is no need to send a "standard priority" message.


Note that the above data should be supported so that any two systems connected together should work reasonably sanely without customisation. As an example, in Multitone we usually had 8 beep codes, so IIRC we mapped 1, 2, 3 and 4 to one-beep, two-beep, three-beeps, then 5, 6 and 7 to one-pip, two-pips and three-pips. Our 4-pip case would normally be special (alarm calls), so 8 and 9 were just wrapped back to one-beep and two-beeps Gordon;


Rather irritatingly there is no "I don't remember that call" status. I chose to return '5' Call Terminated, even though that sounds like a failure or abort, because if I don't remember the call, I cannot fairly claim it was "Paged". In Multitone's implementation, we remember a fair number of calls and I doubt there's really a problem Gordon.


'8' Fault Indications has no defined meanings. Personally I would supply a descriptive text as the data, e.g., "Transmitter Fault - high VSWR", though whether anything would use it is debatable. Gordon

4.4. Examples of Transactions


There are ASCII diagrams here, but I can do much better. Please bear with me; Gordon