Voice/Fax machine

for NeXT Computers and ZyXEL Modems

by	Olaf Möller   Heinrichstr. 38   D-38106 Braunschweig
	eMail: olaf@orest.escape.de     Tel/Fax: +49 531 338026

	
			Contents

				Introduction
				Use
				Requirements
				Signalizing a fax call
				Fax on demand
				Advanced voice features
				Command line tools
				Other processes using the same line
				Installation
				Retrying sending a fax
				Dial prefix
				Fax cover sheet
				Modifying system voices
				Technical informations
				Restrictions
				Missing features
				Guarantee
				History
				Future

Introduction:

This piece of software is written to use a NeXT Computer as a Voice/Fax machine using one telephone line and a ZyXEL modem.

You are able 

	sending faxes using the PrintPanel
		This means, that you can fax everything you can print.

	receiving faxes
		Received faxes can be delivered to your mailbox, and a simple
		doubleClick will display it.
		
	receiving voice calls
		Received voices can be delivered to your mailbox, and a simple
		doubleClick will play it.
		
	using advanced voice features
		You are able to listen to recorded voices from a remote place, and
		you can leave a message for friends.

Use:

This software should no longer be public domain, because there are other commercial or shareware products in concurrence with smaller concepts.
One can only handle telephone lines, which are used exclusive for faxes, the other only handles sending faxes.
So: I expect a shareware fee of
	40.00 US$ (60,- DM)    for each installation 

Requirements:

This software is built and tested with NSI3.3 and a ZyXEL modem U1496EG+. I don't know a reason, why it should not run successfully on black, yellow or green hardware.
Probably other ZyXEL modems will also work. Modems produced by other companies will probably not work.

Signalizing a fax call:

In case of you took off the receiver and - what a surprise - a fax is coming, you are able to make a switch to persuade the modem to take the line for handling this event.
This can be done either by entering "touch /tmp/faxsignal.am" in a Terminal window or using AM.app (part of this distribution).
After modem took the line, you MUST hang up the receiver.

Fax on demand:

Some companies offer "Fax on demand" service.
If you want to use it: there is a way to get such fax. The way of elegance might be to use the command dial, but at this time you can use this workaround:
Dial the number (by hand, not with dial), wait until the remote fax is beeping, then press the right button at your modem (DATA/VOICE). You should hear, that the modem is taking the line, and now you MUST hang up the receiver.

Advanced voice features:

There are two features of remote control using MFV tones.
The first one is for you (root mode):
	You can call from anywhere to your phone and enter #4711* to enter the root
	menu. (The root password number 4711 can be modified in the configuration
	file .am.) Then someone is telling you ("RootMenu.zsnd"), that you can press
	#1 for listening to a recorded message or #2 for archiving the recorded message,
	you heard last.
The second feature is for friends of you:
	They can enter #nnnnn* and have an ear, wether a message "nnnnn.zsnd" is left
	in FriendDirectory. After hearing this - or the message, that there is nothing
	to hear ("NoMessageForFriend.zsnd") - , they can leave a message for you.

Command line tools:

For converting ZyXEL voice to NeXT sound and vice versa there are the tools snd2zsnd and zsnd2snd.

You can use zsndplay to play a ZyXEL voice on the NeXT sound system.

You can use dial to dial a number, and amreset to restart am.

Type "command -h" to see, how to use them.

Other processes using the same line:

All programs, which regard an elementary rule when dialing out on the line, where am is looking for activities, are good friends of am. This rule is to lock the device before writing anything to the modem.
Examples for such good friends are
	Taylor-UUCP
	kermit
	PPP
and - of course - the programs, which are part of this package
	dial
	sendfax
	amreset
Programs, which do not regard this rule (like NXFax when sending faxes), may generate big confusions.

Installation:

·	cd to "newam-0.2"
·	login as root
·	install the fax printer (run "./instPrinter")
·	install the other stuff (run "./instBins")
·	customize the answering machine editing "/usr/local/lib/AM/.am".
	Modify maybe PORT= , VOICEROOTNUMBER= and of course LOCALFAXID= ,
	MAILADDRESSES=.
	Customize the fax machine using NetInfoManager (beware of using
	PrintManager) editing "/fax_modems/AM_<host>_fax".
	Modify maybe "device" and of course "csi"
·	If you are using a black NeXT Computer, probably you want to edit
	"/usr/local/lib/AM/voicemail" to enable the option -c for SNDCONVERT.
·	If your printer and faxmodem configuration does not reside in the domain /,
	you have to edit the value "NIS_DOMAIN" in /usr/local/lib/AM/AM_Fax_Modem.
·	To start am, modify your file "/private/etc/ttys".
	You need (assuming port b) an entry of form
		ttydfb   "/usr/local/lib/AM/am /usr/local/lib/AM/.am"   vt100   on
·	Type "kill -HUP 1" at a root terminal window (or reboot) and am will start.
	(You should have installed a serial driver, which supports 38400 Baud)

Retrying sending a fax:

The number of retries (not tries) for sending a fax after transmission failed, can be set using NetInfoManager editing /fax_modems/AM_<host>_fax/retries. You may assign a value between 0 and 9.
The defer time for the next try is set to 5 minutes. If you want to change this value, you have to edit the value of DEFERMINUTES in /usr/local/lib/AM/AM_Fax_Modem.

Dial prefix:

Some telephone installations need a sequence of numbers to be dialed before the number, you want to be connect with. This can be set using NetInfoManager editing /fax_modems/AM_<host>_fax/dial_prefix. 

Fax cover sheet:

You can build your own fax cover sheets using Draw.app. Put them into the folder ~/Library/Fax or LocalLibrary/Fax.

Modifying system voices:

Delivered voices are spoken by me and my girlfriend, and ALL are spoken in german language.
If you will modify the contents, the names of the files will lead you to the correct text in your language.

You can modify the SystemVoices in two ways:
·	Use your microphone and speak text to a NeXT sound file. Then convert it to
	ZyXEL voice using snd2zsnd in a Terminal window.
·	Call yourself, speak all messages, run home and build the voice files using
	zsnd2snd, sound Tools for copy, cut and paste, and snd2zsnd.

Technical informations:

Received voices are compressed using ADPCM3 format. Voices to play may have the format ADPCM2 or ADPCM3.

Faxes will be sent and received using Class2 protocol. Sending class 2.0 faxes may also work, but is not tested.

Restrictions:

PrintManager
Do NOT use the item "Modify". This would destroy your fax printer configuration.
Do only use NetInfoManager to make modifications for fax printer configuration.

FaxReader
Browsing, archiving, etc... does not work.
Just doubleClick the received fax in your mailbox and have a view.

Missing features:

·	Incoming data calls are not handled (This feature is still not requested).
·	Only ZyXEL modems U-1496EG+ and E2864 are supported.

Guarantee:

This piece of software is full of bugs, and its use may well be hazardous to your health.

History:

September 1996:
	newam-0.1

	Initial release

October 1996:	
	newam-0.2

	Bug:		Displaying fax caller number in the mailbox failed. Corrected.

	Bug:		If spool directory resides on another file system than "/", voice
			did not work properly. Corrected.

	Bug:		#2 in voice root menu did not work properly. Corrected.

	Bug:		When playing long voices, the ZyXEL modem requests XOFF, which did
			lead to lots of CPU request. Corrected.

	Bug:		Fax receive capabilities had been poor. Corrected.

	New:	Displaying size of received voice (minutes) resp. fax (pages) in the
			mailbox.

	New:	ZyXEL modem E2864 supported now.

	New:	sending Class2 faxes using NeXT Interface.

Future:

·	Someone should implement the incoming data call.
·	Configuring should be more easy, e.g. using AM.app.
·	There should be a way to disable incoming voice calls. This gives us a chance to
	support a lot of other modems without voice capabilities.
·	There should be a way to start a process after entering special codes via MFV tones.